qemu/include/crypto/random.h
<<
>>
Prefs
   1/*
   2 * QEMU Crypto random number provider
   3 *
   4 * Copyright (c) 2015-2016 Red Hat, Inc.
   5 *
   6 * This library is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU Lesser General Public
   8 * License as published by the Free Software Foundation; either
   9 * version 2.1 of the License, or (at your option) any later version.
  10 *
  11 * This library is distributed in the hope that it will be useful,
  12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14 * Lesser General Public License for more details.
  15 *
  16 * You should have received a copy of the GNU Lesser General Public
  17 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  18 *
  19 */
  20
  21#ifndef QCRYPTO_RANDOM_H
  22#define QCRYPTO_RANDOM_H
  23
  24
  25/**
  26 * qcrypto_random_bytes:
  27 * @buf: the buffer to fill
  28 * @buflen: length of @buf in bytes
  29 * @errp: pointer to a NULL-initialized error object
  30 *
  31 * Fill @buf with @buflen bytes of cryptographically strong
  32 * random data
  33 *
  34 * Returns 0 on success, -1 on error
  35 */
  36int qcrypto_random_bytes(void *buf,
  37                         size_t buflen,
  38                         Error **errp);
  39
  40/**
  41 * qcrypto_random_init:
  42 * @errp: pointer to a NULL-initialized error object
  43 *
  44 * Initializes the handles used by qcrypto_random_bytes
  45 *
  46 * Returns 0 on success, -1 on error
  47 */
  48int qcrypto_random_init(Error **errp);
  49
  50#endif /* QCRYPTO_RANDOM_H */
  51