]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Explicitly clear temporary stack buffer in hmac_sha256_kdf()
authorJouni Malinen <j@w1.fi>
Sun, 29 Mar 2015 13:38:37 +0000 (16:38 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 29 Mar 2015 13:38:37 +0000 (16:38 +0300)
The local T[] buffer may contain parts of the derived key, so clear it
explicitly to minimize number of unnecessary copies of key material in
memory.

Signed-off-by: Jouni Malinen <j@w1.fi>
src/crypto/sha256-kdf.c

index d8a1beb32e9080728865c32ddedd93f6c3dc72c8..e7509ce41aba4dd13601b42fc6a62936281a0bfc 100644 (file)
@@ -61,6 +61,7 @@ int hmac_sha256_kdf(const u8 *secret, size_t secret_len,
 
                if (iter == 255) {
                        os_memset(out, 0, outlen);
+                       os_memset(T, 0, SHA256_MAC_LEN);
                        return -1;
                }
                iter++;
@@ -68,9 +69,11 @@ int hmac_sha256_kdf(const u8 *secret, size_t secret_len,
                if (hmac_sha256_vector(secret, secret_len, 4, addr, len, T) < 0)
                {
                        os_memset(out, 0, outlen);
+                       os_memset(T, 0, SHA256_MAC_LEN);
                        return -1;
                }
        }
 
+       os_memset(T, 0, SHA256_MAC_LEN);
        return 0;
 }