summaryrefslogtreecommitdiffstats
path: root/apps/genrsa.c
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2000-06-28 16:10:56 +0000
committerRichard Levitte <levitte@openssl.org>2000-06-28 16:10:56 +0000
commit20d242b0dee75830b104109c6fd5955a4ce35840 (patch)
tree018296e1c84d26f54c893ea16e5a531a5159c96b /apps/genrsa.c
parentdffd72f171fba5ab14ca86aafc5d5eba131206ad (diff)
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/genrsa.c')
-rw-r--r--apps/genrsa.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/apps/genrsa.c b/apps/genrsa.c
index 5cf47e6921..3a9995b820 100644
--- a/apps/genrsa.c
+++ b/apps/genrsa.c
@@ -69,6 +69,7 @@
#include <openssl/evp.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
+#include <openssl/rand.h>
#define DEFBITS 512
#undef PROG
@@ -88,7 +89,7 @@ int MAIN(int argc, char **argv)
unsigned long f4=RSA_F4;
char *outfile=NULL;
char *passargout = NULL, *passout = NULL;
- char *inrand=NULL;
+ char *inrand=NULL,*inegd=NULL;
BIO *out=NULL;
apps_startup();
@@ -121,6 +122,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);
+ }
#ifndef NO_DES
else if (strcmp(*argv,"-des") == 0)
enc=EVP_des_cbc();
@@ -157,6 +163,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");
goto err;
}
@@ -178,13 +185,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 RSA private key, %d bit long modulus\n",
num);