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