summaryrefslogtreecommitdiffstats
path: root/apps/smime.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/smime.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/smime.c')
-rw-r--r--apps/smime.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/apps/smime.c b/apps/smime.c
index bb8ecd7cf0..f3a1ad56b8 100644
--- a/apps/smime.c
+++ b/apps/smime.c
@@ -63,6 +63,7 @@
#include "apps.h"
#include <openssl/crypto.h>
#include <openssl/pem.h>
+#include <openssl/rand.h>
#include <openssl/err.h>
#undef PROG
@@ -100,7 +101,7 @@ int MAIN(int argc, char **argv)
char *to = NULL, *from = NULL, *subject = NULL;
char *CAfile = NULL, *CApath = NULL;
char *passargin = NULL, *passin = NULL;
- char *inrand = NULL;
+ char *inrand = NULL,*inegd=NULL;
int need_rand = 0;
args = argv + 1;
@@ -150,6 +151,12 @@ int MAIN(int argc, char **argv)
inrand = *args;
} else badarg = 1;
need_rand = 1;
+ } else if (!strcmp(*args,"-egd")) {
+ if (args[1]) {
+ args++;
+ inegd = *args;
+ } else badarg = 1;
+ need_rand = 1;
} else if (!strcmp(*args,"-passin")) {
if (args[1]) {
args++;
@@ -272,6 +279,7 @@ int MAIN(int argc, char **argv)
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, "cert.pem recipient certificate(s) for encryption\n");
goto end;
}
@@ -282,10 +290,13 @@ int MAIN(int argc, char **argv)
}
if (need_rand) {
- app_RAND_load_file(NULL, bio_err, (inrand != NULL));
+ app_RAND_load_file(NULL, bio_err, (inrand != NULL || inegd != NULL));
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));
}
ret = 2;