diff options
Diffstat (limited to 'src/lib/libssl/src/apps/genrsa.c')
| -rw-r--r-- | src/lib/libssl/src/apps/genrsa.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/lib/libssl/src/apps/genrsa.c b/src/lib/libssl/src/apps/genrsa.c index fdc0d4a07d..37e9310910 100644 --- a/src/lib/libssl/src/apps/genrsa.c +++ b/src/lib/libssl/src/apps/genrsa.c | |||
| @@ -95,7 +95,6 @@ int MAIN(int argc, char **argv) | |||
| 95 | int ret=1; | 95 | int ret=1; |
| 96 | int i,num=DEFBITS; | 96 | int i,num=DEFBITS; |
| 97 | long l; | 97 | long l; |
| 98 | int use_x931 = 0; | ||
| 99 | const EVP_CIPHER *enc=NULL; | 98 | const EVP_CIPHER *enc=NULL; |
| 100 | unsigned long f4=RSA_F4; | 99 | unsigned long f4=RSA_F4; |
| 101 | char *outfile=NULL; | 100 | char *outfile=NULL; |
| @@ -106,9 +105,9 @@ int MAIN(int argc, char **argv) | |||
| 106 | char *inrand=NULL; | 105 | char *inrand=NULL; |
| 107 | BIO *out=NULL; | 106 | BIO *out=NULL; |
| 108 | BIGNUM *bn = BN_new(); | 107 | BIGNUM *bn = BN_new(); |
| 109 | RSA *rsa = RSA_new(); | 108 | RSA *rsa = NULL; |
| 110 | 109 | ||
| 111 | if(!bn || !rsa) goto err; | 110 | if(!bn) goto err; |
| 112 | 111 | ||
| 113 | apps_startup(); | 112 | apps_startup(); |
| 114 | BN_GENCB_set(&cb, genrsa_cb, bio_err); | 113 | BN_GENCB_set(&cb, genrsa_cb, bio_err); |
| @@ -139,8 +138,6 @@ int MAIN(int argc, char **argv) | |||
| 139 | f4=3; | 138 | f4=3; |
| 140 | else if (strcmp(*argv,"-F4") == 0 || strcmp(*argv,"-f4") == 0) | 139 | else if (strcmp(*argv,"-F4") == 0 || strcmp(*argv,"-f4") == 0) |
| 141 | f4=RSA_F4; | 140 | f4=RSA_F4; |
| 142 | else if (strcmp(*argv,"-x931") == 0) | ||
| 143 | use_x931 = 1; | ||
| 144 | #ifndef OPENSSL_NO_ENGINE | 141 | #ifndef OPENSSL_NO_ENGINE |
| 145 | else if (strcmp(*argv,"-engine") == 0) | 142 | else if (strcmp(*argv,"-engine") == 0) |
| 146 | { | 143 | { |
| @@ -268,18 +265,15 @@ bad: | |||
| 268 | 265 | ||
| 269 | BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n", | 266 | BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n", |
| 270 | num); | 267 | num); |
| 268 | #ifdef OPENSSL_NO_ENGINE | ||
| 269 | rsa = RSA_new(); | ||
| 270 | #else | ||
| 271 | rsa = RSA_new_method(e); | ||
| 272 | #endif | ||
| 273 | if (!rsa) | ||
| 274 | goto err; | ||
| 271 | 275 | ||
| 272 | if (use_x931) | 276 | if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, &cb)) |
| 273 | { | ||
| 274 | BIGNUM *pubexp; | ||
| 275 | pubexp = BN_new(); | ||
| 276 | if (!BN_set_word(pubexp, f4)) | ||
| 277 | goto err; | ||
| 278 | if (!RSA_X931_generate_key_ex(rsa, num, pubexp, &cb)) | ||
| 279 | goto err; | ||
| 280 | BN_free(pubexp); | ||
| 281 | } | ||
| 282 | else if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, &cb)) | ||
| 283 | goto err; | 277 | goto err; |
| 284 | 278 | ||
| 285 | app_RAND_write_file(NULL, bio_err); | 279 | app_RAND_write_file(NULL, bio_err); |
