diff options
| author | jsing <> | 2023-04-15 18:19:06 +0000 |
|---|---|---|
| committer | jsing <> | 2023-04-15 18:19:06 +0000 |
| commit | 8910067207dfb2f199523fd9f4e1ed4887e905ef (patch) | |
| tree | 4b2a5a3739ae6bc697c3ad094be7366ceb7b2e81 /src/lib | |
| parent | f1875ee5c1712f5aad290f32e56c4bf9c75f32ef (diff) | |
| download | openbsd-8910067207dfb2f199523fd9f4e1ed4887e905ef.tar.gz openbsd-8910067207dfb2f199523fd9f4e1ed4887e905ef.tar.bz2 openbsd-8910067207dfb2f199523fd9f4e1ed4887e905ef.zip | |
Pull constant tables out of sha3_keccakf().
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/libcrypto/sha/sha3.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/src/lib/libcrypto/sha/sha3.c b/src/lib/libcrypto/sha/sha3.c index ef53ecbc0a..a3ef95f815 100644 --- a/src/lib/libcrypto/sha/sha3.c +++ b/src/lib/libcrypto/sha/sha3.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: sha3.c,v 1.5 2023/04/15 18:14:21 jsing Exp $ */ | 1 | /* $OpenBSD: sha3.c,v 1.6 2023/04/15 18:19:06 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * The MIT License (MIT) | 3 | * The MIT License (MIT) |
| 4 | * | 4 | * |
| @@ -25,30 +25,30 @@ | |||
| 25 | 25 | ||
| 26 | #include "sha3_internal.h" | 26 | #include "sha3_internal.h" |
| 27 | 27 | ||
| 28 | static const uint64_t sha3_keccakf_rndc[24] = { | ||
| 29 | 0x0000000000000001, 0x0000000000008082, 0x800000000000808a, | ||
| 30 | 0x8000000080008000, 0x000000000000808b, 0x0000000080000001, | ||
| 31 | 0x8000000080008081, 0x8000000000008009, 0x000000000000008a, | ||
| 32 | 0x0000000000000088, 0x0000000080008009, 0x000000008000000a, | ||
| 33 | 0x000000008000808b, 0x800000000000008b, 0x8000000000008089, | ||
| 34 | 0x8000000000008003, 0x8000000000008002, 0x8000000000000080, | ||
| 35 | 0x000000000000800a, 0x800000008000000a, 0x8000000080008081, | ||
| 36 | 0x8000000000008080, 0x0000000080000001, 0x8000000080008008 | ||
| 37 | }; | ||
| 38 | static const int sha3_keccakf_rotc[24] = { | ||
| 39 | 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 2, 14, | ||
| 40 | 27, 41, 56, 8, 25, 43, 62, 18, 39, 61, 20, 44 | ||
| 41 | }; | ||
| 42 | static const int sha3_keccakf_piln[24] = { | ||
| 43 | 10, 7, 11, 17, 18, 3, 5, 16, 8, 21, 24, 4, | ||
| 44 | 15, 23, 19, 13, 12, 2, 20, 14, 22, 9, 6, 1 | ||
| 45 | }; | ||
| 46 | |||
| 28 | void | 47 | void |
| 29 | sha3_keccakf(uint64_t st[25]) | 48 | sha3_keccakf(uint64_t st[25]) |
| 30 | { | 49 | { |
| 31 | const uint64_t keccakf_rndc[24] = { | ||
| 32 | 0x0000000000000001, 0x0000000000008082, 0x800000000000808a, | ||
| 33 | 0x8000000080008000, 0x000000000000808b, 0x0000000080000001, | ||
| 34 | 0x8000000080008081, 0x8000000000008009, 0x000000000000008a, | ||
| 35 | 0x0000000000000088, 0x0000000080008009, 0x000000008000000a, | ||
| 36 | 0x000000008000808b, 0x800000000000008b, 0x8000000000008089, | ||
| 37 | 0x8000000000008003, 0x8000000000008002, 0x8000000000000080, | ||
| 38 | 0x000000000000800a, 0x800000008000000a, 0x8000000080008081, | ||
| 39 | 0x8000000000008080, 0x0000000080000001, 0x8000000080008008 | ||
| 40 | }; | ||
| 41 | const int keccakf_rotc[24] = { | ||
| 42 | 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 2, 14, | ||
| 43 | 27, 41, 56, 8, 25, 43, 62, 18, 39, 61, 20, 44 | ||
| 44 | }; | ||
| 45 | const int keccakf_piln[24] = { | ||
| 46 | 10, 7, 11, 17, 18, 3, 5, 16, 8, 21, 24, 4, | ||
| 47 | 15, 23, 19, 13, 12, 2, 20, 14, 22, 9, 6, 1 | ||
| 48 | }; | ||
| 49 | |||
| 50 | int i, j, r; | ||
| 51 | uint64_t t, bc[5]; | 50 | uint64_t t, bc[5]; |
| 51 | int i, j, r; | ||
| 52 | 52 | ||
| 53 | #if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ | 53 | #if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ |
| 54 | uint8_t *v; | 54 | uint8_t *v; |
| @@ -77,9 +77,9 @@ sha3_keccakf(uint64_t st[25]) | |||
| 77 | /* Rho Pi */ | 77 | /* Rho Pi */ |
| 78 | t = st[1]; | 78 | t = st[1]; |
| 79 | for (i = 0; i < 24; i++) { | 79 | for (i = 0; i < 24; i++) { |
| 80 | j = keccakf_piln[i]; | 80 | j = sha3_keccakf_piln[i]; |
| 81 | bc[0] = st[j]; | 81 | bc[0] = st[j]; |
| 82 | st[j] = ROTL64(t, keccakf_rotc[i]); | 82 | st[j] = ROTL64(t, sha3_keccakf_rotc[i]); |
| 83 | t = bc[0]; | 83 | t = bc[0]; |
| 84 | } | 84 | } |
| 85 | 85 | ||
| @@ -92,7 +92,7 @@ sha3_keccakf(uint64_t st[25]) | |||
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | /* Iota */ | 94 | /* Iota */ |
| 95 | st[0] ^= keccakf_rndc[r]; | 95 | st[0] ^= sha3_keccakf_rndc[r]; |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | #if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ | 98 | #if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ |
