|
|
|
|
@ -11,7 +11,7 @@ |
|
|
|
|
#define K3 0x8F1BBCDC |
|
|
|
|
#define K4 0xCA62C1D6 |
|
|
|
|
|
|
|
|
|
#define _LROT32(x,n) (( (uint32_t)(x) << n ) | ( (uint32_t)(x) >>(32-n) )) |
|
|
|
|
#define _LROT32(x,n) (( (uint32_t)(x) << n ) | ( (uint32_t)(x) >>(32-n) )) |
|
|
|
|
#define _W(n) (n>=16 ? chunk_e[n-16] : chunk[n]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -27,8 +27,7 @@ void sha1_addbyte(uint8_t c){ |
|
|
|
|
if(chunk_cnt==64){ |
|
|
|
|
/*chunk extension*/ |
|
|
|
|
uint32_t a,b,c,d,e,chunk_e[64]; |
|
|
|
|
for(i=0; i<64; i++){ |
|
|
|
|
//chunk_e[i]= _LROT32( _W(i+16-3) ^ _W(i+16-8) ^ _W(i+16-14) ^ _W(i+16-16), 1 );
|
|
|
|
|
for(i=0; i<64; ++i){
|
|
|
|
|
chunk_e[i]= _LROT32( _W(i+16-3) ^ _W(i+16-8) ^ _W(i+16-14) ^ _W(i+16-16), 1 );
|
|
|
|
|
} |
|
|
|
|
a=sha1_digest[4]; |
|
|
|
|
@ -54,7 +53,7 @@ void sha1_addbyte(uint8_t c){ |
|
|
|
|
k=K4; |
|
|
|
|
f=b ^ c ^ d; |
|
|
|
|
} |
|
|
|
|
temp = e + k + f + _LROT32(a,5) + _W(i); |
|
|
|
|
temp = e + k + f+_LROT32(a,5)+_W(i); |
|
|
|
|
e = d; |
|
|
|
|
d = c; |
|
|
|
|
c = _LROT32(b,30); |
|
|
|
|
@ -77,13 +76,10 @@ void sha1_fill(int32_t len){ |
|
|
|
|
/*"append 0-bits to the message to obtain a length of len%512=448"*/ |
|
|
|
|
/*"append length of message in bits as 64-bit integer"*/ |
|
|
|
|
uint8_t j; |
|
|
|
|
for(j=0;j<(120-(len-(len/64)*64+1))%64+1;j++){ |
|
|
|
|
if(j==0){ |
|
|
|
|
sha1_addbyte(0x80); |
|
|
|
|
}else{ |
|
|
|
|
sha1_addbyte(0x00); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
uint8_t end=(uint8_t)((120-(len-(len/64)*64+1))%64+1); |
|
|
|
|
sha1_addbyte(0x80); |
|
|
|
|
for(j=1;j<end;j++){ |
|
|
|
|
sha1_addbyte(0x00); |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
uint64_t l=len*8; |
|
|
|
|
|