diff options
Diffstat (limited to 'lib/gnutls_kx.c')
-rw-r--r-- | lib/gnutls_kx.c | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/lib/gnutls_kx.c b/lib/gnutls_kx.c index fd963421cf..6fe4ef6d32 100644 --- a/lib/gnutls_kx.c +++ b/lib/gnutls_kx.c @@ -97,42 +97,24 @@ int _gnutls_generate_master(gnutls_session_t session, int keep_premaster) static void write_nss_key_log(gnutls_session_t session, const gnutls_datum_t *premaster) { - const char *filename; char buf[512]; + char buf2[512]; FILE *fp; - if (session->security_parameters.entity == GNUTLS_SERVER) + if (_gnutls_keylogfile == NULL) return; - filename = getenv("GNUTLS_KEYLOGFILE"); - - if (filename == NULL) - return; - - fp = fopen(filename, "w"); + fp = fopen(_gnutls_keylogfile, "a"); if (fp == NULL) return; - if (session->security_parameters.kx_algorithm == GNUTLS_KX_RSA) { - fprintf(fp, "RSA %s ", - _gnutls_bin2hex(premaster->data, - premaster->size, - buf, sizeof(buf), - NULL)); - fprintf(fp, "%s\n", - _gnutls_bin2hex(session->security_parameters. - master_secret, GNUTLS_MASTER_SIZE, - buf, sizeof(buf), NULL)); - } - - fprintf(fp, "CLIENT_RANDOM %s ", + fprintf(fp, "CLIENT_RANDOM %s %s\n", _gnutls_bin2hex(session->security_parameters. client_random, 32, buf, - sizeof(buf), NULL)); - fprintf(fp, "%s\n", + sizeof(buf), NULL), _gnutls_bin2hex(session->security_parameters. master_secret, GNUTLS_MASTER_SIZE, - buf, sizeof(buf), NULL)); + buf2, sizeof(buf2), NULL)); fclose(fp); } |