diff options
| author | djm <> | 2009-01-09 12:14:09 +0000 |
|---|---|---|
| committer | djm <> | 2009-01-09 12:14:09 +0000 |
| commit | c38e9fa1885187364cfeba026e9bf38d6845886f (patch) | |
| tree | 9b645adc5cf0aa0820e1501ee5c6f2c41c454e7c /src/lib/libssl/src/apps/genrsa.c | |
| parent | 221e4bfdc56c7ec8942006900694c958c515c143 (diff) | |
| download | openbsd-c38e9fa1885187364cfeba026e9bf38d6845886f.tar.gz openbsd-c38e9fa1885187364cfeba026e9bf38d6845886f.tar.bz2 openbsd-c38e9fa1885187364cfeba026e9bf38d6845886f.zip | |
import openssl-0.9.8j
Diffstat (limited to 'src/lib/libssl/src/apps/genrsa.c')
| -rw-r--r-- | src/lib/libssl/src/apps/genrsa.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/lib/libssl/src/apps/genrsa.c b/src/lib/libssl/src/apps/genrsa.c index 1599bb7a69..fdc0d4a07d 100644 --- a/src/lib/libssl/src/apps/genrsa.c +++ b/src/lib/libssl/src/apps/genrsa.c | |||
| @@ -95,6 +95,7 @@ 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; | ||
| 98 | const EVP_CIPHER *enc=NULL; | 99 | const EVP_CIPHER *enc=NULL; |
| 99 | unsigned long f4=RSA_F4; | 100 | unsigned long f4=RSA_F4; |
| 100 | char *outfile=NULL; | 101 | char *outfile=NULL; |
| @@ -138,6 +139,8 @@ int MAIN(int argc, char **argv) | |||
| 138 | f4=3; | 139 | f4=3; |
| 139 | else if (strcmp(*argv,"-F4") == 0 || strcmp(*argv,"-f4") == 0) | 140 | else if (strcmp(*argv,"-F4") == 0 || strcmp(*argv,"-f4") == 0) |
| 140 | f4=RSA_F4; | 141 | f4=RSA_F4; |
| 142 | else if (strcmp(*argv,"-x931") == 0) | ||
| 143 | use_x931 = 1; | ||
| 141 | #ifndef OPENSSL_NO_ENGINE | 144 | #ifndef OPENSSL_NO_ENGINE |
| 142 | else if (strcmp(*argv,"-engine") == 0) | 145 | else if (strcmp(*argv,"-engine") == 0) |
| 143 | { | 146 | { |
| @@ -266,7 +269,17 @@ bad: | |||
| 266 | BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n", | 269 | BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n", |
| 267 | num); | 270 | num); |
| 268 | 271 | ||
| 269 | if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, &cb)) | 272 | if (use_x931) |
| 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)) | ||
| 270 | goto err; | 283 | goto err; |
| 271 | 284 | ||
| 272 | app_RAND_write_file(NULL, bio_err); | 285 | app_RAND_write_file(NULL, bio_err); |
