Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
EXPLICIT_MEMSET(3)	 BSD Library Functions Manual	    EXPLICIT_MEMSET(3)

NAME
     explicit_memset --	guarantee writing a byte to a byte string

LIBRARY
     Standard C	Library	(libc, -lc)

SYNOPSIS
     #include <string.h>

     void *
     explicit_memset(void *b, int c, size_t len);

DESCRIPTION
     The explicit_memset() function writes len bytes of	value c	(converted to
     an	unsigned char) to the string b.	 It is guaranteed not to be optimized
     away by the compiler even if b is no longer used and is about to be freed
     or	go out of scope.

RETURN VALUES
     The explicit_memset() function returns the	original value of b.

EXAMPLES
     Create a buffer on	the stack for a	secret key, use	it, and	then zero it
     in	memory before throwing it away.

	   void
	   f(void)
	   {
		   uint8_t key[32];

		   crypto_random(key, sizeof(key));
		   do_crypto_stuff(key,	sizeof(key));
		   ...

		   explicit_memset(key,	0, sizeof(key));
	   }

SEE ALSO
     consttime_memequal(3), memset(3)

HISTORY
     The explicit_memset() function appeared in	NetBSD 7.0.

BSD				August 28, 2013				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=explicit_memset&sektion=3&manpath=NetBSD+7.0>

home | help