Skip to content

Commit 2f49509

Browse files
committed
DONOTMERGE: sslkeylogfile
1 parent 49064f5 commit 2f49509

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/ssl_sock.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@
105105
int nb_engines = 0;
106106

107107
static struct eb_root cert_issuer_tree = EB_ROOT; /* issuers tree from "issuers-chain-path" */
108+
static FILE *sslkeylogfile = NULL;
108109

109110
struct global_ssl global_ssl = {
110111
#ifdef LISTEN_DEFAULT_CIPHERS
@@ -4116,6 +4117,12 @@ void SSL_CTX_keylog(const SSL *ssl, const char *line)
41164117
char *lastarg = NULL;
41174118
char *dst = NULL;
41184119

4120+
if (sslkeylogfile) {
4121+
fwrite(line, strlen(line), 1, sslkeylogfile);
4122+
fwrite("\n", 1, 1, sslkeylogfile);
4123+
fflush(sslkeylogfile);
4124+
}
4125+
41194126
#ifdef USE_QUIC_OPENSSL_COMPAT
41204127
quic_tls_compat_keylog_callback(ssl, line);
41214128
#endif
@@ -7907,6 +7914,9 @@ static void __ssl_sock_init(void)
79077914
STACK_OF(SSL_COMP)* cm;
79087915
int n;
79097916
#endif
7917+
#ifdef HAVE_SSL_KEYLOG
7918+
char *sslkeylogfile_env;
7919+
#endif
79107920

79117921
if (global_ssl.listen_default_ciphers)
79127922
global_ssl.listen_default_ciphers = strdup(global_ssl.listen_default_ciphers);
@@ -7950,6 +7960,9 @@ static void __ssl_sock_init(void)
79507960
ssl_qc_app_data_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL);
79517961
#endif /* USE_QUIC */
79527962
#ifdef HAVE_SSL_KEYLOG
7963+
sslkeylogfile_env = getenv("SSLKEYLOGFILE");
7964+
if (sslkeylogfile_env)
7965+
sslkeylogfile = fopen(sslkeylogfile_env, "a");
79537966
ssl_keylog_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, ssl_sock_keylog_free_func);
79547967
#endif
79557968
ssl_client_crt_ref_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, ssl_sock_clt_crt_free_func);

0 commit comments

Comments
 (0)