diff options
| author | jsing <> | 2020-01-30 17:09:23 +0000 | 
|---|---|---|
| committer | jsing <> | 2020-01-30 17:09:23 +0000 | 
| commit | 8c4b49ffef3b61d982a273df3cd92b2e017aa065 (patch) | |
| tree | 7eeb14d221177f2f4d5d5b5c1ba2452ace34da8e /src/lib/libssl/s3_lib.c | |
| parent | c435cca7eec0ec8c6d2f34f5511be91edae36307 (diff) | |
| download | openbsd-8c4b49ffef3b61d982a273df3cd92b2e017aa065.tar.gz openbsd-8c4b49ffef3b61d982a273df3cd92b2e017aa065.tar.bz2 openbsd-8c4b49ffef3b61d982a273df3cd92b2e017aa065.zip  | |
Provide struct/functions for handling TLSv1.3 key shares.
Pull out the key share handling code and provide a clean/self contained
interface. This will make it easier to support groups other than X25519.
ok beck@ inoguchi@ tb@
Diffstat (limited to 'src/lib/libssl/s3_lib.c')
| -rw-r--r-- | src/lib/libssl/s3_lib.c | 20 | 
1 files changed, 6 insertions, 14 deletions
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c index 252242e053..2832ef4a93 100644 --- a/src/lib/libssl/s3_lib.c +++ b/src/lib/libssl/s3_lib.c  | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_lib.c,v 1.189 2020/01/23 10:40:59 jsing Exp $ */ | 1 | /* $OpenBSD: s3_lib.c,v 1.190 2020/01/30 17:09:23 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 | * | 
| @@ -1564,12 +1564,8 @@ ssl3_free(SSL *s) | |||
| 1564 | DH_free(S3I(s)->tmp.dh); | 1564 | DH_free(S3I(s)->tmp.dh); | 
| 1565 | EC_KEY_free(S3I(s)->tmp.ecdh); | 1565 | EC_KEY_free(S3I(s)->tmp.ecdh); | 
| 1566 | 1566 | ||
| 1567 | freezero(S3I(s)->tmp.x25519, X25519_KEY_LENGTH); | 1567 | tls13_key_share_free(S3I(s)->hs_tls13.key_share); | 
| 1568 | |||
| 1569 | tls13_secrets_destroy(S3I(s)->hs_tls13.secrets); | 1568 | tls13_secrets_destroy(S3I(s)->hs_tls13.secrets); | 
| 1570 | freezero(S3I(s)->hs_tls13.x25519_private, X25519_KEY_LENGTH); | ||
| 1571 | freezero(S3I(s)->hs_tls13.x25519_public, X25519_KEY_LENGTH); | ||
| 1572 | freezero(S3I(s)->hs_tls13.x25519_peer_public, X25519_KEY_LENGTH); | ||
| 1573 | freezero(S3I(s)->hs_tls13.cookie, S3I(s)->hs_tls13.cookie_len); | 1569 | freezero(S3I(s)->hs_tls13.cookie, S3I(s)->hs_tls13.cookie_len); | 
| 1574 | 1570 | ||
| 1575 | sk_X509_NAME_pop_free(S3I(s)->tmp.ca_names, X509_NAME_free); | 1571 | sk_X509_NAME_pop_free(S3I(s)->tmp.ca_names, X509_NAME_free); | 
| @@ -1599,21 +1595,17 @@ ssl3_clear(SSL *s) | |||
| 1599 | S3I(s)->tmp.dh = NULL; | 1595 | S3I(s)->tmp.dh = NULL; | 
| 1600 | EC_KEY_free(S3I(s)->tmp.ecdh); | 1596 | EC_KEY_free(S3I(s)->tmp.ecdh); | 
| 1601 | S3I(s)->tmp.ecdh = NULL; | 1597 | S3I(s)->tmp.ecdh = NULL; | 
| 1598 | S3I(s)->tmp.ecdh_nid = NID_undef; | ||
| 1599 | |||
| 1602 | freezero(S3I(s)->hs.sigalgs, S3I(s)->hs.sigalgs_len); | 1600 | freezero(S3I(s)->hs.sigalgs, S3I(s)->hs.sigalgs_len); | 
| 1603 | S3I(s)->hs.sigalgs = NULL; | 1601 | S3I(s)->hs.sigalgs = NULL; | 
| 1604 | S3I(s)->hs.sigalgs_len = 0; | 1602 | S3I(s)->hs.sigalgs_len = 0; | 
| 1605 | 1603 | ||
| 1606 | freezero(S3I(s)->tmp.x25519, X25519_KEY_LENGTH); | 1604 | tls13_key_share_free(S3I(s)->hs_tls13.key_share); | 
| 1607 | S3I(s)->tmp.x25519 = NULL; | 1605 | S3I(s)->hs_tls13.key_share = NULL; | 
| 1608 | 1606 | ||
| 1609 | tls13_secrets_destroy(S3I(s)->hs_tls13.secrets); | 1607 | tls13_secrets_destroy(S3I(s)->hs_tls13.secrets); | 
| 1610 | S3I(s)->hs_tls13.secrets = NULL; | 1608 | S3I(s)->hs_tls13.secrets = NULL; | 
| 1611 | freezero(S3I(s)->hs_tls13.x25519_private, X25519_KEY_LENGTH); | ||
| 1612 | S3I(s)->hs_tls13.x25519_private = NULL; | ||
| 1613 | freezero(S3I(s)->hs_tls13.x25519_public, X25519_KEY_LENGTH); | ||
| 1614 | S3I(s)->hs_tls13.x25519_public = NULL; | ||
| 1615 | freezero(S3I(s)->hs_tls13.x25519_peer_public, X25519_KEY_LENGTH); | ||
| 1616 | S3I(s)->hs_tls13.x25519_peer_public = NULL; | ||
| 1617 | freezero(S3I(s)->hs_tls13.cookie, S3I(s)->hs_tls13.cookie_len); | 1609 | freezero(S3I(s)->hs_tls13.cookie, S3I(s)->hs_tls13.cookie_len); | 
| 1618 | S3I(s)->hs_tls13.cookie = NULL; | 1610 | S3I(s)->hs_tls13.cookie = NULL; | 
| 1619 | S3I(s)->hs_tls13.cookie_len = 0; | 1611 | S3I(s)->hs_tls13.cookie_len = 0; | 
