You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
diff -up libgcrypt-1.5.3/cipher/whirlpool.c.whirlpool-bug libgcrypt-1.5.3/cipher/whirlpool.c |
|
|
--- libgcrypt-1.5.3/cipher/whirlpool.c.whirlpool-bug 2013-05-22 18:02:54.000000000 +0200 |
|
|
+++ libgcrypt-1.5.3/cipher/whirlpool.c 2014-01-21 15:45:51.308919415 +0100 |
|
|
@@ -56,6 +56,7 @@ typedef struct { |
|
|
unsigned char buffer[BLOCK_SIZE]; |
|
|
size_t count; |
|
|
unsigned char length[32]; |
|
|
+ int bug; |
|
|
} whirlpool_context_t; |
|
|
|
|
|
|
|
|
@@ -1185,6 +1186,7 @@ whirlpool_init (void *ctx) |
|
|
whirlpool_context_t *context = ctx; |
|
|
|
|
|
memset (context, 0, sizeof (*context)); |
|
|
+ context->bug = secure_getenv("GCRYPT_WHIRLPOOL_BUG") != NULL; |
|
|
} |
|
|
|
|
|
|
|
|
@@ -1316,7 +1318,7 @@ whirlpool_add (whirlpool_context_t *cont |
|
|
buffer_n--; |
|
|
} |
|
|
whirlpool_add (context, NULL, 0); |
|
|
- if (!buffer_n) |
|
|
+ if (context->bug && !buffer_n) |
|
|
/* Done. */ |
|
|
return; |
|
|
}
|
|
|
|