testutils.h 1.26 KB
Newer Older
Niels Möller's avatar
Niels Möller committed
1
2
3
#ifndef NETTLE_TESTUTILS_H_INCLUDED
#define NETTLE_TESTUTILS_H_INCLUDED

4
#include <inttypes.h>
Niels Möller's avatar
Niels Möller committed
5

6
7
8
9
10
#include <string.h>
#include <stdlib.h>

#include "nettle-meta.h"

Niels Möller's avatar
Niels Möller committed
11
/* Decodes a NUL-terminated hex string. */
12
13
14
15

unsigned
decode_hex_length(const char *hex);

Niels Möller's avatar
Niels Möller committed
16
17
18
19
20
21
22
int
decode_hex(uint8_t *dst, const char *hex);

/* Allocates space */
const uint8_t *
decode_hex_dup(const char *hex);

Niels Möller's avatar
Niels Möller committed
23
24
25
26
27
28
/* The main program */
int
test_main(void);

extern int verbose;

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
void
test_cipher(const struct nettle_cipher *cipher,
	    unsigned key_length,
	    const uint8_t *key,
	    unsigned length,
	    const uint8_t *cleartext,
	    const uint8_t *ciphertext);

void
test_cipher_cbc(const struct nettle_cipher *cipher,
		unsigned key_length,
		const uint8_t *key,
		unsigned length,
		const uint8_t *cleartext,
		const uint8_t *ciphertext,
		const uint8_t *iv);

void
test_hash(const struct nettle_hash *hash,
	  unsigned length,
	  const uint8_t *data,
	  const uint8_t *digest);
Niels Möller's avatar
Niels Möller committed
51

52
53
54
55
#define H2(d, s) decode_hex((d), (s))
#define H(x) decode_hex_dup(x)
#define HL(x) decode_hex_length(x), decode_hex_dup(x)

56
57
#define LDATA(x) strlen(x), x

58
59
60
61
62
#define MEMEQ(length, a, b) (!memcmp((a), (b), (length)))

#define FAIL() abort()
#define SKIP() exit(77)
#define SUCCESS() return EXIT_SUCCESS
Niels Möller's avatar
Niels Möller committed
63
64

#endif /* NETTLE_TESTUTILS_H_INCLUDED */