4
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
7
#include <ipxe/image.h>
11
/** Digest algorithm used for ASN.1 tests */
12
#define asn1_test_digest_algorithm sha1_algorithm
14
/** Digest size used for ASN.1 tests */
15
#define ASN1_TEST_DIGEST_SIZE SHA1_DIGEST_SIZE
17
/** An ASN.1 test digest */
18
struct asn1_test_digest {
20
uint8_t digest[ASN1_TEST_DIGEST_SIZE];
26
struct image_type *type;
29
/** Expected digests of ASN.1 objects */
30
struct asn1_test_digest *expected;
31
/** Number of ASN.1 objects */
36
* Define an ASN.1 test
39
* @v _type Test image file type
40
* @v _file Test image file data
41
* @v ... Expected ASN.1 object digests
42
* @ret test ASN.1 test
44
#define ASN1( _name, _type, _file, ... ) \
45
static const char _name ## __file[] = _file; \
46
static struct image _name ## __image = { \
47
.refcnt = REF_INIT ( ref_no_free ), \
49
.data = ( userptr_t ) ( _name ## __file ), \
50
.len = sizeof ( _name ## __file ), \
52
static struct asn1_test_digest _name ## _expected[] = { \
55
static struct asn1_test _name = { \
57
.image = & _name ## __image, \
58
.expected = _name ## _expected, \
59
.count = ( sizeof ( _name ## _expected ) / \
60
sizeof ( _name ## _expected[0] ) ), \
63
extern void asn1_okx ( struct asn1_test *test, const char *file,
67
* Report ASN.1 test result
71
#define asn1_ok( test ) asn1_okx ( test, __FILE__, __LINE__ )
73
#endif /* _ASN1_TEST_H */