diff options
Diffstat (limited to 'src/lib/libcrypto/dsa/dsa_gen.c')
| -rw-r--r-- | src/lib/libcrypto/dsa/dsa_gen.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/lib/libcrypto/dsa/dsa_gen.c b/src/lib/libcrypto/dsa/dsa_gen.c index 2294a362d9..dc9c249310 100644 --- a/src/lib/libcrypto/dsa/dsa_gen.c +++ b/src/lib/libcrypto/dsa/dsa_gen.c | |||
| @@ -61,25 +61,27 @@ | |||
| 61 | #ifdef GENUINE_DSA | 61 | #ifdef GENUINE_DSA |
| 62 | /* Parameter generation follows the original release of FIPS PUB 186, | 62 | /* Parameter generation follows the original release of FIPS PUB 186, |
| 63 | * Appendix 2.2 (i.e. use SHA as defined in FIPS PUB 180) */ | 63 | * Appendix 2.2 (i.e. use SHA as defined in FIPS PUB 180) */ |
| 64 | #define HASH SHA | 64 | #define HASH EVP_sha() |
| 65 | #else | 65 | #else |
| 66 | /* Parameter generation follows the updated Appendix 2.2 for FIPS PUB 186, | 66 | /* Parameter generation follows the updated Appendix 2.2 for FIPS PUB 186, |
| 67 | * also Appendix 2.2 of FIPS PUB 186-1 (i.e. use SHA as defined in | 67 | * also Appendix 2.2 of FIPS PUB 186-1 (i.e. use SHA as defined in |
| 68 | * FIPS PUB 180-1) */ | 68 | * FIPS PUB 180-1) */ |
| 69 | #define HASH SHA1 | 69 | #define HASH EVP_sha1() |
| 70 | #endif | 70 | #endif |
| 71 | 71 | ||
| 72 | #ifndef NO_SHA | 72 | #ifndef OPENSSL_NO_SHA |
| 73 | 73 | ||
| 74 | #include <stdio.h> | 74 | #include <stdio.h> |
| 75 | #include <time.h> | 75 | #include <time.h> |
| 76 | #include "cryptlib.h" | 76 | #include "cryptlib.h" |
| 77 | #include <openssl/sha.h> | 77 | #include <openssl/evp.h> |
| 78 | #include <openssl/bn.h> | 78 | #include <openssl/bn.h> |
| 79 | #include <openssl/dsa.h> | 79 | #include <openssl/dsa.h> |
| 80 | #include <openssl/rand.h> | 80 | #include <openssl/rand.h> |
| 81 | #include <openssl/sha.h> | ||
| 81 | 82 | ||
| 82 | DSA *DSA_generate_parameters(int bits, unsigned char *seed_in, int seed_len, | 83 | DSA *DSA_generate_parameters(int bits, |
| 84 | unsigned char *seed_in, int seed_len, | ||
| 83 | int *counter_ret, unsigned long *h_ret, | 85 | int *counter_ret, unsigned long *h_ret, |
| 84 | void (*callback)(int, int, void *), | 86 | void (*callback)(int, int, void *), |
| 85 | void *cb_arg) | 87 | void *cb_arg) |
| @@ -157,8 +159,8 @@ DSA *DSA_generate_parameters(int bits, unsigned char *seed_in, int seed_len, | |||
| 157 | } | 159 | } |
| 158 | 160 | ||
| 159 | /* step 2 */ | 161 | /* step 2 */ |
| 160 | HASH(seed,SHA_DIGEST_LENGTH,md); | 162 | EVP_Digest(seed,SHA_DIGEST_LENGTH,md,NULL,HASH, NULL); |
| 161 | HASH(buf,SHA_DIGEST_LENGTH,buf2); | 163 | EVP_Digest(buf,SHA_DIGEST_LENGTH,buf2,NULL,HASH, NULL); |
| 162 | for (i=0; i<SHA_DIGEST_LENGTH; i++) | 164 | for (i=0; i<SHA_DIGEST_LENGTH; i++) |
| 163 | md[i]^=buf2[i]; | 165 | md[i]^=buf2[i]; |
| 164 | 166 | ||
| @@ -205,7 +207,7 @@ DSA *DSA_generate_parameters(int bits, unsigned char *seed_in, int seed_len, | |||
| 205 | if (buf[i] != 0) break; | 207 | if (buf[i] != 0) break; |
| 206 | } | 208 | } |
| 207 | 209 | ||
| 208 | HASH(buf,SHA_DIGEST_LENGTH,md); | 210 | EVP_Digest(buf,SHA_DIGEST_LENGTH,md,NULL,HASH, NULL); |
| 209 | 211 | ||
| 210 | /* step 8 */ | 212 | /* step 8 */ |
| 211 | if (!BN_bin2bn(md,SHA_DIGEST_LENGTH,r0)) | 213 | if (!BN_bin2bn(md,SHA_DIGEST_LENGTH,r0)) |
