jitterentropy.h 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. extern void *jent_kvzalloc(unsigned int len);
  3. extern void jent_kvzfree(void *ptr, unsigned int len);
  4. extern void *jent_zalloc(unsigned int len);
  5. extern void jent_zfree(void *ptr);
  6. extern void jent_get_nstime(__u64 *out);
  7. extern int jent_hash_time(void *hash_state, __u64 time, u8 *addtl,
  8. unsigned int addtl_len, __u64 hash_loop_cnt,
  9. unsigned int stuck);
  10. int jent_read_random_block(void *hash_state, char *dst, unsigned int dst_len);
  11. struct rand_data;
  12. extern int jent_entropy_init(unsigned int osr, unsigned int flags,
  13. void *hash_state, struct rand_data *p_ec);
  14. extern int jent_read_entropy(struct rand_data *ec, unsigned char *data,
  15. unsigned int len);
  16. extern struct rand_data *jent_entropy_collector_alloc(unsigned int osr,
  17. unsigned int flags,
  18. void *hash_state);
  19. extern void jent_entropy_collector_free(struct rand_data *entropy_collector);
  20. #ifdef CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE
  21. int jent_raw_hires_entropy_store(__u32 value);
  22. void jent_testing_init(void);
  23. void jent_testing_exit(void);
  24. #else /* CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE */
  25. static inline int jent_raw_hires_entropy_store(__u32 value) { return 0; }
  26. static inline void jent_testing_init(void) { }
  27. static inline void jent_testing_exit(void) { }
  28. #endif /* CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE */