seeding.h 1.2 KB

123456789101112131415161718192021222324252627282930
  1. /*
  2. * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
  3. *
  4. * Licensed under the Apache License 2.0 (the "License"). You may not use
  5. * this file except in compliance with the License. You can obtain a copy
  6. * in the file LICENSE in the source distribution or at
  7. * https://www.openssl.org/source/license.html
  8. */
  9. #include "prov/provider_ctx.h"
  10. #include "crypto/rand_pool.h"
  11. /* Hardware-based seeding functions. */
  12. size_t ossl_prov_acquire_entropy_from_tsc(RAND_POOL *pool);
  13. size_t ossl_prov_acquire_entropy_from_cpu(RAND_POOL *pool);
  14. /*
  15. * External seeding functions from the core dispatch table.
  16. */
  17. int ossl_prov_seeding_from_dispatch(const OSSL_DISPATCH *fns);
  18. size_t ossl_prov_get_entropy(PROV_CTX *prov_ctx, unsigned char **pout,
  19. int entropy, size_t min_len, size_t max_len);
  20. void ossl_prov_cleanup_entropy(PROV_CTX *prov_ctx, unsigned char *buf,
  21. size_t len);
  22. size_t ossl_prov_get_nonce(PROV_CTX *prov_ctx, unsigned char **pout,
  23. size_t min_len, size_t max_len,
  24. const void *salt, size_t salt_len);
  25. void ossl_prov_cleanup_nonce(PROV_CTX *prov_ctx, unsigned char *buf,
  26. size_t len);