diff options
| author | jsing <> | 2023-04-15 18:14:21 +0000 |
|---|---|---|
| committer | jsing <> | 2023-04-15 18:14:21 +0000 |
| commit | 5e70c8b98d9a63762a30987dbe911722d9389545 (patch) | |
| tree | d8d1b713facfc84a42a084a1774e1ee8049e3dd1 /src | |
| parent | c482a746c4889fc9ed9f35f030bb50d85c34fdb3 (diff) | |
| download | openbsd-5e70c8b98d9a63762a30987dbe911722d9389545.tar.gz openbsd-5e70c8b98d9a63762a30987dbe911722d9389545.tar.bz2 openbsd-5e70c8b98d9a63762a30987dbe911722d9389545.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 | |||
