Commit 8c14eebb authored by cutealien's avatar cutealien

Move defines out of header or add prefixes to avoid accidental name collisions.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@4181 dfc29bdd-3216-0410-991c-e03cc46cb475
parent e33c2c5a
...@@ -37,6 +37,9 @@ ...@@ -37,6 +37,9 @@
#include "hmac.h" #include "hmac.h"
#define HMAC_IPAD (0x36 * (((unsigned long)-1) / 0xff))
#define HMAC_OPAD (0x5c * (((unsigned long)-1) / 0xff))
/* initialise the HMAC context to zero */ /* initialise the HMAC context to zero */
void hmac_sha_begin(hmac_ctx cx[1]) void hmac_sha_begin(hmac_ctx cx[1])
{ {
...@@ -49,9 +52,9 @@ int hmac_sha_key(const unsigned char key[], unsigned long key_len, hmac_ctx cx[1 ...@@ -49,9 +52,9 @@ int hmac_sha_key(const unsigned char key[], unsigned long key_len, hmac_ctx cx[1
if(cx->klen == HMAC_IN_DATA) /* error if further key input */ if(cx->klen == HMAC_IN_DATA) /* error if further key input */
return HMAC_BAD_MODE; /* is attempted in data mode */ return HMAC_BAD_MODE; /* is attempted in data mode */
if(cx->klen + key_len > HASH_INPUT_SIZE) /* if the key has to be hashed */ if(cx->klen + key_len > HMAC_HASH_INPUT_SIZE) /* if the key has to be hashed */
{ {
if(cx->klen <= HASH_INPUT_SIZE) /* if the hash has not yet been */ if(cx->klen <= HMAC_HASH_INPUT_SIZE) /* if the hash has not yet been */
{ /* started, initialise it and */ { /* started, initialise it and */
sha_begin(cx->ctx); /* hash stored key characters */ sha_begin(cx->ctx); /* hash stored key characters */
sha_hash(cx->key, cx->klen, cx->ctx); sha_hash(cx->key, cx->klen, cx->ctx);
...@@ -73,22 +76,22 @@ void hmac_sha_data(const unsigned char data[], unsigned long data_len, hmac_ctx ...@@ -73,22 +76,22 @@ void hmac_sha_data(const unsigned char data[], unsigned long data_len, hmac_ctx
if(cx->klen != HMAC_IN_DATA) /* if not yet in data phase */ if(cx->klen != HMAC_IN_DATA) /* if not yet in data phase */
{ {
if(cx->klen > HASH_INPUT_SIZE) /* if key is being hashed */ if(cx->klen > HMAC_HASH_INPUT_SIZE) /* if key is being hashed */
{ /* complete the hash and */ { /* complete the hash and */
sha_end(cx->key, cx->ctx); /* store the result as the */ sha_end(cx->key, cx->ctx); /* store the result as the */
cx->klen = HASH_OUTPUT_SIZE; /* key and set new length */ cx->klen = HMAC_HASH_OUTPUT_SIZE; /* key and set new length */
} }
/* pad the key if necessary */ /* pad the key if necessary */
memset(cx->key + cx->klen, 0, HASH_INPUT_SIZE - cx->klen); memset(cx->key + cx->klen, 0, HMAC_HASH_INPUT_SIZE - cx->klen);
/* xor ipad into key value */ /* xor ipad into key value */
for(i = 0; i < HASH_INPUT_SIZE / sizeof(unsigned long); ++i) for(i = 0; i < HMAC_HASH_INPUT_SIZE / sizeof(unsigned long); ++i)
((unsigned long*)cx->key)[i] ^= IPAD; ((unsigned long*)cx->key)[i] ^= HMAC_IPAD;
/* and start hash operation */ /* and start hash operation */
sha_begin(cx->ctx); sha_begin(cx->ctx);
sha_hash(cx->key, HASH_INPUT_SIZE, cx->ctx); sha_hash(cx->key, HMAC_HASH_INPUT_SIZE, cx->ctx);
/* mark as now in data mode */ /* mark as now in data mode */
cx->klen = HMAC_IN_DATA; cx->klen = HMAC_IN_DATA;
...@@ -101,7 +104,7 @@ void hmac_sha_data(const unsigned char data[], unsigned long data_len, hmac_ctx ...@@ -101,7 +104,7 @@ void hmac_sha_data(const unsigned char data[], unsigned long data_len, hmac_ctx
/* compute and output the MAC value */ /* compute and output the MAC value */
void hmac_sha_end(unsigned char mac[], unsigned long mac_len, hmac_ctx cx[1]) void hmac_sha_end(unsigned char mac[], unsigned long mac_len, hmac_ctx cx[1])
{ unsigned char dig[HASH_OUTPUT_SIZE]; { unsigned char dig[HMAC_HASH_OUTPUT_SIZE];
unsigned int i; unsigned int i;
/* if no data has been entered perform a null data phase */ /* if no data has been entered perform a null data phase */
...@@ -111,13 +114,13 @@ void hmac_sha_end(unsigned char mac[], unsigned long mac_len, hmac_ctx cx[1]) ...@@ -111,13 +114,13 @@ void hmac_sha_end(unsigned char mac[], unsigned long mac_len, hmac_ctx cx[1])
sha_end(dig, cx->ctx); /* complete the inner hash */ sha_end(dig, cx->ctx); /* complete the inner hash */
/* set outer key value using opad and removing ipad */ /* set outer key value using opad and removing ipad */
for(i = 0; i < HASH_INPUT_SIZE / sizeof(unsigned long); ++i) for(i = 0; i < HMAC_HASH_INPUT_SIZE / sizeof(unsigned long); ++i)
((unsigned long*)cx->key)[i] ^= OPAD ^ IPAD; ((unsigned long*)cx->key)[i] ^= HMAC_OPAD ^ HMAC_IPAD;
/* perform the outer hash operation */ /* perform the outer hash operation */
sha_begin(cx->ctx); sha_begin(cx->ctx);
sha_hash(cx->key, HASH_INPUT_SIZE, cx->ctx); sha_hash(cx->key, HMAC_HASH_INPUT_SIZE, cx->ctx);
sha_hash(dig, HASH_OUTPUT_SIZE, cx->ctx); sha_hash(dig, HMAC_HASH_OUTPUT_SIZE, cx->ctx);
sha_end(dig, cx->ctx); sha_end(dig, cx->ctx);
/* output the hash value */ /* output the hash value */
......
...@@ -48,8 +48,8 @@ ...@@ -48,8 +48,8 @@
#include "sha1.h" #include "sha1.h"
#define HASH_INPUT_SIZE SHA1_BLOCK_SIZE #define HMAC_HASH_INPUT_SIZE SHA1_BLOCK_SIZE
#define HASH_OUTPUT_SIZE SHA1_DIGEST_SIZE #define HMAC_HASH_OUTPUT_SIZE SHA1_DIGEST_SIZE
#define sha_ctx sha1_ctx #define sha_ctx sha1_ctx
#define sha_begin sha1_begin #define sha_begin sha1_begin
#define sha_hash sha1_hash #define sha_hash sha1_hash
...@@ -61,8 +61,8 @@ ...@@ -61,8 +61,8 @@
#include "sha2.h" #include "sha2.h"
#define HASH_INPUT_SIZE SHA256_BLOCK_SIZE #define HMAC_HASH_INPUT_SIZE SHA256_BLOCK_SIZE
#define HASH_OUTPUT_SIZE SHA256_DIGEST_SIZE #define HMAC_HASH_OUTPUT_SIZE SHA256_DIGEST_SIZE
#define sha_ctx sha256_ctx #define sha_ctx sha256_ctx
#define sha_begin sha256_begin #define sha_begin sha256_begin
#define sha_hash sha256_hash #define sha_hash sha256_hash
...@@ -74,11 +74,8 @@ ...@@ -74,11 +74,8 @@
#define HMAC_BAD_MODE -1 #define HMAC_BAD_MODE -1
#define HMAC_IN_DATA 0xffffffff #define HMAC_IN_DATA 0xffffffff
#define IPAD (0x36 * (((unsigned long)-1) / 0xff))
#define OPAD (0x5c * (((unsigned long)-1) / 0xff))
typedef struct typedef struct
{ unsigned char key[HASH_INPUT_SIZE]; { unsigned char key[HMAC_HASH_INPUT_SIZE];
sha_ctx ctx[1]; sha_ctx ctx[1];
unsigned long klen; unsigned long klen;
} hmac_ctx; } hmac_ctx;
......
...@@ -46,7 +46,7 @@ void derive_key(const unsigned char pwd[], /* the PASSWORD */ ...@@ -46,7 +46,7 @@ void derive_key(const unsigned char pwd[], /* the PASSWORD */
unsigned int key_len)/* and its required length */ unsigned int key_len)/* and its required length */
{ {
unsigned int i, j, k, n_blk; unsigned int i, j, k, n_blk;
unsigned char uu[HASH_OUTPUT_SIZE], ux[HASH_OUTPUT_SIZE]; unsigned char uu[HMAC_HASH_OUTPUT_SIZE], ux[HMAC_HASH_OUTPUT_SIZE];
hmac_ctx c1[1], c2[1], c3[1]; hmac_ctx c1[1], c2[1], c3[1];
/* set HMAC context (c1) for password */ /* set HMAC context (c1) for password */
...@@ -58,12 +58,12 @@ void derive_key(const unsigned char pwd[], /* the PASSWORD */ ...@@ -58,12 +58,12 @@ void derive_key(const unsigned char pwd[], /* the PASSWORD */
hmac_sha_data(salt, salt_len, c2); hmac_sha_data(salt, salt_len, c2);
/* find the number of SHA blocks in the key */ /* find the number of SHA blocks in the key */
n_blk = 1 + (key_len - 1) / HASH_OUTPUT_SIZE; n_blk = 1 + (key_len - 1) / HMAC_HASH_OUTPUT_SIZE;
for(i = 0; i < n_blk; ++i) /* for each block in key */ for(i = 0; i < n_blk; ++i) /* for each block in key */
{ {
/* ux[] holds the running xor value */ /* ux[] holds the running xor value */
memset(ux, 0, HASH_OUTPUT_SIZE); memset(ux, 0, HMAC_HASH_OUTPUT_SIZE);
/* set HMAC context (c3) for password and salt */ /* set HMAC context (c3) for password and salt */
memcpy(c3, c2, sizeof(hmac_ctx)); memcpy(c3, c2, sizeof(hmac_ctx));
...@@ -81,10 +81,10 @@ void derive_key(const unsigned char pwd[], /* the PASSWORD */ ...@@ -81,10 +81,10 @@ void derive_key(const unsigned char pwd[], /* the PASSWORD */
hmac_sha_data(uu, k, c3); hmac_sha_data(uu, k, c3);
/* obtain HMAC for uu[] */ /* obtain HMAC for uu[] */
hmac_sha_end(uu, HASH_OUTPUT_SIZE, c3); hmac_sha_end(uu, HMAC_HASH_OUTPUT_SIZE, c3);
/* xor into the running xor block */ /* xor into the running xor block */
for(k = 0; k < HASH_OUTPUT_SIZE; ++k) for(k = 0; k < HMAC_HASH_OUTPUT_SIZE; ++k)
ux[k] ^= uu[k]; ux[k] ^= uu[k];
/* set HMAC context (c3) for password */ /* set HMAC context (c3) for password */
...@@ -92,8 +92,8 @@ void derive_key(const unsigned char pwd[], /* the PASSWORD */ ...@@ -92,8 +92,8 @@ void derive_key(const unsigned char pwd[], /* the PASSWORD */
} }
/* compile key blocks into the key output */ /* compile key blocks into the key output */
j = 0; k = i * HASH_OUTPUT_SIZE; j = 0; k = i * HMAC_HASH_OUTPUT_SIZE;
while(j < HASH_OUTPUT_SIZE && k < key_len) while(j < HMAC_HASH_OUTPUT_SIZE && k < key_len)
key[k++] = ux[j++]; key[k++] = ux[j++];
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment