fixing bug in SHA1-C

This commit is contained in:
bg 2009-12-17 15:32:52 +00:00
parent 24e4a90f4a
commit 7c82bb3235
3 changed files with 5 additions and 9 deletions

View File

@ -538,12 +538,11 @@ addelement:
mov j, r24
movw h0, r20
movw m0, r22
mov r25, r24
lsl r25
lsl r25
lsl r24
lsl r24
ldi r30, lo8(const_lut)
ldi r31, hi8(const_lut)
add r30, r25
add r30, r24
adc r31, r1
lpm acc0, Z+
lpm acc1, Z+

View File

@ -209,12 +209,12 @@ void sha1_lastBlock(sha1_ctx_t *state, const void* block, uint16_t length){
void sha1_ctx2hash (sha1_hash_t *dest, sha1_ctx_t *state){
#if defined LITTLE_ENDIAN
uint8_t i;
for(i=0; i<8; ++i){
for(i=0; i<5; ++i){
((uint32_t*)dest)[i] = change_endian32(state->h[i]);
}
#elif BIG_ENDIAN
if (dest != state->h)
memcpy(dest, state->h, SHA256_HASH_BITS/8);
memcpy(dest, state->h, SHA1_HASH_BITS/8);
#else
# error unsupported endian type!
#endif

View File

@ -106,7 +106,6 @@ void testrun_sha1(void){
sha1(&hash,"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",448);
// cli_putstr_P(PSTR("\r\nsha1(\"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq\") = \r\n\t"));
cli_hexdump(hash,SHA1_HASH_BITS/8);
/*
cli_putstr("\r\nsha1(1,000,000 * 'a') = \r\n\t");
{
uint8_t block[SHA1_BLOCK_BITS/8];
@ -121,9 +120,7 @@ void testrun_sha1(void){
sha1_ctx2hash(&hash, &s);
}
cli_hexdump(hash,SHA1_HASH_BITS/8);
*/
cli_putstr("\r\nx");
}