1*28f17cb2SRobert Mustacchi.\" $OpenBSD: getentropy.2,v 1.7 2014/12/10 19:19:00 schwarze Exp $ 2*28f17cb2SRobert Mustacchi.\" 3*28f17cb2SRobert Mustacchi.\" Copyright (c) 2014 Theo de Raadt 4*28f17cb2SRobert Mustacchi.\" Copyright (c) 2015 Joyent, Inc. 5*28f17cb2SRobert Mustacchi.\" 6*28f17cb2SRobert Mustacchi.\" Permission to use, copy, modify, and distribute this software for any 7*28f17cb2SRobert Mustacchi.\" purpose with or without fee is hereby granted, provided that the above 8*28f17cb2SRobert Mustacchi.\" copyright notice and this permission notice appear in all copies. 9*28f17cb2SRobert Mustacchi.\" 10*28f17cb2SRobert Mustacchi.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11*28f17cb2SRobert Mustacchi.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12*28f17cb2SRobert Mustacchi.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13*28f17cb2SRobert Mustacchi.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14*28f17cb2SRobert Mustacchi.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15*28f17cb2SRobert Mustacchi.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16*28f17cb2SRobert Mustacchi.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17*28f17cb2SRobert Mustacchi.\" 18*28f17cb2SRobert Mustacchi.Dd "Dec 31, 2014" 19*28f17cb2SRobert Mustacchi.Dt GETENTROPY 3C 20*28f17cb2SRobert Mustacchi.Os 21*28f17cb2SRobert Mustacchi.Sh NAME 22*28f17cb2SRobert Mustacchi.Nm getentropy 23*28f17cb2SRobert Mustacchi.Nd get entropy 24*28f17cb2SRobert Mustacchi.Sh SYNOPSIS 25*28f17cb2SRobert Mustacchi.Fd #include <unistd.h> 26*28f17cb2SRobert Mustacchi.Ft int 27*28f17cb2SRobert Mustacchi.Fn getentropy "void *buf" "size_t buflen" 28*28f17cb2SRobert Mustacchi.Sh DESCRIPTION 29*28f17cb2SRobert Mustacchi.Nm 30*28f17cb2SRobert Mustacchifills a buffer with high-quality entropy, which can be used 31*28f17cb2SRobert Mustacchias input for process-context pseudorandom generators like 32*28f17cb2SRobert Mustacchi.Xr arc4random 3C . 33*28f17cb2SRobert Mustacchi.Pp 34*28f17cb2SRobert MustacchiThe maximum buffer size permitted is 256 bytes. 35*28f17cb2SRobert MustacchiIf 36*28f17cb2SRobert Mustacchi.Va buflen 37*28f17cb2SRobert Mustacchiexceeds this, an error of 38*28f17cb2SRobert Mustacchi.Er EIO 39*28f17cb2SRobert Mustacchiwill be indicated. 40*28f17cb2SRobert Mustacchi.Pp 41*28f17cb2SRobert Mustacchi.Nm 42*28f17cb2SRobert Mustacchiis not intended for regular code; please use the 43*28f17cb2SRobert Mustacchi.Xr arc4random 3C 44*28f17cb2SRobert Mustacchifamily of functions instead. 45*28f17cb2SRobert Mustacchi.Sh RETURN VALUES 46*28f17cb2SRobert Mustacchi.Rv -std 47*28f17cb2SRobert Mustacchi.Sh ERRORS 48*28f17cb2SRobert Mustacchi.Fn getentropy 49*28f17cb2SRobert Mustacchiwill succeed unless: 50*28f17cb2SRobert Mustacchi.Bl -tag -width Er 51*28f17cb2SRobert Mustacchi.It Er EFAULT 52*28f17cb2SRobert MustacchiThe 53*28f17cb2SRobert Mustacchi.Fa buf 54*28f17cb2SRobert Mustacchiparameter points to an 55*28f17cb2SRobert Mustacchiinvalid address. 56*28f17cb2SRobert Mustacchi.It Er EIO 57*28f17cb2SRobert MustacchiToo many bytes requested, or some other fatal error occurred. 58*28f17cb2SRobert Mustacchi.El 59*28f17cb2SRobert Mustacchi.Sh INTERFACE STABILITY 60*28f17cb2SRobert Mustacchi.Sy Comitted 61*28f17cb2SRobert Mustacchi.Sh MT-LEVEL 62*28f17cb2SRobert Mustacchi.Sy Async-Signal-Safe 63*28f17cb2SRobert Mustacchi.Sh SEE ALSO 64*28f17cb2SRobert Mustacchi.Xr arc4random 3C 65*28f17cb2SRobert Mustacchi.Xr attributes 5 66