Commit c71ec8ae authored by Christian Heimes's avatar Christian Heimes

sha3: let's keep it simple and always allocate enough extra space for uint64_t[20].

parent c49a516a
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
#endif #endif
#define SHA3_MAX_DIGESTSIZE 64 /* 64 Bytes (512 Bits) for 224 to 512 */ #define SHA3_MAX_DIGESTSIZE 64 /* 64 Bytes (512 Bits) for 224 to 512 */
#define SHA3_LANESIZE 96 /* ExtractLane needs an extra 96 bytes */ #define SHA3_LANESIZE (20 * 8) /* ExtractLane needs max uint64_t[20] extra. */
#define SHA3_state Keccak_HashInstance #define SHA3_state Keccak_HashInstance
#define SHA3_init Keccak_HashInitialize #define SHA3_init Keccak_HashInitialize
#define SHA3_process Keccak_HashUpdate #define SHA3_process Keccak_HashUpdate
...@@ -605,8 +605,7 @@ _SHAKE_digest(SHA3object *self, unsigned long digestlen, int hex) ...@@ -605,8 +605,7 @@ _SHAKE_digest(SHA3object *self, unsigned long digestlen, int hex)
/* ExtractLane needs at least SHA3_MAX_DIGESTSIZE + SHA3_LANESIZE and /* ExtractLane needs at least SHA3_MAX_DIGESTSIZE + SHA3_LANESIZE and
* SHA3_LANESIZE extra space. * SHA3_LANESIZE extra space.
*/ */
digest = (unsigned char*)PyMem_Malloc(SHA3_LANESIZE + digest = (unsigned char*)PyMem_Malloc(digestlen + SHA3_LANESIZE);
((digestlen > SHA3_MAX_DIGESTSIZE) ? digestlen : SHA3_MAX_DIGESTSIZE));
if (digest == NULL) { if (digest == NULL) {
return PyErr_NoMemory(); return PyErr_NoMemory();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment