We may want to add an explicit_bzero to SipHash_Final() too but
I'll leave that up to tedu.

 - todd

Index: lib/libc/hash/helper.c
===================================================================
RCS file: /cvs/src/lib/libc/hash/helper.c,v
retrieving revision 1.11
diff -u -r1.11 helper.c
--- lib/libc/hash/helper.c      3 Apr 2014 17:55:27 -0000       1.11
+++ lib/libc/hash/helper.c      15 Jan 2015 03:41:17 -0000
@@ -50,7 +50,7 @@
                buf[i + i + 1] = hex[digest[i] & 0x0f];
        }
        buf[i + i] = '\0';
-       memset(digest, 0, sizeof(digest));
+       explicit_bzero(digest, sizeof(digest));
        return (buf);
 }
 
Index: lib/libc/hash/md5.c
===================================================================
RCS file: /cvs/src/lib/libc/hash/md5.c,v
retrieving revision 1.9
diff -u -r1.9 md5.c
--- lib/libc/hash/md5.c 8 Jan 2014 06:14:57 -0000       1.9
+++ lib/libc/hash/md5.c 15 Jan 2015 03:41:26 -0000
@@ -128,7 +128,7 @@
        MD5Pad(ctx);
        for (i = 0; i < 4; i++)
                PUT_32BIT_LE(digest + i * 4, ctx->state[i]);
-       memset(ctx, 0, sizeof(*ctx));
+       explicit_bzero(ctx, sizeof(*ctx));
 }
 
 
Index: lib/libc/hash/rmd160.c
===================================================================
RCS file: /cvs/src/lib/libc/hash/rmd160.c,v
retrieving revision 1.20
diff -u -r1.20 rmd160.c
--- lib/libc/hash/rmd160.c      21 Jul 2014 01:51:10 -0000      1.20
+++ lib/libc/hash/rmd160.c      15 Jan 2015 03:41:34 -0000
@@ -153,7 +153,7 @@
        RMD160Pad(ctx);
        for (i = 0; i < 5; i++)
                PUT_32BIT_LE(digest + i*4, ctx->state[i]);
-       memset(ctx, 0, sizeof (*ctx));
+       explicit_bzero(ctx, sizeof (*ctx));
 }
 
 void
Index: lib/libc/hash/sha1.c
===================================================================
RCS file: /cvs/src/lib/libc/hash/sha1.c,v
retrieving revision 1.23
diff -u -r1.23 sha1.c
--- lib/libc/hash/sha1.c        8 Jan 2014 06:14:57 -0000       1.23
+++ lib/libc/hash/sha1.c        15 Jan 2015 03:41:43 -0000
@@ -169,5 +169,5 @@
                digest[i] = (u_int8_t)
                   ((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255);
        }
-       memset(context, 0, sizeof(*context));
+       explicit_bzero(context, sizeof(*context));
 }
Index: lib/libc/hash/sha2.c
===================================================================
RCS file: /cvs/src/lib/libc/hash/sha2.c,v
retrieving revision 1.22
diff -u -r1.22 sha2.c
--- lib/libc/hash/sha2.c        19 Dec 2014 15:14:04 -0000      1.22
+++ lib/libc/hash/sha2.c        15 Jan 2015 03:43:34 -0000
@@ -316,7 +316,7 @@
 #else
        memcpy(digest, context->state.st32, SHA224_DIGEST_LENGTH);
 #endif
-       memset(context, 0, sizeof(*context));
+       explicit_bzero(context, sizeof(*context));
 }
 #endif /* !defined(SHA2_SMALL) */
 
@@ -591,7 +591,7 @@
 #else
        memcpy(digest, context->state.st32, SHA256_DIGEST_LENGTH);
 #endif
-       memset(context, 0, sizeof(*context));
+       explicit_bzero(context, sizeof(*context));
 }
 
 
@@ -867,7 +867,7 @@
 #else
        memcpy(digest, context->state.st64, SHA512_DIGEST_LENGTH);
 #endif
-       memset(context, 0, sizeof(*context));
+       explicit_bzero(context, sizeof(*context));
 }
 
 #if !defined(SHA2_SMALL)
@@ -901,6 +901,6 @@
        memcpy(digest, context->state.st64, SHA384_DIGEST_LENGTH);
 #endif
        /* Zero out state data */
-       memset(context, 0, sizeof(*context));
+       explicit_bzero(context, sizeof(*context));
 }
 #endif /* !defined(SHA2_SMALL) */

Reply via email to