rng.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * RNG: Random Number Generator algorithms under the crypto API
  3. *
  4. * Copyright (c) 2008 Neil Horman <nhorman@tuxdriver.com>
  5. * Copyright (c) 2015 Herbert Xu <herbert@gondor.apana.org.au>
  6. *
  7. * This program is free software; you can redistribute it and/or modify it
  8. * under the terms of the GNU General Public License as published by the Free
  9. * Software Foundation; either version 2 of the License, or (at your option)
  10. * any later version.
  11. *
  12. */
  13. #ifndef _CRYPTO_INTERNAL_RNG_H
  14. #define _CRYPTO_INTERNAL_RNG_H
  15. #include <crypto/algapi.h>
  16. #include <crypto/rng.h>
  17. int crypto_register_rng(struct rng_alg *alg);
  18. void crypto_unregister_rng(struct rng_alg *alg);
  19. int crypto_register_rngs(struct rng_alg *algs, int count);
  20. void crypto_unregister_rngs(struct rng_alg *algs, int count);
  21. #if defined(CONFIG_CRYPTO_RNG) || defined(CONFIG_CRYPTO_RNG_MODULE)
  22. int crypto_del_default_rng(void);
  23. #else
  24. static inline int crypto_del_default_rng(void)
  25. {
  26. return 0;
  27. }
  28. #endif
  29. static inline void *crypto_rng_ctx(struct crypto_rng *tfm)
  30. {
  31. return crypto_tfm_ctx(&tfm->base);
  32. }
  33. static inline void crypto_rng_set_entropy(struct crypto_rng *tfm,
  34. const u8 *data, unsigned int len)
  35. {
  36. crypto_rng_alg(tfm)->set_ent(tfm, data, len);
  37. }
  38. #endif