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