deps: add -no_rand_screen to openssl s_client · nodejs/node@5da4ceb

2 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -124,7 +124,16 @@ int app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn)

124124

char buffer[200];

125125
126126

#ifdef OPENSSL_SYS_WINDOWS

127-

RAND_screen();

127+

/*

128+

* allocate 2 to dont_warn not to use RAND_screen() via

129+

* -no_rand_screen option in s_client

130+

*/

131+

if (dont_warn != 2) {

132+

BIO_printf(bio_e, "Loading 'screen' into random state -");

133+

BIO_flush(bio_e);

134+

RAND_screen();

135+

BIO_printf(bio_e, " done\n");

136+

}

128137

#endif

129138
130139

if (file == NULL)

Original file line numberDiff line numberDiff line change

@@ -236,6 +236,7 @@ static BIO *bio_c_msg = NULL;

236236

static int c_quiet = 0;

237237

static int c_ign_eof = 0;

238238

static int c_brief = 0;

239+

static int c_no_rand_screen = 0;

239240
240241

#ifndef OPENSSL_NO_PSK

241242

/* Default PSK identity and key */

@@ -451,6 +452,10 @@ static void sc_usage(void)

451452

" -keymatexport label - Export keying material using label\n");

452453

BIO_printf(bio_err,

453454

" -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

454459

}

455460
456461

#ifndef OPENSSL_NO_TLSEXT

@@ -1143,6 +1148,10 @@ int MAIN(int argc, char **argv)

11431148

keymatexportlen = atoi(*(++argv));

11441149

if (keymatexportlen == 0)

11451150

goto bad;

1151+

#ifdef OPENSSL_SYS_WINDOWS

1152+

} else if (strcmp(*argv, "-no_rand_screen") == 0) {

1153+

c_no_rand_screen = 1;

1154+

#endif

11461155

} else {

11471156

BIO_printf(bio_err, "unknown option %s\n", *argv);

11481157

badop = 1;

@@ -1259,7 +1268,7 @@ int MAIN(int argc, char **argv)

12591268

if (!load_excert(&exc, bio_err))

12601269

goto end;

12611270
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

12631272

&& !RAND_status()) {

12641273

BIO_printf(bio_err,

12651274

"warning, not much extra random data, consider using the -rand option\n");