Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

rbg.h 949B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef _IPXE_RBG_H
  2. #define _IPXE_RBG_H
  3. /** @file
  4. *
  5. * RBG mechanism
  6. *
  7. */
  8. FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
  9. #include <stdint.h>
  10. #include <ipxe/drbg.h>
  11. /** An RBG */
  12. struct random_bit_generator {
  13. /** DRBG state */
  14. struct drbg_state state;
  15. };
  16. extern struct random_bit_generator rbg;
  17. /**
  18. * Generate bits using RBG
  19. *
  20. * @v additional Additional input
  21. * @v additional_len Length of additional input
  22. * @v prediction_resist Prediction resistance is required
  23. * @v data Output buffer
  24. * @v len Length of output buffer
  25. * @ret rc Return status code
  26. *
  27. * This is the RBG_Generate function defined in ANS X9.82 Part 4
  28. * (April 2011 Draft) Section 9.1.2.2.
  29. */
  30. static inline int rbg_generate ( const void *additional, size_t additional_len,
  31. int prediction_resist, void *data,
  32. size_t len ) {
  33. return drbg_generate ( &rbg.state, additional, additional_len,
  34. prediction_resist, data, len );
  35. }
  36. #endif /* _IPXE_RBG_H */