summaryrefslogtreecommitdiffstats
path: root/apps/smime.c
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2000-06-28 18:10:56 +0200
committerRichard Levitte <levitte@openssl.org>2000-06-28 18:10:56 +0200
commit20d242b0dee75830b104109c6fd5955a4ce35840 (patch)
tree018296e1c84d26f54c893ea16e5a531a5159c96b /apps/smime.c
parentMake it possible for people to tell where the EGD socket is through (diff)
downloadopenssl-20d242b0dee75830b104109c6fd5955a4ce35840.tar.xz
openssl-20d242b0dee75830b104109c6fd5955a4ce35840.zip
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;