diff options
author | Werner Koch <wk@gnupg.org> | 2001-03-29 10:01:44 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2001-03-29 10:01:44 +0000 |
commit | 7e68abda362fce76e91631973d062fd7c8ff5e4e (patch) | |
tree | d4c9e9156fde813d270dbe0963756d4a2c7ec191 /cipher/tiger.c | |
parent | 0eecba659555d50cd7bdd26daef9a32334759dc4 (diff) | |
download | libgcrypt-7e68abda362fce76e91631973d062fd7c8ff5e4e.tar.gz |
Fixed the bug in the hash code
Diffstat (limited to 'cipher/tiger.c')
-rw-r--r-- | cipher/tiger.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/cipher/tiger.c b/cipher/tiger.c index e68959ca..7152492e 100644 --- a/cipher/tiger.c +++ b/cipher/tiger.c @@ -805,18 +805,19 @@ tiger_final( TIGER_CONTEXT *hd ) tiger_write(hd, NULL, 0); /* flush */; - msb = 0; t = hd->nblocks; - if( (lsb = t << 6) < t ) /* multiply by 64 to make a byte count */ - msb++; - msb += t >> 26; + /* multiply by 64 to make a byte count */ + lsb = t << 6; + msb = t >> 26; + /* add the count */ t = lsb; - if( (lsb = t + hd->count) < t ) /* add the count */ + if( (lsb += hd->count) < t ) msb++; + /* multiply by 8 to make a bit count */ t = lsb; - if( (lsb = t << 3) < t ) /* multiply by 8 to make a bit count */ - msb++; - msb += t >> 29; + lsb <<= 3; + msb <<= 3; + msb |= t >> 29; if( hd->count < 56 ) { /* enough room */ hd->buf[hd->count++] = 0x01; /* pad */ @@ -904,7 +905,7 @@ tiger_get_info( int algo, size_t *contextsize, *(void (**)(TIGER_CONTEXT *))r_final = tiger_final; *(byte *(**)(TIGER_CONTEXT *))r_read = tiger_read; - return "TIGER"; + return "TIGER192"; } |