summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libssl/Symbols.list2
-rw-r--r--src/lib/libssl/ssl.h5
-rw-r--r--src/lib/libssl/ssl_lib.c37
3 files changed, 41 insertions, 3 deletions
diff --git a/src/lib/libssl/Symbols.list b/src/lib/libssl/Symbols.list
index f24c7fc9b6..90e73becd7 100644
--- a/src/lib/libssl/Symbols.list
+++ b/src/lib/libssl/Symbols.list
@@ -172,6 +172,7 @@ SSL_get_certificate
172SSL_get_cipher_list 172SSL_get_cipher_list
173SSL_get_ciphers 173SSL_get_ciphers
174SSL_get_client_CA_list 174SSL_get_client_CA_list
175SSL_get_client_random
175SSL_get_current_cipher 176SSL_get_current_cipher
176SSL_get_current_compression 177SSL_get_current_compression
177SSL_get_current_expansion 178SSL_get_current_expansion
@@ -192,6 +193,7 @@ SSL_get_rbio
192SSL_get_read_ahead 193SSL_get_read_ahead
193SSL_get_rfd 194SSL_get_rfd
194SSL_get_selected_srtp_profile 195SSL_get_selected_srtp_profile
196SSL_get_server_random
195SSL_get_servername 197SSL_get_servername
196SSL_get_servername_type 198SSL_get_servername_type
197SSL_get_session 199SSL_get_session
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h
index 0784ce1ef7..692bd1a395 100644
--- a/src/lib/libssl/ssl.h
+++ b/src/lib/libssl/ssl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl.h,v 1.138 2018/02/17 15:13:12 jsing Exp $ */ 1/* $OpenBSD: ssl.h,v 1.139 2018/02/17 15:19:43 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1510,6 +1510,9 @@ void SSL_CTX_set_tmp_ecdh_callback(SSL_CTX *ctx,
1510void SSL_set_tmp_ecdh_callback(SSL *ssl, 1510void SSL_set_tmp_ecdh_callback(SSL *ssl,
1511 EC_KEY *(*ecdh)(SSL *ssl, int is_export, int keylength)); 1511 EC_KEY *(*ecdh)(SSL *ssl, int is_export, int keylength));
1512 1512
1513size_t SSL_get_client_random(const SSL *s, unsigned char *out, size_t max_out);
1514size_t SSL_get_server_random(const SSL *s, unsigned char *out, size_t max_out);
1515
1513const void *SSL_get_current_compression(SSL *s); 1516const void *SSL_get_current_compression(SSL *s);
1514const void *SSL_get_current_expansion(SSL *s); 1517const void *SSL_get_current_expansion(SSL *s);
1515 1518
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c
index 79021d7e0b..e910d85914 100644
--- a/src/lib/libssl/ssl_lib.c
+++ b/src/lib/libssl/ssl_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_lib.c,v 1.175 2018/02/17 15:13:12 jsing Exp $ */ 1/* $OpenBSD: ssl_lib.c,v 1.176 2018/02/17 15:19:43 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -758,7 +758,8 @@ SSL_CTX_get_verify_depth(const SSL_CTX *ctx)
758 return (X509_VERIFY_PARAM_get_depth(ctx->param)); 758 return (X509_VERIFY_PARAM_get_depth(ctx->param));
759} 759}
760 760
761int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int, X509_STORE_CTX *) 761int
762(*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int, X509_STORE_CTX *)
762{ 763{
763 return (ctx->internal->default_verify_callback); 764 return (ctx->internal->default_verify_callback);
764} 765}
@@ -2645,6 +2646,38 @@ SSL_get_current_expansion(SSL *s)
2645 return (NULL); 2646 return (NULL);
2646} 2647}
2647 2648
2649size_t
2650SSL_get_client_random(const SSL *s, unsigned char *out, size_t max_out)
2651{
2652 size_t len = sizeof(s->s3->client_random);
2653
2654 if (out == NULL)
2655 return len;
2656
2657 if (len > max_out)
2658 len = max_out;
2659
2660 memcpy(out, s->s3->client_random, len);
2661
2662 return len;
2663}
2664
2665size_t
2666SSL_get_server_random(const SSL *s, unsigned char *out, size_t max_out)
2667{
2668 size_t len = sizeof(s->s3->server_random);
2669
2670 if (out == NULL)
2671 return len;
2672
2673 if (len > max_out)
2674 len = max_out;
2675
2676 memcpy(out, s->s3->server_random, len);
2677
2678 return len;
2679}
2680
2648int 2681int
2649ssl_init_wbio_buffer(SSL *s, int push) 2682ssl_init_wbio_buffer(SSL *s, int push)
2650{ 2683{