You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

random.h 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 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. #ifndef QCRYPTO_RANDOM_H
  21. #define QCRYPTO_RANDOM_H
  22. #include "qemu-common.h"
  23. /**
  24. * qcrypto_random_bytes:
  25. * @buf: the buffer to fill
  26. * @buflen: length of @buf in bytes
  27. * @errp: pointer to a NULL-initialized error object
  28. *
  29. * Fill @buf with @buflen bytes of cryptographically strong
  30. * random data
  31. *
  32. * Returns 0 on success, -1 on error
  33. */
  34. int qcrypto_random_bytes(void *buf,
  35. size_t buflen,
  36. Error **errp);
  37. /**
  38. * qcrypto_random_init:
  39. * @errp: pointer to a NULL-initialized error object
  40. *
  41. * Initializes the handles used by qcrypto_random_bytes
  42. *
  43. * Returns 0 on success, -1 on error
  44. */
  45. int qcrypto_random_init(Error **errp);
  46. #endif /* QCRYPTO_RANDOM_H */