summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/sha/sha256.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/sha/sha256.c')
-rw-r--r--src/lib/libcrypto/sha/sha256.c19
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
21SHA224_Init(SHA256_CTX *c) 21SHA224_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
37SHA256_Init(SHA256_CTX *c) 40SHA256_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 145static
134#endif 146#endif
135 void sha256_block_data_order (SHA256_CTX *ctx, const void *in, size_t num); 147void 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