summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2017-04-14 15:26:53 +0000
committerjsing <>2017-04-14 15:26:53 +0000
commita29ea9493e3fffec71884a61808d2e634579001c (patch)
tree882dff2e76e89b443ceb2ec942b5ed1569845dcc
parentc4c40cc784e8413d3bf312ccea42c341e10112a7 (diff)
downloadopenbsd-a29ea9493e3fffec71884a61808d2e634579001c.tar.gz
openbsd-a29ea9493e3fffec71884a61808d2e634579001c.tar.bz2
openbsd-a29ea9493e3fffec71884a61808d2e634579001c.zip
Use freezero(3) to clean up the X25519 keys - simpler, cleaner code.
-rw-r--r--src/lib/libssl/ssl_srvr.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c
index aae7275998..31b869e552 100644
--- a/src/lib/libssl/ssl_srvr.c
+++ b/src/lib/libssl/ssl_srvr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_srvr.c,v 1.12 2017/04/14 15:19:39 jsing Exp $ */ 1/* $OpenBSD: ssl_srvr.c,v 1.13 2017/04/14 15:26:53 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1989,8 +1989,7 @@ ssl3_get_client_kex_ecdhe_ecx(SSL *s, unsigned char *p, long n)
1989 if (!X25519(shared_key, S3I(s)->tmp.x25519, CBS_data(&ecpoint))) 1989 if (!X25519(shared_key, S3I(s)->tmp.x25519, CBS_data(&ecpoint)))
1990 goto err; 1990 goto err;
1991 1991
1992 explicit_bzero(S3I(s)->tmp.x25519, X25519_KEY_LENGTH); 1992 freezero(S3I(s)->tmp.x25519, X25519_KEY_LENGTH);
1993 free(S3I(s)->tmp.x25519);
1994 S3I(s)->tmp.x25519 = NULL; 1993 S3I(s)->tmp.x25519 = NULL;
1995 1994
1996 s->session->master_key_length = 1995 s->session->master_key_length =
@@ -2000,9 +1999,7 @@ ssl3_get_client_kex_ecdhe_ecx(SSL *s, unsigned char *p, long n)
2000 ret = 1; 1999 ret = 1;
2001 2000
2002 err: 2001 err:
2003 if (shared_key != NULL) 2002 freezero(shared_key, X25519_KEY_LENGTH);
2004 explicit_bzero(shared_key, X25519_KEY_LENGTH);
2005 free(shared_key);
2006 2003
2007 return (ret); 2004 return (ret);
2008} 2005}