summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp/m_sha1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/evp/m_sha1.c')
-rw-r--r--src/lib/libcrypto/evp/m_sha1.c134
1 files changed, 80 insertions, 54 deletions
diff --git a/src/lib/libcrypto/evp/m_sha1.c b/src/lib/libcrypto/evp/m_sha1.c
index f39ae77925..8c7e4eb222 100644
--- a/src/lib/libcrypto/evp/m_sha1.c
+++ b/src/lib/libcrypto/evp/m_sha1.c
@@ -5,21 +5,21 @@
5 * This package is an SSL implementation written 5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com). 6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL. 7 * The implementation was written so as to conform with Netscapes SSL.
8 * 8 *
9 * This library is free for commercial and non-commercial use as long as 9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions 10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA, 11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms 13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 * 15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in 16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed. 17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution 18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used. 19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or 20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package. 21 * in documentation (online or textual) provided with the package.
22 * 22 *
23 * Redistribution and use in source and binary forms, with or without 23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions 24 * modification, are permitted provided that the following conditions
25 * are met: 25 * are met:
@@ -34,10 +34,10 @@
34 * Eric Young (eay@cryptsoft.com)" 34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library 35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-). 36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from 37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement: 38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 * 40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE. 51 * SUCH DAMAGE.
52 * 52 *
53 * The licence and distribution terms for any publically available version or 53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be 54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence 55 * copied and put under another distribution licence
@@ -70,16 +70,21 @@
70 70
71 71
72static int init(EVP_MD_CTX *ctx) 72static int init(EVP_MD_CTX *ctx)
73 { return SHA1_Init(ctx->md_data); } 73{
74 return SHA1_Init(ctx->md_data);
75}
74 76
75static int update(EVP_MD_CTX *ctx,const void *data,size_t count) 77static int update(EVP_MD_CTX *ctx, const void *data, size_t count)
76 { return SHA1_Update(ctx->md_data,data,count); } 78{
79 return SHA1_Update(ctx->md_data, data, count);
80}
77 81
78static int final(EVP_MD_CTX *ctx,unsigned char *md) 82static int final(EVP_MD_CTX *ctx, unsigned char *md)
79 { return SHA1_Final(md,ctx->md_data); } 83{
84 return SHA1_Final(md, ctx->md_data);
85}
80 86
81static const EVP_MD sha1_md= 87static const EVP_MD sha1_md = {
82 {
83 NID_sha1, 88 NID_sha1,
84 NID_sha1WithRSAEncryption, 89 NID_sha1WithRSAEncryption,
85 SHA_DIGEST_LENGTH, 90 SHA_DIGEST_LENGTH,
@@ -91,32 +96,40 @@ static const EVP_MD sha1_md=
91 NULL, 96 NULL,
92 EVP_PKEY_RSA_method, 97 EVP_PKEY_RSA_method,
93 SHA_CBLOCK, 98 SHA_CBLOCK,
94 sizeof(EVP_MD *)+sizeof(SHA_CTX), 99 sizeof(EVP_MD *) + sizeof(SHA_CTX),
95 }; 100};
96 101
97const EVP_MD *EVP_sha1(void) 102const EVP_MD *
98 { 103EVP_sha1(void)
99 return(&sha1_md); 104{
100 } 105 return (&sha1_md);
106}
101#endif 107#endif
102 108
103#ifndef OPENSSL_NO_SHA256 109#ifndef OPENSSL_NO_SHA256
104static int init224(EVP_MD_CTX *ctx) 110static int init224(EVP_MD_CTX *ctx)
105 { return SHA224_Init(ctx->md_data); } 111{
112 return SHA224_Init(ctx->md_data);
113}
106static int init256(EVP_MD_CTX *ctx) 114static int init256(EVP_MD_CTX *ctx)
107 { return SHA256_Init(ctx->md_data); } 115{
116 return SHA256_Init(ctx->md_data);
117}
108/* 118/*
109 * Even though there're separate SHA224_[Update|Final], we call 119 * Even though there're separate SHA224_[Update|Final], we call
110 * SHA256 functions even in SHA224 context. This is what happens 120 * SHA256 functions even in SHA224 context. This is what happens
111 * there anyway, so we can spare few CPU cycles:-) 121 * there anyway, so we can spare few CPU cycles:-)
112 */ 122 */
113static int update256(EVP_MD_CTX *ctx,const void *data,size_t count) 123static int update256(EVP_MD_CTX *ctx, const void *data, size_t count)
114 { return SHA256_Update(ctx->md_data,data,count); } 124{
115static int final256(EVP_MD_CTX *ctx,unsigned char *md) 125 return SHA256_Update(ctx->md_data, data, count);
116 { return SHA256_Final(md,ctx->md_data); } 126}
117 127static int final256(EVP_MD_CTX *ctx, unsigned char *md)
118static const EVP_MD sha224_md= 128{
119 { 129 return SHA256_Final(md, ctx->md_data);
130}
131
132static const EVP_MD sha224_md = {
120 NID_sha224, 133 NID_sha224,
121 NID_sha224WithRSAEncryption, 134 NID_sha224WithRSAEncryption,
122 SHA224_DIGEST_LENGTH, 135 SHA224_DIGEST_LENGTH,
@@ -128,14 +141,15 @@ static const EVP_MD sha224_md=
128 NULL, 141 NULL,
129 EVP_PKEY_RSA_method, 142 EVP_PKEY_RSA_method,
130 SHA256_CBLOCK, 143 SHA256_CBLOCK,
131 sizeof(EVP_MD *)+sizeof(SHA256_CTX), 144 sizeof(EVP_MD *) + sizeof(SHA256_CTX),
132 }; 145};
133 146
134const EVP_MD *EVP_sha224(void) 147const EVP_MD *EVP_sha224(void)
135 { return(&sha224_md); } 148{
149 return (&sha224_md);
150}
136 151
137static const EVP_MD sha256_md= 152static const EVP_MD sha256_md = {
138 {
139 NID_sha256, 153 NID_sha256,
140 NID_sha256WithRSAEncryption, 154 NID_sha256WithRSAEncryption,
141 SHA256_DIGEST_LENGTH, 155 SHA256_DIGEST_LENGTH,
@@ -147,26 +161,35 @@ static const EVP_MD sha256_md=
147 NULL, 161 NULL,
148 EVP_PKEY_RSA_method, 162 EVP_PKEY_RSA_method,
149 SHA256_CBLOCK, 163 SHA256_CBLOCK,
150 sizeof(EVP_MD *)+sizeof(SHA256_CTX), 164 sizeof(EVP_MD *) + sizeof(SHA256_CTX),
151 }; 165};
152 166
153const EVP_MD *EVP_sha256(void) 167const EVP_MD *EVP_sha256(void)
154 { return(&sha256_md); } 168{
169 return (&sha256_md);
170}
155#endif /* ifndef OPENSSL_NO_SHA256 */ 171#endif /* ifndef OPENSSL_NO_SHA256 */
156 172
157#ifndef OPENSSL_NO_SHA512 173#ifndef OPENSSL_NO_SHA512
158static int init384(EVP_MD_CTX *ctx) 174static int init384(EVP_MD_CTX *ctx)
159 { return SHA384_Init(ctx->md_data); } 175{
176 return SHA384_Init(ctx->md_data);
177}
160static int init512(EVP_MD_CTX *ctx) 178static int init512(EVP_MD_CTX *ctx)
161 { return SHA512_Init(ctx->md_data); } 179{
180 return SHA512_Init(ctx->md_data);
181}
162/* See comment in SHA224/256 section */ 182/* See comment in SHA224/256 section */
163static int update512(EVP_MD_CTX *ctx,const void *data,size_t count) 183static int update512(EVP_MD_CTX *ctx, const void *data, size_t count)
164 { return SHA512_Update(ctx->md_data,data,count); } 184{
165static int final512(EVP_MD_CTX *ctx,unsigned char *md) 185 return SHA512_Update(ctx->md_data, data, count);
166 { return SHA512_Final(md,ctx->md_data); } 186}
167 187static int final512(EVP_MD_CTX *ctx, unsigned char *md)
168static const EVP_MD sha384_md= 188{
169 { 189 return SHA512_Final(md, ctx->md_data);
190}
191
192static const EVP_MD sha384_md = {
170 NID_sha384, 193 NID_sha384,
171 NID_sha384WithRSAEncryption, 194 NID_sha384WithRSAEncryption,
172 SHA384_DIGEST_LENGTH, 195 SHA384_DIGEST_LENGTH,
@@ -178,14 +201,15 @@ static const EVP_MD sha384_md=
178 NULL, 201 NULL,
179 EVP_PKEY_RSA_method, 202 EVP_PKEY_RSA_method,
180 SHA512_CBLOCK, 203 SHA512_CBLOCK,
181 sizeof(EVP_MD *)+sizeof(SHA512_CTX), 204 sizeof(EVP_MD *) + sizeof(SHA512_CTX),
182 }; 205};
183 206
184const EVP_MD *EVP_sha384(void) 207const EVP_MD *EVP_sha384(void)
185 { return(&sha384_md); } 208{
209 return (&sha384_md);
210}
186 211
187static const EVP_MD sha512_md= 212static const EVP_MD sha512_md = {
188 {
189 NID_sha512, 213 NID_sha512,
190 NID_sha512WithRSAEncryption, 214 NID_sha512WithRSAEncryption,
191 SHA512_DIGEST_LENGTH, 215 SHA512_DIGEST_LENGTH,
@@ -197,9 +221,11 @@ static const EVP_MD sha512_md=
197 NULL, 221 NULL,
198 EVP_PKEY_RSA_method, 222 EVP_PKEY_RSA_method,
199 SHA512_CBLOCK, 223 SHA512_CBLOCK,
200 sizeof(EVP_MD *)+sizeof(SHA512_CTX), 224 sizeof(EVP_MD *) + sizeof(SHA512_CTX),
201 }; 225};
202 226
203const EVP_MD *EVP_sha512(void) 227const EVP_MD *EVP_sha512(void)
204 { return(&sha512_md); } 228{
229 return (&sha512_md);
230}
205#endif /* ifndef OPENSSL_NO_SHA512 */ 231#endif /* ifndef OPENSSL_NO_SHA512 */