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