OLD | NEW |
1 /* crypto/evp/m_sha1.c */ | 1 /* crypto/evp/m_sha1.c */ |
2 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 * All rights reserved. | 3 * All rights reserved. |
4 * | 4 * |
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 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 | 61 |
62 #ifndef OPENSSL_NO_SHA | 62 #ifndef OPENSSL_NO_SHA |
63 | 63 |
64 #include <openssl/evp.h> | 64 #include <openssl/evp.h> |
65 #include <openssl/objects.h> | 65 #include <openssl/objects.h> |
66 #include <openssl/x509.h> | 66 #include <openssl/x509.h> |
67 #ifndef OPENSSL_NO_RSA | 67 #ifndef OPENSSL_NO_RSA |
68 #include <openssl/rsa.h> | 68 #include <openssl/rsa.h> |
69 #endif | 69 #endif |
70 | 70 |
71 #ifndef OPENSSL_FIPS | |
72 | |
73 static int init(EVP_MD_CTX *ctx) | 71 static int init(EVP_MD_CTX *ctx) |
74 { return SHA1_Init(ctx->md_data); } | 72 { return SHA1_Init(ctx->md_data); } |
75 | 73 |
76 static int update(EVP_MD_CTX *ctx,const void *data,size_t count) | 74 static int update(EVP_MD_CTX *ctx,const void *data,size_t count) |
77 { return SHA1_Update(ctx->md_data,data,count); } | 75 { return SHA1_Update(ctx->md_data,data,count); } |
78 | 76 |
79 static int final(EVP_MD_CTX *ctx,unsigned char *md) | 77 static int final(EVP_MD_CTX *ctx,unsigned char *md) |
80 { return SHA1_Final(md,ctx->md_data); } | 78 { return SHA1_Final(md,ctx->md_data); } |
81 | 79 |
82 static const EVP_MD sha1_md= | 80 static const EVP_MD sha1_md= |
83 { | 81 { |
84 NID_sha1, | 82 NID_sha1, |
85 NID_sha1WithRSAEncryption, | 83 NID_sha1WithRSAEncryption, |
86 SHA_DIGEST_LENGTH, | 84 SHA_DIGEST_LENGTH, |
87 » 0, | 85 » EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, |
88 init, | 86 init, |
89 update, | 87 update, |
90 final, | 88 final, |
91 NULL, | 89 NULL, |
92 NULL, | 90 NULL, |
93 EVP_PKEY_RSA_method, | 91 EVP_PKEY_RSA_method, |
94 SHA_CBLOCK, | 92 SHA_CBLOCK, |
95 sizeof(EVP_MD *)+sizeof(SHA_CTX), | 93 sizeof(EVP_MD *)+sizeof(SHA_CTX), |
96 }; | 94 }; |
97 | 95 |
98 const EVP_MD *EVP_sha1(void) | 96 const EVP_MD *EVP_sha1(void) |
99 { | 97 { |
100 return(&sha1_md); | 98 return(&sha1_md); |
101 } | 99 } |
| 100 #endif |
102 | 101 |
103 #ifndef OPENSSL_NO_SHA256 | 102 #ifndef OPENSSL_NO_SHA256 |
104 static int init224(EVP_MD_CTX *ctx) | 103 static int init224(EVP_MD_CTX *ctx) |
105 { return SHA224_Init(ctx->md_data); } | 104 { return SHA224_Init(ctx->md_data); } |
106 static int init256(EVP_MD_CTX *ctx) | 105 static int init256(EVP_MD_CTX *ctx) |
107 { return SHA256_Init(ctx->md_data); } | 106 { return SHA256_Init(ctx->md_data); } |
108 /* | 107 /* |
109 * Even though there're separate SHA224_[Update|Final], we call | 108 * Even though there're separate SHA224_[Update|Final], we call |
110 * SHA256 functions even in SHA224 context. This is what happens | 109 * SHA256 functions even in SHA224 context. This is what happens |
111 * there anyway, so we can spare few CPU cycles:-) | 110 * there anyway, so we can spare few CPU cycles:-) |
112 */ | 111 */ |
113 static int update256(EVP_MD_CTX *ctx,const void *data,size_t count) | 112 static int update256(EVP_MD_CTX *ctx,const void *data,size_t count) |
114 { return SHA256_Update(ctx->md_data,data,count); } | 113 { return SHA256_Update(ctx->md_data,data,count); } |
115 static int final256(EVP_MD_CTX *ctx,unsigned char *md) | 114 static int final256(EVP_MD_CTX *ctx,unsigned char *md) |
116 { return SHA256_Final(md,ctx->md_data); } | 115 { return SHA256_Final(md,ctx->md_data); } |
117 | 116 |
118 static const EVP_MD sha224_md= | 117 static const EVP_MD sha224_md= |
119 { | 118 { |
120 NID_sha224, | 119 NID_sha224, |
121 NID_sha224WithRSAEncryption, | 120 NID_sha224WithRSAEncryption, |
122 SHA224_DIGEST_LENGTH, | 121 SHA224_DIGEST_LENGTH, |
123 » 0, | 122 » EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, |
124 init224, | 123 init224, |
125 update256, | 124 update256, |
126 final256, | 125 final256, |
127 NULL, | 126 NULL, |
128 NULL, | 127 NULL, |
129 EVP_PKEY_RSA_method, | 128 EVP_PKEY_RSA_method, |
130 SHA256_CBLOCK, | 129 SHA256_CBLOCK, |
131 sizeof(EVP_MD *)+sizeof(SHA256_CTX), | 130 sizeof(EVP_MD *)+sizeof(SHA256_CTX), |
132 }; | 131 }; |
133 | 132 |
134 const EVP_MD *EVP_sha224(void) | 133 const EVP_MD *EVP_sha224(void) |
135 { return(&sha224_md); } | 134 { return(&sha224_md); } |
136 | 135 |
137 static const EVP_MD sha256_md= | 136 static const EVP_MD sha256_md= |
138 { | 137 { |
139 NID_sha256, | 138 NID_sha256, |
140 NID_sha256WithRSAEncryption, | 139 NID_sha256WithRSAEncryption, |
141 SHA256_DIGEST_LENGTH, | 140 SHA256_DIGEST_LENGTH, |
142 » 0, | 141 » EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, |
143 init256, | 142 init256, |
144 update256, | 143 update256, |
145 final256, | 144 final256, |
146 NULL, | 145 NULL, |
147 NULL, | 146 NULL, |
148 EVP_PKEY_RSA_method, | 147 EVP_PKEY_RSA_method, |
149 SHA256_CBLOCK, | 148 SHA256_CBLOCK, |
150 sizeof(EVP_MD *)+sizeof(SHA256_CTX), | 149 sizeof(EVP_MD *)+sizeof(SHA256_CTX), |
151 }; | 150 }; |
152 | 151 |
(...skipping 10 matching lines...) Expand all Loading... |
163 static int update512(EVP_MD_CTX *ctx,const void *data,size_t count) | 162 static int update512(EVP_MD_CTX *ctx,const void *data,size_t count) |
164 { return SHA512_Update(ctx->md_data,data,count); } | 163 { return SHA512_Update(ctx->md_data,data,count); } |
165 static int final512(EVP_MD_CTX *ctx,unsigned char *md) | 164 static int final512(EVP_MD_CTX *ctx,unsigned char *md) |
166 { return SHA512_Final(md,ctx->md_data); } | 165 { return SHA512_Final(md,ctx->md_data); } |
167 | 166 |
168 static const EVP_MD sha384_md= | 167 static const EVP_MD sha384_md= |
169 { | 168 { |
170 NID_sha384, | 169 NID_sha384, |
171 NID_sha384WithRSAEncryption, | 170 NID_sha384WithRSAEncryption, |
172 SHA384_DIGEST_LENGTH, | 171 SHA384_DIGEST_LENGTH, |
173 » 0, | 172 » EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, |
174 init384, | 173 init384, |
175 update512, | 174 update512, |
176 final512, | 175 final512, |
177 NULL, | 176 NULL, |
178 NULL, | 177 NULL, |
179 EVP_PKEY_RSA_method, | 178 EVP_PKEY_RSA_method, |
180 SHA512_CBLOCK, | 179 SHA512_CBLOCK, |
181 sizeof(EVP_MD *)+sizeof(SHA512_CTX), | 180 sizeof(EVP_MD *)+sizeof(SHA512_CTX), |
182 }; | 181 }; |
183 | 182 |
184 const EVP_MD *EVP_sha384(void) | 183 const EVP_MD *EVP_sha384(void) |
185 { return(&sha384_md); } | 184 { return(&sha384_md); } |
186 | 185 |
187 static const EVP_MD sha512_md= | 186 static const EVP_MD sha512_md= |
188 { | 187 { |
189 NID_sha512, | 188 NID_sha512, |
190 NID_sha512WithRSAEncryption, | 189 NID_sha512WithRSAEncryption, |
191 SHA512_DIGEST_LENGTH, | 190 SHA512_DIGEST_LENGTH, |
192 » 0, | 191 » EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, |
193 init512, | 192 init512, |
194 update512, | 193 update512, |
195 final512, | 194 final512, |
196 NULL, | 195 NULL, |
197 NULL, | 196 NULL, |
198 EVP_PKEY_RSA_method, | 197 EVP_PKEY_RSA_method, |
199 SHA512_CBLOCK, | 198 SHA512_CBLOCK, |
200 sizeof(EVP_MD *)+sizeof(SHA512_CTX), | 199 sizeof(EVP_MD *)+sizeof(SHA512_CTX), |
201 }; | 200 }; |
202 | 201 |
203 const EVP_MD *EVP_sha512(void) | 202 const EVP_MD *EVP_sha512(void) |
204 { return(&sha512_md); } | 203 { return(&sha512_md); } |
205 #endif /* ifndef OPENSSL_NO_SHA512 */ | 204 #endif /* ifndef OPENSSL_NO_SHA512 */ |
206 | |
207 #endif | |
208 | |
209 #endif | |
OLD | NEW |