diff options
author | Matt Caswell <matt@openssl.org> | 2017-06-12 18:38:30 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2017-06-21 14:45:35 +0100 |
commit | 911d63f2611490590e0527ffcd4c95a67cd13a28 (patch) | |
tree | 231855554136c9007215f9f08918187933ed30cb | |
parent | df894947c4f04dedb0bded25195bc2fc7b2b6915 (diff) |
Add SSL_SESSION_set1_master_key()
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3670)
-rw-r--r-- | include/openssl/ssl.h | 2 | ||||
-rw-r--r-- | ssl/ssl_lib.c | 13 | ||||
-rw-r--r-- | util/libssl.num | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index e4aa743141..bf01f60cd3 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h @@ -1861,6 +1861,8 @@ __owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, size_t outlen); __owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *ssl, unsigned char *out, size_t outlen); +__owur int SSL_SESSION_set1_master_key(SSL_SESSION *sess, unsigned char *in, + size_t len); #define SSL_get_ex_new_index(l, p, newf, dupf, freef) \ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef) diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index bcb012f107..db14e22350 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -3725,6 +3725,19 @@ size_t SSL_SESSION_get_master_key(const SSL_SESSION *session, return outlen; } +int SSL_SESSION_set1_master_key(SSL_SESSION *sess, unsigned char *in, + size_t len) +{ + if (len > sizeof(sess->master_key)) + return 0; + + memcpy(sess->master_key, in, len); + sess->master_key_length = len; + + return 1; +} + + int SSL_set_ex_data(SSL *s, int idx, void *arg) { return (CRYPTO_set_ex_data(&s->ex_data, idx, arg)); diff --git a/util/libssl.num b/util/libssl.num index 959e134ea0..25e0750e1a 100644 --- a/util/libssl.num +++ b/util/libssl.num @@ -456,3 +456,4 @@ SSL_set_psk_use_session_callback 456 1_1_1 EXIST::FUNCTION: SSL_CTX_set_psk_use_session_callback 457 1_1_1 EXIST::FUNCTION: SSL_CTX_set_psk_find_session_callback 458 1_1_1 EXIST::FUNCTION: SSL_CIPHER_get_handshake_digest 459 1_1_1 EXIST::FUNCTION: +SSL_SESSION_set1_master_key 460 1_1_1 EXIST::FUNCTION: |