Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Mar 2018 14:55:01 +0000 (UTC)
From:      Conrad Meyer <cem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r331620 - in head/sys: contrib/libb2 crypto/blake2
Message-ID:  <201803271455.w2REt1Cs079478@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cem
Date: Tue Mar 27 14:55:01 2018
New Revision: 331620
URL: https://svnweb.freebsd.org/changeset/base/331620

Log:
  MFV: libb2: use native calls for secure memory clearance
  
  Drop our local patch and restore full vanilla upstream code in
  contrib/libb2.
  
  No functional change intended.  explicit_bzero() should continue to be used.
  
  Obtained from:	libb2 b4b241a34824b51956a7866606329a065d397525
  Sponsored by:	Dell EMC Isilon

Modified:
  head/sys/contrib/libb2/blake2-impl.h
  head/sys/crypto/blake2/config.h

Modified: head/sys/contrib/libb2/blake2-impl.h
==============================================================================
--- head/sys/contrib/libb2/blake2-impl.h	Tue Mar 27 14:54:02 2018	(r331619)
+++ head/sys/contrib/libb2/blake2-impl.h	Tue Mar 27 14:55:01 2018	(r331620)
@@ -131,11 +131,20 @@ static inline uint64_t rotr64( const uint64_t w, const
 /* prevents compiler optimizing out memset() */
 static inline void secure_zero_memory(void *v, size_t n)
 {
-#ifdef __FreeBSD__
+#if defined(_WIN32) || defined(WIN32)
+  SecureZeroMemory(v, n);
+#else
+// prioritize first the general C11 call
+#if defined(HAVE_MEMSET_S)
+  memset_s(v, n, 0, n);
+#elif defined(HAVE_EXPLICIT_BZERO)
   explicit_bzero(v, n);
+#elif defined(HAVE_EXPLICIT_MEMSET)
+  explicit_memset(v, 0, n);
 #else
-  static void *(*const volatile memset_v)(void *, int, size_t) = &memset;
-  memset_v(v, 0, n);
+  memset(v, 0, n);
+  __asm__ __volatile__("" :: "r"(v) : "memory");
+#endif
 #endif
 }
 

Modified: head/sys/crypto/blake2/config.h
==============================================================================
--- head/sys/crypto/blake2/config.h	Tue Mar 27 14:54:02 2018	(r331619)
+++ head/sys/crypto/blake2/config.h	Tue Mar 27 14:55:01 2018	(r331620)
@@ -17,3 +17,5 @@
 #else
 #define HAVE_ALIGNED_ACCESS_REQUIRED 1
 #endif
+
+#define HAVE_EXPLICIT_BZERO 1



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201803271455.w2REt1Cs079478>