1/* $NetBSD: ssl_init.c,v 1.4 2020/05/25 20:47:36 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 18static const size_t TEST_MD5_DIGEST_LENGTH = 16; 19static const size_t TEST_SHA1_DIGEST_LENGTH = 20; 20static const size_t TEST_CMAC_DIGEST_LENGTH = 16; 21 22void test_MD5KeyTypeWithoutDigestLength(void); 23void test_MD5KeyTypeWithDigestLength(void); 24void test_SHA1KeyTypeWithDigestLength(void); 25void test_CMACKeyTypeWithDigestLength(void); 26void test_MD5KeyName(void); 27void test_SHA1KeyName(void); 28void test_CMACKeyName(void); 29 30 31// keytype_from_text() 32void 33test_MD5KeyTypeWithoutDigestLength(void) { 34 TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", NULL)); 35} 36 37void 38test_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 47void 48test_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 62void 63test_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() 78void 79test_MD5KeyName(void) { 80 TEST_ASSERT_EQUAL_STRING("MD5", keytype_name(KEY_TYPE_MD5)); 81} 82 83 84void 85test_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 94void 95test_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