From ed5f982312a9241b126f4db179b469271c993427 Mon Sep 17 00:00:00 2001 From: Tristan Le Guern Date: Fri, 25 Sep 2015 22:12:52 +0200 Subject: [PATCH] Don't lie about array parameters Passing an array as a parameter to a function in C doesn't work, they decay into pointer. Defining them is pointless and error prone, so just declare a pointer. --- src/scram.c | 18 +++++++++--------- src/scram.h | 12 ++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/scram.c b/src/scram.c index 5cce168..00c5f12 100644 --- a/src/scram.c +++ b/src/scram.c @@ -34,7 +34,7 @@ static const uint8_t ipad = 0x36; static const uint8_t opad = 0x5C; static void SHA1(const uint8_t* data, size_t len, - uint8_t digest[SHA1_DIGEST_SIZE]) + uint8_t * digest) { SHA1_CTX ctx; SHA1_Init(&ctx); @@ -44,7 +44,7 @@ static void SHA1(const uint8_t* data, size_t len, static void HMAC_SHA1(const uint8_t *key, size_t key_len, const uint8_t *text, size_t len, - uint8_t digest[SHA1_DIGEST_SIZE]) + uint8_t *digest) { uint8_t key_pad[BLOCK_SIZE]; uint8_t key_ipad[BLOCK_SIZE]; @@ -79,7 +79,7 @@ static void HMAC_SHA1(const uint8_t *key, size_t key_len, static void SCRAM_SHA1_Hi(const uint8_t *text, size_t len, const uint8_t *salt, size_t salt_len, uint32_t i, - uint8_t digest[SHA1_DIGEST_SIZE]) + uint8_t *digest) { int j, k; uint8_t tmp[128]; @@ -111,7 +111,7 @@ static void SCRAM_SHA1_Hi(const uint8_t *text, size_t len, void SCRAM_SHA1_ClientKey(const uint8_t *password, size_t len, const uint8_t *salt, size_t salt_len, uint32_t i, - uint8_t key[SHA1_DIGEST_SIZE]) + uint8_t *key) { uint8_t salted[SHA1_DIGEST_SIZE]; @@ -122,9 +122,9 @@ void SCRAM_SHA1_ClientKey(const uint8_t *password, size_t len, strlen("Client Key"), key); } -void SCRAM_SHA1_ClientSignature(const uint8_t ClientKey[SHA1_DIGEST_SIZE], +void SCRAM_SHA1_ClientSignature(const uint8_t *ClientKey, const uint8_t *AuthMessage, size_t len, - uint8_t sign[SHA1_DIGEST_SIZE]) + uint8_t *sign) { uint8_t stored[SHA1_DIGEST_SIZE]; @@ -132,9 +132,9 @@ void SCRAM_SHA1_ClientSignature(const uint8_t ClientKey[SHA1_DIGEST_SIZE], HMAC_SHA1(stored, SHA1_DIGEST_SIZE, AuthMessage, len, sign); } -void SCRAM_SHA1_ClientProof(const uint8_t ClientKey[SHA1_DIGEST_SIZE], - const uint8_t ClientSignature[SHA1_DIGEST_SIZE], - uint8_t proof[SHA1_DIGEST_SIZE]) +void SCRAM_SHA1_ClientProof(const uint8_t *ClientKey, + const uint8_t *ClientSignature, + uint8_t *proof) { int i; for (i = 0; i < SHA1_DIGEST_SIZE; i++) { diff --git a/src/scram.h b/src/scram.h index a0b996b..e6b8cc8 100644 --- a/src/scram.h +++ b/src/scram.h @@ -23,14 +23,14 @@ void SCRAM_SHA1_ClientKey(const uint8_t *password, size_t len, const uint8_t *salt, size_t salt_len, uint32_t i, - uint8_t key[SHA1_DIGEST_SIZE]); + uint8_t *key); -void SCRAM_SHA1_ClientSignature(const uint8_t ClientKey[SHA1_DIGEST_SIZE], +void SCRAM_SHA1_ClientSignature(const uint8_t *ClientKey, const uint8_t *AuthMessage, size_t len, - uint8_t sign[SHA1_DIGEST_SIZE]); + uint8_t *sign); -void SCRAM_SHA1_ClientProof(const uint8_t ClientKey[SHA1_DIGEST_SIZE], - const uint8_t ClientSignature[SHA1_DIGEST_SIZE], - uint8_t proof[SHA1_DIGEST_SIZE]); +void SCRAM_SHA1_ClientProof(const uint8_t *ClientKey, + const uint8_t *ClientSignature, + uint8_t *proof); #endif /* __LIBSTROPHE_SCRAM_H__ */