]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - md5/md5.c
fixing style, typos and uart
[avr-crypto-lib.git] / md5 / md5.c
index 003699e5ef4ae65486bece16d9cdfbe21a4cca2b..f84edf8138c3613ee89728130ed09841d13f6bba 100644 (file)
--- a/md5/md5.c
+++ b/md5/md5.c
@@ -66,9 +66,9 @@ typedef uint32_t md5_func_t(uint32_t, uint32_t, uint32_t);
 #define ROTL32(x,n) (((x)<<(n)) | ((x)>>(32-(n))))  
 
 static
-void md5_core(uint32_t* a, void* block, uint8_t as, uint8_t s, uint8_t i, uint8_t fi){
+void md5_core(uint32_t *a, void *block, uint8_t as, uint8_t s, uint8_t i, uint8_t fi){
        uint32_t t;
-       md5_func_tfuncs[]={md5_F, md5_G, md5_H, md5_I};
+       md5_func_t *funcs[]={md5_F, md5_G, md5_H, md5_I};
        as &= 0x3;
        /* a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */
 #ifdef DEBUG
@@ -85,7 +85,7 @@ void md5_core(uint32_t* a, void* block, uint8_t as, uint8_t s, uint8_t i, uint8_
        a[as]=a[(as+1)&3] + ROTL32(t, s);
 }
 
-void md5_nextBlock(md5_ctx_t *state, const voidblock){
+void md5_nextBlock(md5_ctx_t *state, const void *block){
        uint32_t        a[4];
        uint8_t         m,n,i=0;
        /* this requires other mixed sboxes */
@@ -137,41 +137,44 @@ void md5_nextBlock(md5_ctx_t *state, const void* block){
        state->counter++;
 }
 
-void md5_lastBlock(md5_ctx_t *state, const voidblock, uint16_t length_b){
+void md5_lastBlock(md5_ctx_t *state, const void *block, uint16_t length_b){
        uint16_t l;
-       uint8_t b[64];
+       union {
+               uint8_t   v8[64];
+               uint64_t v64[ 8];
+       } buffer;
        while (length_b >= 512){
                md5_nextBlock(state, block);
                length_b -= 512;
                block = ((uint8_t*)block) + 512/8;
        }
-       memset(b, 0, 64);
-       memcpy(b, block, length_b/8);
+       memset(buffer.v8, 0, 64);
+       memcpy(buffer.v8, block, length_b/8);
        /* insert padding one */
        l=length_b/8;
        if(length_b%8){
                uint8_t t;
                t = ((uint8_t*)block)[l];
                t |= (0x80>>(length_b%8));
-               b[l]=t;
+               buffer.v8[l]=t;
        }else{
-               b[l]=0x80;
+               buffer.v8[l]=0x80;
        }
        /* insert length value */
        if(l+sizeof(uint64_t) >= 512/8){
-               md5_nextBlock(state, b);
+               md5_nextBlock(state, buffer.v8);
                state->counter--;
-               memset(b, 0, 64-8);
+               memset(buffer.v8, 0, 64-8);
        }
-       *((uint64_t*)&b[64-sizeof(uint64_t)]) = (state->counter * 512) + length_b;
-       md5_nextBlock(state, b);
+       buffer.v64[7] = (state->counter * 512) + length_b;
+       md5_nextBlock(state, buffer.v8);
 }
 
-void md5_ctx2hash(md5_hash_t* dest, const md5_ctx_t* state){
+void md5_ctx2hash(md5_hash_t *dest, const md5_ctx_t *state){
        memcpy(dest, state->a, MD5_HASH_BYTES);
 }
 
-void md5(md5_hash_t* dest, const void* msg, uint32_t length_b){
+void md5(md5_hash_t *dest, const void *msg, uint32_t length_b){
        md5_ctx_t ctx;
        md5_init(&ctx);
        while(length_b>=MD5_BLOCK_BITS){