You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

digest_test.h 969B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef _DIGEST_TEST_H
  2. #define _DIGEST_TEST_H
  3. FILE_LICENCE ( GPL2_OR_LATER );
  4. #include <stdint.h>
  5. #include <ipxe/crypto.h>
  6. #include <ipxe/test.h>
  7. /** Maximum number of digest test fragments */
  8. #define NUM_DIGEST_TEST_FRAG 8
  9. /** A digest test fragment list */
  10. struct digest_test_fragments {
  11. /** Fragment lengths */
  12. size_t len[NUM_DIGEST_TEST_FRAG];
  13. };
  14. extern int digest_test ( struct digest_algorithm *digest,
  15. struct digest_test_fragments *fragments,
  16. void *data, size_t len, void *expected );
  17. extern unsigned long digest_cost ( struct digest_algorithm *digest );
  18. /**
  19. * Report digest test result
  20. *
  21. * @v digest Digest algorithm
  22. * @v fragments Digest test fragment list, or NULL
  23. * @v data Test data
  24. * @v len Length of test data
  25. * @v expected Expected digest value
  26. */
  27. #define digest_ok( digest, fragments, data, len, expected ) do { \
  28. ok ( digest_test ( digest, fragments, data, len, expected ) ); \
  29. } while ( 0 )
  30. #endif /* _DIGEST_TEST_H */