Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(388)

Side by Side Diff: webrtc/pc/srtpfilter_unittest.cc

Issue 2345753002: Update WebRTC to build against libsrtp 2.0 (Closed)
Patch Set: Rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/pc/srtpfilter.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "webrtc/base/byteorder.h" 11 #include "webrtc/base/byteorder.h"
12 #include "webrtc/base/constructormagic.h" 12 #include "webrtc/base/constructormagic.h"
13 #include "webrtc/base/gunit.h" 13 #include "webrtc/base/gunit.h"
14 #include "webrtc/base/thread.h" 14 #include "webrtc/base/thread.h"
15 #include "webrtc/media/base/cryptoparams.h" 15 #include "webrtc/media/base/cryptoparams.h"
16 #include "webrtc/media/base/fakertp.h" 16 #include "webrtc/media/base/fakertp.h"
17 #include "webrtc/p2p/base/sessiondescription.h" 17 #include "webrtc/p2p/base/sessiondescription.h"
18 #include "webrtc/pc/srtpfilter.h" 18 #include "webrtc/pc/srtpfilter.h"
19 extern "C" { 19 extern "C" {
20 #ifdef SRTP_RELATIVE_PATH 20 #ifdef SRTP_RELATIVE_PATH
21 #include "crypto/include/err.h" 21 #include "crypto/include/err.h"
22 #else 22 #else
23 #include "third_party/libsrtp/srtp/crypto/include/err.h" 23 #include "third_party/libsrtp/crypto/include/err.h"
24 #endif 24 #endif
25 } 25 }
26 26
27 using rtc::CS_AES_CM_128_HMAC_SHA1_80; 27 using rtc::CS_AES_CM_128_HMAC_SHA1_80;
28 using rtc::CS_AES_CM_128_HMAC_SHA1_32; 28 using rtc::CS_AES_CM_128_HMAC_SHA1_32;
29 using rtc::CS_AEAD_AES_128_GCM; 29 using rtc::CS_AEAD_AES_128_GCM;
30 using rtc::CS_AEAD_AES_256_GCM; 30 using rtc::CS_AEAD_AES_256_GCM;
31 using cricket::CryptoParams; 31 using cricket::CryptoParams;
32 using cricket::CS_LOCAL; 32 using cricket::CS_LOCAL;
33 using cricket::CS_REMOTE; 33 using cricket::CS_REMOTE;
(...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 uint32_t ssrc_; 806 uint32_t ssrc_;
807 int mode_; 807 int mode_;
808 cricket::SrtpFilter::Error error_; 808 cricket::SrtpFilter::Error error_;
809 809
810 private: 810 private:
811 RTC_DISALLOW_COPY_AND_ASSIGN(SrtpStatTest); 811 RTC_DISALLOW_COPY_AND_ASSIGN(SrtpStatTest);
812 }; 812 };
813 813
814 TEST_F(SrtpStatTest, TestProtectRtpError) { 814 TEST_F(SrtpStatTest, TestProtectRtpError) {
815 Reset(); 815 Reset();
816 srtp_stat_.AddProtectRtpResult(1, err_status_ok); 816 srtp_stat_.AddProtectRtpResult(1, srtp_err_status_ok);
817 EXPECT_EQ(0U, ssrc_); 817 EXPECT_EQ(0U, ssrc_);
818 EXPECT_EQ(-1, mode_); 818 EXPECT_EQ(-1, mode_);
819 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_); 819 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_);
820 Reset(); 820 Reset();
821 srtp_stat_.AddProtectRtpResult(1, err_status_auth_fail); 821 srtp_stat_.AddProtectRtpResult(1, srtp_err_status_auth_fail);
822 EXPECT_EQ(1U, ssrc_); 822 EXPECT_EQ(1U, ssrc_);
823 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_); 823 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_);
824 EXPECT_EQ(cricket::SrtpFilter::ERROR_AUTH, error_); 824 EXPECT_EQ(cricket::SrtpFilter::ERROR_AUTH, error_);
825 Reset(); 825 Reset();
826 srtp_stat_.AddProtectRtpResult(1, err_status_fail); 826 srtp_stat_.AddProtectRtpResult(1, srtp_err_status_fail);
827 EXPECT_EQ(1U, ssrc_); 827 EXPECT_EQ(1U, ssrc_);
828 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_); 828 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_);
829 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_); 829 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_);
830 // Within 200ms, the error will not be triggered. 830 // Within 200ms, the error will not be triggered.
831 Reset(); 831 Reset();
832 srtp_stat_.AddProtectRtpResult(1, err_status_fail); 832 srtp_stat_.AddProtectRtpResult(1, srtp_err_status_fail);
833 EXPECT_EQ(0U, ssrc_); 833 EXPECT_EQ(0U, ssrc_);
834 EXPECT_EQ(-1, mode_); 834 EXPECT_EQ(-1, mode_);
835 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_); 835 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_);
836 // Now the error will be triggered again. 836 // Now the error will be triggered again.
837 Reset(); 837 Reset();
838 rtc::Thread::Current()->SleepMs(210); 838 rtc::Thread::Current()->SleepMs(210);
839 srtp_stat_.AddProtectRtpResult(1, err_status_fail); 839 srtp_stat_.AddProtectRtpResult(1, srtp_err_status_fail);
840 EXPECT_EQ(1U, ssrc_); 840 EXPECT_EQ(1U, ssrc_);
841 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_); 841 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_);
842 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_); 842 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_);
843 } 843 }
844 844
845 TEST_F(SrtpStatTest, TestUnprotectRtpError) { 845 TEST_F(SrtpStatTest, TestUnprotectRtpError) {
846 Reset(); 846 Reset();
847 srtp_stat_.AddUnprotectRtpResult(1, err_status_ok); 847 srtp_stat_.AddUnprotectRtpResult(1, srtp_err_status_ok);
848 EXPECT_EQ(0U, ssrc_); 848 EXPECT_EQ(0U, ssrc_);
849 EXPECT_EQ(-1, mode_); 849 EXPECT_EQ(-1, mode_);
850 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_); 850 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_);
851 Reset(); 851 Reset();
852 srtp_stat_.AddUnprotectRtpResult(1, err_status_auth_fail); 852 srtp_stat_.AddUnprotectRtpResult(1, srtp_err_status_auth_fail);
853 EXPECT_EQ(1U, ssrc_); 853 EXPECT_EQ(1U, ssrc_);
854 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_); 854 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_);
855 EXPECT_EQ(cricket::SrtpFilter::ERROR_AUTH, error_); 855 EXPECT_EQ(cricket::SrtpFilter::ERROR_AUTH, error_);
856 Reset(); 856 Reset();
857 srtp_stat_.AddUnprotectRtpResult(1, err_status_replay_fail); 857 srtp_stat_.AddUnprotectRtpResult(1, srtp_err_status_replay_fail);
858 EXPECT_EQ(1U, ssrc_); 858 EXPECT_EQ(1U, ssrc_);
859 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_); 859 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_);
860 EXPECT_EQ(cricket::SrtpFilter::ERROR_REPLAY, error_); 860 EXPECT_EQ(cricket::SrtpFilter::ERROR_REPLAY, error_);
861 Reset(); 861 Reset();
862 rtc::Thread::Current()->SleepMs(210); 862 rtc::Thread::Current()->SleepMs(210);
863 srtp_stat_.AddUnprotectRtpResult(1, err_status_replay_old); 863 srtp_stat_.AddUnprotectRtpResult(1, srtp_err_status_replay_old);
864 EXPECT_EQ(1U, ssrc_); 864 EXPECT_EQ(1U, ssrc_);
865 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_); 865 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_);
866 EXPECT_EQ(cricket::SrtpFilter::ERROR_REPLAY, error_); 866 EXPECT_EQ(cricket::SrtpFilter::ERROR_REPLAY, error_);
867 Reset(); 867 Reset();
868 srtp_stat_.AddUnprotectRtpResult(1, err_status_fail); 868 srtp_stat_.AddUnprotectRtpResult(1, srtp_err_status_fail);
869 EXPECT_EQ(1U, ssrc_); 869 EXPECT_EQ(1U, ssrc_);
870 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_); 870 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_);
871 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_); 871 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_);
872 // Within 200ms, the error will not be triggered. 872 // Within 200ms, the error will not be triggered.
873 Reset(); 873 Reset();
874 srtp_stat_.AddUnprotectRtpResult(1, err_status_fail); 874 srtp_stat_.AddUnprotectRtpResult(1, srtp_err_status_fail);
875 EXPECT_EQ(0U, ssrc_); 875 EXPECT_EQ(0U, ssrc_);
876 EXPECT_EQ(-1, mode_); 876 EXPECT_EQ(-1, mode_);
877 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_); 877 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_);
878 // Now the error will be triggered again. 878 // Now the error will be triggered again.
879 Reset(); 879 Reset();
880 rtc::Thread::Current()->SleepMs(210); 880 rtc::Thread::Current()->SleepMs(210);
881 srtp_stat_.AddUnprotectRtpResult(1, err_status_fail); 881 srtp_stat_.AddUnprotectRtpResult(1, srtp_err_status_fail);
882 EXPECT_EQ(1U, ssrc_); 882 EXPECT_EQ(1U, ssrc_);
883 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_); 883 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_);
884 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_); 884 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_);
885 } 885 }
886 886
887 TEST_F(SrtpStatTest, TestProtectRtcpError) { 887 TEST_F(SrtpStatTest, TestProtectRtcpError) {
888 Reset(); 888 Reset();
889 srtp_stat_.AddProtectRtcpResult(err_status_ok); 889 srtp_stat_.AddProtectRtcpResult(srtp_err_status_ok);
890 EXPECT_EQ(-1, mode_); 890 EXPECT_EQ(-1, mode_);
891 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_); 891 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_);
892 Reset(); 892 Reset();
893 srtp_stat_.AddProtectRtcpResult(err_status_auth_fail); 893 srtp_stat_.AddProtectRtcpResult(srtp_err_status_auth_fail);
894 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_); 894 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_);
895 EXPECT_EQ(cricket::SrtpFilter::ERROR_AUTH, error_); 895 EXPECT_EQ(cricket::SrtpFilter::ERROR_AUTH, error_);
896 Reset(); 896 Reset();
897 srtp_stat_.AddProtectRtcpResult(err_status_fail); 897 srtp_stat_.AddProtectRtcpResult(srtp_err_status_fail);
898 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_); 898 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_);
899 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_); 899 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_);
900 // Within 200ms, the error will not be triggered. 900 // Within 200ms, the error will not be triggered.
901 Reset(); 901 Reset();
902 srtp_stat_.AddProtectRtcpResult(err_status_fail); 902 srtp_stat_.AddProtectRtcpResult(srtp_err_status_fail);
903 EXPECT_EQ(-1, mode_); 903 EXPECT_EQ(-1, mode_);
904 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_); 904 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_);
905 // Now the error will be triggered again. 905 // Now the error will be triggered again.
906 Reset(); 906 Reset();
907 rtc::Thread::Current()->SleepMs(210); 907 rtc::Thread::Current()->SleepMs(210);
908 srtp_stat_.AddProtectRtcpResult(err_status_fail); 908 srtp_stat_.AddProtectRtcpResult(srtp_err_status_fail);
909 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_); 909 EXPECT_EQ(cricket::SrtpFilter::PROTECT, mode_);
910 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_); 910 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_);
911 } 911 }
912 912
913 TEST_F(SrtpStatTest, TestUnprotectRtcpError) { 913 TEST_F(SrtpStatTest, TestUnprotectRtcpError) {
914 Reset(); 914 Reset();
915 srtp_stat_.AddUnprotectRtcpResult(err_status_ok); 915 srtp_stat_.AddUnprotectRtcpResult(srtp_err_status_ok);
916 EXPECT_EQ(-1, mode_); 916 EXPECT_EQ(-1, mode_);
917 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_); 917 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_);
918 Reset(); 918 Reset();
919 srtp_stat_.AddUnprotectRtcpResult(err_status_auth_fail); 919 srtp_stat_.AddUnprotectRtcpResult(srtp_err_status_auth_fail);
920 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_); 920 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_);
921 EXPECT_EQ(cricket::SrtpFilter::ERROR_AUTH, error_); 921 EXPECT_EQ(cricket::SrtpFilter::ERROR_AUTH, error_);
922 Reset(); 922 Reset();
923 srtp_stat_.AddUnprotectRtcpResult(err_status_replay_fail); 923 srtp_stat_.AddUnprotectRtcpResult(srtp_err_status_replay_fail);
924 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_); 924 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_);
925 EXPECT_EQ(cricket::SrtpFilter::ERROR_REPLAY, error_); 925 EXPECT_EQ(cricket::SrtpFilter::ERROR_REPLAY, error_);
926 Reset(); 926 Reset();
927 rtc::Thread::Current()->SleepMs(210); 927 rtc::Thread::Current()->SleepMs(210);
928 srtp_stat_.AddUnprotectRtcpResult(err_status_replay_fail); 928 srtp_stat_.AddUnprotectRtcpResult(srtp_err_status_replay_fail);
929 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_); 929 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_);
930 EXPECT_EQ(cricket::SrtpFilter::ERROR_REPLAY, error_); 930 EXPECT_EQ(cricket::SrtpFilter::ERROR_REPLAY, error_);
931 Reset(); 931 Reset();
932 srtp_stat_.AddUnprotectRtcpResult(err_status_fail); 932 srtp_stat_.AddUnprotectRtcpResult(srtp_err_status_fail);
933 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_); 933 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_);
934 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_); 934 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_);
935 // Within 200ms, the error will not be triggered. 935 // Within 200ms, the error will not be triggered.
936 Reset(); 936 Reset();
937 srtp_stat_.AddUnprotectRtcpResult(err_status_fail); 937 srtp_stat_.AddUnprotectRtcpResult(srtp_err_status_fail);
938 EXPECT_EQ(-1, mode_); 938 EXPECT_EQ(-1, mode_);
939 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_); 939 EXPECT_EQ(cricket::SrtpFilter::ERROR_NONE, error_);
940 // Now the error will be triggered again. 940 // Now the error will be triggered again.
941 Reset(); 941 Reset();
942 rtc::Thread::Current()->SleepMs(210); 942 rtc::Thread::Current()->SleepMs(210);
943 srtp_stat_.AddUnprotectRtcpResult(err_status_fail); 943 srtp_stat_.AddUnprotectRtcpResult(srtp_err_status_fail);
944 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_); 944 EXPECT_EQ(cricket::SrtpFilter::UNPROTECT, mode_);
945 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_); 945 EXPECT_EQ(cricket::SrtpFilter::ERROR_FAIL, error_);
946 } 946 }
OLDNEW
« no previous file with comments | « webrtc/pc/srtpfilter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698