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

Side by Side Diff: webrtc/pc/srtpfilter.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.h ('k') | webrtc/pc/srtpfilter_unittest.cc » ('j') | 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 2009 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2009 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/pc/srtpfilter.h" 11 #include "webrtc/pc/srtpfilter.h"
12 12
13 #include <string.h> 13 #include <string.h>
14 14
15 #include <algorithm> 15 #include <algorithm>
16 16
17 #include "webrtc/base/base64.h" 17 #include "webrtc/base/base64.h"
18 #include "webrtc/base/buffer.h" 18 #include "webrtc/base/buffer.h"
19 #include "webrtc/base/byteorder.h" 19 #include "webrtc/base/byteorder.h"
20 #include "webrtc/base/checks.h" 20 #include "webrtc/base/checks.h"
21 #include "webrtc/base/common.h" 21 #include "webrtc/base/common.h"
22 #include "webrtc/base/logging.h" 22 #include "webrtc/base/logging.h"
23 #include "webrtc/base/stringencode.h" 23 #include "webrtc/base/stringencode.h"
24 #include "webrtc/base/timeutils.h" 24 #include "webrtc/base/timeutils.h"
25 #include "webrtc/media/base/rtputils.h" 25 #include "webrtc/media/base/rtputils.h"
26 #include "webrtc/pc/externalhmac.h"
26 27
27 // Enable this line to turn on SRTP debugging 28 // Enable this line to turn on SRTP debugging
28 // #define SRTP_DEBUG 29 // #define SRTP_DEBUG
29 30
30 #ifdef HAVE_SRTP 31 #ifdef HAVE_SRTP
31 extern "C" { 32 extern "C" {
32 #ifdef SRTP_RELATIVE_PATH 33 #ifdef SRTP_RELATIVE_PATH
33 #include "srtp.h" // NOLINT 34 #include "srtp.h" // NOLINT
34 #include "srtp_priv.h" // NOLINT 35 #include "srtp_priv.h" // NOLINT
35 #else 36 #else
36 #include "third_party/libsrtp/srtp/include/srtp.h" 37 #include "third_party/libsrtp/include/srtp.h"
37 #include "third_party/libsrtp/srtp/include/srtp_priv.h" 38 #include "third_party/libsrtp/include/srtp_priv.h"
38 #endif // SRTP_RELATIVE_PATH 39 #endif // SRTP_RELATIVE_PATH
39 } 40 }
40 #ifdef ENABLE_EXTERNAL_AUTH 41
41 #include "webrtc/pc/externalhmac.h"
42 #endif // ENABLE_EXTERNAL_AUTH
43 #if !defined(NDEBUG) 42 #if !defined(NDEBUG)
44 extern "C" debug_module_t mod_srtp; 43 extern "C" srtp_debug_module_t mod_srtp;
45 extern "C" debug_module_t mod_auth; 44 extern "C" srtp_debug_module_t mod_auth;
46 extern "C" debug_module_t mod_cipher; 45 extern "C" srtp_debug_module_t mod_cipher;
47 extern "C" debug_module_t mod_stat; 46 extern "C" srtp_debug_module_t mod_stat;
48 extern "C" debug_module_t mod_alloc; 47 extern "C" srtp_debug_module_t mod_alloc;
49 extern "C" debug_module_t mod_aes_icm; 48 extern "C" srtp_debug_module_t mod_aes_icm;
50 extern "C" debug_module_t mod_aes_hmac; 49 extern "C" srtp_debug_module_t mod_aes_hmac;
51 #endif 50 #endif
52 #endif // HAVE_SRTP 51 #endif // HAVE_SRTP
53 52
54 namespace cricket { 53 namespace cricket {
55 54
56 #ifndef HAVE_SRTP 55 #ifndef HAVE_SRTP
57 56
58 // This helper function is used on systems that don't (yet) have SRTP, 57 // This helper function is used on systems that don't (yet) have SRTP,
59 // to log that the functions that require it won't do anything. 58 // to log that the functions that require it won't do anything.
60 namespace { 59 namespace {
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 } 529 }
531 530
532 *out_len = in_len; 531 *out_len = in_len;
533 int err = srtp_protect(session_, p, out_len); 532 int err = srtp_protect(session_, p, out_len);
534 uint32_t ssrc; 533 uint32_t ssrc;
535 if (GetRtpSsrc(p, in_len, &ssrc)) { 534 if (GetRtpSsrc(p, in_len, &ssrc)) {
536 srtp_stat_->AddProtectRtpResult(ssrc, err); 535 srtp_stat_->AddProtectRtpResult(ssrc, err);
537 } 536 }
538 int seq_num; 537 int seq_num;
539 GetRtpSeqNum(p, in_len, &seq_num); 538 GetRtpSeqNum(p, in_len, &seq_num);
540 if (err != err_status_ok) { 539 if (err != srtp_err_status_ok) {
541 LOG(LS_WARNING) << "Failed to protect SRTP packet, seqnum=" 540 LOG(LS_WARNING) << "Failed to protect SRTP packet, seqnum="
542 << seq_num << ", err=" << err << ", last seqnum=" 541 << seq_num << ", err=" << err << ", last seqnum="
543 << last_send_seq_num_; 542 << last_send_seq_num_;
544 return false; 543 return false;
545 } 544 }
546 last_send_seq_num_ = seq_num; 545 last_send_seq_num_ = seq_num;
547 return true; 546 return true;
548 } 547 }
549 548
550 bool SrtpSession::ProtectRtp(void* p, 549 bool SrtpSession::ProtectRtp(void* p,
(...skipping 17 matching lines...) Expand all
568 int need_len = in_len + sizeof(uint32_t) + rtcp_auth_tag_len_; // NOLINT 567 int need_len = in_len + sizeof(uint32_t) + rtcp_auth_tag_len_; // NOLINT
569 if (max_len < need_len) { 568 if (max_len < need_len) {
570 LOG(LS_WARNING) << "Failed to protect SRTCP packet: The buffer length " 569 LOG(LS_WARNING) << "Failed to protect SRTCP packet: The buffer length "
571 << max_len << " is less than the needed " << need_len; 570 << max_len << " is less than the needed " << need_len;
572 return false; 571 return false;
573 } 572 }
574 573
575 *out_len = in_len; 574 *out_len = in_len;
576 int err = srtp_protect_rtcp(session_, p, out_len); 575 int err = srtp_protect_rtcp(session_, p, out_len);
577 srtp_stat_->AddProtectRtcpResult(err); 576 srtp_stat_->AddProtectRtcpResult(err);
578 if (err != err_status_ok) { 577 if (err != srtp_err_status_ok) {
579 LOG(LS_WARNING) << "Failed to protect SRTCP packet, err=" << err; 578 LOG(LS_WARNING) << "Failed to protect SRTCP packet, err=" << err;
580 return false; 579 return false;
581 } 580 }
582 return true; 581 return true;
583 } 582 }
584 583
585 bool SrtpSession::UnprotectRtp(void* p, int in_len, int* out_len) { 584 bool SrtpSession::UnprotectRtp(void* p, int in_len, int* out_len) {
586 RTC_DCHECK(thread_checker_.CalledOnValidThread()); 585 RTC_DCHECK(thread_checker_.CalledOnValidThread());
587 if (!session_) { 586 if (!session_) {
588 LOG(LS_WARNING) << "Failed to unprotect SRTP packet: no SRTP Session"; 587 LOG(LS_WARNING) << "Failed to unprotect SRTP packet: no SRTP Session";
589 return false; 588 return false;
590 } 589 }
591 590
592 *out_len = in_len; 591 *out_len = in_len;
593 int err = srtp_unprotect(session_, p, out_len); 592 int err = srtp_unprotect(session_, p, out_len);
594 uint32_t ssrc; 593 uint32_t ssrc;
595 if (GetRtpSsrc(p, in_len, &ssrc)) { 594 if (GetRtpSsrc(p, in_len, &ssrc)) {
596 srtp_stat_->AddUnprotectRtpResult(ssrc, err); 595 srtp_stat_->AddUnprotectRtpResult(ssrc, err);
597 } 596 }
598 if (err != err_status_ok) { 597 if (err != srtp_err_status_ok) {
599 LOG(LS_WARNING) << "Failed to unprotect SRTP packet, err=" << err; 598 LOG(LS_WARNING) << "Failed to unprotect SRTP packet, err=" << err;
600 return false; 599 return false;
601 } 600 }
602 return true; 601 return true;
603 } 602 }
604 603
605 bool SrtpSession::UnprotectRtcp(void* p, int in_len, int* out_len) { 604 bool SrtpSession::UnprotectRtcp(void* p, int in_len, int* out_len) {
606 RTC_DCHECK(thread_checker_.CalledOnValidThread()); 605 RTC_DCHECK(thread_checker_.CalledOnValidThread());
607 if (!session_) { 606 if (!session_) {
608 LOG(LS_WARNING) << "Failed to unprotect SRTCP packet: no SRTP Session"; 607 LOG(LS_WARNING) << "Failed to unprotect SRTCP packet: no SRTP Session";
609 return false; 608 return false;
610 } 609 }
611 610
612 *out_len = in_len; 611 *out_len = in_len;
613 int err = srtp_unprotect_rtcp(session_, p, out_len); 612 int err = srtp_unprotect_rtcp(session_, p, out_len);
614 srtp_stat_->AddUnprotectRtcpResult(err); 613 srtp_stat_->AddUnprotectRtcpResult(err);
615 if (err != err_status_ok) { 614 if (err != srtp_err_status_ok) {
616 LOG(LS_WARNING) << "Failed to unprotect SRTCP packet, err=" << err; 615 LOG(LS_WARNING) << "Failed to unprotect SRTCP packet, err=" << err;
617 return false; 616 return false;
618 } 617 }
619 return true; 618 return true;
620 } 619 }
621 620
622 bool SrtpSession::GetRtpAuthParams(uint8_t** key, int* key_len, int* tag_len) { 621 bool SrtpSession::GetRtpAuthParams(uint8_t** key, int* key_len, int* tag_len) {
623 #if defined(ENABLE_EXTERNAL_AUTH) 622 #if defined(ENABLE_EXTERNAL_AUTH)
624 RTC_DCHECK(thread_checker_.CalledOnValidThread()); 623 RTC_DCHECK(thread_checker_.CalledOnValidThread());
625 ExternalHmacContext* external_hmac = nullptr; 624 ExternalHmacContext* external_hmac = nullptr;
(...skipping 24 matching lines...) Expand all
650 int64_t* index) { 649 int64_t* index) {
651 RTC_DCHECK(thread_checker_.CalledOnValidThread()); 650 RTC_DCHECK(thread_checker_.CalledOnValidThread());
652 srtp_hdr_t* hdr = reinterpret_cast<srtp_hdr_t*>(p); 651 srtp_hdr_t* hdr = reinterpret_cast<srtp_hdr_t*>(p);
653 srtp_stream_ctx_t* stream = srtp_get_stream(session_, hdr->ssrc); 652 srtp_stream_ctx_t* stream = srtp_get_stream(session_, hdr->ssrc);
654 if (!stream) { 653 if (!stream) {
655 return false; 654 return false;
656 } 655 }
657 656
658 // Shift packet index, put into network byte order 657 // Shift packet index, put into network byte order
659 *index = static_cast<int64_t>( 658 *index = static_cast<int64_t>(
660 rtc::NetworkToHost64(rdbx_get_packet_index(&stream->rtp_rdbx) << 16)); 659 rtc::NetworkToHost64(
660 srtp_rdbx_get_packet_index(&stream->rtp_rdbx) << 16));
661 return true; 661 return true;
662 } 662 }
663 663
664 void SrtpSession::set_signal_silent_time(int signal_silent_time_in_ms) { 664 void SrtpSession::set_signal_silent_time(int signal_silent_time_in_ms) {
665 srtp_stat_->set_signal_silent_time(signal_silent_time_in_ms); 665 srtp_stat_->set_signal_silent_time(signal_silent_time_in_ms);
666 } 666 }
667 667
668 bool SrtpSession::SetKey(int type, int cs, const uint8_t* key, size_t len) { 668 bool SrtpSession::SetKey(int type, int cs, const uint8_t* key, size_t len) {
669 RTC_DCHECK(thread_checker_.CalledOnValidThread()); 669 RTC_DCHECK(thread_checker_.CalledOnValidThread());
670 if (session_) { 670 if (session_) {
671 LOG(LS_ERROR) << "Failed to create SRTP session: " 671 LOG(LS_ERROR) << "Failed to create SRTP session: "
672 << "SRTP session already created"; 672 << "SRTP session already created";
673 return false; 673 return false;
674 } 674 }
675 675
676 if (!Init()) { 676 if (!Init()) {
677 return false; 677 return false;
678 } 678 }
679 679
680 srtp_policy_t policy; 680 srtp_policy_t policy;
681 memset(&policy, 0, sizeof(policy)); 681 memset(&policy, 0, sizeof(policy));
682 if (cs == rtc::SRTP_AES128_CM_SHA1_80) { 682 if (cs == rtc::SRTP_AES128_CM_SHA1_80) {
683 crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtp); 683 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtp);
684 crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp); 684 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp);
685 } else if (cs == rtc::SRTP_AES128_CM_SHA1_32) { 685 } else if (cs == rtc::SRTP_AES128_CM_SHA1_32) {
686 crypto_policy_set_aes_cm_128_hmac_sha1_32(&policy.rtp); // rtp is 32, 686 // RTP HMAC is shortened to 32 bits, but RTCP remains 80 bits.
687 crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp); // rtcp still 80 687 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32(&policy.rtp);
688 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp);
688 #if !defined(ENABLE_EXTERNAL_AUTH) 689 #if !defined(ENABLE_EXTERNAL_AUTH)
689 // TODO(jbauch): Re-enable once https://crbug.com/628400 is resolved. 690 // TODO(jbauch): Re-enable once https://crbug.com/628400 is resolved.
690 } else if (cs == rtc::SRTP_AEAD_AES_128_GCM) { 691 } else if (cs == rtc::SRTP_AEAD_AES_128_GCM) {
691 crypto_policy_set_aes_gcm_128_16_auth(&policy.rtp); 692 srtp_crypto_policy_set_aes_gcm_128_16_auth(&policy.rtp);
692 crypto_policy_set_aes_gcm_128_16_auth(&policy.rtcp); 693 srtp_crypto_policy_set_aes_gcm_128_16_auth(&policy.rtcp);
693 } else if (cs == rtc::SRTP_AEAD_AES_256_GCM) { 694 } else if (cs == rtc::SRTP_AEAD_AES_256_GCM) {
694 crypto_policy_set_aes_gcm_256_16_auth(&policy.rtp); 695 srtp_crypto_policy_set_aes_gcm_256_16_auth(&policy.rtp);
695 crypto_policy_set_aes_gcm_256_16_auth(&policy.rtcp); 696 srtp_crypto_policy_set_aes_gcm_256_16_auth(&policy.rtcp);
696 #endif // ENABLE_EXTERNAL_AUTH 697 #endif // ENABLE_EXTERNAL_AUTH
697 } else { 698 } else {
698 LOG(LS_WARNING) << "Failed to create SRTP session: unsupported" 699 LOG(LS_WARNING) << "Failed to create SRTP session: unsupported"
699 << " cipher_suite " << cs; 700 << " cipher_suite " << cs;
700 return false; 701 return false;
701 } 702 }
702 703
703 int expected_key_len; 704 int expected_key_len;
704 int expected_salt_len; 705 int expected_salt_len;
705 if (!rtc::GetSrtpKeyAndSaltLengths(cs, &expected_key_len, 706 if (!rtc::GetSrtpKeyAndSaltLengths(cs, &expected_key_len,
706 &expected_salt_len)) { 707 &expected_salt_len)) {
707 // This should never happen. 708 // This should never happen.
708 LOG(LS_WARNING) << "Failed to create SRTP session: unsupported" 709 LOG(LS_WARNING) << "Failed to create SRTP session: unsupported"
709 << " cipher_suite without length information" << cs; 710 << " cipher_suite without length information" << cs;
710 return false; 711 return false;
711 } 712 }
712 713
713 if (!key || 714 if (!key ||
714 len != static_cast<size_t>(expected_key_len + expected_salt_len)) { 715 len != static_cast<size_t>(expected_key_len + expected_salt_len)) {
715 LOG(LS_WARNING) << "Failed to create SRTP session: invalid key"; 716 LOG(LS_WARNING) << "Failed to create SRTP session: invalid key";
716 return false; 717 return false;
717 } 718 }
718 719
719 policy.ssrc.type = static_cast<ssrc_type_t>(type); 720 policy.ssrc.type = static_cast<srtp_ssrc_type_t>(type);
720 policy.ssrc.value = 0; 721 policy.ssrc.value = 0;
721 policy.key = const_cast<uint8_t*>(key); 722 policy.key = const_cast<uint8_t*>(key);
722 // TODO(astor) parse window size from WSH session-param 723 // TODO(astor) parse window size from WSH session-param
723 policy.window_size = 1024; 724 policy.window_size = 1024;
724 policy.allow_repeat_tx = 1; 725 policy.allow_repeat_tx = 1;
725 // If external authentication option is enabled, supply custom auth module 726 // If external authentication option is enabled, supply custom auth module
726 // id EXTERNAL_HMAC_SHA1 in the policy structure. 727 // id EXTERNAL_HMAC_SHA1 in the policy structure.
727 // We want to set this option only for rtp packets. 728 // We want to set this option only for rtp packets.
728 // By default policy structure is initialized to HMAC_SHA1. 729 // By default policy structure is initialized to HMAC_SHA1.
729 #if defined(ENABLE_EXTERNAL_AUTH) 730 #if defined(ENABLE_EXTERNAL_AUTH)
730 // Enable external HMAC authentication only for outgoing streams. 731 // Enable external HMAC authentication only for outgoing streams.
731 if (type == ssrc_any_outbound) { 732 if (type == ssrc_any_outbound) {
732 policy.rtp.auth_type = EXTERNAL_HMAC_SHA1; 733 policy.rtp.auth_type = EXTERNAL_HMAC_SHA1;
733 } 734 }
734 #endif 735 #endif
735 policy.next = nullptr; 736 policy.next = nullptr;
736 737
737 int err = srtp_create(&session_, &policy); 738 int err = srtp_create(&session_, &policy);
738 if (err != err_status_ok) { 739 if (err != srtp_err_status_ok) {
739 session_ = nullptr; 740 session_ = nullptr;
740 LOG(LS_ERROR) << "Failed to create SRTP session, err=" << err; 741 LOG(LS_ERROR) << "Failed to create SRTP session, err=" << err;
741 return false; 742 return false;
742 } 743 }
743 744
744 srtp_set_user_data(session_, this); 745 srtp_set_user_data(session_, this);
745 rtp_auth_tag_len_ = policy.rtp.auth_tag_len; 746 rtp_auth_tag_len_ = policy.rtp.auth_tag_len;
746 rtcp_auth_tag_len_ = policy.rtcp.auth_tag_len; 747 rtcp_auth_tag_len_ = policy.rtcp.auth_tag_len;
747 return true; 748 return true;
748 } 749 }
749 750
750 bool SrtpSession::Init() { 751 bool SrtpSession::Init() {
751 rtc::GlobalLockScope ls(&lock_); 752 rtc::GlobalLockScope ls(&lock_);
752 753
753 if (!inited_) { 754 if (!inited_) {
754 int err; 755 int err;
755 err = srtp_init(); 756 err = srtp_init();
756 if (err != err_status_ok) { 757 if (err != srtp_err_status_ok) {
757 LOG(LS_ERROR) << "Failed to init SRTP, err=" << err; 758 LOG(LS_ERROR) << "Failed to init SRTP, err=" << err;
758 return false; 759 return false;
759 } 760 }
760 761
761 err = srtp_install_event_handler(&SrtpSession::HandleEventThunk); 762 err = srtp_install_event_handler(&SrtpSession::HandleEventThunk);
762 if (err != err_status_ok) { 763 if (err != srtp_err_status_ok) {
763 LOG(LS_ERROR) << "Failed to install SRTP event handler, err=" << err; 764 LOG(LS_ERROR) << "Failed to install SRTP event handler, err=" << err;
764 return false; 765 return false;
765 } 766 }
766 #if defined(ENABLE_EXTERNAL_AUTH) 767 #if defined(ENABLE_EXTERNAL_AUTH)
767 err = external_crypto_init(); 768 err = external_crypto_init();
768 if (err != err_status_ok) { 769 if (err != srtp_err_status_ok) {
769 LOG(LS_ERROR) << "Failed to initialize fake auth, err=" << err; 770 LOG(LS_ERROR) << "Failed to initialize fake auth, err=" << err;
770 return false; 771 return false;
771 } 772 }
772 #endif 773 #endif
773 inited_ = true; 774 inited_ = true;
774 } 775 }
775 776
776 return true; 777 return true;
777 } 778 }
778 779
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
870 871
871 SrtpStat::SrtpStat() 872 SrtpStat::SrtpStat()
872 : signal_silent_time_(1000) { 873 : signal_silent_time_(1000) {
873 } 874 }
874 875
875 void SrtpStat::AddProtectRtpResult(uint32_t ssrc, int result) { 876 void SrtpStat::AddProtectRtpResult(uint32_t ssrc, int result) {
876 FailureKey key; 877 FailureKey key;
877 key.ssrc = ssrc; 878 key.ssrc = ssrc;
878 key.mode = SrtpFilter::PROTECT; 879 key.mode = SrtpFilter::PROTECT;
879 switch (result) { 880 switch (result) {
880 case err_status_ok: 881 case srtp_err_status_ok:
881 key.error = SrtpFilter::ERROR_NONE; 882 key.error = SrtpFilter::ERROR_NONE;
882 break; 883 break;
883 case err_status_auth_fail: 884 case srtp_err_status_auth_fail:
884 key.error = SrtpFilter::ERROR_AUTH; 885 key.error = SrtpFilter::ERROR_AUTH;
885 break; 886 break;
886 default: 887 default:
887 key.error = SrtpFilter::ERROR_FAIL; 888 key.error = SrtpFilter::ERROR_FAIL;
888 } 889 }
889 HandleSrtpResult(key); 890 HandleSrtpResult(key);
890 } 891 }
891 892
892 void SrtpStat::AddUnprotectRtpResult(uint32_t ssrc, int result) { 893 void SrtpStat::AddUnprotectRtpResult(uint32_t ssrc, int result) {
893 FailureKey key; 894 FailureKey key;
894 key.ssrc = ssrc; 895 key.ssrc = ssrc;
895 key.mode = SrtpFilter::UNPROTECT; 896 key.mode = SrtpFilter::UNPROTECT;
896 switch (result) { 897 switch (result) {
897 case err_status_ok: 898 case srtp_err_status_ok:
898 key.error = SrtpFilter::ERROR_NONE; 899 key.error = SrtpFilter::ERROR_NONE;
899 break; 900 break;
900 case err_status_auth_fail: 901 case srtp_err_status_auth_fail:
901 key.error = SrtpFilter::ERROR_AUTH; 902 key.error = SrtpFilter::ERROR_AUTH;
902 break; 903 break;
903 case err_status_replay_fail: 904 case srtp_err_status_replay_fail:
904 case err_status_replay_old: 905 case srtp_err_status_replay_old:
905 key.error = SrtpFilter::ERROR_REPLAY; 906 key.error = SrtpFilter::ERROR_REPLAY;
906 break; 907 break;
907 default: 908 default:
908 key.error = SrtpFilter::ERROR_FAIL; 909 key.error = SrtpFilter::ERROR_FAIL;
909 } 910 }
910 HandleSrtpResult(key); 911 HandleSrtpResult(key);
911 } 912 }
912 913
913 void SrtpStat::AddProtectRtcpResult(int result) { 914 void SrtpStat::AddProtectRtcpResult(int result) {
914 AddProtectRtpResult(0U, result); 915 AddProtectRtpResult(0U, result);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 SrtpNotAvailable(__FUNCTION__); 961 SrtpNotAvailable(__FUNCTION__);
961 } 962 }
962 963
963 void SrtpStat::HandleSrtpResult(const SrtpStat::FailureKey& key) { 964 void SrtpStat::HandleSrtpResult(const SrtpStat::FailureKey& key) {
964 SrtpNotAvailable(__FUNCTION__); 965 SrtpNotAvailable(__FUNCTION__);
965 } 966 }
966 967
967 #endif // HAVE_SRTP 968 #endif // HAVE_SRTP
968 969
969 } // namespace cricket 970 } // namespace cricket
OLDNEW
« no previous file with comments | « webrtc/pc/srtpfilter.h ('k') | webrtc/pc/srtpfilter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698