1 /* $NetBSD: ssl_init.c,v 1.5 2024/08/18 20:47:27 christos Exp $ */
2
3 #include "config.h"
4
5 #include "ntp.h"
6
7 #ifdef OPENSSL
8 # include "openssl/err.h"
9 # include "openssl/rand.h"
10 # include "openssl/evp.h"
11
12 #define CMAC "AES128CMAC"
13 #endif
14
15 #include "unity.h"
16
17
18 void test_MD5KeyTypeWithoutDigestLength(void);
19 void test_MD5KeyTypeWithDigestLength(void);
20 void test_SHA1KeyTypeWithDigestLength(void);
21 void test_CMACKeyTypeWithDigestLength(void);
22 void test_MD5KeyName(void);
23 void test_SHA1KeyName(void);
24 void test_CMACKeyName(void);
25
26
27 // keytype_from_text()
28 void
test_MD5KeyTypeWithoutDigestLength(void)29 test_MD5KeyTypeWithoutDigestLength(void) {
30 TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", NULL));
31 }
32
33 void
test_MD5KeyTypeWithDigestLength(void)34 test_MD5KeyTypeWithDigestLength(void) {
35 size_t digestLength;
36 size_t expected = MD5_LENGTH;
37
38 TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", &digestLength));
39 TEST_ASSERT_EQUAL(expected, digestLength);
40 }
41
42
43 void
test_SHA1KeyTypeWithDigestLength(void)44 test_SHA1KeyTypeWithDigestLength(void) {
45 #ifdef OPENSSL
46 size_t digestLength;
47 size_t expected = SHA1_LENGTH;
48
49 TEST_ASSERT_EQUAL(NID_sha1, keytype_from_text("SHA1", &digestLength));
50 TEST_ASSERT_EQUAL(expected, digestLength);
51 /* OPENSSL */
52 #else
53 TEST_IGNORE_MESSAGE("Skipping because OPENSSL isn't defined");
54 #endif
55 }
56
57
58 void
test_CMACKeyTypeWithDigestLength(void)59 test_CMACKeyTypeWithDigestLength(void) {
60 #if defined(OPENSSL) && defined(ENABLE_CMAC)
61 size_t digestLength;
62 size_t expected = CMAC_LENGTH;
63
64 TEST_ASSERT_EQUAL(NID_cmac, keytype_from_text(CMAC, &digestLength));
65 TEST_ASSERT_EQUAL(expected, digestLength);
66 /* OPENSSL */
67 #else
68 TEST_IGNORE_MESSAGE("Skipping because OPENSSL/CMAC isn't defined");
69 #endif
70 }
71
72
73 // keytype_name()
74 void
test_MD5KeyName(void)75 test_MD5KeyName(void) {
76 TEST_ASSERT_EQUAL_STRING("MD5", keytype_name(KEY_TYPE_MD5));
77 }
78
79
80 void
test_SHA1KeyName(void)81 test_SHA1KeyName(void) {
82 #ifdef OPENSSL
83 TEST_ASSERT_EQUAL_STRING("SHA1", keytype_name(NID_sha1));
84 #else
85 TEST_IGNORE_MESSAGE("Skipping because OPENSSL isn't defined");
86 #endif /* OPENSSL */
87 }
88
89
90 void
test_CMACKeyName(void)91 test_CMACKeyName(void) {
92 #if defined(OPENSSL) && defined(ENABLE_CMAC)
93 TEST_ASSERT_EQUAL_STRING(CMAC, keytype_name(NID_cmac));
94 #else
95 TEST_IGNORE_MESSAGE("Skipping because OPENSSL/CMAC isn't defined");
96 #endif /* OPENSSL */
97 }
98
99