Index: webrtc/pc/externalhmac.cc |
diff --git a/webrtc/pc/externalhmac.cc b/webrtc/pc/externalhmac.cc |
index f85e753e7191661dfd3ee734a45fc8cadedcb38b..a094ff84327eb40824afcc327d916e028a6bccd3 100644 |
--- a/webrtc/pc/externalhmac.cc |
+++ b/webrtc/pc/externalhmac.cc |
@@ -26,6 +26,18 @@ extern "C" { |
#include "webrtc/base/logging.h" |
+#ifdef COMPILING_AGAINST_LIBSRTP1 |
+#define srtp_auth_type_t auth_type_t |
+ |
+#define srtp_auth_init_func auth_init_func |
+#define srtp_auth_compute_func auth_compute_func |
+#define srtp_auth_update_func auth_update_func |
+#define srtp_auth_start_func auth_start_func |
+#define srtp_auth_test_case_t auth_test_case_t |
+ |
+#define srtp_replace_auth_type crypto_kernel_replace_auth_type |
+#endif // COMPILING_AGAINST_LIBSRTP1 |
+ |
#if defined(HAVE_SRTP) && defined(ENABLE_EXTERNAL_AUTH) |
// Begin test case 0 */ |
@@ -43,7 +55,7 @@ static const uint8_t kExternalHmacFakeTag[10] = { |
0xba, 0xdd, 0xba, 0xdd, 0xba, 0xdd, 0xba, 0xdd, 0xba, 0xdd |
}; |
-static const auth_test_case_t kExternalHmacTestCase0 = { |
+static const srtp_auth_test_case_t kExternalHmacTestCase0 = { |
20, // Octets in key |
const_cast<uint8_t*>(kExternalHmacTestCase0Key), // Key |
8, // Octets in data |
@@ -57,106 +69,121 @@ static const auth_test_case_t kExternalHmacTestCase0 = { |
static const char kExternalHmacDescription[] = |
"external hmac sha-1 authentication"; |
-// auth_type_t external_hmac is the hmac metaobject |
+// srtp_auth_type_t external_hmac is the hmac metaobject |
-static const auth_type_t external_hmac = { |
+#ifdef COMPILING_AGAINST_LIBSRTP1 |
+static const srtp_auth_type_t external_hmac = { |
external_hmac_alloc, |
external_hmac_dealloc, |
- (auth_init_func) external_hmac_init, |
- (auth_compute_func) external_hmac_compute, |
- (auth_update_func) external_hmac_update, |
- (auth_start_func) external_hmac_start, |
+ (srtp_auth_init_func) external_hmac_init, |
+ (srtp_auth_compute_func) external_hmac_compute, |
+ (srtp_auth_update_func) external_hmac_update, |
+ (srtp_auth_start_func) external_hmac_start, |
const_cast<char*>(kExternalHmacDescription), |
0, // Instance count. |
- const_cast<auth_test_case_t*>(&kExternalHmacTestCase0), |
+ const_cast<srtp_auth_test_case_t*>(&kExternalHmacTestCase0), |
NULL, // No debugging module. |
EXTERNAL_HMAC_SHA1 |
}; |
+#else |
+static const srtp_auth_type_t external_hmac = { |
+ external_hmac_alloc, |
+ external_hmac_dealloc, |
+ (srtp_auth_init_func) external_hmac_init, |
+ (srtp_auth_compute_func) external_hmac_compute, |
+ (srtp_auth_update_func) external_hmac_update, |
+ (srtp_auth_start_func) external_hmac_start, |
+ const_cast<char*>(kExternalHmacDescription), |
+ const_cast<srtp_auth_test_case_t*>(&kExternalHmacTestCase0), |
+ EXTERNAL_HMAC_SHA1 |
+}; |
+#endif // COMPILING_AGAINST_LIBSRTP1 |
- |
-err_status_t external_hmac_alloc(auth_t** a, int key_len, int out_len) { |
+srtp_err_status_t external_hmac_alloc(srtp_auth_t** a, |
+ int key_len, |
+ int out_len) { |
uint8_t* pointer; |
// Check key length - note that we don't support keys larger |
// than 20 bytes yet |
if (key_len > 20) |
- return err_status_bad_param; |
+ return srtp_err_status_bad_param; |
// Check output length - should be less than 20 bytes/ |
if (out_len > 20) |
- return err_status_bad_param; |
+ return srtp_err_status_bad_param; |
// Allocate memory for auth and hmac_ctx_t structures. |
- pointer = new uint8_t[(sizeof(ExternalHmacContext) + sizeof(auth_t))]; |
+ pointer = new uint8_t[(sizeof(ExternalHmacContext) + sizeof(srtp_auth_t))]; |
if (pointer == NULL) |
- return err_status_alloc_fail; |
+ return srtp_err_status_alloc_fail; |
// Set pointers |
- *a = (auth_t *)pointer; |
+ *a = (srtp_auth_t *)pointer; |
// |external_hmac| is const and libsrtp expects |type| to be non-const. |
// const conversion is required. |external_hmac| is constant because we don't |
// want to increase global count in Chrome. |
- (*a)->type = const_cast<auth_type_t*>(&external_hmac); |
- (*a)->state = pointer + sizeof(auth_t); |
+ (*a)->type = const_cast<srtp_auth_type_t*>(&external_hmac); |
+ (*a)->state = pointer + sizeof(srtp_auth_t); |
(*a)->out_len = out_len; |
(*a)->key_len = key_len; |
(*a)->prefix_len = 0; |
- return err_status_ok; |
+ return srtp_err_status_ok; |
} |
-err_status_t external_hmac_dealloc(auth_t* a) { |
+srtp_err_status_t external_hmac_dealloc(srtp_auth_t* a) { |
// Zeroize entire state |
- memset((uint8_t *)a, 0, sizeof(ExternalHmacContext) + sizeof(auth_t)); |
+ memset((uint8_t *)a, 0, sizeof(ExternalHmacContext) + sizeof(srtp_auth_t)); |
// Free memory |
delete[] a; |
- return err_status_ok; |
+ return srtp_err_status_ok; |
} |
-err_status_t external_hmac_init(ExternalHmacContext* state, |
- const uint8_t* key, |
- int key_len) { |
+srtp_err_status_t external_hmac_init(ExternalHmacContext* state, |
+ const uint8_t* key, |
+ int key_len) { |
if (key_len > HMAC_KEY_LENGTH) |
- return err_status_bad_param; |
+ return srtp_err_status_bad_param; |
memset(state->key, 0, key_len); |
memcpy(state->key, key, key_len); |
state->key_length = key_len; |
- return err_status_ok; |
+ return srtp_err_status_ok; |
} |
-err_status_t external_hmac_start(ExternalHmacContext* state) { |
- return err_status_ok; |
+srtp_err_status_t external_hmac_start(ExternalHmacContext* state) { |
+ return srtp_err_status_ok; |
} |
-err_status_t external_hmac_update(ExternalHmacContext* state, |
- const uint8_t* message, |
- int msg_octets) { |
- return err_status_ok; |
+srtp_err_status_t external_hmac_update(ExternalHmacContext* state, |
+ const uint8_t* message, |
+ int msg_octets) { |
+ return srtp_err_status_ok; |
} |
-err_status_t external_hmac_compute(ExternalHmacContext* state, |
- const void* message, |
- int msg_octets, |
- int tag_len, |
- uint8_t* result) { |
+srtp_err_status_t external_hmac_compute(ExternalHmacContext* state, |
+ const void* message, |
+ int msg_octets, |
+ int tag_len, |
+ uint8_t* result) { |
memcpy(result, kExternalHmacFakeTag, tag_len); |
- return err_status_ok; |
+ return srtp_err_status_ok; |
} |
-err_status_t external_crypto_init() { |
+srtp_err_status_t external_crypto_init() { |
// |external_hmac| is const. const_cast is required as libsrtp expects |
// non-const. |
- err_status_t status = crypto_kernel_replace_auth_type( |
- const_cast<auth_type_t*>(&external_hmac), EXTERNAL_HMAC_SHA1); |
+ srtp_err_status_t status = srtp_replace_auth_type( |
+ const_cast<srtp_auth_type_t*>(&external_hmac), EXTERNAL_HMAC_SHA1); |
if (status) { |
LOG(LS_ERROR) << "Error in replacing default auth module, error: " |
<< status; |
- return err_status_fail; |
+ return srtp_err_status_fail; |
} |
- return err_status_ok; |
+ return srtp_err_status_ok; |
} |
#endif // defined(HAVE_SRTP) && defined(ENABLE_EXTERNAL_AUTH) |