diff options
author | jsing <> | 2023-04-15 18:14:21 +0000 |
---|---|---|
committer | jsing <> | 2023-04-15 18:14:21 +0000 |
commit | f1875ee5c1712f5aad290f32e56c4bf9c75f32ef (patch) | |
tree | d8d1b713facfc84a42a084a1774e1ee8049e3dd1 /src | |
parent | 9377477c71e2363397c5325cf9ca15ad03e9297e (diff) | |
download | openbsd-f1875ee5c1712f5aad290f32e56c4bf9c75f32ef.tar.gz openbsd-f1875ee5c1712f5aad290f32e56c4bf9c75f32ef.tar.bz2 openbsd-f1875ee5c1712f5aad290f32e56c4bf9c75f32ef.zip |
Strip and reformat comments.
Remove various comments that are unhelpful or obvious. Reformat remaining
comments per style(9).
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/sha/sha3.c | 34 | ||||
-rw-r--r-- | src/lib/libcrypto/sha/sha3_internal.h | 24 |
2 files changed, 14 insertions, 44 deletions
diff --git a/src/lib/libcrypto/sha/sha3.c b/src/lib/libcrypto/sha/sha3.c index 13faed3e9e..ef53ecbc0a 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.4 2023/04/15 18:07:44 jsing Exp $ */ | 1 | /* $OpenBSD: sha3.c,v 1.5 2023/04/15 18:14:21 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * The MIT License (MIT) | 3 | * The MIT License (MIT) |
4 | * | 4 | * |
@@ -23,20 +23,11 @@ | |||
23 | * SOFTWARE. | 23 | * SOFTWARE. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | // sha3.c | ||
27 | // 19-Nov-11 Markku-Juhani O. Saarinen <mjos@iki.fi> | ||
28 | |||
29 | // Revised 07-Aug-15 to match with official release of FIPS PUB 202 "SHA3" | ||
30 | // Revised 03-Sep-15 for portability + OpenSSL - style API | ||
31 | |||
32 | #include "sha3_internal.h" | 26 | #include "sha3_internal.h" |
33 | 27 | ||
34 | // update the state with given number of rounds | ||
35 | |||
36 | void | 28 | void |
37 | sha3_keccakf(uint64_t st[25]) | 29 | sha3_keccakf(uint64_t st[25]) |
38 | { | 30 | { |
39 | // constants | ||
40 | const uint64_t keccakf_rndc[24] = { | 31 | const uint64_t keccakf_rndc[24] = { |
41 | 0x0000000000000001, 0x0000000000008082, 0x800000000000808a, | 32 | 0x0000000000000001, 0x0000000000008082, 0x800000000000808a, |
42 | 0x8000000080008000, 0x000000000000808b, 0x0000000080000001, | 33 | 0x8000000080008000, 0x000000000000808b, 0x0000000080000001, |
@@ -56,14 +47,12 @@ sha3_keccakf(uint64_t st[25]) | |||
56 | 15, 23, 19, 13, 12, 2, 20, 14, 22, 9, 6, 1 | 47 | 15, 23, 19, 13, 12, 2, 20, 14, 22, 9, 6, 1 |
57 | }; | 48 | }; |
58 | 49 | ||
59 | // variables | ||
60 | int i, j, r; | 50 | int i, j, r; |
61 | uint64_t t, bc[5]; | 51 | uint64_t t, bc[5]; |
62 | 52 | ||
63 | #if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ | 53 | #if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ |
64 | uint8_t *v; | 54 | uint8_t *v; |
65 | 55 | ||
66 | // endianess conversion. this is redundant on little-endian targets | ||
67 | for (i = 0; i < 25; i++) { | 56 | for (i = 0; i < 25; i++) { |
68 | v = (uint8_t *) &st[i]; | 57 | v = (uint8_t *) &st[i]; |
69 | st[i] = ((uint64_t) v[0]) | (((uint64_t) v[1]) << 8) | | 58 | st[i] = ((uint64_t) v[0]) | (((uint64_t) v[1]) << 8) | |
@@ -73,10 +62,9 @@ sha3_keccakf(uint64_t st[25]) | |||
73 | } | 62 | } |
74 | #endif | 63 | #endif |
75 | 64 | ||
76 | // actual iteration | ||
77 | for (r = 0; r < KECCAKF_ROUNDS; r++) { | 65 | for (r = 0; r < KECCAKF_ROUNDS; r++) { |
78 | 66 | ||
79 | // Theta | 67 | /* Theta */ |
80 | for (i = 0; i < 5; i++) | 68 | for (i = 0; i < 5; i++) |
81 | bc[i] = st[i] ^ st[i + 5] ^ st[i + 10] ^ st[i + 15] ^ st[i + 20]; | 69 | bc[i] = st[i] ^ st[i + 5] ^ st[i + 10] ^ st[i + 15] ^ st[i + 20]; |
82 | 70 | ||
@@ -86,7 +74,7 @@ sha3_keccakf(uint64_t st[25]) | |||
86 | st[j + i] ^= t; | 74 | st[j + i] ^= t; |
87 | } | 75 | } |
88 | 76 | ||
89 | // Rho Pi | 77 | /* Rho Pi */ |
90 | t = st[1]; | 78 | t = st[1]; |
91 | for (i = 0; i < 24; i++) { | 79 | for (i = 0; i < 24; i++) { |
92 | j = keccakf_piln[i]; | 80 | j = keccakf_piln[i]; |
@@ -95,7 +83,7 @@ sha3_keccakf(uint64_t st[25]) | |||
95 | t = bc[0]; | 83 | t = bc[0]; |
96 | } | 84 | } |
97 | 85 | ||
98 | // Chi | 86 | /* Chi */ |
99 | for (j = 0; j < 25; j += 5) { | 87 | for (j = 0; j < 25; j += 5) { |
100 | for (i = 0; i < 5; i++) | 88 | for (i = 0; i < 5; i++) |
101 | bc[i] = st[j + i]; | 89 | bc[i] = st[j + i]; |
@@ -103,12 +91,11 @@ sha3_keccakf(uint64_t st[25]) | |||
103 | st[j + i] ^= (~bc[(i + 1) % 5]) & bc[(i + 2) % 5]; | 91 | st[j + i] ^= (~bc[(i + 1) % 5]) & bc[(i + 2) % 5]; |
104 | } | 92 | } |
105 | 93 | ||
106 | // Iota | 94 | /* Iota */ |
107 | st[0] ^= keccakf_rndc[r]; | 95 | st[0] ^= keccakf_rndc[r]; |
108 | } | 96 | } |
109 | 97 | ||
110 | #if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ | 98 | #if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ |
111 | // endianess conversion. this is redundant on little-endian targets | ||
112 | for (i = 0; i < 25; i++) { | 99 | for (i = 0; i < 25; i++) { |
113 | v = (uint8_t *) &st[i]; | 100 | v = (uint8_t *) &st[i]; |
114 | t = st[i]; | 101 | t = st[i]; |
@@ -124,8 +111,6 @@ sha3_keccakf(uint64_t st[25]) | |||
124 | #endif | 111 | #endif |
125 | } | 112 | } |
126 | 113 | ||
127 | // Initialize the context for SHA3 | ||
128 | |||
129 | int | 114 | int |
130 | sha3_init(sha3_ctx_t *c, int mdlen) | 115 | sha3_init(sha3_ctx_t *c, int mdlen) |
131 | { | 116 | { |
@@ -140,8 +125,6 @@ sha3_init(sha3_ctx_t *c, int mdlen) | |||
140 | return 1; | 125 | return 1; |
141 | } | 126 | } |
142 | 127 | ||
143 | // update state with more data | ||
144 | |||
145 | int | 128 | int |
146 | sha3_update(sha3_ctx_t *c, const void *data, size_t len) | 129 | sha3_update(sha3_ctx_t *c, const void *data, size_t len) |
147 | { | 130 | { |
@@ -161,8 +144,6 @@ sha3_update(sha3_ctx_t *c, const void *data, size_t len) | |||
161 | return 1; | 144 | return 1; |
162 | } | 145 | } |
163 | 146 | ||
164 | // finalize and output a hash | ||
165 | |||
166 | int | 147 | int |
167 | sha3_final(void *md, sha3_ctx_t *c) | 148 | sha3_final(void *md, sha3_ctx_t *c) |
168 | { | 149 | { |
@@ -179,8 +160,6 @@ sha3_final(void *md, sha3_ctx_t *c) | |||
179 | return 1; | 160 | return 1; |
180 | } | 161 | } |
181 | 162 | ||
182 | // compute a SHA-3 hash (md) of given byte length from "in" | ||
183 | |||
184 | void * | 163 | void * |
185 | sha3(const void *in, size_t inlen, void *md, int mdlen) | 164 | sha3(const void *in, size_t inlen, void *md, int mdlen) |
186 | { | 165 | { |
@@ -193,8 +172,7 @@ sha3(const void *in, size_t inlen, void *md, int mdlen) | |||
193 | return md; | 172 | return md; |
194 | } | 173 | } |
195 | 174 | ||
196 | // SHAKE128 and SHAKE256 extensible-output functionality | 175 | /* SHAKE128 and SHAKE256 extensible-output functionality. */ |
197 | |||
198 | void | 176 | void |
199 | shake_xof(sha3_ctx_t *c) | 177 | shake_xof(sha3_ctx_t *c) |
200 | { | 178 | { |
diff --git a/src/lib/libcrypto/sha/sha3_internal.h b/src/lib/libcrypto/sha/sha3_internal.h index 1b4c6675ad..3227e6120f 100644 --- a/src/lib/libcrypto/sha/sha3_internal.h +++ b/src/lib/libcrypto/sha/sha3_internal.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sha3_internal.h,v 1.3 2023/04/15 18:07:44 jsing Exp $ */ | 1 | /* $OpenBSD: sha3_internal.h,v 1.4 2023/04/15 18:14:21 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * The MIT License (MIT) | 3 | * The MIT License (MIT) |
4 | * | 4 | * |
@@ -23,9 +23,6 @@ | |||
23 | * SOFTWARE. | 23 | * SOFTWARE. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | // sha3.h | ||
27 | // 19-Nov-11 Markku-Juhani O. Saarinen <mjos@iki.fi> | ||
28 | |||
29 | #ifndef SHA3_H | 26 | #ifndef SHA3_H |
30 | #define SHA3_H | 27 | #define SHA3_H |
31 | 28 | ||
@@ -40,27 +37,23 @@ | |||
40 | #define ROTL64(x, y) (((x) << (y)) | ((x) >> (64 - (y)))) | 37 | #define ROTL64(x, y) (((x) << (y)) | ((x) >> (64 - (y)))) |
41 | #endif | 38 | #endif |
42 | 39 | ||
43 | // state context | ||
44 | typedef struct { | 40 | typedef struct { |
45 | union { // state: | 41 | union { |
46 | uint8_t b[200]; // 8-bit bytes | 42 | uint8_t b[200]; /* State as 8 bit bytes. */ |
47 | uint64_t q[25]; // 64-bit words | 43 | uint64_t q[25]; /* State as 64 bit words. */ |
48 | } st; | 44 | } st; |
49 | int pt, rsiz, mdlen; // these don't overflow | 45 | int pt, rsiz, mdlen; |
50 | } sha3_ctx_t; | 46 | } sha3_ctx_t; |
51 | 47 | ||
52 | // Compression function. | ||
53 | void sha3_keccakf(uint64_t st[25]); | 48 | void sha3_keccakf(uint64_t st[25]); |
54 | 49 | ||
55 | // OpenSSL - like interfece | 50 | int sha3_init(sha3_ctx_t *c, int mdlen); |
56 | int sha3_init(sha3_ctx_t *c, int mdlen); // mdlen = hash output in bytes | ||
57 | int sha3_update(sha3_ctx_t *c, const void *data, size_t len); | 51 | int sha3_update(sha3_ctx_t *c, const void *data, size_t len); |
58 | int sha3_final(void *md, sha3_ctx_t *c); // digest goes to md | 52 | int sha3_final(void *md, sha3_ctx_t *c); |
59 | 53 | ||
60 | // compute a sha3 hash (md) of given byte length from "in" | ||
61 | void *sha3(const void *in, size_t inlen, void *md, int mdlen); | 54 | void *sha3(const void *in, size_t inlen, void *md, int mdlen); |
62 | 55 | ||
63 | // SHAKE128 and SHAKE256 extensible-output functions | 56 | /* SHAKE128 and SHAKE256 extensible-output functions. */ |
64 | #define shake128_init(c) sha3_init(c, 16) | 57 | #define shake128_init(c) sha3_init(c, 16) |
65 | #define shake256_init(c) sha3_init(c, 32) | 58 | #define shake256_init(c) sha3_init(c, 32) |
66 | #define shake_update sha3_update | 59 | #define shake_update sha3_update |
@@ -69,4 +62,3 @@ void shake_xof(sha3_ctx_t *c); | |||
69 | void shake_out(sha3_ctx_t *c, void *out, size_t len); | 62 | void shake_out(sha3_ctx_t *c, void *out, size_t len); |
70 | 63 | ||
71 | #endif | 64 | #endif |
72 | |||