xref: /netbsd-src/external/bsd/ntp/dist/tests/libntp/ssl_init.c (revision eabc0478de71e4e011a5b4e0392741e01d491794)
1*eabc0478Schristos /*	$NetBSD: ssl_init.c,v 1.5 2024/08/18 20:47:27 christos Exp $	*/
248f8ae19Schristos 
3f17b710fSchristos #include "config.h"
4f17b710fSchristos 
5f17b710fSchristos #include "ntp.h"
6f17b710fSchristos 
7f17b710fSchristos #ifdef OPENSSL
8f17b710fSchristos # include "openssl/err.h"
9f17b710fSchristos # include "openssl/rand.h"
10f17b710fSchristos # include "openssl/evp.h"
1156f2724eSchristos 
1256f2724eSchristos #define CMAC "AES128CMAC"
13f17b710fSchristos #endif
14f17b710fSchristos 
15f17b710fSchristos #include "unity.h"
16f17b710fSchristos 
17f17b710fSchristos 
18a6f3f22fSchristos void test_MD5KeyTypeWithoutDigestLength(void);
19a6f3f22fSchristos void test_MD5KeyTypeWithDigestLength(void);
20a6f3f22fSchristos void test_SHA1KeyTypeWithDigestLength(void);
2156f2724eSchristos void test_CMACKeyTypeWithDigestLength(void);
22a6f3f22fSchristos void test_MD5KeyName(void);
23a6f3f22fSchristos void test_SHA1KeyName(void);
2456f2724eSchristos void test_CMACKeyName(void);
25a6f3f22fSchristos 
26f17b710fSchristos 
27f17b710fSchristos // keytype_from_text()
28a6f3f22fSchristos void
29a6f3f22fSchristos test_MD5KeyTypeWithoutDigestLength(void) {
30f17b710fSchristos 	TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", NULL));
31f17b710fSchristos }
32f17b710fSchristos 
33a6f3f22fSchristos void
34a6f3f22fSchristos test_MD5KeyTypeWithDigestLength(void) {
35f17b710fSchristos 	size_t digestLength;
36*eabc0478Schristos 	size_t expected = MD5_LENGTH;
37f17b710fSchristos 
38f17b710fSchristos 	TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", &digestLength));
39f17b710fSchristos 	TEST_ASSERT_EQUAL(expected, digestLength);
40f17b710fSchristos }
41f17b710fSchristos 
42f17b710fSchristos 
43a6f3f22fSchristos void
44a6f3f22fSchristos test_SHA1KeyTypeWithDigestLength(void) {
45f17b710fSchristos #ifdef OPENSSL
46f17b710fSchristos 	size_t digestLength;
47*eabc0478Schristos 	size_t expected = SHA1_LENGTH;
48f17b710fSchristos 
49ae49d4a4Schristos 	TEST_ASSERT_EQUAL(NID_sha1, keytype_from_text("SHA1", &digestLength));
50f17b710fSchristos 	TEST_ASSERT_EQUAL(expected, digestLength);
51f17b710fSchristos 	/* OPENSSL */
52f17b710fSchristos #else
53f17b710fSchristos 	TEST_IGNORE_MESSAGE("Skipping because OPENSSL isn't defined");
54f17b710fSchristos #endif
55f17b710fSchristos }
56f17b710fSchristos 
57f17b710fSchristos 
5856f2724eSchristos void
5956f2724eSchristos test_CMACKeyTypeWithDigestLength(void) {
6079045f13Schristos #if defined(OPENSSL) && defined(ENABLE_CMAC)
6156f2724eSchristos 	size_t digestLength;
62*eabc0478Schristos 	size_t expected = CMAC_LENGTH;
6356f2724eSchristos 
6456f2724eSchristos 	TEST_ASSERT_EQUAL(NID_cmac, keytype_from_text(CMAC, &digestLength));
6556f2724eSchristos 	TEST_ASSERT_EQUAL(expected, digestLength);
6656f2724eSchristos 	/* OPENSSL */
6756f2724eSchristos #else
6879045f13Schristos 	TEST_IGNORE_MESSAGE("Skipping because OPENSSL/CMAC isn't defined");
6956f2724eSchristos #endif
7056f2724eSchristos }
7156f2724eSchristos 
7256f2724eSchristos 
73f17b710fSchristos // keytype_name()
74a6f3f22fSchristos void
75a6f3f22fSchristos test_MD5KeyName(void) {
76f17b710fSchristos 	TEST_ASSERT_EQUAL_STRING("MD5", keytype_name(KEY_TYPE_MD5));
77f17b710fSchristos }
78f17b710fSchristos 
79a6f3f22fSchristos 
80a6f3f22fSchristos void
81a6f3f22fSchristos test_SHA1KeyName(void) {
82f17b710fSchristos #ifdef OPENSSL
83ae49d4a4Schristos 	TEST_ASSERT_EQUAL_STRING("SHA1", keytype_name(NID_sha1));
84f17b710fSchristos #else
85f17b710fSchristos 	TEST_IGNORE_MESSAGE("Skipping because OPENSSL isn't defined");
86f17b710fSchristos #endif	/* OPENSSL */
87f17b710fSchristos }
8856f2724eSchristos 
8956f2724eSchristos 
9056f2724eSchristos void
9156f2724eSchristos test_CMACKeyName(void) {
9279045f13Schristos #if defined(OPENSSL)  && defined(ENABLE_CMAC)
9356f2724eSchristos 	TEST_ASSERT_EQUAL_STRING(CMAC, keytype_name(NID_cmac));
9456f2724eSchristos #else
9579045f13Schristos 	TEST_IGNORE_MESSAGE("Skipping because OPENSSL/CMAC isn't defined");
9656f2724eSchristos #endif	/* OPENSSL */
9756f2724eSchristos }
9856f2724eSchristos 
99