| From f76eb65d008d0c8e06698e4a63a776e91b80155b Mon Sep 17 00:00:00 2001 |
| From: jfigus <foleyj@cisco.com> |
| Date: Tue, 4 Nov 2014 14:54:02 -0500 |
| Subject: [PATCH] Rename SHA1 functions to avoid conflicts with downstream |
| packages. |
| |
| Backported from upstream commit c270245a94ae9a007202754eb8f7ce9e48f97007 |
| and tweaked to apply on top of v1.5.4. |
| |
| Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> |
| --- |
| crypto/hash/hmac.c | 20 ++++++++++---------- |
| crypto/hash/hmac_ossl.c | 18 +++++++++--------- |
| crypto/hash/sha1.c | 32 ++++++++++++++++---------------- |
| crypto/include/hmac.h | 4 ++-- |
| crypto/include/sha1.h | 34 +++++++++++++++++----------------- |
| crypto/test/sha1_driver.c | 8 ++++---- |
| 6 files changed, 58 insertions(+), 58 deletions(-) |
| |
| diff --git a/crypto/hash/hmac.c b/crypto/hash/hmac.c |
| index ddb75ea..4bed61e 100644 |
| --- a/crypto/hash/hmac.c |
| +++ b/crypto/hash/hmac.c |
| @@ -141,11 +141,11 @@ hmac_init(hmac_ctx_t *state, const uint8_t *key, int key_len) { |
| debug_print(mod_hmac, "ipad: %s", octet_string_hex_string(ipad, 64)); |
| |
| /* initialize sha1 context */ |
| - sha1_init(&state->init_ctx); |
| + srtp_sha1_init(&state->init_ctx); |
| |
| /* hash ipad ^ key */ |
| - sha1_update(&state->init_ctx, ipad, 64); |
| - memcpy(&state->ctx, &state->init_ctx, sizeof(sha1_ctx_t)); |
| + srtp_sha1_update(&state->init_ctx, ipad, 64); |
| + memcpy(&state->ctx, &state->init_ctx, sizeof(srtp_sha1_ctx_t)); |
| |
| return err_status_ok; |
| } |
| @@ -153,7 +153,7 @@ hmac_init(hmac_ctx_t *state, const uint8_t *key, int key_len) { |
| err_status_t |
| hmac_start(hmac_ctx_t *state) { |
| |
| - memcpy(&state->ctx, &state->init_ctx, sizeof(sha1_ctx_t)); |
| + memcpy(&state->ctx, &state->init_ctx, sizeof(srtp_sha1_ctx_t)); |
| |
| return err_status_ok; |
| } |
| @@ -165,7 +165,7 @@ hmac_update(hmac_ctx_t *state, const uint8_t *message, int msg_octets) { |
| octet_string_hex_string(message, msg_octets)); |
| |
| /* hash message into sha1 context */ |
| - sha1_update(&state->ctx, message, msg_octets); |
| + srtp_sha1_update(&state->ctx, message, msg_octets); |
| |
| return err_status_ok; |
| } |
| @@ -183,7 +183,7 @@ hmac_compute(hmac_ctx_t *state, const void *message, |
| |
| /* hash message, copy output into H */ |
| hmac_update(state, (const uint8_t*)message, msg_octets); |
| - sha1_final(&state->ctx, H); |
| + srtp_sha1_final(&state->ctx, H); |
| |
| /* |
| * note that we don't need to debug_print() the input, since the |
| @@ -193,16 +193,16 @@ hmac_compute(hmac_ctx_t *state, const void *message, |
| octet_string_hex_string((uint8_t *)H, 20)); |
| |
| /* re-initialize hash context */ |
| - sha1_init(&state->ctx); |
| + srtp_sha1_init(&state->ctx); |
| |
| /* hash opad ^ key */ |
| - sha1_update(&state->ctx, (uint8_t *)state->opad, 64); |
| + srtp_sha1_update(&state->ctx, (uint8_t *)state->opad, 64); |
| |
| /* hash the result of the inner hash */ |
| - sha1_update(&state->ctx, (uint8_t *)H, 20); |
| + srtp_sha1_update(&state->ctx, (uint8_t *)H, 20); |
| |
| /* the result is returned in the array hash_value[] */ |
| - sha1_final(&state->ctx, hash_value); |
| + srtp_sha1_final(&state->ctx, hash_value); |
| |
| /* copy hash_value to *result */ |
| for (i=0; i < tag_len; i++) |
| diff --git a/crypto/hash/hmac_ossl.c b/crypto/hash/hmac_ossl.c |
| index f62ce57..2ec8350 100644 |
| --- a/crypto/hash/hmac_ossl.c |
| +++ b/crypto/hash/hmac_ossl.c |
| @@ -163,11 +163,11 @@ hmac_init (hmac_ctx_t *state, const uint8_t *key, int key_len) |
| debug_print(mod_hmac, "ipad: %s", octet_string_hex_string(ipad, sizeof(ipad))); |
| |
| /* initialize sha1 context */ |
| - sha1_init(&state->init_ctx); |
| + srtp_sha1_init(&state->init_ctx); |
| state->init_ctx_initialized = 1; |
| |
| /* hash ipad ^ key */ |
| - sha1_update(&state->init_ctx, ipad, sizeof(ipad)); |
| + srtp_sha1_update(&state->init_ctx, ipad, sizeof(ipad)); |
| return (hmac_start(state)); |
| } |
| |
| @@ -192,7 +192,7 @@ hmac_update (hmac_ctx_t *state, const uint8_t *message, int msg_octets) |
| octet_string_hex_string(message, msg_octets)); |
| |
| /* hash message into sha1 context */ |
| - sha1_update(&state->ctx, message, msg_octets); |
| + srtp_sha1_update(&state->ctx, message, msg_octets); |
| |
| return err_status_ok; |
| } |
| @@ -211,8 +211,8 @@ hmac_compute (hmac_ctx_t *state, const void *message, |
| } |
| |
| /* hash message, copy output into H */ |
| - sha1_update(&state->ctx, message, msg_octets); |
| - sha1_final(&state->ctx, H); |
| + srtp_sha1_update(&state->ctx, message, msg_octets); |
| + srtp_sha1_final(&state->ctx, H); |
| |
| /* |
| * note that we don't need to debug_print() the input, since the |
| @@ -222,16 +222,16 @@ hmac_compute (hmac_ctx_t *state, const void *message, |
| octet_string_hex_string((uint8_t*)H, sizeof(H))); |
| |
| /* re-initialize hash context */ |
| - sha1_init(&state->ctx); |
| + srtp_sha1_init(&state->ctx); |
| |
| /* hash opad ^ key */ |
| - sha1_update(&state->ctx, (uint8_t*)state->opad, sizeof(state->opad)); |
| + srtp_sha1_update(&state->ctx, (uint8_t*)state->opad, sizeof(state->opad)); |
| |
| /* hash the result of the inner hash */ |
| - sha1_update(&state->ctx, (uint8_t*)H, sizeof(H)); |
| + srtp_sha1_update(&state->ctx, (uint8_t*)H, sizeof(H)); |
| |
| /* the result is returned in the array hash_value[] */ |
| - sha1_final(&state->ctx, hash_value); |
| + srtp_sha1_final(&state->ctx, hash_value); |
| |
| /* copy hash_value to *result */ |
| for (i = 0; i < tag_len; i++) { |
| diff --git a/crypto/hash/sha1.c b/crypto/hash/sha1.c |
| index c200437..29c2e62 100644 |
| --- a/crypto/hash/sha1.c |
| +++ b/crypto/hash/sha1.c |
| @@ -77,17 +77,17 @@ uint32_t SHA_K2 = 0x8F1BBCDC; /* Kt for 40 <= t <= 59 */ |
| uint32_t SHA_K3 = 0xCA62C1D6; /* Kt for 60 <= t <= 79 */ |
| |
| void |
| -sha1(const uint8_t *msg, int octets_in_msg, uint32_t hash_value[5]) { |
| - sha1_ctx_t ctx; |
| +srtp_sha1(const uint8_t *msg, int octets_in_msg, uint32_t hash_value[5]) { |
| + srtp_sha1_ctx_t ctx; |
| |
| - sha1_init(&ctx); |
| - sha1_update(&ctx, msg, octets_in_msg); |
| - sha1_final(&ctx, hash_value); |
| + srtp_sha1_init(&ctx); |
| + srtp_sha1_update(&ctx, msg, octets_in_msg); |
| + srtp_sha1_final(&ctx, hash_value); |
| |
| } |
| |
| /* |
| - * sha1_core(M, H) computes the core compression function, where M is |
| + * srtp_sha1_core(M, H) computes the core compression function, where M is |
| * the next part of the message (in network byte order) and H is the |
| * intermediate state { H0, H1, ...} (in host byte order) |
| * |
| @@ -99,7 +99,7 @@ sha1(const uint8_t *msg, int octets_in_msg, uint32_t hash_value[5]) { |
| */ |
| |
| void |
| -sha1_core(const uint32_t M[16], uint32_t hash_value[5]) { |
| +srtp_sha1_core(const uint32_t M[16], uint32_t hash_value[5]) { |
| uint32_t H0; |
| uint32_t H1; |
| uint32_t H2; |
| @@ -186,7 +186,7 @@ sha1_core(const uint32_t M[16], uint32_t hash_value[5]) { |
| } |
| |
| void |
| -sha1_init(sha1_ctx_t *ctx) { |
| +srtp_sha1_init(srtp_sha1_ctx_t *ctx) { |
| |
| /* initialize state vector */ |
| ctx->H[0] = 0x67452301; |
| @@ -204,7 +204,7 @@ sha1_init(sha1_ctx_t *ctx) { |
| } |
| |
| void |
| -sha1_update(sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) { |
| +srtp_sha1_update(srtp_sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) { |
| int i; |
| uint8_t *buf = (uint8_t *)ctx->M; |
| |
| @@ -227,13 +227,13 @@ sha1_update(sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) { |
| |
| /* process a whole block */ |
| |
| - debug_print(mod_sha1, "(update) running sha1_core()", NULL); |
| + debug_print(mod_sha1, "(update) running srtp_sha1_core()", NULL); |
| |
| - sha1_core(ctx->M, ctx->H); |
| + srtp_sha1_core(ctx->M, ctx->H); |
| |
| } else { |
| |
| - debug_print(mod_sha1, "(update) not running sha1_core()", NULL); |
| + debug_print(mod_sha1, "(update) not running srtp_sha1_core()", NULL); |
| |
| for (i=ctx->octets_in_buffer; |
| i < (ctx->octets_in_buffer + octets_in_msg); i++) |
| @@ -247,12 +247,12 @@ sha1_update(sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) { |
| } |
| |
| /* |
| - * sha1_final(ctx, output) computes the result for ctx and copies it |
| + * srtp_sha1_final(ctx, output) computes the result for ctx and copies it |
| * into the twenty octets located at *output |
| */ |
| |
| void |
| -sha1_final(sha1_ctx_t *ctx, uint32_t *output) { |
| +srtp_sha1_final(srtp_sha1_ctx_t *ctx, uint32_t *output) { |
| uint32_t A, B, C, D, E, TEMP; |
| uint32_t W[80]; |
| int i, t; |
| @@ -339,11 +339,11 @@ sha1_final(sha1_ctx_t *ctx, uint32_t *output) { |
| |
| } |
| |
| - debug_print(mod_sha1, "(final) running sha1_core()", NULL); |
| + debug_print(mod_sha1, "(final) running srtp_sha1_core()", NULL); |
| |
| if (ctx->octets_in_buffer >= 56) { |
| |
| - debug_print(mod_sha1, "(final) running sha1_core() again", NULL); |
| + debug_print(mod_sha1, "(final) running srtp_sha1_core() again", NULL); |
| |
| /* we need to do one final run of the compression algo */ |
| |
| diff --git a/crypto/include/hmac.h b/crypto/include/hmac.h |
| index 875f45c..9fc664e 100644 |
| --- a/crypto/include/hmac.h |
| +++ b/crypto/include/hmac.h |
| @@ -51,8 +51,8 @@ |
| |
| typedef struct { |
| uint8_t opad[64]; |
| - sha1_ctx_t ctx; |
| - sha1_ctx_t init_ctx; |
| + srtp_sha1_ctx_t ctx; |
| + srtp_sha1_ctx_t init_ctx; |
| #ifdef OPENSSL |
| int ctx_initialized; |
| int init_ctx_initialized; |
| diff --git a/crypto/include/sha1.h b/crypto/include/sha1.h |
| index f1744ce..e177af6 100644 |
| --- a/crypto/include/sha1.h |
| +++ b/crypto/include/sha1.h |
| @@ -56,15 +56,15 @@ |
| #include <openssl/evp.h> |
| #include <stdint.h> |
| |
| -typedef EVP_MD_CTX sha1_ctx_t; |
| +typedef EVP_MD_CTX srtp_sha1_ctx_t; |
| |
| /* |
| - * sha1_init(&ctx) initializes the SHA1 context ctx |
| + * srtp_sha1_init(&ctx) initializes the SHA1 context ctx |
| * |
| - * sha1_update(&ctx, msg, len) hashes the len octets starting at msg |
| + * srtp_sha1_update(&ctx, msg, len) hashes the len octets starting at msg |
| * into the SHA1 context |
| * |
| - * sha1_final(&ctx, output) performs the final processing of the SHA1 |
| + * srtp_sha1_final(&ctx, output) performs the final processing of the SHA1 |
| * context and writes the result to the 20 octets at output |
| * |
| * Return values are ignored on the EVP functions since all three |
| @@ -72,18 +72,18 @@ typedef EVP_MD_CTX sha1_ctx_t; |
| * |
| */ |
| |
| -static inline void sha1_init (sha1_ctx_t *ctx) |
| +static inline void srtp_sha1_init (srtp_sha1_ctx_t *ctx) |
| { |
| EVP_MD_CTX_init(ctx); |
| EVP_DigestInit(ctx, EVP_sha1()); |
| } |
| |
| -static inline void sha1_update (sha1_ctx_t *ctx, const uint8_t *M, int octets_in_msg) |
| +static inline void srtp_sha1_update (srtp_sha1_ctx_t *ctx, const uint8_t *M, int octets_in_msg) |
| { |
| EVP_DigestUpdate(ctx, M, octets_in_msg); |
| } |
| |
| -static inline void sha1_final (sha1_ctx_t *ctx, uint32_t *output) |
| +static inline void srtp_sha1_final (srtp_sha1_ctx_t *ctx, uint32_t *output) |
| { |
| unsigned int len = 0; |
| |
| @@ -97,7 +97,7 @@ typedef struct { |
| uint32_t M[16]; /* message buffer */ |
| int octets_in_buffer; /* octets of message in buffer */ |
| uint32_t num_bits_in_msg; /* total number of bits in message */ |
| -} sha1_ctx_t; |
| +} srtp_sha1_ctx_t; |
| |
| /* |
| * sha1(&ctx, msg, len, output) hashes the len octets starting at msg |
| @@ -110,33 +110,33 @@ void |
| sha1(const uint8_t *message, int octets_in_msg, uint32_t output[5]); |
| |
| /* |
| - * sha1_init(&ctx) initializes the SHA1 context ctx |
| + * srtp_sha1_init(&ctx) initializes the SHA1 context ctx |
| * |
| - * sha1_update(&ctx, msg, len) hashes the len octets starting at msg |
| + * srtp_sha1_update(&ctx, msg, len) hashes the len octets starting at msg |
| * into the SHA1 context |
| * |
| - * sha1_final(&ctx, output) performs the final processing of the SHA1 |
| + * srtp_sha1_final(&ctx, output) performs the final processing of the SHA1 |
| * context and writes the result to the 20 octets at output |
| * |
| */ |
| |
| void |
| -sha1_init(sha1_ctx_t *ctx); |
| +srtp_sha1_init(srtp_sha1_ctx_t *ctx); |
| |
| void |
| -sha1_update(sha1_ctx_t *ctx, const uint8_t *M, int octets_in_msg); |
| +srtp_sha1_update(srtp_sha1_ctx_t *ctx, const uint8_t *M, int octets_in_msg); |
| |
| void |
| -sha1_final(sha1_ctx_t *ctx, uint32_t output[5]); |
| +srtp_sha1_final(srtp_sha1_ctx_t *ctx, uint32_t output[5]); |
| |
| /* |
| - * The sha1_core function is INTERNAL to SHA-1, but it is declared |
| + * The srtp_sha1_core function is INTERNAL to SHA-1, but it is declared |
| * here because it is also used by the cipher SEAL 3.0 in its key |
| * setup algorithm. |
| */ |
| |
| /* |
| - * sha1_core(M, H) computes the core sha1 compression function, where M is |
| + * srtp_sha1_core(M, H) computes the core sha1 compression function, where M is |
| * the next part of the message and H is the intermediate state {H0, |
| * H1, ...} |
| * |
| @@ -145,7 +145,7 @@ sha1_final(sha1_ctx_t *ctx, uint32_t output[5]); |
| */ |
| |
| void |
| -sha1_core(const uint32_t M[16], uint32_t hash_value[5]); |
| +srtp_sha1_core(const uint32_t M[16], uint32_t hash_value[5]); |
| |
| #endif /* else OPENSSL */ |
| |
| diff --git a/crypto/test/sha1_driver.c b/crypto/test/sha1_driver.c |
| index 6adfad1..2e19479 100644 |
| --- a/crypto/test/sha1_driver.c |
| +++ b/crypto/test/sha1_driver.c |
| @@ -102,7 +102,7 @@ hash_test_case_add(hash_test_case_t **list_ptr, |
| |
| err_status_t |
| sha1_test_case_validate(const hash_test_case_t *test_case) { |
| - sha1_ctx_t ctx; |
| + srtp_sha1_ctx_t ctx; |
| uint32_t hash_value[5]; |
| |
| if (test_case == NULL) |
| @@ -113,9 +113,9 @@ sha1_test_case_validate(const hash_test_case_t *test_case) { |
| if (test_case->data_len > MAX_HASH_DATA_LEN) |
| return err_status_bad_param; |
| |
| - sha1_init(&ctx); |
| - sha1_update(&ctx, test_case->data, test_case->data_len); |
| - sha1_final(&ctx, hash_value); |
| + srtp_sha1_init(&ctx); |
| + srtp_sha1_update(&ctx, test_case->data, test_case->data_len); |
| + srtp_sha1_final(&ctx, hash_value); |
| if (0 == memcmp(test_case->hash, hash_value, 20)) { |
| #if VERBOSE |
| printf("PASSED: reference value: %s\n", |
| -- |
| 2.7.3 |
| |