diff options
author | Richard Levitte <levitte@openssl.org> | 2000-06-28 16:10:56 +0000 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2000-06-28 16:10:56 +0000 |
commit | 20d242b0dee75830b104109c6fd5955a4ce35840 (patch) | |
tree | 018296e1c84d26f54c893ea16e5a531a5159c96b /apps/gendsa.c | |
parent | dffd72f171fba5ab14ca86aafc5d5eba131206ad (diff) | |
download | openssl-new-20d242b0dee75830b104109c6fd5955a4ce35840.tar.gz |
Make it possible for users of the openssl applications to specify the
EGD should be used as seeding input, and where the named socket is.
Diffstat (limited to 'apps/gendsa.c')
-rw-r--r-- | apps/gendsa.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/apps/gendsa.c b/apps/gendsa.c index 1937613849..dd83d1bf0f 100644 --- a/apps/gendsa.c +++ b/apps/gendsa.c @@ -68,6 +68,7 @@ #include <openssl/dsa.h> #include <openssl/x509.h> #include <openssl/pem.h> +#include <openssl/rand.h> #define DEFBITS 512 #undef PROG @@ -80,7 +81,7 @@ int MAIN(int argc, char **argv) DSA *dsa=NULL; int ret=1; char *outfile=NULL; - char *inrand=NULL,*dsaparams=NULL; + char *inrand=NULL,*inegd=NULL,*dsaparams=NULL; char *passargout = NULL, *passout = NULL; BIO *out=NULL,*in=NULL; EVP_CIPHER *enc=NULL; @@ -111,6 +112,11 @@ int MAIN(int argc, char **argv) if (--argc < 1) goto bad; inrand= *(++argv); } + else if (strcmp(*argv,"-egd") == 0) + { + if (--argc < 1) goto bad; + inegd= *(++argv); + } else if (strcmp(*argv,"-") == 0) goto bad; #ifndef NO_DES @@ -148,6 +154,7 @@ bad: BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR); BIO_printf(bio_err," - load the file (or the files in the directory) into\n"); BIO_printf(bio_err," the random number generator\n"); + BIO_printf(bio_err," -egd file - load random seed from EGD socket\n"); BIO_printf(bio_err," dsaparam-file\n"); BIO_printf(bio_err," - a DSA parameter file as generated by the dsaparam command\n"); goto end; @@ -188,13 +195,16 @@ bad: } } - if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL) + if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL && inegd == NULL) { BIO_printf(bio_err,"warning, not much extra random data, consider using the -rand option\n"); } if (inrand != NULL) BIO_printf(bio_err,"%ld semi-random bytes loaded\n", app_RAND_load_files(inrand)); + if (inegd != NULL) + BIO_printf(bio_err,"%ld egd bytes loaded\n", + RAND_egd(inegd)); BIO_printf(bio_err,"Generating DSA key, %d bits\n", BN_num_bits(dsa->p)); |