diff options
-rw-r--r-- | ssl/ssl_lib.c | 7 | ||||
-rw-r--r-- | test/quicapitest.c | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index 00e7ddbf27..96020ec053 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -3754,9 +3754,10 @@ int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, || (sc->version < TLS1_VERSION && sc->version != DTLS1_BAD_VER)) return -1; - return s->method->ssl3_enc->export_keying_material(sc, out, olen, label, - llen, context, - contextlen, use_context); + return sc->ssl.method->ssl3_enc->export_keying_material(sc, out, olen, label, + llen, context, + contextlen, + use_context); } int SSL_export_keying_material_early(SSL *s, unsigned char *out, size_t olen, diff --git a/test/quicapitest.c b/test/quicapitest.c index 41cf0fc7a8..9a1034b7b7 100644 --- a/test/quicapitest.c +++ b/test/quicapitest.c @@ -53,7 +53,7 @@ static int test_quic_write_read(int idx) SSL *clientquic = NULL; QUIC_TSERVER *qtserv = NULL; int j, k, ret = 0; - unsigned char buf[20]; + unsigned char buf[20], scratch[64]; static char *msg = "A test message"; size_t msglen = strlen(msg); size_t numbytes = 0; @@ -153,6 +153,12 @@ static int test_quic_write_read(int idx) goto end; } + /* Test that exporters work. */ + if (!TEST_true(SSL_export_keying_material(clientquic, scratch, + sizeof(scratch), "test", 4, (unsigned char *)"ctx", 3, + 1))) + goto end; + if (sess == NULL) { /* We didn't supply a session so we're not expecting resumption */ if (!TEST_false(SSL_session_reused(clientquic))) |