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