xref: /netbsd-src/external/bsd/ntp/dist/tests/libntp/ssl_init.c (revision 3117ece4fc4a4ca4489ba793710b60b0d26bab6c)
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
29 test_MD5KeyTypeWithoutDigestLength(void) {
30 	TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", NULL));
31 }
32 
33 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
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
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
75 test_MD5KeyName(void) {
76 	TEST_ASSERT_EQUAL_STRING("MD5", keytype_name(KEY_TYPE_MD5));
77 }
78 
79 
80 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
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