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