diff options
Diffstat (limited to 'src/lib/libcrypto/sha/sha256.c')
| -rw-r--r-- | src/lib/libcrypto/sha/sha256.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/lib/libcrypto/sha/sha256.c b/src/lib/libcrypto/sha/sha256.c index 86c7f6c61a..906628f29b 100644 --- a/src/lib/libcrypto/sha/sha256.c +++ b/src/lib/libcrypto/sha/sha256.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: sha256.c,v 1.12 2023/03/26 16:40:07 jsing Exp $ */ | 1 | /* $OpenBSD: sha256.c,v 1.13 2023/03/26 17:06:14 jsing Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright (c) 2004 The OpenSSL Project. All rights reserved | 3 | * Copyright (c) 2004 The OpenSSL Project. All rights reserved |
| 4 | * according to the OpenSSL license [found in ../../LICENSE]. | 4 | * according to the OpenSSL license [found in ../../LICENSE]. |
| @@ -21,6 +21,7 @@ int | |||
| 21 | SHA224_Init(SHA256_CTX *c) | 21 | SHA224_Init(SHA256_CTX *c) |
| 22 | { | 22 | { |
| 23 | memset (c, 0, sizeof(*c)); | 23 | memset (c, 0, sizeof(*c)); |
| 24 | |||
| 24 | c->h[0] = 0xc1059ed8UL; | 25 | c->h[0] = 0xc1059ed8UL; |
| 25 | c->h[1] = 0x367cd507UL; | 26 | c->h[1] = 0x367cd507UL; |
| 26 | c->h[2] = 0x3070dd17UL; | 27 | c->h[2] = 0x3070dd17UL; |
| @@ -29,7 +30,9 @@ SHA224_Init(SHA256_CTX *c) | |||
| 29 | c->h[5] = 0x68581511UL; | 30 | c->h[5] = 0x68581511UL; |
| 30 | c->h[6] = 0x64f98fa7UL; | 31 | c->h[6] = 0x64f98fa7UL; |
| 31 | c->h[7] = 0xbefa4fa4UL; | 32 | c->h[7] = 0xbefa4fa4UL; |
| 33 | |||
| 32 | c->md_len = SHA224_DIGEST_LENGTH; | 34 | c->md_len = SHA224_DIGEST_LENGTH; |
| 35 | |||
| 33 | return 1; | 36 | return 1; |
| 34 | } | 37 | } |
| 35 | 38 | ||
| @@ -37,6 +40,7 @@ int | |||
| 37 | SHA256_Init(SHA256_CTX *c) | 40 | SHA256_Init(SHA256_CTX *c) |
| 38 | { | 41 | { |
| 39 | memset (c, 0, sizeof(*c)); | 42 | memset (c, 0, sizeof(*c)); |
| 43 | |||
| 40 | c->h[0] = 0x6a09e667UL; | 44 | c->h[0] = 0x6a09e667UL; |
| 41 | c->h[1] = 0xbb67ae85UL; | 45 | c->h[1] = 0xbb67ae85UL; |
| 42 | c->h[2] = 0x3c6ef372UL; | 46 | c->h[2] = 0x3c6ef372UL; |
| @@ -45,7 +49,9 @@ SHA256_Init(SHA256_CTX *c) | |||
| 45 | c->h[5] = 0x9b05688cUL; | 49 | c->h[5] = 0x9b05688cUL; |
| 46 | c->h[6] = 0x1f83d9abUL; | 50 | c->h[6] = 0x1f83d9abUL; |
| 47 | c->h[7] = 0x5be0cd19UL; | 51 | c->h[7] = 0x5be0cd19UL; |
| 52 | |||
| 48 | c->md_len = SHA256_DIGEST_LENGTH; | 53 | c->md_len = SHA256_DIGEST_LENGTH; |
| 54 | |||
| 49 | return 1; | 55 | return 1; |
| 50 | } | 56 | } |
| 51 | 57 | ||
| @@ -57,10 +63,13 @@ SHA224(const unsigned char *d, size_t n, unsigned char *md) | |||
| 57 | 63 | ||
| 58 | if (md == NULL) | 64 | if (md == NULL) |
| 59 | md = m; | 65 | md = m; |
| 66 | |||
| 60 | SHA224_Init(&c); | 67 | SHA224_Init(&c); |
| 61 | SHA256_Update(&c, d, n); | 68 | SHA256_Update(&c, d, n); |
| 62 | SHA256_Final(md, &c); | 69 | SHA256_Final(md, &c); |
| 70 | |||
| 63 | explicit_bzero(&c, sizeof(c)); | 71 | explicit_bzero(&c, sizeof(c)); |
| 72 | |||
| 64 | return (md); | 73 | return (md); |
| 65 | } | 74 | } |
| 66 | 75 | ||
| @@ -72,10 +81,13 @@ SHA256(const unsigned char *d, size_t n, unsigned char *md) | |||
| 72 | 81 | ||
| 73 | if (md == NULL) | 82 | if (md == NULL) |
| 74 | md = m; | 83 | md = m; |
| 84 | |||
| 75 | SHA256_Init(&c); | 85 | SHA256_Init(&c); |
| 76 | SHA256_Update(&c, d, n); | 86 | SHA256_Update(&c, d, n); |
| 77 | SHA256_Final(md, &c); | 87 | SHA256_Final(md, &c); |
| 88 | |||
| 78 | explicit_bzero(&c, sizeof(c)); | 89 | explicit_bzero(&c, sizeof(c)); |
| 90 | |||
| 79 | return (md); | 91 | return (md); |
| 80 | } | 92 | } |
| 81 | 93 | ||
| @@ -130,9 +142,9 @@ SHA224_Final(unsigned char *md, SHA256_CTX *c) | |||
| 130 | #define HASH_FINAL SHA256_Final | 142 | #define HASH_FINAL SHA256_Final |
| 131 | #define HASH_BLOCK_DATA_ORDER sha256_block_data_order | 143 | #define HASH_BLOCK_DATA_ORDER sha256_block_data_order |
| 132 | #ifndef SHA256_ASM | 144 | #ifndef SHA256_ASM |
| 133 | static | 145 | static |
| 134 | #endif | 146 | #endif |
| 135 | void sha256_block_data_order (SHA256_CTX *ctx, const void *in, size_t num); | 147 | void sha256_block_data_order (SHA256_CTX *ctx, const void *in, size_t num); |
| 136 | 148 | ||
| 137 | #include "md32_common.h" | 149 | #include "md32_common.h" |
| 138 | 150 | ||
| @@ -232,7 +244,6 @@ sha256_block_data_order(SHA256_CTX *ctx, const void *in, size_t num) | |||
| 232 | ctx->h[5] += f; | 244 | ctx->h[5] += f; |
| 233 | ctx->h[6] += g; | 245 | ctx->h[6] += g; |
| 234 | ctx->h[7] += h; | 246 | ctx->h[7] += h; |
| 235 | |||
| 236 | } | 247 | } |
| 237 | } | 248 | } |
| 238 | 249 | ||
