@@ -236,6 +236,7 @@ static BIO *bio_c_msg = NULL;
|
236 | 236 | static int c_quiet = 0; |
237 | 237 | static int c_ign_eof = 0; |
238 | 238 | static int c_brief = 0; |
| 239 | +static int c_no_rand_screen = 0; |
239 | 240 | |
240 | 241 | #ifndef OPENSSL_NO_PSK |
241 | 242 | /* Default PSK identity and key */ |
@@ -451,6 +452,10 @@ static void sc_usage(void)
|
451 | 452 | " -keymatexport label - Export keying material using label\n"); |
452 | 453 | BIO_printf(bio_err, |
453 | 454 | " -keymatexportlen len - Export len bytes of keying material (default 20)\n"); |
| 455 | +#ifdef OPENSSL_SYS_WINDOWS |
| 456 | +BIO_printf(bio_err, |
| 457 | +" -no_rand_screen - Do not use RAND_screen() to initialize random state\n"); |
| 458 | +#endif |
454 | 459 | } |
455 | 460 | |
456 | 461 | #ifndef OPENSSL_NO_TLSEXT |
@@ -1143,6 +1148,10 @@ int MAIN(int argc, char **argv)
|
1143 | 1148 | keymatexportlen = atoi(*(++argv)); |
1144 | 1149 | if (keymatexportlen == 0) |
1145 | 1150 | goto bad; |
| 1151 | +#ifdef OPENSSL_SYS_WINDOWS |
| 1152 | + } else if (strcmp(*argv, "-no_rand_screen") == 0) { |
| 1153 | +c_no_rand_screen = 1; |
| 1154 | +#endif |
1146 | 1155 | } else { |
1147 | 1156 | BIO_printf(bio_err, "unknown option %s\n", *argv); |
1148 | 1157 | badop = 1; |
@@ -1259,7 +1268,7 @@ int MAIN(int argc, char **argv)
|
1259 | 1268 | if (!load_excert(&exc, bio_err)) |
1260 | 1269 | goto end; |
1261 | 1270 | |
1262 | | - if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL |
| 1271 | +if (!app_RAND_load_file(NULL, bio_err, ++c_no_rand_screen) && inrand == NULL |
1263 | 1272 | && !RAND_status()) { |
1264 | 1273 | BIO_printf(bio_err, |
1265 | 1274 | "warning, not much extra random data, consider using the -rand option\n"); |
|