sha/keccak1600.c: add couple of soft asserts.
authorAndy Polyakov <appro@openssl.org>
Mon, 24 Oct 2016 14:05:31 +0000 (16:05 +0200)
committerAndy Polyakov <appro@openssl.org>
Mon, 31 Oct 2016 21:18:07 +0000 (22:18 +0100)
Reviewed-by: Richard Levitte <levitte@openssl.org>
crypto/sha/keccak1600.c

index 4397372ccb7ddeacce183eb8ad4adc7899546c7f..9e08c504c75e0ecc0ce25dc6591064abd982f1a6 100644 (file)
@@ -167,6 +167,8 @@ size_t SHA3_absorb(uint64_t A[5][5], const unsigned char *inp, size_t len,
     uint64_t *A_flat = (uint64_t *)A;
     size_t i, w = r / 8;
 
+    assert(r < (25 * sizeof(A[0][0])) && (r % 8) == 0);
+
     while (len >= r) {
         for (i = 0; i < w; i++) {
             A_flat[i] ^= (uint64_t)inp[0]       | (uint64_t)inp[1] << 8  |
@@ -191,6 +193,8 @@ void SHA3_squeeze(uint64_t A[5][5], unsigned char *out, size_t len, size_t r)
     uint64_t *A_flat = (uint64_t *)A;
     size_t i, rem, w = r / 8;
 
+    assert(r < (25 * sizeof(A[0][0])) && (r % 8) == 0);
+
     while (len >= r) {
         for (i = 0; i < w; i++) {
             uint64_t Ai = A_flat[i];