1 /* $NetBSD: ssl_init.c,v 1.3 2018/09/29 21:52:35 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 static const size_t TEST_MD5_DIGEST_LENGTH = 16; 19 static const size_t TEST_SHA1_DIGEST_LENGTH = 20; 20 static const size_t TEST_CMAC_DIGEST_LENGTH = 16; 21 22 void test_MD5KeyTypeWithoutDigestLength(void); 23 void test_MD5KeyTypeWithDigestLength(void); 24 void test_SHA1KeyTypeWithDigestLength(void); 25 void test_CMACKeyTypeWithDigestLength(void); 26 void test_MD5KeyName(void); 27 void test_SHA1KeyName(void); 28 void test_CMACKeyName(void); 29 30 31 // keytype_from_text() 32 void 33 test_MD5KeyTypeWithoutDigestLength(void) { 34 TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", NULL)); 35 } 36 37 void 38 test_MD5KeyTypeWithDigestLength(void) { 39 size_t digestLength; 40 size_t expected = TEST_MD5_DIGEST_LENGTH; 41 42 TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", &digestLength)); 43 TEST_ASSERT_EQUAL(expected, digestLength); 44 } 45 46 47 void 48 test_SHA1KeyTypeWithDigestLength(void) { 49 #ifdef OPENSSL 50 size_t digestLength; 51 size_t expected = TEST_SHA1_DIGEST_LENGTH; 52 53 TEST_ASSERT_EQUAL(NID_sha1, keytype_from_text("SHA1", &digestLength)); 54 TEST_ASSERT_EQUAL(expected, digestLength); 55 /* OPENSSL */ 56 #else 57 TEST_IGNORE_MESSAGE("Skipping because OPENSSL isn't defined"); 58 #endif 59 } 60 61 62 void 63 test_CMACKeyTypeWithDigestLength(void) { 64 #if defined(OPENSSL) && defined(ENABLE_CMAC) 65 size_t digestLength; 66 size_t expected = TEST_CMAC_DIGEST_LENGTH; 67 68 TEST_ASSERT_EQUAL(NID_cmac, keytype_from_text(CMAC, &digestLength)); 69 TEST_ASSERT_EQUAL(expected, digestLength); 70 /* OPENSSL */ 71 #else 72 TEST_IGNORE_MESSAGE("Skipping because OPENSSL/CMAC isn't defined"); 73 #endif 74 } 75 76 77 // keytype_name() 78 void 79 test_MD5KeyName(void) { 80 TEST_ASSERT_EQUAL_STRING("MD5", keytype_name(KEY_TYPE_MD5)); 81 } 82 83 84 void 85 test_SHA1KeyName(void) { 86 #ifdef OPENSSL 87 TEST_ASSERT_EQUAL_STRING("SHA1", keytype_name(NID_sha1)); 88 #else 89 TEST_IGNORE_MESSAGE("Skipping because OPENSSL isn't defined"); 90 #endif /* OPENSSL */ 91 } 92 93 94 void 95 test_CMACKeyName(void) { 96 #if defined(OPENSSL) && defined(ENABLE_CMAC) 97 TEST_ASSERT_EQUAL_STRING(CMAC, keytype_name(NID_cmac)); 98 #else 99 TEST_IGNORE_MESSAGE("Skipping because OPENSSL/CMAC isn't defined"); 100 #endif /* OPENSSL */ 101 } 102 103