summaryrefslogtreecommitdiff
path: root/src/lib/libssl/s23_clnt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/s23_clnt.c')
-rw-r--r--src/lib/libssl/s23_clnt.c27
1 files changed, 1 insertions, 26 deletions
diff --git a/src/lib/libssl/s23_clnt.c b/src/lib/libssl/s23_clnt.c
index 16c30c083a..1bc582364b 100644
--- a/src/lib/libssl/s23_clnt.c
+++ b/src/lib/libssl/s23_clnt.c
@@ -285,30 +285,6 @@ end:
285 return (ret); 285 return (ret);
286} 286}
287 287
288/*
289 * Fill a ClientRandom or ServerRandom field of length len. Returns <= 0
290 * on failure, 1 on success.
291 */
292int
293ssl_fill_hello_random(SSL *s, int server, unsigned char *result, int len)
294{
295 int send_time = 0;
296
297 if (len < 4)
298 return 0;
299 if (server)
300 send_time = (s->mode & SSL_MODE_SEND_SERVERHELLO_TIME) != 0;
301 else
302 send_time = (s->mode & SSL_MODE_SEND_CLIENTHELLO_TIME) != 0;
303 if (send_time) {
304 unsigned long Time = (unsigned long)time(NULL);
305 unsigned char *p = result;
306 l2n(Time, p);
307 return RAND_pseudo_bytes(p, len - 4);
308 } else
309 return RAND_pseudo_bytes(result, len);
310}
311
312static int 288static int
313ssl23_client_hello(SSL *s) 289ssl23_client_hello(SSL *s)
314{ 290{
@@ -352,8 +328,7 @@ ssl23_client_hello(SSL *s)
352 buf = (unsigned char *)s->init_buf->data; 328 buf = (unsigned char *)s->init_buf->data;
353 if (s->state == SSL23_ST_CW_CLNT_HELLO_A) { 329 if (s->state == SSL23_ST_CW_CLNT_HELLO_A) {
354 p = s->s3->client_random; 330 p = s->s3->client_random;
355 if (ssl_fill_hello_random(s, 0, p, SSL3_RANDOM_SIZE) <= 0) 331 RAND_pseudo_bytes(p, SSL3_RANDOM_SIZE);
356 return -1;
357 332
358 if (version == TLS1_2_VERSION) { 333 if (version == TLS1_2_VERSION) {
359 version_major = TLS1_2_VERSION_MAJOR; 334 version_major = TLS1_2_VERSION_MAJOR;