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 | |
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')
-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__ |