/* * This file and its contents are supplied under the terms of the * Common Development and Distribution License ("CDDL"), version 1.0. * You may only use this file in accordance with the terms of version * 1.0 of the CDDL. * * A full copy of the text of the CDDL should have accompanied this * source. A copy of the CDDL is also available via the Internet at * http://www.illumos.org/license/CDDL. */ /* * Copyright (c) 2018, Joyent, Inc. */ /* * getentropy(3C) is an OpenBSD compatible wrapper around getrandom(2). */ #include #include int getentropy(void *buf, size_t buflen) { ssize_t ret; if (buflen > 256) { errno = EIO; return (-1); } ret = getrandom(buf, buflen, 0); if (ret == -1 || ret != buflen) { if (errno != EFAULT) errno = EIO; return (-1); } return (0); }