summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2023-04-15 18:19:06 +0000
committerjsing <>2023-04-15 18:19:06 +0000
commit8910067207dfb2f199523fd9f4e1ed4887e905ef (patch)
tree4b2a5a3739ae6bc697c3ad094be7366ceb7b2e81 /src
parentf1875ee5c1712f5aad290f32e56c4bf9c75f32ef (diff)
downloadopenbsd-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.c48
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
28static 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};
38static 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};
42static 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
28void 47void
29sha3_keccakf(uint64_t st[25]) 48sha3_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__