diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/sha/sha3.c | 18 | ||||
| -rw-r--r-- | src/lib/libcrypto/sha/sha3_internal.h | 8 |
2 files changed, 13 insertions, 13 deletions
diff --git a/src/lib/libcrypto/sha/sha3.c b/src/lib/libcrypto/sha/sha3.c index c775e57ea3..d406241f8a 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.13 2023/04/15 19:30:31 jsing Exp $ */ | 1 | /* $OpenBSD: sha3.c,v 1.14 2023/04/15 20:00:24 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * The MIT License (MIT) | 3 | * The MIT License (MIT) |
| 4 | * | 4 | * |
| @@ -124,7 +124,7 @@ sha3_init(sha3_ctx *c, int mdlen) | |||
| 124 | memset(c, 0, sizeof(*c)); | 124 | memset(c, 0, sizeof(*c)); |
| 125 | 125 | ||
| 126 | c->mdlen = mdlen; | 126 | c->mdlen = mdlen; |
| 127 | c->rsiz = 200 - 2 * mdlen; | 127 | c->rsize = 200 - 2 * mdlen; |
| 128 | 128 | ||
| 129 | return 1; | 129 | return 1; |
| 130 | } | 130 | } |
| @@ -132,13 +132,12 @@ sha3_init(sha3_ctx *c, int mdlen) | |||
| 132 | int | 132 | int |
| 133 | sha3_update(sha3_ctx *c, const void *data, size_t len) | 133 | sha3_update(sha3_ctx *c, const void *data, size_t len) |
| 134 | { | 134 | { |
| 135 | size_t i; | 135 | size_t i, j; |
| 136 | int j; | ||
| 137 | 136 | ||
| 138 | j = c->pt; | 137 | j = c->pt; |
| 139 | for (i = 0; i < len; i++) { | 138 | for (i = 0; i < len; i++) { |
| 140 | c->state.b[j++] ^= ((const uint8_t *) data)[i]; | 139 | c->state.b[j++] ^= ((const uint8_t *) data)[i]; |
| 141 | if (j >= c->rsiz) { | 140 | if (j >= c->rsize) { |
| 142 | sha3_keccakf(c->state.q); | 141 | sha3_keccakf(c->state.q); |
| 143 | j = 0; | 142 | j = 0; |
| 144 | } | 143 | } |
| @@ -154,7 +153,7 @@ sha3_final(void *md, sha3_ctx *c) | |||
| 154 | int i; | 153 | int i; |
| 155 | 154 | ||
| 156 | c->state.b[c->pt] ^= 0x06; | 155 | c->state.b[c->pt] ^= 0x06; |
| 157 | c->state.b[c->rsiz - 1] ^= 0x80; | 156 | c->state.b[c->rsize - 1] ^= 0x80; |
| 158 | sha3_keccakf(c->state.q); | 157 | sha3_keccakf(c->state.q); |
| 159 | 158 | ||
| 160 | for (i = 0; i < c->mdlen; i++) { | 159 | for (i = 0; i < c->mdlen; i++) { |
| @@ -169,7 +168,7 @@ void | |||
| 169 | shake_xof(sha3_ctx *c) | 168 | shake_xof(sha3_ctx *c) |
| 170 | { | 169 | { |
| 171 | c->state.b[c->pt] ^= 0x1F; | 170 | c->state.b[c->pt] ^= 0x1F; |
| 172 | c->state.b[c->rsiz - 1] ^= 0x80; | 171 | c->state.b[c->rsize - 1] ^= 0x80; |
| 173 | sha3_keccakf(c->state.q); | 172 | sha3_keccakf(c->state.q); |
| 174 | c->pt = 0; | 173 | c->pt = 0; |
| 175 | } | 174 | } |
| @@ -177,12 +176,11 @@ shake_xof(sha3_ctx *c) | |||
| 177 | void | 176 | void |
| 178 | shake_out(sha3_ctx *c, void *out, size_t len) | 177 | shake_out(sha3_ctx *c, void *out, size_t len) |
| 179 | { | 178 | { |
| 180 | size_t i; | 179 | size_t i, j; |
| 181 | int j; | ||
| 182 | 180 | ||
| 183 | j = c->pt; | 181 | j = c->pt; |
| 184 | for (i = 0; i < len; i++) { | 182 | for (i = 0; i < len; i++) { |
| 185 | if (j >= c->rsiz) { | 183 | if (j >= c->rsize) { |
| 186 | sha3_keccakf(c->state.q); | 184 | sha3_keccakf(c->state.q); |
| 187 | j = 0; | 185 | j = 0; |
| 188 | } | 186 | } |
diff --git a/src/lib/libcrypto/sha/sha3_internal.h b/src/lib/libcrypto/sha/sha3_internal.h index befb615e48..91b1a43b25 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.12 2023/04/15 19:44:36 jsing Exp $ */ | 1 | /* $OpenBSD: sha3_internal.h,v 1.13 2023/04/15 20:00:24 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * The MIT License (MIT) | 3 | * The MIT License (MIT) |
| 4 | * | 4 | * |
| @@ -56,12 +56,14 @@ | |||
| 56 | #define SHA3_512_BLOCK_SIZE (SHA3_512_CAPACITY / 8) | 56 | #define SHA3_512_BLOCK_SIZE (SHA3_512_CAPACITY / 8) |
| 57 | #define SHA3_512_DIGEST_LENGTH (SHA3_512_BIT_LENGTH / 8) | 57 | #define SHA3_512_DIGEST_LENGTH (SHA3_512_BIT_LENGTH / 8) |
| 58 | 58 | ||
| 59 | typedef struct { | 59 | typedef struct sha3_ctx_st { |
| 60 | union { | 60 | union { |
| 61 | uint8_t b[200]; /* State as 8 bit bytes. */ | 61 | uint8_t b[200]; /* State as 8 bit bytes. */ |
| 62 | uint64_t q[25]; /* State as 64 bit words. */ | 62 | uint64_t q[25]; /* State as 64 bit words. */ |
| 63 | } state; | 63 | } state; |
| 64 | int pt, rsiz, mdlen; | 64 | size_t pt; |
| 65 | size_t rsize; | ||
| 66 | size_t mdlen; | ||
| 65 | } sha3_ctx; | 67 | } sha3_ctx; |
| 66 | 68 | ||
| 67 | int sha3_init(sha3_ctx *c, int mdlen); | 69 | int sha3_init(sha3_ctx *c, int mdlen); |
