svn commit: r362632 - head/sys/netipsec
John Baldwin
jhb at FreeBSD.org
Thu Jun 25 20:31:07 UTC 2020
Author: jhb
Date: Thu Jun 25 20:31:06 2020
New Revision: 362632
URL: https://svnweb.freebsd.org/changeset/base/362632
Log:
Use zfree() to explicitly zero IPsec keys.
Reviewed by: delphij
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D25442
Modified:
head/sys/netipsec/key.c
head/sys/netipsec/xform_ah.c
head/sys/netipsec/xform_esp.c
head/sys/netipsec/xform_tcp.c
Modified: head/sys/netipsec/key.c
==============================================================================
--- head/sys/netipsec/key.c Thu Jun 25 20:30:30 2020 (r362631)
+++ head/sys/netipsec/key.c Thu Jun 25 20:31:06 2020 (r362632)
@@ -3060,27 +3060,19 @@ key_cleansav(struct secasvar *sav)
if (sav->flags & SADB_X_EXT_F_CLONED)
return;
/*
- * Cleanup xform state. Note that zeroize'ing causes the
- * keys to be cleared; otherwise we must do it ourself.
+ * Cleanup xform state.
*/
if (sav->tdb_xform != NULL) {
sav->tdb_xform->xf_zeroize(sav);
sav->tdb_xform = NULL;
- } else {
- if (sav->key_auth != NULL)
- bzero(sav->key_auth->key_data, _KEYLEN(sav->key_auth));
- if (sav->key_enc != NULL)
- bzero(sav->key_enc->key_data, _KEYLEN(sav->key_enc));
}
if (sav->key_auth != NULL) {
- if (sav->key_auth->key_data != NULL)
- free(sav->key_auth->key_data, M_IPSEC_MISC);
+ zfree(sav->key_auth->key_data, M_IPSEC_MISC);
free(sav->key_auth, M_IPSEC_MISC);
sav->key_auth = NULL;
}
if (sav->key_enc != NULL) {
- if (sav->key_enc->key_data != NULL)
- free(sav->key_enc->key_data, M_IPSEC_MISC);
+ zfree(sav->key_enc->key_data, M_IPSEC_MISC);
free(sav->key_enc, M_IPSEC_MISC);
sav->key_enc = NULL;
}
Modified: head/sys/netipsec/xform_ah.c
==============================================================================
--- head/sys/netipsec/xform_ah.c Thu Jun 25 20:30:30 2020 (r362631)
+++ head/sys/netipsec/xform_ah.c Thu Jun 25 20:31:06 2020 (r362632)
@@ -250,9 +250,6 @@ int
ah_zeroize(struct secasvar *sav)
{
- if (sav->key_auth)
- bzero(sav->key_auth->key_data, _KEYLEN(sav->key_auth));
-
crypto_freesession(sav->tdb_cryptoid);
sav->tdb_cryptoid = NULL;
sav->tdb_authalgxform = NULL;
Modified: head/sys/netipsec/xform_esp.c
==============================================================================
--- head/sys/netipsec/xform_esp.c Thu Jun 25 20:30:30 2020 (r362631)
+++ head/sys/netipsec/xform_esp.c Thu Jun 25 20:31:06 2020 (r362632)
@@ -243,11 +243,9 @@ esp_init(struct secasvar *sav, struct xformsw *xsp)
static int
esp_zeroize(struct secasvar *sav)
{
- /* NB: ah_zerorize free's the crypto session state */
+ /* NB: ah_zeroize free's the crypto session state */
int error = ah_zeroize(sav);
- if (sav->key_enc)
- bzero(sav->key_enc->key_data, _KEYLEN(sav->key_enc));
sav->tdb_encalgxform = NULL;
sav->tdb_xform = NULL;
return error;
Modified: head/sys/netipsec/xform_tcp.c
==============================================================================
--- head/sys/netipsec/xform_tcp.c Thu Jun 25 20:30:30 2020 (r362631)
+++ head/sys/netipsec/xform_tcp.c Thu Jun 25 20:31:06 2020 (r362632)
@@ -365,8 +365,6 @@ static int
tcpsignature_zeroize(struct secasvar *sav)
{
- if (sav->key_auth != NULL)
- bzero(sav->key_auth->key_data, _KEYLEN(sav->key_auth));
sav->tdb_xform = NULL;
return (0);
}
More information about the svn-src-all
mailing list