]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tests/libntp/ssl_init.c
Vendor import of ntp-4.2.8p12.
[FreeBSD/FreeBSD.git] / tests / libntp / ssl_init.c
1 #include "config.h"
2
3 #include "ntp.h"
4
5 #ifdef OPENSSL
6 # include "openssl/err.h"
7 # include "openssl/rand.h"
8 # include "openssl/evp.h"
9
10 #define CMAC "AES128CMAC"
11 #endif
12
13 #include "unity.h"
14
15
16 static const size_t TEST_MD5_DIGEST_LENGTH = 16;
17 static const size_t TEST_SHA1_DIGEST_LENGTH = 20;
18 static const size_t TEST_CMAC_DIGEST_LENGTH = 16;
19
20 void test_MD5KeyTypeWithoutDigestLength(void);
21 void test_MD5KeyTypeWithDigestLength(void);
22 void test_SHA1KeyTypeWithDigestLength(void);
23 void test_CMACKeyTypeWithDigestLength(void);
24 void test_MD5KeyName(void);
25 void test_SHA1KeyName(void);
26 void test_CMACKeyName(void);
27
28
29 // keytype_from_text()
30 void
31 test_MD5KeyTypeWithoutDigestLength(void) {
32         TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", NULL));
33 }
34
35 void
36 test_MD5KeyTypeWithDigestLength(void) {
37         size_t digestLength;
38         size_t expected = TEST_MD5_DIGEST_LENGTH;
39
40         TEST_ASSERT_EQUAL(KEY_TYPE_MD5, keytype_from_text("MD5", &digestLength));
41         TEST_ASSERT_EQUAL(expected, digestLength);
42 }
43
44
45 void
46 test_SHA1KeyTypeWithDigestLength(void) {
47 #ifdef OPENSSL
48         size_t digestLength;
49         size_t expected = TEST_SHA1_DIGEST_LENGTH;
50
51         TEST_ASSERT_EQUAL(NID_sha1, keytype_from_text("SHA1", &digestLength));
52         TEST_ASSERT_EQUAL(expected, digestLength);
53         /* OPENSSL */
54 #else 
55         TEST_IGNORE_MESSAGE("Skipping because OPENSSL isn't defined");
56 #endif
57 }
58
59
60 void
61 test_CMACKeyTypeWithDigestLength(void) {
62 #if defined(OPENSSL) && defined(ENABLE_CMAC)
63         size_t digestLength;
64         size_t expected = TEST_CMAC_DIGEST_LENGTH;
65
66         TEST_ASSERT_EQUAL(NID_cmac, keytype_from_text(CMAC, &digestLength));
67         TEST_ASSERT_EQUAL(expected, digestLength);
68         /* OPENSSL */
69 #else 
70         TEST_IGNORE_MESSAGE("Skipping because OPENSSL/CMAC isn't defined");
71 #endif
72 }
73
74
75 // keytype_name()
76 void
77 test_MD5KeyName(void) {
78         TEST_ASSERT_EQUAL_STRING("MD5", keytype_name(KEY_TYPE_MD5));
79 }
80
81
82 void
83 test_SHA1KeyName(void) {
84 #ifdef OPENSSL
85         TEST_ASSERT_EQUAL_STRING("SHA1", keytype_name(NID_sha1));
86 #else
87         TEST_IGNORE_MESSAGE("Skipping because OPENSSL isn't defined");
88 #endif  /* OPENSSL */
89 }
90
91
92 void
93 test_CMACKeyName(void) {
94 #if defined(OPENSSL)  && defined(ENABLE_CMAC)
95         TEST_ASSERT_EQUAL_STRING(CMAC, keytype_name(NID_cmac));
96 #else
97         TEST_IGNORE_MESSAGE("Skipping because OPENSSL/CMAC isn't defined");
98 #endif  /* OPENSSL */
99 }
100