xref: /minix3/external/bsd/bind/dist/lib/isc/tests/aes_test.c (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroek /*	$NetBSD: aes_test.c,v 1.1.1.4 2014/12/10 03:34:44 christos Exp $	*/
2*00b67f09SDavid van Moolenbroek 
3*00b67f09SDavid van Moolenbroek /*
4*00b67f09SDavid van Moolenbroek  * Copyright (C) 2014  Internet Systems Consortium, Inc. ("ISC")
5*00b67f09SDavid van Moolenbroek  *
6*00b67f09SDavid van Moolenbroek  * Permission to use, copy, modify, and/or distribute this software for any
7*00b67f09SDavid van Moolenbroek  * purpose with or without fee is hereby granted, provided that the above
8*00b67f09SDavid van Moolenbroek  * copyright notice and this permission notice appear in all copies.
9*00b67f09SDavid van Moolenbroek  *
10*00b67f09SDavid van Moolenbroek  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
11*00b67f09SDavid van Moolenbroek  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12*00b67f09SDavid van Moolenbroek  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
13*00b67f09SDavid van Moolenbroek  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
14*00b67f09SDavid van Moolenbroek  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
15*00b67f09SDavid van Moolenbroek  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*00b67f09SDavid van Moolenbroek  * PERFORMANCE OF THIS SOFTWARE.
17*00b67f09SDavid van Moolenbroek  */
18*00b67f09SDavid van Moolenbroek 
19*00b67f09SDavid van Moolenbroek /* Id */
20*00b67f09SDavid van Moolenbroek 
21*00b67f09SDavid van Moolenbroek /* ! \file */
22*00b67f09SDavid van Moolenbroek 
23*00b67f09SDavid van Moolenbroek #include <config.h>
24*00b67f09SDavid van Moolenbroek 
25*00b67f09SDavid van Moolenbroek #include <atf-c.h>
26*00b67f09SDavid van Moolenbroek 
27*00b67f09SDavid van Moolenbroek #include <stdio.h>
28*00b67f09SDavid van Moolenbroek #include <string.h>
29*00b67f09SDavid van Moolenbroek 
30*00b67f09SDavid van Moolenbroek #include <isc/aes.h>
31*00b67f09SDavid van Moolenbroek #include <isc/buffer.h>
32*00b67f09SDavid van Moolenbroek #include <isc/hex.h>
33*00b67f09SDavid van Moolenbroek #include <isc/platform.h>
34*00b67f09SDavid van Moolenbroek #include <isc/region.h>
35*00b67f09SDavid van Moolenbroek #include <isc/string.h>
36*00b67f09SDavid van Moolenbroek #include <isc/util.h>
37*00b67f09SDavid van Moolenbroek 
38*00b67f09SDavid van Moolenbroek #ifdef ISC_PLATFORM_WANTAES
39*00b67f09SDavid van Moolenbroek 
40*00b67f09SDavid van Moolenbroek /*
41*00b67f09SDavid van Moolenbroek  * Test data from NIST KAT
42*00b67f09SDavid van Moolenbroek  */
43*00b67f09SDavid van Moolenbroek 
44*00b67f09SDavid van Moolenbroek isc_result_t
45*00b67f09SDavid van Moolenbroek tohexstr(unsigned char *d, char *out);
46*00b67f09SDavid van Moolenbroek 
47*00b67f09SDavid van Moolenbroek size_t
48*00b67f09SDavid van Moolenbroek fromhexstr(const char *in, unsigned char *d);
49*00b67f09SDavid van Moolenbroek 
50*00b67f09SDavid van Moolenbroek unsigned char plaintext[3 * ISC_AES_BLOCK_LENGTH];
51*00b67f09SDavid van Moolenbroek unsigned char ciphertext[ISC_AES_BLOCK_LENGTH];
52*00b67f09SDavid van Moolenbroek char str[2 * ISC_AES_BLOCK_LENGTH + 1];
53*00b67f09SDavid van Moolenbroek unsigned char key[ISC_AES256_KEYLENGTH + 1];
54*00b67f09SDavid van Moolenbroek size_t len;
55*00b67f09SDavid van Moolenbroek 
56*00b67f09SDavid van Moolenbroek isc_result_t
tohexstr(unsigned char * d,char * out)57*00b67f09SDavid van Moolenbroek tohexstr(unsigned char *d, char *out) {
58*00b67f09SDavid van Moolenbroek 	isc_buffer_t b;
59*00b67f09SDavid van Moolenbroek 	isc_region_t r;
60*00b67f09SDavid van Moolenbroek 
61*00b67f09SDavid van Moolenbroek 	isc_buffer_init(&b, out, 2 * ISC_AES_BLOCK_LENGTH + 1);
62*00b67f09SDavid van Moolenbroek 	r.base = d;
63*00b67f09SDavid van Moolenbroek 	r.length = ISC_AES_BLOCK_LENGTH;
64*00b67f09SDavid van Moolenbroek 	return (isc_hex_totext(&r, 0, "", &b));
65*00b67f09SDavid van Moolenbroek }
66*00b67f09SDavid van Moolenbroek 
67*00b67f09SDavid van Moolenbroek size_t
fromhexstr(const char * in,unsigned char * d)68*00b67f09SDavid van Moolenbroek fromhexstr(const char *in, unsigned char *d)
69*00b67f09SDavid van Moolenbroek {
70*00b67f09SDavid van Moolenbroek 	isc_buffer_t b;
71*00b67f09SDavid van Moolenbroek 	isc_result_t ret;
72*00b67f09SDavid van Moolenbroek 
73*00b67f09SDavid van Moolenbroek 	isc_buffer_init(&b, d, ISC_AES256_KEYLENGTH + 1);
74*00b67f09SDavid van Moolenbroek 	ret = isc_hex_decodestring(in, &b);
75*00b67f09SDavid van Moolenbroek 	if (ret != ISC_R_SUCCESS)
76*00b67f09SDavid van Moolenbroek 		return 0;
77*00b67f09SDavid van Moolenbroek 	return isc_buffer_usedlength(&b);
78*00b67f09SDavid van Moolenbroek }
79*00b67f09SDavid van Moolenbroek 
80*00b67f09SDavid van Moolenbroek typedef struct aes_testcase {
81*00b67f09SDavid van Moolenbroek 	const char *key;
82*00b67f09SDavid van Moolenbroek 	const char *input;
83*00b67f09SDavid van Moolenbroek 	const char *result;
84*00b67f09SDavid van Moolenbroek } aes_testcase_t;
85*00b67f09SDavid van Moolenbroek 
86*00b67f09SDavid van Moolenbroek 
87*00b67f09SDavid van Moolenbroek ATF_TC(isc_aes128);
ATF_TC_HEAD(isc_aes128,tc)88*00b67f09SDavid van Moolenbroek ATF_TC_HEAD(isc_aes128, tc) {
89*00b67f09SDavid van Moolenbroek 	atf_tc_set_md_var(tc, "descr", "AES 128 test vectors");
90*00b67f09SDavid van Moolenbroek }
ATF_TC_BODY(isc_aes128,tc)91*00b67f09SDavid van Moolenbroek ATF_TC_BODY(isc_aes128, tc) {
92*00b67f09SDavid van Moolenbroek 	UNUSED(tc);
93*00b67f09SDavid van Moolenbroek 
94*00b67f09SDavid van Moolenbroek 	aes_testcase_t testcases[] = {
95*00b67f09SDavid van Moolenbroek 		/* Test 1 (KAT ECBVarTxt128 #3) */
96*00b67f09SDavid van Moolenbroek 		{
97*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
98*00b67f09SDavid van Moolenbroek 			"F0000000000000000000000000000000",
99*00b67f09SDavid van Moolenbroek 			"96D9FD5CC4F07441727DF0F33E401A36"
100*00b67f09SDavid van Moolenbroek 		},
101*00b67f09SDavid van Moolenbroek 		/* Test 2 (KAT ECBVarTxt128 #123) */
102*00b67f09SDavid van Moolenbroek 		{
103*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
104*00b67f09SDavid van Moolenbroek 			"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0",
105*00b67f09SDavid van Moolenbroek 			"F9B0FDA0C4A898F5B9E6F661C4CE4D07"
106*00b67f09SDavid van Moolenbroek 		},
107*00b67f09SDavid van Moolenbroek 		/* Test 3 (KAT ECBVarKey128 #3) */
108*00b67f09SDavid van Moolenbroek 		{
109*00b67f09SDavid van Moolenbroek 			"F0000000000000000000000000000000",
110*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
111*00b67f09SDavid van Moolenbroek 			"970014D634E2B7650777E8E84D03CCD8"
112*00b67f09SDavid van Moolenbroek 		},
113*00b67f09SDavid van Moolenbroek 		/* Test 4 (KAT ECBVarKey128 #123) */
114*00b67f09SDavid van Moolenbroek 		{
115*00b67f09SDavid van Moolenbroek 			"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0",
116*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
117*00b67f09SDavid van Moolenbroek 			"41C78C135ED9E98C096640647265DA1E"
118*00b67f09SDavid van Moolenbroek 		},
119*00b67f09SDavid van Moolenbroek 		/* Test 5 (KAT ECBGFSbox128 #3) */
120*00b67f09SDavid van Moolenbroek 		{
121*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
122*00b67f09SDavid van Moolenbroek 			"6A118A874519E64E9963798A503F1D35",
123*00b67f09SDavid van Moolenbroek 			"DC43BE40BE0E53712F7E2BF5CA707209"
124*00b67f09SDavid van Moolenbroek 		},
125*00b67f09SDavid van Moolenbroek 		/* Test 6 (KAT ECBKeySbox128 #3) */
126*00b67f09SDavid van Moolenbroek 		{
127*00b67f09SDavid van Moolenbroek 			"B6364AC4E1DE1E285EAF144A2415F7A0",
128*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
129*00b67f09SDavid van Moolenbroek 			"5D9B05578FC944B3CF1CCF0E746CD581"
130*00b67f09SDavid van Moolenbroek 		},
131*00b67f09SDavid van Moolenbroek 		{ NULL, NULL, NULL }
132*00b67f09SDavid van Moolenbroek 	};
133*00b67f09SDavid van Moolenbroek 
134*00b67f09SDavid van Moolenbroek 	aes_testcase_t *testcase = testcases;
135*00b67f09SDavid van Moolenbroek 
136*00b67f09SDavid van Moolenbroek 	while (testcase->key != NULL) {
137*00b67f09SDavid van Moolenbroek 		len = fromhexstr(testcase->key, key);
138*00b67f09SDavid van Moolenbroek 		ATF_CHECK_EQ(len, ISC_AES128_KEYLENGTH);
139*00b67f09SDavid van Moolenbroek 		len = fromhexstr(testcase->input, plaintext);
140*00b67f09SDavid van Moolenbroek 		ATF_CHECK_EQ(len, ISC_AES_BLOCK_LENGTH);
141*00b67f09SDavid van Moolenbroek 		isc_aes128_crypt(key, plaintext, ciphertext);
142*00b67f09SDavid van Moolenbroek 		ATF_CHECK(tohexstr(ciphertext, str) == ISC_R_SUCCESS);
143*00b67f09SDavid van Moolenbroek 		ATF_CHECK_STREQ(str, testcase->result);
144*00b67f09SDavid van Moolenbroek 
145*00b67f09SDavid van Moolenbroek 		testcase++;
146*00b67f09SDavid van Moolenbroek 	}
147*00b67f09SDavid van Moolenbroek }
148*00b67f09SDavid van Moolenbroek 
149*00b67f09SDavid van Moolenbroek ATF_TC(isc_aes192);
ATF_TC_HEAD(isc_aes192,tc)150*00b67f09SDavid van Moolenbroek ATF_TC_HEAD(isc_aes192, tc) {
151*00b67f09SDavid van Moolenbroek 	atf_tc_set_md_var(tc, "descr", "AES 192 test vectors");
152*00b67f09SDavid van Moolenbroek }
ATF_TC_BODY(isc_aes192,tc)153*00b67f09SDavid van Moolenbroek ATF_TC_BODY(isc_aes192, tc) {
154*00b67f09SDavid van Moolenbroek 	UNUSED(tc);
155*00b67f09SDavid van Moolenbroek 
156*00b67f09SDavid van Moolenbroek 	aes_testcase_t testcases[] = {
157*00b67f09SDavid van Moolenbroek 		/* Test 1 (KAT ECBVarTxt192 #3) */
158*00b67f09SDavid van Moolenbroek 		{
159*00b67f09SDavid van Moolenbroek 			"000000000000000000000000000000000000000000000000",
160*00b67f09SDavid van Moolenbroek 			"F0000000000000000000000000000000",
161*00b67f09SDavid van Moolenbroek 			"2A560364CE529EFC21788779568D5555"
162*00b67f09SDavid van Moolenbroek 		},
163*00b67f09SDavid van Moolenbroek 		/* Test 2 (KAT ECBVarTxt192 #123) */
164*00b67f09SDavid van Moolenbroek 		{
165*00b67f09SDavid van Moolenbroek 			"000000000000000000000000000000000000000000000000",
166*00b67f09SDavid van Moolenbroek 			"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0",
167*00b67f09SDavid van Moolenbroek 			"2AABB999F43693175AF65C6C612C46FB"
168*00b67f09SDavid van Moolenbroek 		},
169*00b67f09SDavid van Moolenbroek 		/* Test 3 (KAT ECBVarKey192 #3) */
170*00b67f09SDavid van Moolenbroek 		{
171*00b67f09SDavid van Moolenbroek 			"F00000000000000000000000000000000000000000000000",
172*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
173*00b67f09SDavid van Moolenbroek 			"180B09F267C45145DB2F826C2582D35C"
174*00b67f09SDavid van Moolenbroek 		},
175*00b67f09SDavid van Moolenbroek 		/* Test 4 (KAT ECBVarKey192 #187) */
176*00b67f09SDavid van Moolenbroek 		{
177*00b67f09SDavid van Moolenbroek 			"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0",
178*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
179*00b67f09SDavid van Moolenbroek 			"EACF1E6C4224EFB38900B185AB1DFD42"
180*00b67f09SDavid van Moolenbroek 		},
181*00b67f09SDavid van Moolenbroek 		/* Test 5 (KAT ECBGFSbox192 #3) */
182*00b67f09SDavid van Moolenbroek 		{
183*00b67f09SDavid van Moolenbroek 			"000000000000000000000000000000000000000000000000",
184*00b67f09SDavid van Moolenbroek 			"51719783D3185A535BD75ADC65071CE1",
185*00b67f09SDavid van Moolenbroek 			"4F354592FF7C8847D2D0870CA9481B7C"
186*00b67f09SDavid van Moolenbroek 		},
187*00b67f09SDavid van Moolenbroek 		/* Test 6 (KAT ECBKeySbox192 #3) */
188*00b67f09SDavid van Moolenbroek 		{
189*00b67f09SDavid van Moolenbroek 			"CD62376D5EBB414917F0C78F05266433DC9192A1EC943300",
190*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
191*00b67f09SDavid van Moolenbroek 			"7F6C25FF41858561BB62F36492E93C29"
192*00b67f09SDavid van Moolenbroek 		},
193*00b67f09SDavid van Moolenbroek 		{ NULL, NULL, NULL }
194*00b67f09SDavid van Moolenbroek 	};
195*00b67f09SDavid van Moolenbroek 
196*00b67f09SDavid van Moolenbroek 	aes_testcase_t *testcase = testcases;
197*00b67f09SDavid van Moolenbroek 
198*00b67f09SDavid van Moolenbroek 	while (testcase->key != NULL) {
199*00b67f09SDavid van Moolenbroek 		len = fromhexstr(testcase->key, key);
200*00b67f09SDavid van Moolenbroek 		ATF_CHECK_EQ(len, ISC_AES192_KEYLENGTH);
201*00b67f09SDavid van Moolenbroek 		len = fromhexstr(testcase->input, plaintext);
202*00b67f09SDavid van Moolenbroek 		ATF_CHECK_EQ(len, ISC_AES_BLOCK_LENGTH);
203*00b67f09SDavid van Moolenbroek 		isc_aes192_crypt(key, plaintext, ciphertext);
204*00b67f09SDavid van Moolenbroek 		ATF_CHECK(tohexstr(ciphertext, str) == ISC_R_SUCCESS);
205*00b67f09SDavid van Moolenbroek 		ATF_CHECK_STREQ(str, testcase->result);
206*00b67f09SDavid van Moolenbroek 
207*00b67f09SDavid van Moolenbroek 		testcase++;
208*00b67f09SDavid van Moolenbroek 	}
209*00b67f09SDavid van Moolenbroek }
210*00b67f09SDavid van Moolenbroek 
211*00b67f09SDavid van Moolenbroek ATF_TC(isc_aes256);
ATF_TC_HEAD(isc_aes256,tc)212*00b67f09SDavid van Moolenbroek ATF_TC_HEAD(isc_aes256, tc) {
213*00b67f09SDavid van Moolenbroek 	atf_tc_set_md_var(tc, "descr", "AES 256 test vectors");
214*00b67f09SDavid van Moolenbroek }
ATF_TC_BODY(isc_aes256,tc)215*00b67f09SDavid van Moolenbroek ATF_TC_BODY(isc_aes256, tc) {
216*00b67f09SDavid van Moolenbroek 	UNUSED(tc);
217*00b67f09SDavid van Moolenbroek 
218*00b67f09SDavid van Moolenbroek 	aes_testcase_t testcases[] = {
219*00b67f09SDavid van Moolenbroek 		/* Test 1 (KAT ECBVarTxt256 #3) */
220*00b67f09SDavid van Moolenbroek 		{
221*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000"
222*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
223*00b67f09SDavid van Moolenbroek 			"F0000000000000000000000000000000",
224*00b67f09SDavid van Moolenbroek 			"7F2C5ECE07A98D8BEE13C51177395FF7"
225*00b67f09SDavid van Moolenbroek 		},
226*00b67f09SDavid van Moolenbroek 		/* Test 2 (KAT ECBVarTxt256 #123) */
227*00b67f09SDavid van Moolenbroek 		{
228*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000"
229*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
230*00b67f09SDavid van Moolenbroek 			"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0",
231*00b67f09SDavid van Moolenbroek 			"7240E524BC51D8C4D440B1BE55D1062C"
232*00b67f09SDavid van Moolenbroek 		},
233*00b67f09SDavid van Moolenbroek 		/* Test 3 (KAT ECBVarKey256 #3) */
234*00b67f09SDavid van Moolenbroek 		{
235*00b67f09SDavid van Moolenbroek 			"F0000000000000000000000000000000"
236*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
237*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
238*00b67f09SDavid van Moolenbroek 			"1C777679D50037C79491A94DA76A9A35"
239*00b67f09SDavid van Moolenbroek 		},
240*00b67f09SDavid van Moolenbroek 		/* Test 4 (KAT ECBVarKey256 #251) */
241*00b67f09SDavid van Moolenbroek 		{
242*00b67f09SDavid van Moolenbroek 			"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
243*00b67f09SDavid van Moolenbroek 			"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0",
244*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
245*00b67f09SDavid van Moolenbroek 			"03720371A04962EAEA0A852E69972858"
246*00b67f09SDavid van Moolenbroek 		},
247*00b67f09SDavid van Moolenbroek 		/* Test 5 (KAT ECBGFSbox256 #3) */
248*00b67f09SDavid van Moolenbroek 		{
249*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000"
250*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
251*00b67f09SDavid van Moolenbroek 			"8A560769D605868AD80D819BDBA03771",
252*00b67f09SDavid van Moolenbroek 			"38F2C7AE10612415D27CA190D27DA8B4"
253*00b67f09SDavid van Moolenbroek 		},
254*00b67f09SDavid van Moolenbroek 		/* Test 6 (KAT ECBKeySbox256 #3) */
255*00b67f09SDavid van Moolenbroek 		{
256*00b67f09SDavid van Moolenbroek 			"984CA75F4EE8D706F46C2D98C0BF4A45"
257*00b67f09SDavid van Moolenbroek 			"F5B00D791C2DFEB191B5ED8E420FD627",
258*00b67f09SDavid van Moolenbroek 			"00000000000000000000000000000000",
259*00b67f09SDavid van Moolenbroek 			"4307456A9E67813B452E15FA8FFFE398"
260*00b67f09SDavid van Moolenbroek 		},
261*00b67f09SDavid van Moolenbroek 		{ NULL, NULL, NULL }
262*00b67f09SDavid van Moolenbroek 	};
263*00b67f09SDavid van Moolenbroek 
264*00b67f09SDavid van Moolenbroek 	aes_testcase_t *testcase = testcases;
265*00b67f09SDavid van Moolenbroek 
266*00b67f09SDavid van Moolenbroek 	while (testcase->key != NULL) {
267*00b67f09SDavid van Moolenbroek 		len = fromhexstr(testcase->key, key);
268*00b67f09SDavid van Moolenbroek 		ATF_CHECK_EQ(len, ISC_AES256_KEYLENGTH);
269*00b67f09SDavid van Moolenbroek 		len = fromhexstr(testcase->input, plaintext);
270*00b67f09SDavid van Moolenbroek 		ATF_CHECK_EQ(len, ISC_AES_BLOCK_LENGTH);
271*00b67f09SDavid van Moolenbroek 		isc_aes256_crypt(key, plaintext, ciphertext);
272*00b67f09SDavid van Moolenbroek 		ATF_CHECK(tohexstr(ciphertext, str) == ISC_R_SUCCESS);
273*00b67f09SDavid van Moolenbroek 		ATF_CHECK_STREQ(str, testcase->result);
274*00b67f09SDavid van Moolenbroek 
275*00b67f09SDavid van Moolenbroek 		testcase++;
276*00b67f09SDavid van Moolenbroek 	}
277*00b67f09SDavid van Moolenbroek }
278*00b67f09SDavid van Moolenbroek #else
279*00b67f09SDavid van Moolenbroek ATF_TC(untested);
ATF_TC_HEAD(untested,tc)280*00b67f09SDavid van Moolenbroek ATF_TC_HEAD(untested, tc) {
281*00b67f09SDavid van Moolenbroek 	atf_tc_set_md_var(tc, "descr", "skipping aes test");
282*00b67f09SDavid van Moolenbroek }
ATF_TC_BODY(untested,tc)283*00b67f09SDavid van Moolenbroek ATF_TC_BODY(untested, tc) {
284*00b67f09SDavid van Moolenbroek 	UNUSED(tc);
285*00b67f09SDavid van Moolenbroek 	atf_tc_skip("AES not available");
286*00b67f09SDavid van Moolenbroek }
287*00b67f09SDavid van Moolenbroek #endif
288*00b67f09SDavid van Moolenbroek 
289*00b67f09SDavid van Moolenbroek /*
290*00b67f09SDavid van Moolenbroek  * Main
291*00b67f09SDavid van Moolenbroek  */
ATF_TP_ADD_TCS(tp)292*00b67f09SDavid van Moolenbroek ATF_TP_ADD_TCS(tp) {
293*00b67f09SDavid van Moolenbroek #ifdef ISC_PLATFORM_WANTAES
294*00b67f09SDavid van Moolenbroek 	ATF_TP_ADD_TC(tp, isc_aes128);
295*00b67f09SDavid van Moolenbroek 	ATF_TP_ADD_TC(tp, isc_aes192);
296*00b67f09SDavid van Moolenbroek 	ATF_TP_ADD_TC(tp, isc_aes256);
297*00b67f09SDavid van Moolenbroek #else
298*00b67f09SDavid van Moolenbroek 	ATF_TP_ADD_TC(tp, untested);
299*00b67f09SDavid van Moolenbroek #endif
300*00b67f09SDavid van Moolenbroek 	return (atf_no_error());
301*00b67f09SDavid van Moolenbroek }
302*00b67f09SDavid van Moolenbroek 
303