1#include "config.h"
2
3#include "ntp.h"
4
5#ifdef OPENSSL
6# include "openssl/err.h"
7# include "openssl/rand.h"
8# include "openssl/evp.h"
9#endif
10
11#include "unity.h"
12
13
14static const size_t TEST_MD5_DIGEST_LENGTH = 16;
15static const size_t TEST_SHA1_DIGEST_LENGTH = 20;
16
17void test_MD5KeyTypeWithoutDigestLength(void);
18void test_MD5KeyTypeWithDigestLength(void);
19void test_SHA1KeyTypeWithDigestLength(void);
20void test_MD5KeyName(void);
21void test_SHA1KeyName(void);
22
23
24// keytype_from_text()
25void
26test_MD5KeyTypeWithoutDigestLength(void) {
27	TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", NULL));
28}
29
30void
31test_MD5KeyTypeWithDigestLength(void) {
32	size_t digestLength;
33	size_t expected = TEST_MD5_DIGEST_LENGTH;
34
35	TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", &digestLength));
36	TEST_ASSERT_EQUAL(expected, digestLength);
37}
38
39
40void
41test_SHA1KeyTypeWithDigestLength(void) {
42#ifdef OPENSSL
43	size_t digestLength;
44	size_t expected = TEST_SHA1_DIGEST_LENGTH;
45
46	TEST_ASSERT_EQUAL(NID_sha1, keytype_from_text("SHA1", &digestLength));
47	TEST_ASSERT_EQUAL(expected, digestLength);
48	/* OPENSSL */
49#else
50	TEST_IGNORE_MESSAGE("Skipping because OPENSSL isn't defined");
51#endif
52}
53
54
55// keytype_name()
56void
57test_MD5KeyName(void) {
58	TEST_ASSERT_EQUAL_STRING("MD5", keytype_name(KEY_TYPE_MD5));
59}
60
61
62void
63test_SHA1KeyName(void) {
64#ifdef OPENSSL
65	TEST_ASSERT_EQUAL_STRING("SHA1", keytype_name(NID_sha1));
66#else
67	TEST_IGNORE_MESSAGE("Skipping because OPENSSL isn't defined");
68#endif	/* OPENSSL */
69}
70