random.h 1.4 KB

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