summaryrefslogtreecommitdiff
path: root/cipher/tiger.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2001-03-29 10:01:44 +0000
committerWerner Koch <wk@gnupg.org>2001-03-29 10:01:44 +0000
commit7e68abda362fce76e91631973d062fd7c8ff5e4e (patch)
treed4c9e9156fde813d270dbe0963756d4a2c7ec191 /cipher/tiger.c
parent0eecba659555d50cd7bdd26daef9a32334759dc4 (diff)
downloadlibgcrypt-7e68abda362fce76e91631973d062fd7c8ff5e4e.tar.gz
Fixed the bug in the hash code
Diffstat (limited to 'cipher/tiger.c')
-rw-r--r--cipher/tiger.c19
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";
}