From c4c1e84288a86d95e15fe7e412ca4b07fa5c10a0 Mon Sep 17 00:00:00 2001 From: jsing <> Date: Sat, 17 Mar 2018 14:26:13 +0000 Subject: Provide SSL_SESSION_get0_id_context(). --- src/lib/libssl/Symbols.list | 5 +++-- src/lib/libssl/ssl.h | 8 +++++--- src/lib/libssl/ssl_sess.c | 20 ++++++++++++++------ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/lib/libssl/Symbols.list b/src/lib/libssl/Symbols.list index a8ae29ccca..4947bce162 100644 --- a/src/lib/libssl/Symbols.list +++ b/src/lib/libssl/Symbols.list @@ -65,8 +65,8 @@ SSL_CTX_get_client_cert_cb SSL_CTX_get_ex_data SSL_CTX_get_ex_new_index SSL_CTX_get_info_callback -SSL_CTX_get_min_proto_version SSL_CTX_get_max_proto_version +SSL_CTX_get_min_proto_version SSL_CTX_get_quiet_shutdown SSL_CTX_get_timeout SSL_CTX_get_verify_callback @@ -132,6 +132,7 @@ SSL_CTX_use_certificate_chain_file SSL_CTX_use_certificate_chain_mem SSL_CTX_use_certificate_file SSL_SESSION_free +SSL_SESSION_get0_id_context SSL_SESSION_get0_peer SSL_SESSION_get_compress_id SSL_SESSION_get_ex_data @@ -190,8 +191,8 @@ SSL_get_ex_new_index SSL_get_fd SSL_get_finished SSL_get_info_callback -SSL_get_min_proto_version SSL_get_max_proto_version +SSL_get_min_proto_version SSL_get_peer_cert_chain SSL_get_peer_certificate SSL_get_peer_finished diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h index 5f9d248ced..3a5e2f5f03 100644 --- a/src/lib/libssl/ssl.h +++ b/src/lib/libssl/ssl.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ssl.h,v 1.147 2018/03/15 12:27:01 jca Exp $ */ +/* $OpenBSD: ssl.h,v 1.148 2018/03/17 14:26:13 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -1318,9 +1318,11 @@ int SSL_SESSION_set1_id_context(SSL_SESSION *s, SSL_SESSION *SSL_SESSION_new(void); void SSL_SESSION_free(SSL_SESSION *ses); int SSL_SESSION_up_ref(SSL_SESSION *ss); -const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, +const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *ss, unsigned int *len); -unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); +const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *ss, + unsigned int *len); +unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *ss); int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index 37a0238004..9d7008e24b 100644 --- a/src/lib/libssl/ssl_sess.c +++ b/src/lib/libssl/ssl_sess.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssl_sess.c,v 1.74 2018/02/22 17:25:18 jsing Exp $ */ +/* $OpenBSD: ssl_sess.c,v 1.75 2018/03/17 14:26:13 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -228,15 +228,23 @@ SSL_SESSION_new(void) } const unsigned char * -SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len) +SSL_SESSION_get_id(const SSL_SESSION *ss, unsigned int *len) { - if (len) - *len = s->session_id_length; - return s->session_id; + if (len != NULL) + *len = ss->session_id_length; + return ss->session_id; +} + +const unsigned char * +SSL_SESSION_get0_id_context(const SSL_SESSION *ss, unsigned int *len) +{ + if (len != NULL) + *len = (unsigned int)ss->sid_ctx_length; + return ss->sid_ctx; } unsigned int -SSL_SESSION_get_compress_id(const SSL_SESSION *s) +SSL_SESSION_get_compress_id(const SSL_SESSION *ss) { return 0; } -- cgit v1.2.3-55-g6feb