| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2009 Google Inc. | 3 * Copyright 2009 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
| 9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 extern "C" debug_module_t mod_aes_icm; | 66 extern "C" debug_module_t mod_aes_icm; |
| 67 extern "C" debug_module_t mod_aes_hmac; | 67 extern "C" debug_module_t mod_aes_hmac; |
| 68 #endif | 68 #endif |
| 69 #else | 69 #else |
| 70 // SrtpFilter needs that constant. | 70 // SrtpFilter needs that constant. |
| 71 #define SRTP_MASTER_KEY_LEN 30 | 71 #define SRTP_MASTER_KEY_LEN 30 |
| 72 #endif // HAVE_SRTP | 72 #endif // HAVE_SRTP |
| 73 | 73 |
| 74 namespace cricket { | 74 namespace cricket { |
| 75 | 75 |
| 76 const char CS_AES_CM_128_HMAC_SHA1_80[] = "AES_CM_128_HMAC_SHA1_80"; |
| 77 const char CS_AES_CM_128_HMAC_SHA1_32[] = "AES_CM_128_HMAC_SHA1_32"; |
| 76 const int SRTP_MASTER_KEY_BASE64_LEN = SRTP_MASTER_KEY_LEN * 4 / 3; | 78 const int SRTP_MASTER_KEY_BASE64_LEN = SRTP_MASTER_KEY_LEN * 4 / 3; |
| 77 const int SRTP_MASTER_KEY_KEY_LEN = 16; | 79 const int SRTP_MASTER_KEY_KEY_LEN = 16; |
| 78 const int SRTP_MASTER_KEY_SALT_LEN = 14; | 80 const int SRTP_MASTER_KEY_SALT_LEN = 14; |
| 79 | 81 |
| 80 #ifndef HAVE_SRTP | 82 #ifndef HAVE_SRTP |
| 81 | 83 |
| 82 // This helper function is used on systems that don't (yet) have SRTP, | 84 // This helper function is used on systems that don't (yet) have SRTP, |
| 83 // to log that the functions that require it won't do anything. | 85 // to log that the functions that require it won't do anything. |
| 84 namespace { | 86 namespace { |
| 85 bool SrtpNotAvailable(const char *func) { | 87 bool SrtpNotAvailable(const char *func) { |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 654 return false; | 656 return false; |
| 655 } | 657 } |
| 656 | 658 |
| 657 if (!Init()) { | 659 if (!Init()) { |
| 658 return false; | 660 return false; |
| 659 } | 661 } |
| 660 | 662 |
| 661 srtp_policy_t policy; | 663 srtp_policy_t policy; |
| 662 memset(&policy, 0, sizeof(policy)); | 664 memset(&policy, 0, sizeof(policy)); |
| 663 | 665 |
| 664 if (cs == rtc::CS_AES_CM_128_HMAC_SHA1_80) { | 666 if (cs == CS_AES_CM_128_HMAC_SHA1_80) { |
| 665 crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtp); | 667 crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtp); |
| 666 crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp); | 668 crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp); |
| 667 } else if (cs == rtc::CS_AES_CM_128_HMAC_SHA1_32) { | 669 } else if (cs == CS_AES_CM_128_HMAC_SHA1_32) { |
| 668 crypto_policy_set_aes_cm_128_hmac_sha1_32(&policy.rtp); // rtp is 32, | 670 crypto_policy_set_aes_cm_128_hmac_sha1_32(&policy.rtp); // rtp is 32, |
| 669 crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp); // rtcp still 80 | 671 crypto_policy_set_aes_cm_128_hmac_sha1_80(&policy.rtcp); // rtcp still 80 |
| 670 } else { | 672 } else { |
| 671 LOG(LS_WARNING) << "Failed to create SRTP session: unsupported" | 673 LOG(LS_WARNING) << "Failed to create SRTP session: unsupported" |
| 672 << " cipher_suite " << cs.c_str(); | 674 << " cipher_suite " << cs.c_str(); |
| 673 return false; | 675 return false; |
| 674 } | 676 } |
| 675 | 677 |
| 676 if (!key || len != SRTP_MASTER_KEY_LEN) { | 678 if (!key || len != SRTP_MASTER_KEY_LEN) { |
| 677 LOG(LS_WARNING) << "Failed to create SRTP session: invalid key"; | 679 LOG(LS_WARNING) << "Failed to create SRTP session: invalid key"; |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 928 SrtpNotAvailable(__FUNCTION__); | 930 SrtpNotAvailable(__FUNCTION__); |
| 929 } | 931 } |
| 930 | 932 |
| 931 void SrtpStat::HandleSrtpResult(const SrtpStat::FailureKey& key) { | 933 void SrtpStat::HandleSrtpResult(const SrtpStat::FailureKey& key) { |
| 932 SrtpNotAvailable(__FUNCTION__); | 934 SrtpNotAvailable(__FUNCTION__); |
| 933 } | 935 } |
| 934 | 936 |
| 935 #endif // HAVE_SRTP | 937 #endif // HAVE_SRTP |
| 936 | 938 |
| 937 } // namespace cricket | 939 } // namespace cricket |
| OLD | NEW |