xref: /freebsd-src/contrib/netbsd-tests/dev/cgd/t_cgd_3des.c (revision 1a36faad54665288ed4eb839d2a4699ae2ead45e)
1*63d1fd59SEnji Cooper /*	$NetBSD: t_cgd_3des.c,v 1.2 2017/01/13 21:30:39 christos Exp $	*/
2cdebaff8SEnji Cooper /*-
3cdebaff8SEnji Cooper  * Copyright (c) 2016 The NetBSD Foundation, Inc.
4cdebaff8SEnji Cooper  * All rights reserved.
5cdebaff8SEnji Cooper  *
6cdebaff8SEnji Cooper  * This code is derived from software contributed to The NetBSD Foundation
7cdebaff8SEnji Cooper  * by Alexander Nasonov.
8cdebaff8SEnji Cooper  *
9cdebaff8SEnji Cooper  * Redistribution and use in source and binary forms, with or without
10cdebaff8SEnji Cooper  * modification, are permitted provided that the following conditions
11cdebaff8SEnji Cooper  * are met:
12cdebaff8SEnji Cooper  *
13cdebaff8SEnji Cooper  * 1. Redistributions of source code must retain the above copyright
14cdebaff8SEnji Cooper  *    notice, this list of conditions and the following disclaimer.
15cdebaff8SEnji Cooper  * 2. Redistributions in binary form must reproduce the above copyright
16cdebaff8SEnji Cooper  *    notice, this list of conditions and the following disclaimer in
17cdebaff8SEnji Cooper  *    the documentation and/or other materials provided with the
18cdebaff8SEnji Cooper  *    distribution.
19cdebaff8SEnji Cooper  *
20cdebaff8SEnji Cooper  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21cdebaff8SEnji Cooper  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22cdebaff8SEnji Cooper  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23cdebaff8SEnji Cooper  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
24cdebaff8SEnji Cooper  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25cdebaff8SEnji Cooper  * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
26cdebaff8SEnji Cooper  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27cdebaff8SEnji Cooper  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28cdebaff8SEnji Cooper  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29cdebaff8SEnji Cooper  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30cdebaff8SEnji Cooper  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31cdebaff8SEnji Cooper  * SUCH DAMAGE.
32cdebaff8SEnji Cooper  */
33cdebaff8SEnji Cooper 
34cdebaff8SEnji Cooper #include <sys/types.h>
35cdebaff8SEnji Cooper #include <sys/ioctl.h>
36cdebaff8SEnji Cooper #include <sys/sysctl.h>
37cdebaff8SEnji Cooper 
38cdebaff8SEnji Cooper #include <atf-c.h>
39cdebaff8SEnji Cooper #include <fcntl.h>
40cdebaff8SEnji Cooper #include <stdio.h>
41cdebaff8SEnji Cooper #include <stdlib.h>
42cdebaff8SEnji Cooper #include <string.h>
43cdebaff8SEnji Cooper #include <unistd.h>
44cdebaff8SEnji Cooper #include <util.h>
45cdebaff8SEnji Cooper 
46cdebaff8SEnji Cooper #include <dev/cgdvar.h>
47cdebaff8SEnji Cooper 
48cdebaff8SEnji Cooper #include <rump/rump.h>
49cdebaff8SEnji Cooper #include <rump/rump_syscalls.h>
50cdebaff8SEnji Cooper 
51*63d1fd59SEnji Cooper #include "h_macros.h"
52cdebaff8SEnji Cooper 
53cdebaff8SEnji Cooper #define SECSIZE 512
54cdebaff8SEnji Cooper 
55cdebaff8SEnji Cooper struct testvec {
56cdebaff8SEnji Cooper 	unsigned int blkno;
57cdebaff8SEnji Cooper 	const uint8_t *ptxt;	/* PlainText  */
58cdebaff8SEnji Cooper 	const uint8_t *ctxt;	/* CipherText */
59cdebaff8SEnji Cooper };
60cdebaff8SEnji Cooper 
61cdebaff8SEnji Cooper /*
62cdebaff8SEnji Cooper  * 192 bits CBC key, NUL terminated.
63cdebaff8SEnji Cooper  */
64cdebaff8SEnji Cooper static const char c3des_cbc_192_key[25] = {
65cdebaff8SEnji Cooper 	0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* ABCDEFGH */
66cdebaff8SEnji Cooper 	0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* IJKLMNOP */
67cdebaff8SEnji Cooper 	0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* QRSTUVWX */
68cdebaff8SEnji Cooper 	0
69cdebaff8SEnji Cooper };
70cdebaff8SEnji Cooper 
71cdebaff8SEnji Cooper static const uint8_t c3des_cbc_ptxt[SECSIZE] =
72cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
73cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
74cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
75cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
76cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
77cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
78cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
79cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
80cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
81cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
82cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
83cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
84cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
85cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
86cdebaff8SEnji Cooper 	"                abcdefghijklmnop"
87cdebaff8SEnji Cooper 	"                abcdefghijklmnop";
88cdebaff8SEnji Cooper 
89cdebaff8SEnji Cooper /*
90cdebaff8SEnji Cooper  * IV method encblkno1, blkno 0.
91cdebaff8SEnji Cooper  */
92cdebaff8SEnji Cooper static const uint8_t c3des_cbc_192_encblkno1_vec0_ctxt[SECSIZE] = {
93cdebaff8SEnji Cooper 	0x19, 0x92, 0xc8, 0xce, 0xdf, 0xa3, 0x14, 0xef,
94cdebaff8SEnji Cooper 	0xff, 0x88, 0x9f, 0x01, 0xfa, 0x6f, 0xfa, 0xa6,
95cdebaff8SEnji Cooper 	0xdd, 0x2b, 0x43, 0x67, 0xfa, 0xce, 0x37, 0x95,
96cdebaff8SEnji Cooper 	0x73, 0x4d, 0x18, 0x33, 0x0c, 0x29, 0xb6, 0xbb,
97cdebaff8SEnji Cooper 	0x37, 0x77, 0x31, 0x74, 0xf6, 0x62, 0x03, 0xd2,
98cdebaff8SEnji Cooper 	0x78, 0x13, 0x55, 0xf6, 0x58, 0x49, 0xaf, 0x2a,
99cdebaff8SEnji Cooper 	0x15, 0x4c, 0xc2, 0x4a, 0x55, 0x99, 0x82, 0xb9,
100cdebaff8SEnji Cooper 	0xfb, 0x8b, 0x4f, 0x92, 0xe3, 0xbc, 0x9b, 0x09,
101cdebaff8SEnji Cooper 	0x42, 0x7b, 0x5f, 0x54, 0xed, 0xf0, 0xcb, 0x5d,
102cdebaff8SEnji Cooper 	0x93, 0xba, 0x09, 0x4b, 0x20, 0xf3, 0xe6, 0x44,
103cdebaff8SEnji Cooper 	0x30, 0x5e, 0x9e, 0xfc, 0x7a, 0x3c, 0x7d, 0x11,
104cdebaff8SEnji Cooper 	0x63, 0xea, 0x40, 0x94, 0xaa, 0xd0, 0xa9, 0xf6,
105cdebaff8SEnji Cooper 	0xc7, 0x1e, 0x8f, 0xc8, 0xa6, 0x2c, 0xf7, 0xeb,
106cdebaff8SEnji Cooper 	0x51, 0x26, 0xdc, 0xf8, 0x73, 0xf9, 0xb4, 0xa8,
107cdebaff8SEnji Cooper 	0x80, 0x4a, 0xe5, 0x6f, 0xb6, 0x33, 0x13, 0x6b,
108cdebaff8SEnji Cooper 	0x1b, 0x7d, 0x00, 0xde, 0x44, 0x7e, 0x26, 0xa2,
109cdebaff8SEnji Cooper 	0x82, 0xa7, 0x80, 0x16, 0x34, 0xde, 0xb9, 0x82,
110cdebaff8SEnji Cooper 	0x4c, 0x42, 0x8e, 0x0d, 0x48, 0x7e, 0x38, 0xbd,
111cdebaff8SEnji Cooper 	0x1d, 0x7d, 0x98, 0xbb, 0x11, 0x8a, 0x72, 0x14,
112cdebaff8SEnji Cooper 	0x4e, 0xaa, 0xd0, 0xef, 0x4d, 0x7f, 0xa3, 0xa6,
113cdebaff8SEnji Cooper 	0xfc, 0x85, 0x9d, 0x74, 0x63, 0x9d, 0xe4, 0x5c,
114cdebaff8SEnji Cooper 	0xf7, 0xa8, 0xd0, 0xd7, 0x95, 0xb4, 0x28, 0x64,
115cdebaff8SEnji Cooper 	0x41, 0x2d, 0x5d, 0xd9, 0xba, 0x79, 0xa7, 0xb3,
116cdebaff8SEnji Cooper 	0x9c, 0x16, 0xfa, 0xb8, 0x10, 0x5d, 0x1d, 0xd4,
117cdebaff8SEnji Cooper 	0xce, 0xad, 0x67, 0x27, 0x91, 0x8a, 0xb3, 0xbc,
118cdebaff8SEnji Cooper 	0x37, 0x20, 0x95, 0xac, 0xf7, 0x0d, 0xe0, 0x1e,
119cdebaff8SEnji Cooper 	0x59, 0xa7, 0xe5, 0x81, 0x82, 0x6a, 0x71, 0x07,
120cdebaff8SEnji Cooper 	0x85, 0x43, 0x43, 0xdb, 0xbf, 0x56, 0xb0, 0x0a,
121cdebaff8SEnji Cooper 	0x4c, 0xf1, 0xcd, 0xcd, 0xa3, 0x9a, 0x10, 0x8e,
122cdebaff8SEnji Cooper 	0x0c, 0xe2, 0x6d, 0xf2, 0x16, 0xd0, 0x4c, 0xac,
123cdebaff8SEnji Cooper 	0xf9, 0xfc, 0xc9, 0x56, 0x1f, 0x31, 0x89, 0x1c,
124cdebaff8SEnji Cooper 	0xfa, 0xb7, 0x49, 0xea, 0x69, 0x91, 0xfe, 0x45,
125cdebaff8SEnji Cooper 	0x96, 0x5e, 0x45, 0xc3, 0x2c, 0xb1, 0x40, 0xd9,
126cdebaff8SEnji Cooper 	0x1f, 0x82, 0x3f, 0xc1, 0x45, 0x7c, 0x39, 0x72,
127cdebaff8SEnji Cooper 	0x6f, 0x52, 0xe4, 0xaf, 0x15, 0xa4, 0xe2, 0xd4,
128cdebaff8SEnji Cooper 	0xa1, 0xa4, 0xb2, 0xb5, 0x4a, 0x0b, 0xad, 0xe4,
129cdebaff8SEnji Cooper 	0x1e, 0x5c, 0x26, 0x62, 0x81, 0x78, 0x3e, 0xd3,
130cdebaff8SEnji Cooper 	0x6a, 0x98, 0x94, 0x2a, 0x00, 0xa7, 0xe4, 0x04,
131cdebaff8SEnji Cooper 	0x9d, 0x9a, 0xfc, 0xcf, 0xad, 0x2b, 0xba, 0x9b,
132cdebaff8SEnji Cooper 	0x40, 0x1e, 0x71, 0x3a, 0xb6, 0x92, 0xc4, 0xc5,
133cdebaff8SEnji Cooper 	0x56, 0x58, 0x92, 0x2a, 0x69, 0xbe, 0x0f, 0xb0,
134cdebaff8SEnji Cooper 	0x91, 0xae, 0xaa, 0x3f, 0x07, 0xe8, 0xf9, 0x71,
135cdebaff8SEnji Cooper 	0x20, 0x06, 0xed, 0xe0, 0x80, 0xec, 0xc9, 0xe7,
136cdebaff8SEnji Cooper 	0x54, 0xaa, 0xaa, 0xf4, 0x4c, 0xb2, 0x34, 0xf7,
137cdebaff8SEnji Cooper 	0x8a, 0x76, 0xc2, 0x4a, 0xae, 0x71, 0x7a, 0x07,
138cdebaff8SEnji Cooper 	0xd7, 0xec, 0x75, 0x2f, 0x8a, 0x99, 0x59, 0x13,
139cdebaff8SEnji Cooper 	0xd0, 0x8d, 0x18, 0x69, 0x0d, 0xd9, 0x39, 0x73,
140cdebaff8SEnji Cooper 	0x2b, 0xd0, 0xa3, 0xbc, 0x9e, 0x29, 0x4d, 0x88,
141cdebaff8SEnji Cooper 	0xff, 0x98, 0x02, 0xb4, 0xcf, 0xa1, 0xf9, 0x2a,
142cdebaff8SEnji Cooper 	0xa6, 0xef, 0x7c, 0x72, 0x26, 0x4e, 0xd7, 0xdf,
143cdebaff8SEnji Cooper 	0xec, 0x3a, 0xbc, 0x8e, 0xe6, 0xb3, 0x2b, 0x43,
144cdebaff8SEnji Cooper 	0xcd, 0x67, 0x8b, 0x72, 0x00, 0x6f, 0xe5, 0x85,
145cdebaff8SEnji Cooper 	0xe2, 0x2a, 0x4c, 0x8d, 0x02, 0x44, 0x6b, 0x7a,
146cdebaff8SEnji Cooper 	0x89, 0x7a, 0x18, 0x3b, 0xc8, 0x9c, 0x8d, 0x60,
147cdebaff8SEnji Cooper 	0xec, 0x79, 0x58, 0x15, 0x98, 0x71, 0x4b, 0x1a,
148cdebaff8SEnji Cooper 	0x34, 0x69, 0x96, 0xd0, 0x0f, 0x01, 0x27, 0x2e,
149cdebaff8SEnji Cooper 	0x19, 0x02, 0xf0, 0x17, 0x8c, 0x89, 0xbf, 0x05,
150cdebaff8SEnji Cooper 	0xf0, 0xfe, 0xc3, 0xe6, 0x90, 0x9d, 0xa2, 0xb1,
151cdebaff8SEnji Cooper 	0x40, 0x06, 0x7e, 0xcd, 0x20, 0x7e, 0x5f, 0x54,
152cdebaff8SEnji Cooper 	0x31, 0xfb, 0x79, 0x84, 0x47, 0x38, 0x71, 0x69,
153cdebaff8SEnji Cooper 	0xe1, 0xd5, 0x4e, 0x84, 0xa3, 0x2b, 0x4a, 0x86,
154cdebaff8SEnji Cooper 	0xc2, 0x21, 0x5b, 0x15, 0xc3, 0x63, 0xbb, 0xc5,
155cdebaff8SEnji Cooper 	0x5c, 0xc1, 0xfb, 0x31, 0x3a, 0x4d, 0xb1, 0x9e,
156cdebaff8SEnji Cooper 	0xe1, 0xd8, 0x67, 0x4b, 0x08, 0x42, 0xc4, 0xe8,
157cdebaff8SEnji Cooper };
158cdebaff8SEnji Cooper 
159cdebaff8SEnji Cooper /*
160cdebaff8SEnji Cooper  * IV method encblkno1, blkno 1.
161cdebaff8SEnji Cooper  */
162cdebaff8SEnji Cooper static const uint8_t c3des_cbc_192_encblkno1_vec1_ctxt[SECSIZE] = {
163cdebaff8SEnji Cooper 	0x1d, 0x65, 0xdf, 0x01, 0x9b, 0x24, 0xa5, 0x10,
164cdebaff8SEnji Cooper 	0x94, 0x9a, 0x5b, 0x81, 0x96, 0x4e, 0xa3, 0x42,
165cdebaff8SEnji Cooper 	0x42, 0xd5, 0x05, 0x52, 0xab, 0x3c, 0x67, 0x40,
166cdebaff8SEnji Cooper 	0x79, 0xf9, 0x4b, 0x58, 0x39, 0xf6, 0xd0, 0x97,
167cdebaff8SEnji Cooper 	0x48, 0xf4, 0x77, 0xb8, 0xac, 0xe2, 0x10, 0x66,
168cdebaff8SEnji Cooper 	0xa8, 0x04, 0x0a, 0x1e, 0xa6, 0xbb, 0x4c, 0xd9,
169cdebaff8SEnji Cooper 	0x5d, 0x0c, 0x11, 0xb5, 0xe0, 0x26, 0x84, 0x50,
170cdebaff8SEnji Cooper 	0x10, 0x80, 0xbf, 0xd6, 0xdc, 0x82, 0x53, 0x0a,
171cdebaff8SEnji Cooper 	0xcf, 0xf6, 0xd3, 0x07, 0x45, 0xb0, 0x8e, 0x36,
172cdebaff8SEnji Cooper 	0x2e, 0x60, 0x0f, 0xd0, 0xc1, 0xb9, 0xd8, 0x29,
173cdebaff8SEnji Cooper 	0x6e, 0x13, 0x8e, 0xc1, 0xa8, 0x63, 0x20, 0xe0,
174cdebaff8SEnji Cooper 	0x8d, 0x47, 0x8b, 0xf9, 0xa0, 0x60, 0x55, 0x53,
175cdebaff8SEnji Cooper 	0x1d, 0xaf, 0x43, 0x46, 0xe5, 0x10, 0xd5, 0xcd,
176cdebaff8SEnji Cooper 	0x91, 0x9e, 0x11, 0x4a, 0x6f, 0x6a, 0x13, 0xdf,
177cdebaff8SEnji Cooper 	0xee, 0x7a, 0x88, 0xbe, 0x59, 0x96, 0xdb, 0x65,
178cdebaff8SEnji Cooper 	0x25, 0x57, 0x9e, 0x82, 0xad, 0xc2, 0xd6, 0x28,
179cdebaff8SEnji Cooper 	0x96, 0xb3, 0x7f, 0x57, 0x5d, 0xb2, 0xfa, 0x60,
180cdebaff8SEnji Cooper 	0x43, 0x22, 0xa5, 0x33, 0x14, 0x99, 0x8f, 0x68,
181cdebaff8SEnji Cooper 	0x5a, 0x7f, 0xaf, 0x9e, 0xe9, 0x23, 0x57, 0x9b,
182cdebaff8SEnji Cooper 	0x52, 0xe9, 0x20, 0x59, 0x26, 0x89, 0x9b, 0x59,
183cdebaff8SEnji Cooper 	0xb0, 0xee, 0xe8, 0x6d, 0x06, 0x8c, 0x01, 0xc2,
184cdebaff8SEnji Cooper 	0xea, 0xbc, 0x7d, 0x93, 0x3f, 0x79, 0x7f, 0xeb,
185cdebaff8SEnji Cooper 	0x57, 0xc9, 0x0a, 0xca, 0x37, 0x81, 0xa7, 0x82,
186cdebaff8SEnji Cooper 	0xde, 0x37, 0x7d, 0x69, 0x01, 0xaa, 0x19, 0x98,
187cdebaff8SEnji Cooper 	0x26, 0xfe, 0x06, 0x83, 0xeb, 0x9d, 0x26, 0xdc,
188cdebaff8SEnji Cooper 	0x04, 0x5d, 0xc9, 0x05, 0xee, 0x1a, 0xd3, 0xeb,
189cdebaff8SEnji Cooper 	0x20, 0x8c, 0xb7, 0x99, 0x75, 0xe0, 0x19, 0x98,
190cdebaff8SEnji Cooper 	0xca, 0x83, 0xae, 0x94, 0x28, 0xbf, 0x47, 0x42,
191cdebaff8SEnji Cooper 	0x92, 0x05, 0x8c, 0xaa, 0xeb, 0x99, 0x0f, 0xcc,
192cdebaff8SEnji Cooper 	0x33, 0x79, 0x24, 0x62, 0xa0, 0x7a, 0x65, 0xcb,
193cdebaff8SEnji Cooper 	0x53, 0xb7, 0x86, 0x0d, 0xcb, 0x44, 0x2d, 0xbf,
194cdebaff8SEnji Cooper 	0xe8, 0x5d, 0x62, 0xeb, 0x21, 0x4d, 0x35, 0x86,
195cdebaff8SEnji Cooper 	0x56, 0x6c, 0x51, 0xff, 0xa3, 0x45, 0xcc, 0x88,
196cdebaff8SEnji Cooper 	0x09, 0x43, 0x08, 0x97, 0x13, 0x7d, 0x00, 0xd8,
197cdebaff8SEnji Cooper 	0x82, 0x2d, 0xbe, 0xbe, 0x44, 0x0c, 0x2c, 0xa4,
198cdebaff8SEnji Cooper 	0x4f, 0x84, 0x07, 0x20, 0x9c, 0x3f, 0xf6, 0x5b,
199cdebaff8SEnji Cooper 	0x9e, 0xe8, 0x68, 0x40, 0xd3, 0x64, 0x8f, 0xb4,
200cdebaff8SEnji Cooper 	0x9e, 0xac, 0xc6, 0x41, 0x11, 0xda, 0xf2, 0x60,
201cdebaff8SEnji Cooper 	0xfa, 0x29, 0x9d, 0x26, 0x68, 0x5b, 0x79, 0x3a,
202cdebaff8SEnji Cooper 	0xd1, 0x66, 0x78, 0xca, 0x80, 0x87, 0xae, 0xab,
203cdebaff8SEnji Cooper 	0x7b, 0x29, 0x3c, 0xb0, 0xe6, 0xa2, 0x6b, 0x24,
204cdebaff8SEnji Cooper 	0x81, 0xeb, 0x51, 0xf9, 0xcb, 0x4a, 0x08, 0x37,
205cdebaff8SEnji Cooper 	0x2a, 0x75, 0xb5, 0xd3, 0xb3, 0x8f, 0x3d, 0x13,
206cdebaff8SEnji Cooper 	0x11, 0x0c, 0xa9, 0xf7, 0xf6, 0x57, 0x7e, 0xb7,
207cdebaff8SEnji Cooper 	0xa6, 0x22, 0xe8, 0x13, 0xfd, 0xf1, 0x6a, 0xe9,
208cdebaff8SEnji Cooper 	0xc1, 0x94, 0xa6, 0xf5, 0xa5, 0xec, 0xfa, 0x31,
209cdebaff8SEnji Cooper 	0xd2, 0x66, 0x8f, 0xe3, 0x6e, 0x9a, 0xaa, 0xb0,
210cdebaff8SEnji Cooper 	0xe3, 0x04, 0x09, 0x00, 0x1e, 0x67, 0x3c, 0xbe,
211cdebaff8SEnji Cooper 	0x2a, 0x8c, 0xd5, 0x1f, 0x4f, 0x55, 0x2c, 0x1d,
212cdebaff8SEnji Cooper 	0x26, 0x7f, 0xc9, 0x27, 0x00, 0x88, 0x7d, 0x45,
213cdebaff8SEnji Cooper 	0x4e, 0xe1, 0x36, 0xf6, 0xf5, 0xa8, 0xd4, 0xef,
214cdebaff8SEnji Cooper 	0x8b, 0x26, 0x76, 0x41, 0x28, 0x87, 0xf4, 0x51,
215cdebaff8SEnji Cooper 	0x14, 0x36, 0xad, 0x60, 0x8d, 0xe9, 0xe2, 0x9d,
216cdebaff8SEnji Cooper 	0x3c, 0xea, 0x09, 0x51, 0x3c, 0x81, 0xdf, 0x1a,
217cdebaff8SEnji Cooper 	0xc2, 0xc2, 0xf6, 0x45, 0xe1, 0x73, 0xac, 0xae,
218cdebaff8SEnji Cooper 	0x85, 0x74, 0x83, 0x8f, 0x56, 0x3c, 0x36, 0x1c,
219cdebaff8SEnji Cooper 	0xe0, 0x07, 0xc6, 0x6a, 0x48, 0xe4, 0x34, 0xe9,
220cdebaff8SEnji Cooper 	0x81, 0x53, 0xb7, 0x53, 0x95, 0xa7, 0x94, 0x21,
221cdebaff8SEnji Cooper 	0x7e, 0x32, 0x53, 0xda, 0x83, 0xd8, 0x57, 0x92,
222cdebaff8SEnji Cooper 	0xd1, 0x15, 0x45, 0x86, 0x40, 0xac, 0xf1, 0x6f,
223cdebaff8SEnji Cooper 	0x3c, 0x29, 0xef, 0x8d, 0x12, 0xe1, 0x9d, 0x04,
224cdebaff8SEnji Cooper 	0x17, 0x3a, 0xcc, 0xa6, 0xc5, 0xe4, 0x27, 0x41,
225cdebaff8SEnji Cooper 	0xcb, 0xfb, 0x5e, 0x77, 0x73, 0x5a, 0x2c, 0x03,
226cdebaff8SEnji Cooper 	0xe9, 0x2b, 0x76, 0x4e, 0x69, 0xea, 0xcb, 0xb3,
227cdebaff8SEnji Cooper };
228cdebaff8SEnji Cooper 
229cdebaff8SEnji Cooper /*
230cdebaff8SEnji Cooper  * IV method encblkno1, blkno 2.
231cdebaff8SEnji Cooper  */
232cdebaff8SEnji Cooper static const uint8_t c3des_cbc_192_encblkno1_vec2_ctxt[SECSIZE] = {
233cdebaff8SEnji Cooper 	0x87, 0xb1, 0x3c, 0xd6, 0x60, 0xa0, 0x5a, 0x35,
234cdebaff8SEnji Cooper 	0xf7, 0xe1, 0x6b, 0x87, 0xa0, 0x90, 0x2f, 0xc7,
235cdebaff8SEnji Cooper 	0x8c, 0xed, 0x53, 0xda, 0x93, 0x32, 0x78, 0x5d,
236cdebaff8SEnji Cooper 	0x24, 0x23, 0x42, 0xdd, 0x93, 0x5b, 0x2e, 0x40,
237cdebaff8SEnji Cooper 	0xa1, 0xb1, 0x3b, 0xbb, 0xf0, 0x50, 0xb4, 0x61,
238cdebaff8SEnji Cooper 	0xea, 0x15, 0x37, 0xf3, 0x49, 0xe1, 0xa0, 0x32,
239cdebaff8SEnji Cooper 	0x88, 0x85, 0x81, 0xfd, 0xb7, 0x96, 0xd7, 0x9d,
240cdebaff8SEnji Cooper 	0xd7, 0x29, 0x4b, 0x14, 0xf9, 0x18, 0x6a, 0xf6,
241cdebaff8SEnji Cooper 	0x46, 0xae, 0x69, 0xdf, 0x63, 0x9a, 0xe0, 0x0b,
242cdebaff8SEnji Cooper 	0x2c, 0x53, 0xd7, 0x82, 0x6f, 0xe5, 0xa0, 0x95,
243cdebaff8SEnji Cooper 	0x2f, 0x61, 0x7f, 0x15, 0xff, 0xc7, 0xe8, 0x83,
244cdebaff8SEnji Cooper 	0xfc, 0xfc, 0x16, 0x1c, 0x37, 0x0f, 0x9b, 0xbb,
245cdebaff8SEnji Cooper 	0x14, 0xb2, 0xe2, 0xb7, 0x1f, 0x85, 0xb7, 0x07,
246cdebaff8SEnji Cooper 	0x8a, 0x18, 0xed, 0xf7, 0x5f, 0x27, 0xff, 0x2f,
247cdebaff8SEnji Cooper 	0x07, 0xf9, 0x9d, 0xe3, 0x79, 0x45, 0x1f, 0x51,
248cdebaff8SEnji Cooper 	0x08, 0x54, 0x0f, 0x56, 0x84, 0xee, 0x87, 0x9a,
249cdebaff8SEnji Cooper 	0xa9, 0x46, 0xb8, 0x77, 0x85, 0x40, 0x46, 0x50,
250cdebaff8SEnji Cooper 	0xc1, 0x58, 0x07, 0xfd, 0xfa, 0x2b, 0x20, 0xd6,
251cdebaff8SEnji Cooper 	0x4e, 0xba, 0x08, 0x02, 0x59, 0x3d, 0x23, 0x3b,
252cdebaff8SEnji Cooper 	0x5d, 0xf9, 0x5e, 0x2f, 0xac, 0x9e, 0xa0, 0xd7,
253cdebaff8SEnji Cooper 	0x3f, 0x9a, 0xdf, 0x50, 0x66, 0xcc, 0x28, 0xce,
254cdebaff8SEnji Cooper 	0x93, 0xc8, 0x11, 0x5c, 0x74, 0xe2, 0x4f, 0xfd,
255cdebaff8SEnji Cooper 	0xaf, 0x33, 0xbb, 0xce, 0x96, 0x1f, 0xb3, 0x46,
256cdebaff8SEnji Cooper 	0x6e, 0xcd, 0xe4, 0xef, 0xfa, 0x2f, 0x93, 0xb1,
257cdebaff8SEnji Cooper 	0xe5, 0x7c, 0x54, 0xbc, 0x17, 0x1f, 0xd5, 0x31,
258cdebaff8SEnji Cooper 	0x0e, 0x88, 0xe7, 0xcd, 0xb0, 0xb5, 0x2e, 0x1e,
259cdebaff8SEnji Cooper 	0x9e, 0x40, 0x36, 0xa5, 0xbb, 0xa7, 0x4e, 0xc8,
260cdebaff8SEnji Cooper 	0x11, 0x6c, 0xae, 0x1c, 0x2d, 0xdb, 0x55, 0xd8,
261cdebaff8SEnji Cooper 	0x14, 0x40, 0x02, 0xad, 0xaf, 0x19, 0x28, 0x59,
262cdebaff8SEnji Cooper 	0xd7, 0x4f, 0x81, 0xd0, 0xc1, 0x54, 0x63, 0x73,
263cdebaff8SEnji Cooper 	0x0e, 0xfb, 0x26, 0xf2, 0xa6, 0x80, 0xca, 0x2e,
264cdebaff8SEnji Cooper 	0xf3, 0xca, 0x1e, 0xa4, 0x62, 0x07, 0x22, 0x10,
265cdebaff8SEnji Cooper 	0x11, 0x6a, 0x57, 0x28, 0x45, 0x80, 0xdf, 0x34,
266cdebaff8SEnji Cooper 	0x88, 0xe5, 0xf1, 0x23, 0xe0, 0xb6, 0x44, 0x51,
267cdebaff8SEnji Cooper 	0x54, 0xd8, 0xb3, 0x66, 0xac, 0x46, 0x4d, 0xdf,
268cdebaff8SEnji Cooper 	0xa2, 0x8e, 0x72, 0x3a, 0x1c, 0x87, 0x2a, 0x43,
269cdebaff8SEnji Cooper 	0xfe, 0xdb, 0x00, 0xff, 0xb7, 0x1c, 0x13, 0xc3,
270cdebaff8SEnji Cooper 	0x18, 0xfc, 0x71, 0x13, 0xe3, 0xd1, 0x1f, 0xde,
271cdebaff8SEnji Cooper 	0x16, 0x63, 0x73, 0xf5, 0x0e, 0xf7, 0x18, 0xe5,
272cdebaff8SEnji Cooper 	0x48, 0x8d, 0x30, 0xd9, 0x26, 0x20, 0x6d, 0xa1,
273cdebaff8SEnji Cooper 	0xba, 0xde, 0xe8, 0x7d, 0x77, 0x02, 0x33, 0x0d,
274cdebaff8SEnji Cooper 	0x73, 0xb2, 0xab, 0x35, 0xfd, 0xa5, 0x6e, 0x4c,
275cdebaff8SEnji Cooper 	0x5c, 0x27, 0xc7, 0x7e, 0x4a, 0x28, 0xf8, 0xf5,
276cdebaff8SEnji Cooper 	0x00, 0xbe, 0x4c, 0xd7, 0x2c, 0x27, 0x83, 0x16,
277cdebaff8SEnji Cooper 	0x37, 0xda, 0x0c, 0xb1, 0xd7, 0x89, 0xd8, 0x8f,
278cdebaff8SEnji Cooper 	0x17, 0x69, 0x1b, 0x6b, 0x48, 0x2b, 0xce, 0x9c,
279cdebaff8SEnji Cooper 	0xbd, 0xf4, 0x0d, 0xb5, 0x4d, 0x12, 0x11, 0x36,
280cdebaff8SEnji Cooper 	0x49, 0xd3, 0x8b, 0x52, 0xce, 0x7e, 0x47, 0xb0,
281cdebaff8SEnji Cooper 	0xb5, 0x54, 0x77, 0xef, 0x90, 0xb8, 0x0e, 0xaf,
282cdebaff8SEnji Cooper 	0x6f, 0x97, 0x88, 0xde, 0x6b, 0x37, 0x24, 0xdd,
283cdebaff8SEnji Cooper 	0x91, 0x84, 0x00, 0x51, 0xab, 0x06, 0x96, 0x3c,
284cdebaff8SEnji Cooper 	0x82, 0x73, 0xcf, 0xae, 0x8d, 0x23, 0x86, 0x59,
285cdebaff8SEnji Cooper 	0x62, 0x5b, 0xeb, 0x2a, 0xaf, 0x40, 0x17, 0xed,
286cdebaff8SEnji Cooper 	0x2b, 0x60, 0x73, 0x7d, 0x99, 0x95, 0x3f, 0xd6,
287cdebaff8SEnji Cooper 	0x6c, 0xca, 0x1e, 0xf3, 0xb0, 0xcd, 0xd5, 0x1d,
288cdebaff8SEnji Cooper 	0x53, 0xe0, 0xd2, 0x8b, 0x57, 0x7b, 0xac, 0x67,
289cdebaff8SEnji Cooper 	0x5a, 0x5a, 0x0a, 0x64, 0x82, 0xab, 0x8f, 0x5a,
290cdebaff8SEnji Cooper 	0x36, 0xe2, 0x45, 0x50, 0xec, 0x3e, 0x14, 0x80,
291cdebaff8SEnji Cooper 	0x7c, 0xfd, 0x0c, 0xa9, 0x94, 0xfb, 0xfe, 0x72,
292cdebaff8SEnji Cooper 	0xec, 0x47, 0x71, 0x2e, 0x90, 0x97, 0xf6, 0x33,
293cdebaff8SEnji Cooper 	0xbd, 0x7d, 0x7e, 0x77, 0x8f, 0xad, 0xd4, 0x1d,
294cdebaff8SEnji Cooper 	0x1d, 0x53, 0x0f, 0x28, 0x39, 0x77, 0x06, 0x1a,
295cdebaff8SEnji Cooper 	0x75, 0xfc, 0x12, 0xe6, 0x45, 0xfc, 0x87, 0xe1,
296cdebaff8SEnji Cooper 	0x46, 0xac, 0xb0, 0x73, 0xca, 0x24, 0x7c, 0x71,
297cdebaff8SEnji Cooper };
298cdebaff8SEnji Cooper 
299cdebaff8SEnji Cooper /*
300cdebaff8SEnji Cooper  * IV method encblkno1, blkno 3.
301cdebaff8SEnji Cooper  */
302cdebaff8SEnji Cooper static const uint8_t c3des_cbc_192_encblkno1_vec3_ctxt[SECSIZE] = {
303cdebaff8SEnji Cooper 	0xb1, 0xef, 0x7c, 0xd0, 0xa0, 0x6b, 0xe4, 0x88,
304cdebaff8SEnji Cooper 	0x5c, 0xd7, 0xf1, 0xbf, 0x5f, 0xce, 0xda, 0x19,
305cdebaff8SEnji Cooper 	0x81, 0x32, 0xbb, 0x96, 0x7e, 0xb9, 0x6e, 0xa1,
306cdebaff8SEnji Cooper 	0x43, 0xde, 0x53, 0x66, 0x9c, 0x27, 0x94, 0x85,
307cdebaff8SEnji Cooper 	0xcb, 0x09, 0x4e, 0x16, 0xd8, 0x60, 0x7a, 0x38,
308cdebaff8SEnji Cooper 	0x27, 0x21, 0x4d, 0x08, 0xaa, 0xe2, 0x1e, 0x6e,
309cdebaff8SEnji Cooper 	0xa3, 0xcb, 0x9a, 0x7f, 0xd1, 0xbf, 0x18, 0x36,
310cdebaff8SEnji Cooper 	0x5a, 0x4d, 0x7a, 0x7f, 0xcf, 0x3f, 0xba, 0xa5,
311cdebaff8SEnji Cooper 	0x77, 0x5b, 0xb4, 0x79, 0xdc, 0xbf, 0x2a, 0x28,
312cdebaff8SEnji Cooper 	0x16, 0x27, 0x0f, 0x8b, 0xd7, 0x95, 0xc3, 0xcb,
313cdebaff8SEnji Cooper 	0xa1, 0x6a, 0x49, 0x53, 0xa8, 0x0c, 0x70, 0xde,
314cdebaff8SEnji Cooper 	0x90, 0x2e, 0x36, 0x74, 0x40, 0x5d, 0x81, 0x74,
315cdebaff8SEnji Cooper 	0x03, 0x11, 0xbd, 0xba, 0x40, 0x8d, 0x03, 0x86,
316cdebaff8SEnji Cooper 	0x2b, 0x17, 0x55, 0x20, 0xd8, 0x81, 0x30, 0xd2,
317cdebaff8SEnji Cooper 	0x2a, 0xbd, 0xea, 0xff, 0x5c, 0x69, 0x9b, 0xe6,
318cdebaff8SEnji Cooper 	0xe3, 0x21, 0x9a, 0x10, 0x3e, 0xb0, 0xf4, 0x7a,
319cdebaff8SEnji Cooper 	0xfc, 0x6e, 0x66, 0xec, 0x44, 0x0b, 0x95, 0x8d,
320cdebaff8SEnji Cooper 	0x13, 0xd4, 0xf6, 0x3e, 0xa1, 0xa1, 0xac, 0xb1,
321cdebaff8SEnji Cooper 	0xd8, 0x3d, 0x86, 0xaf, 0x5e, 0xef, 0x14, 0x6a,
322cdebaff8SEnji Cooper 	0x32, 0xf3, 0x13, 0x75, 0x3b, 0x64, 0x9a, 0xf4,
323cdebaff8SEnji Cooper 	0xd0, 0xf5, 0x00, 0x36, 0x9e, 0xdb, 0xfd, 0xcb,
324cdebaff8SEnji Cooper 	0xda, 0x1f, 0xed, 0x9d, 0x6d, 0x52, 0xd7, 0xb5,
325cdebaff8SEnji Cooper 	0x48, 0xce, 0x53, 0x5e, 0xdc, 0xc8, 0xe4, 0x96,
326cdebaff8SEnji Cooper 	0x04, 0x32, 0xa5, 0xcf, 0x0c, 0xba, 0xa0, 0xd0,
327cdebaff8SEnji Cooper 	0x44, 0xb3, 0xe8, 0x72, 0xc6, 0xff, 0x8f, 0xd4,
328cdebaff8SEnji Cooper 	0x4d, 0x0a, 0x22, 0x89, 0x74, 0x50, 0xaa, 0x65,
329cdebaff8SEnji Cooper 	0x15, 0xab, 0x99, 0xc8, 0xf9, 0xa4, 0x10, 0xe6,
330cdebaff8SEnji Cooper 	0xa6, 0x4b, 0x0c, 0xc8, 0xb9, 0xa7, 0x60, 0x41,
331cdebaff8SEnji Cooper 	0xe7, 0x57, 0x31, 0xfa, 0x86, 0x55, 0xdf, 0x29,
332cdebaff8SEnji Cooper 	0x49, 0xac, 0x55, 0x7b, 0x21, 0xf9, 0x3b, 0x1e,
333cdebaff8SEnji Cooper 	0x1f, 0xb4, 0x1c, 0x0b, 0x77, 0xcb, 0x88, 0xbf,
334cdebaff8SEnji Cooper 	0xa6, 0x79, 0xbf, 0x9a, 0x51, 0xc4, 0x8e, 0x59,
335cdebaff8SEnji Cooper 	0x9c, 0xb3, 0x9d, 0x9d, 0x6b, 0xb2, 0x15, 0x41,
336cdebaff8SEnji Cooper 	0x0d, 0x6c, 0xf7, 0x5e, 0xe2, 0xf9, 0xb3, 0x80,
337cdebaff8SEnji Cooper 	0x8f, 0x03, 0x67, 0x68, 0x6e, 0x4b, 0x4d, 0x52,
338cdebaff8SEnji Cooper 	0xbc, 0x9b, 0xa2, 0xd8, 0x29, 0x1e, 0x5c, 0xd7,
339cdebaff8SEnji Cooper 	0x59, 0x67, 0x94, 0x40, 0x9e, 0x08, 0x15, 0x0d,
340cdebaff8SEnji Cooper 	0x7e, 0xc9, 0x14, 0x53, 0xa8, 0x67, 0xb3, 0xb8,
341cdebaff8SEnji Cooper 	0xaa, 0x21, 0x0f, 0x79, 0x69, 0x48, 0x52, 0xea,
342cdebaff8SEnji Cooper 	0x56, 0x03, 0x7b, 0x55, 0xb7, 0xf3, 0xfe, 0xb1,
343cdebaff8SEnji Cooper 	0x8a, 0x22, 0x7d, 0x75, 0x55, 0x31, 0xad, 0x20,
344cdebaff8SEnji Cooper 	0x6a, 0xc2, 0xa4, 0xd1, 0x1e, 0xab, 0xdd, 0x29,
345cdebaff8SEnji Cooper 	0xb5, 0xf8, 0xdd, 0x9b, 0x1a, 0xb8, 0xe7, 0xde,
346cdebaff8SEnji Cooper 	0xae, 0xa1, 0xab, 0xbb, 0xf6, 0x00, 0x87, 0xc4,
347cdebaff8SEnji Cooper 	0x29, 0xee, 0x2b, 0xa1, 0xa9, 0x1a, 0x46, 0x05,
348cdebaff8SEnji Cooper 	0x5a, 0x12, 0x3f, 0x32, 0x81, 0x25, 0x20, 0x71,
349cdebaff8SEnji Cooper 	0xb6, 0xfa, 0x1f, 0x27, 0x2a, 0x33, 0x49, 0xfc,
350cdebaff8SEnji Cooper 	0x95, 0x00, 0x72, 0x6b, 0x03, 0x53, 0x94, 0x57,
351cdebaff8SEnji Cooper 	0x2f, 0x47, 0x3d, 0x2d, 0x7c, 0xb4, 0xde, 0xa7,
352cdebaff8SEnji Cooper 	0x96, 0x81, 0x12, 0xff, 0x2c, 0xec, 0x5c, 0x03,
353cdebaff8SEnji Cooper 	0x2a, 0x8c, 0x76, 0xc4, 0xed, 0x09, 0xe6, 0x00,
354cdebaff8SEnji Cooper 	0x28, 0xdb, 0x9b, 0x44, 0xb0, 0xb4, 0x7b, 0x57,
355cdebaff8SEnji Cooper 	0x3b, 0xb6, 0x4f, 0x0b, 0xff, 0xf2, 0xf5, 0x02,
356cdebaff8SEnji Cooper 	0x56, 0xcf, 0xd5, 0xbf, 0x71, 0xe6, 0x66, 0xf3,
357cdebaff8SEnji Cooper 	0x08, 0x8e, 0x8b, 0x15, 0x57, 0x07, 0x41, 0xa3,
358cdebaff8SEnji Cooper 	0x91, 0xc1, 0xe4, 0x64, 0x92, 0x89, 0xed, 0x22,
359cdebaff8SEnji Cooper 	0x88, 0x8f, 0x17, 0x91, 0xde, 0xea, 0x0c, 0xa6,
360cdebaff8SEnji Cooper 	0x86, 0x8e, 0x4c, 0xd9, 0x63, 0xc9, 0xe5, 0xdc,
361cdebaff8SEnji Cooper 	0xd6, 0xd3, 0x7b, 0x2b, 0x65, 0xfa, 0x36, 0x47,
362cdebaff8SEnji Cooper 	0x20, 0xa4, 0xe7, 0x0b, 0x52, 0xfa, 0xa6, 0xeb,
363cdebaff8SEnji Cooper 	0x1d, 0x20, 0xd0, 0x4b, 0xfd, 0x88, 0x8c, 0xbb,
364cdebaff8SEnji Cooper 	0x52, 0x9c, 0x2f, 0xb7, 0xba, 0x8b, 0xdd, 0x10,
365cdebaff8SEnji Cooper 	0x2d, 0x7d, 0x77, 0x79, 0x40, 0xa7, 0xed, 0xf9,
366cdebaff8SEnji Cooper 	0xbd, 0x2a, 0x55, 0x1f, 0x87, 0x1e, 0x3c, 0xfc,
367cdebaff8SEnji Cooper };
368cdebaff8SEnji Cooper 
369cdebaff8SEnji Cooper const struct testvec c3des_cbc_192_1_vectors[] = {
370cdebaff8SEnji Cooper 	{
371cdebaff8SEnji Cooper 		.blkno = 0,
372cdebaff8SEnji Cooper 		.ptxt = c3des_cbc_ptxt,
373cdebaff8SEnji Cooper 		.ctxt = c3des_cbc_192_encblkno1_vec0_ctxt,
374cdebaff8SEnji Cooper 	},
375cdebaff8SEnji Cooper 	{
376cdebaff8SEnji Cooper 		.blkno = 1,
377cdebaff8SEnji Cooper 		.ptxt = c3des_cbc_ptxt,
378cdebaff8SEnji Cooper 		.ctxt = c3des_cbc_192_encblkno1_vec1_ctxt,
379cdebaff8SEnji Cooper 	},
380cdebaff8SEnji Cooper 	{
381cdebaff8SEnji Cooper 		.blkno = 2,
382cdebaff8SEnji Cooper 		.ptxt = c3des_cbc_ptxt,
383cdebaff8SEnji Cooper 		.ctxt = c3des_cbc_192_encblkno1_vec2_ctxt,
384cdebaff8SEnji Cooper 	},
385cdebaff8SEnji Cooper 	{
386cdebaff8SEnji Cooper 		.blkno = 3,
387cdebaff8SEnji Cooper 		.ptxt = c3des_cbc_ptxt,
388cdebaff8SEnji Cooper 		.ctxt = c3des_cbc_192_encblkno1_vec3_ctxt,
389cdebaff8SEnji Cooper 	},
390cdebaff8SEnji Cooper };
391cdebaff8SEnji Cooper 
392cdebaff8SEnji Cooper /*
393cdebaff8SEnji Cooper  * IV method encblkno8, blkno 0.
394cdebaff8SEnji Cooper  */
395cdebaff8SEnji Cooper static const uint8_t c3des_cbc_192_encblkno8_vec0_ctxt[SECSIZE] = {
396cdebaff8SEnji Cooper 	0x9e, 0x5d, 0x35, 0x56, 0xa7, 0xcc, 0xc0, 0x1c,
397cdebaff8SEnji Cooper 	0x60, 0x4c, 0x42, 0x90, 0x35, 0xf3, 0xc1, 0x20,
398cdebaff8SEnji Cooper 	0xf2, 0x07, 0x6f, 0xf8, 0x7c, 0x33, 0x6a, 0x74,
399cdebaff8SEnji Cooper 	0xdc, 0x85, 0xbc, 0x9c, 0xa2, 0x29, 0xc6, 0x69,
400cdebaff8SEnji Cooper 	0x0e, 0xef, 0x0f, 0xa9, 0x6e, 0xec, 0xf2, 0x23,
401cdebaff8SEnji Cooper 	0x2f, 0x9a, 0xbe, 0x1a, 0x89, 0x22, 0x00, 0xc4,
402cdebaff8SEnji Cooper 	0x5a, 0xaf, 0x4a, 0xa0, 0x4f, 0x30, 0x8f, 0x99,
403cdebaff8SEnji Cooper 	0xd2, 0x93, 0x6d, 0xfa, 0xcd, 0x2f, 0xad, 0x19,
404cdebaff8SEnji Cooper 	0x10, 0x14, 0x90, 0x3a, 0x4b, 0xab, 0x17, 0x2e,
405cdebaff8SEnji Cooper 	0x2c, 0xe1, 0x26, 0xe5, 0x76, 0xf1, 0xd1, 0x1d,
406cdebaff8SEnji Cooper 	0x4c, 0x77, 0x68, 0xfb, 0x45, 0x9a, 0x3e, 0x19,
407cdebaff8SEnji Cooper 	0xe0, 0xfb, 0xdc, 0xd4, 0x0e, 0x29, 0x7c, 0x06,
408cdebaff8SEnji Cooper 	0xd3, 0x45, 0xa8, 0xf7, 0x39, 0x91, 0xe6, 0x18,
409cdebaff8SEnji Cooper 	0x0f, 0x81, 0xe6, 0x7d, 0x6c, 0x65, 0x2e, 0x16,
410cdebaff8SEnji Cooper 	0x24, 0xa4, 0x16, 0x96, 0x0a, 0x7b, 0x5f, 0x3a,
411cdebaff8SEnji Cooper 	0x0c, 0xe9, 0x0e, 0x3f, 0x34, 0x38, 0xb0, 0xe1,
412cdebaff8SEnji Cooper 	0x39, 0x23, 0x5c, 0x3c, 0x00, 0xb4, 0xa0, 0xf7,
413cdebaff8SEnji Cooper 	0x42, 0x18, 0x70, 0x25, 0x82, 0x13, 0x24, 0x49,
414cdebaff8SEnji Cooper 	0xbb, 0x3f, 0xfb, 0xef, 0xb6, 0xc6, 0x7f, 0x3d,
415cdebaff8SEnji Cooper 	0x8c, 0x17, 0x62, 0x60, 0x6f, 0xd5, 0xda, 0x2c,
416cdebaff8SEnji Cooper 	0xf8, 0x85, 0xee, 0xa7, 0xc2, 0x76, 0x5d, 0x34,
417cdebaff8SEnji Cooper 	0x4c, 0xe1, 0x0d, 0x36, 0x6e, 0x02, 0xdd, 0x08,
418cdebaff8SEnji Cooper 	0x85, 0xe4, 0x90, 0xfe, 0x1f, 0x81, 0x4a, 0x06,
419cdebaff8SEnji Cooper 	0xa6, 0x72, 0x81, 0x79, 0x47, 0xd7, 0x6d, 0x92,
420cdebaff8SEnji Cooper 	0x8f, 0xb7, 0xb2, 0xfd, 0xd0, 0x60, 0x6c, 0x06,
421cdebaff8SEnji Cooper 	0x44, 0xcd, 0x20, 0x28, 0xef, 0x16, 0xc3, 0x01,
422cdebaff8SEnji Cooper 	0x19, 0x14, 0x34, 0x39, 0xad, 0x87, 0x9f, 0xde,
423cdebaff8SEnji Cooper 	0x76, 0xb9, 0xb9, 0x87, 0x1a, 0xbd, 0x8e, 0x2c,
424cdebaff8SEnji Cooper 	0xe6, 0xb3, 0xe7, 0xb6, 0x80, 0xf8, 0xc5, 0x22,
425cdebaff8SEnji Cooper 	0x5f, 0x53, 0xed, 0x03, 0xfe, 0x09, 0x2c, 0x9d,
426cdebaff8SEnji Cooper 	0xb6, 0x61, 0x4a, 0xbb, 0x07, 0x5d, 0xbd, 0x68,
427cdebaff8SEnji Cooper 	0x74, 0xab, 0x02, 0x81, 0x64, 0x7b, 0x97, 0xa3,
428cdebaff8SEnji Cooper 	0xad, 0x15, 0x99, 0x7a, 0x04, 0x33, 0xbd, 0x50,
429cdebaff8SEnji Cooper 	0x94, 0x11, 0xcc, 0xf7, 0x8b, 0x77, 0x88, 0x78,
430cdebaff8SEnji Cooper 	0x80, 0xfe, 0x5f, 0xa1, 0x63, 0xbc, 0xb0, 0x65,
431cdebaff8SEnji Cooper 	0xcb, 0x9d, 0x4c, 0xfe, 0x66, 0x4e, 0xff, 0xe3,
432cdebaff8SEnji Cooper 	0x43, 0x61, 0x99, 0x88, 0x88, 0x4c, 0xbc, 0x8a,
433cdebaff8SEnji Cooper 	0xf1, 0x69, 0x00, 0xc2, 0xe5, 0xb9, 0x65, 0x8b,
434cdebaff8SEnji Cooper 	0x10, 0xdf, 0x38, 0x3e, 0x9e, 0x9f, 0x87, 0xed,
435cdebaff8SEnji Cooper 	0x84, 0x71, 0xe7, 0xf2, 0xb5, 0xb6, 0x11, 0xed,
436cdebaff8SEnji Cooper 	0x1e, 0xd4, 0xc0, 0x6d, 0x77, 0x08, 0x4b, 0xfd,
437cdebaff8SEnji Cooper 	0x95, 0xd5, 0xc0, 0xbe, 0xa6, 0xcc, 0x3b, 0xea,
438cdebaff8SEnji Cooper 	0x11, 0x38, 0xa5, 0x59, 0x36, 0x2a, 0xf4, 0x98,
439cdebaff8SEnji Cooper 	0x52, 0x9d, 0x3b, 0x8c, 0x8a, 0x19, 0xbd, 0xfb,
440cdebaff8SEnji Cooper 	0x49, 0xcb, 0xb0, 0x57, 0x91, 0xc7, 0xf8, 0x2a,
441cdebaff8SEnji Cooper 	0x89, 0xa8, 0x85, 0x03, 0xdf, 0x6e, 0xad, 0xf4,
442cdebaff8SEnji Cooper 	0x8a, 0x88, 0x9a, 0x2b, 0x5d, 0xe8, 0xca, 0xa9,
443cdebaff8SEnji Cooper 	0x8f, 0x18, 0xa3, 0x6a, 0x37, 0x84, 0xa9, 0x24,
444cdebaff8SEnji Cooper 	0x5b, 0xce, 0xd6, 0xbe, 0x7e, 0x40, 0x86, 0x6a,
445cdebaff8SEnji Cooper 	0xc3, 0x47, 0x28, 0x66, 0xf0, 0x8c, 0x2d, 0x69,
446cdebaff8SEnji Cooper 	0x22, 0x64, 0x61, 0x36, 0x6a, 0x0c, 0xc4, 0x18,
447cdebaff8SEnji Cooper 	0x5f, 0xd7, 0xff, 0xbc, 0xf1, 0x94, 0x16, 0xfb,
448cdebaff8SEnji Cooper 	0x26, 0xa7, 0x80, 0xa4, 0x2d, 0x72, 0xc6, 0x9d,
449cdebaff8SEnji Cooper 	0xa7, 0xed, 0x04, 0x13, 0x0f, 0xe7, 0xf8, 0x93,
450cdebaff8SEnji Cooper 	0x57, 0x6b, 0xd5, 0xa4, 0xad, 0x9a, 0x97, 0xeb,
451cdebaff8SEnji Cooper 	0x97, 0xe7, 0x60, 0x01, 0x89, 0x3f, 0x88, 0xf2,
452cdebaff8SEnji Cooper 	0xee, 0xf3, 0x79, 0xd6, 0x5a, 0x03, 0x94, 0x07,
453cdebaff8SEnji Cooper 	0xd3, 0x33, 0xc8, 0xda, 0x15, 0x17, 0x0a, 0x8f,
454cdebaff8SEnji Cooper 	0xbd, 0x58, 0x1b, 0xfe, 0x3d, 0x77, 0x5d, 0x8f,
455cdebaff8SEnji Cooper 	0x4e, 0x0e, 0x98, 0x7d, 0x02, 0x63, 0x94, 0x73,
456cdebaff8SEnji Cooper 	0x4a, 0x58, 0x47, 0xed, 0x52, 0xfc, 0x85, 0x19,
457cdebaff8SEnji Cooper 	0x5d, 0x2f, 0xfa, 0x07, 0x44, 0xbd, 0x8e, 0xcb,
458cdebaff8SEnji Cooper 	0x20, 0x63, 0x9d, 0x2b, 0x61, 0x5c, 0x19, 0x71,
459cdebaff8SEnji Cooper 	0x80, 0xe5, 0x25, 0x5b, 0x2e, 0xc5, 0xfe, 0x1a,
460cdebaff8SEnji Cooper };
461cdebaff8SEnji Cooper 
462cdebaff8SEnji Cooper /*
463cdebaff8SEnji Cooper  * IV method encblkno8, blkno 1.
464cdebaff8SEnji Cooper  */
465cdebaff8SEnji Cooper static const uint8_t c3des_cbc_192_encblkno8_vec1_ctxt[SECSIZE] = {
466cdebaff8SEnji Cooper 	0xf4, 0xb0, 0xb0, 0xcb, 0x79, 0xcc, 0x8c, 0x0a,
467cdebaff8SEnji Cooper 	0x3b, 0xc7, 0x43, 0x4e, 0x62, 0x9d, 0xde, 0xb4,
468cdebaff8SEnji Cooper 	0xab, 0xa5, 0x62, 0x63, 0x32, 0xa7, 0x18, 0x2b,
469cdebaff8SEnji Cooper 	0xe3, 0xee, 0x44, 0xc6, 0x6f, 0xb2, 0xdc, 0x21,
470cdebaff8SEnji Cooper 	0xc5, 0xc8, 0x9e, 0x32, 0x71, 0x4c, 0x7a, 0x82,
471cdebaff8SEnji Cooper 	0x8d, 0xe0, 0xad, 0x91, 0x88, 0x0c, 0x41, 0x83,
472cdebaff8SEnji Cooper 	0x28, 0x0d, 0xed, 0xa7, 0xeb, 0x48, 0xb1, 0x31,
473cdebaff8SEnji Cooper 	0xfa, 0x40, 0xd9, 0x44, 0x19, 0xee, 0x8d, 0x2c,
474cdebaff8SEnji Cooper 	0x7d, 0xe2, 0x39, 0xa0, 0x39, 0xaa, 0x86, 0xab,
475cdebaff8SEnji Cooper 	0xb5, 0x68, 0xe5, 0x83, 0x06, 0x61, 0xec, 0xe6,
476cdebaff8SEnji Cooper 	0xc2, 0x85, 0xb2, 0x46, 0xf4, 0x5b, 0x0e, 0x34,
477cdebaff8SEnji Cooper 	0x7e, 0x0c, 0xa0, 0xda, 0xef, 0x58, 0x9c, 0x39,
478cdebaff8SEnji Cooper 	0x95, 0xa2, 0xca, 0xd3, 0x3b, 0x4d, 0x76, 0xe3,
479cdebaff8SEnji Cooper 	0x34, 0x6d, 0x08, 0xa4, 0xba, 0x88, 0x58, 0x39,
480cdebaff8SEnji Cooper 	0xb4, 0xe4, 0x6b, 0xb6, 0x32, 0x50, 0x2c, 0xe2,
481cdebaff8SEnji Cooper 	0x0a, 0x37, 0xbc, 0x98, 0x38, 0x32, 0x17, 0x1b,
482cdebaff8SEnji Cooper 	0x12, 0xef, 0xdc, 0x9d, 0x91, 0x09, 0x8e, 0xd8,
483cdebaff8SEnji Cooper 	0xc3, 0xf8, 0x7b, 0x35, 0x41, 0x3b, 0xf8, 0xf5,
484cdebaff8SEnji Cooper 	0x37, 0x48, 0x04, 0xf7, 0x94, 0xbf, 0x54, 0x8d,
485cdebaff8SEnji Cooper 	0x79, 0x49, 0x8f, 0xf0, 0x3f, 0xb7, 0x90, 0x76,
486cdebaff8SEnji Cooper 	0x14, 0x09, 0xc6, 0x8c, 0xba, 0x1a, 0x30, 0x1b,
487cdebaff8SEnji Cooper 	0xbb, 0xd9, 0xe2, 0xb5, 0xe8, 0xd9, 0x9b, 0x68,
488cdebaff8SEnji Cooper 	0x60, 0x90, 0xd3, 0x4a, 0xe8, 0x65, 0x7b, 0xaa,
489cdebaff8SEnji Cooper 	0xb0, 0xda, 0x69, 0x1d, 0x45, 0x78, 0x2c, 0x3b,
490cdebaff8SEnji Cooper 	0x59, 0x29, 0x3c, 0x26, 0x9a, 0xd2, 0xa5, 0xfd,
491cdebaff8SEnji Cooper 	0xb7, 0x16, 0x59, 0x7c, 0x46, 0xea, 0x99, 0xd0,
492cdebaff8SEnji Cooper 	0x06, 0x01, 0x3f, 0xd2, 0x23, 0xcc, 0xde, 0xb8,
493cdebaff8SEnji Cooper 	0xaa, 0x88, 0x17, 0x03, 0xe1, 0x48, 0x2c, 0xdd,
494cdebaff8SEnji Cooper 	0xce, 0xd1, 0x2c, 0xce, 0x37, 0xee, 0xe6, 0xa6,
495cdebaff8SEnji Cooper 	0x47, 0x8c, 0x07, 0xe5, 0xfe, 0x01, 0xc6, 0x27,
496cdebaff8SEnji Cooper 	0xfe, 0x3f, 0x9d, 0x30, 0x18, 0x36, 0xe7, 0xa7,
497cdebaff8SEnji Cooper 	0x37, 0x1d, 0xcf, 0x6d, 0x4c, 0x82, 0xec, 0x58,
498cdebaff8SEnji Cooper 	0xa1, 0x6f, 0x56, 0xc6, 0x08, 0x25, 0x94, 0xda,
499cdebaff8SEnji Cooper 	0xae, 0x1a, 0x4f, 0xda, 0xb2, 0xf4, 0xbf, 0x94,
500cdebaff8SEnji Cooper 	0xff, 0x66, 0x6a, 0xb1, 0x1f, 0x42, 0xfe, 0x32,
501cdebaff8SEnji Cooper 	0xa4, 0x0e, 0x3d, 0x6a, 0x16, 0x44, 0xe0, 0xac,
502cdebaff8SEnji Cooper 	0xe8, 0xc1, 0xe2, 0xa8, 0x73, 0xab, 0xac, 0x58,
503cdebaff8SEnji Cooper 	0xb1, 0xbc, 0x94, 0xb2, 0x6a, 0xe4, 0x45, 0xf5,
504cdebaff8SEnji Cooper 	0x90, 0x6b, 0x82, 0xeb, 0x9e, 0x22, 0x9e, 0xb2,
505cdebaff8SEnji Cooper 	0x27, 0x3e, 0xc8, 0x55, 0xf4, 0x8f, 0xda, 0x04,
506cdebaff8SEnji Cooper 	0xa3, 0x9c, 0xa4, 0x79, 0xbd, 0x79, 0xd3, 0xbd,
507cdebaff8SEnji Cooper 	0xbe, 0x72, 0x7f, 0x90, 0xef, 0xc3, 0x34, 0x17,
508cdebaff8SEnji Cooper 	0x72, 0x6f, 0xb4, 0xfe, 0x62, 0x56, 0xc3, 0xd6,
509cdebaff8SEnji Cooper 	0x43, 0xc8, 0x4c, 0x76, 0x91, 0x04, 0x97, 0x4c,
510cdebaff8SEnji Cooper 	0x84, 0x98, 0x56, 0xb7, 0x7b, 0x4f, 0xd5, 0xcf,
511cdebaff8SEnji Cooper 	0x1b, 0x9c, 0x09, 0xe3, 0x1d, 0xdf, 0x0e, 0xfa,
512cdebaff8SEnji Cooper 	0x39, 0xc8, 0x48, 0x43, 0x84, 0xec, 0x79, 0xc8,
513cdebaff8SEnji Cooper 	0x7f, 0x4f, 0xa8, 0xc0, 0xb4, 0xde, 0x8b, 0x79,
514cdebaff8SEnji Cooper 	0xcb, 0x9c, 0x42, 0x81, 0x49, 0xdc, 0x39, 0xb5,
515cdebaff8SEnji Cooper 	0x31, 0xa6, 0x22, 0xba, 0x71, 0xb8, 0x2d, 0x1d,
516cdebaff8SEnji Cooper 	0xc8, 0x17, 0xd8, 0x9d, 0x26, 0x2b, 0xd5, 0xcf,
517cdebaff8SEnji Cooper 	0x57, 0x46, 0x0a, 0x61, 0x7e, 0xb7, 0xc3, 0x9c,
518cdebaff8SEnji Cooper 	0xa6, 0x44, 0x60, 0x2d, 0x30, 0xb8, 0x10, 0x47,
519cdebaff8SEnji Cooper 	0x7d, 0x7e, 0x87, 0x76, 0xc1, 0x4e, 0x85, 0x77,
520cdebaff8SEnji Cooper 	0xbc, 0x30, 0x32, 0x56, 0x0a, 0x5b, 0x1c, 0xd0,
521cdebaff8SEnji Cooper 	0xf6, 0x47, 0x48, 0x22, 0xf4, 0x6e, 0x38, 0xc5,
522cdebaff8SEnji Cooper 	0xab, 0xe2, 0xd0, 0x4d, 0x40, 0x27, 0xab, 0x8f,
523cdebaff8SEnji Cooper 	0x43, 0xb1, 0x60, 0x29, 0x07, 0xd0, 0xf5, 0x25,
524cdebaff8SEnji Cooper 	0xe5, 0xfa, 0xe7, 0x46, 0x32, 0x37, 0xb9, 0xae,
525cdebaff8SEnji Cooper 	0x2e, 0x02, 0x8c, 0x94, 0x15, 0x69, 0xd6, 0x74,
526cdebaff8SEnji Cooper 	0xb4, 0x36, 0xdd, 0x94, 0x70, 0xa7, 0x16, 0x7b,
527cdebaff8SEnji Cooper 	0x4c, 0xd3, 0x48, 0x83, 0xc5, 0xb2, 0xb0, 0x6a,
528cdebaff8SEnji Cooper 	0xfe, 0x7e, 0xd4, 0xe5, 0x6d, 0xa5, 0x96, 0x20,
529cdebaff8SEnji Cooper 	0x08, 0x59, 0xbd, 0x0c, 0x3d, 0x55, 0xa5, 0x03,
530cdebaff8SEnji Cooper };
531cdebaff8SEnji Cooper 
532cdebaff8SEnji Cooper /*
533cdebaff8SEnji Cooper  * IV method encblkno8, blkno 2.
534cdebaff8SEnji Cooper  */
535cdebaff8SEnji Cooper static const uint8_t c3des_cbc_192_encblkno8_vec2_ctxt[SECSIZE] = {
536cdebaff8SEnji Cooper 	0xea, 0x7c, 0x8c, 0x8e, 0x3e, 0x61, 0x34, 0x3d,
537cdebaff8SEnji Cooper 	0xe0, 0x7f, 0xd3, 0xe1, 0x3a, 0xb9, 0xc8, 0xf2,
538cdebaff8SEnji Cooper 	0x98, 0xdc, 0x59, 0x26, 0xd2, 0xd8, 0xa7, 0x7f,
539cdebaff8SEnji Cooper 	0x41, 0x98, 0x24, 0xa8, 0x28, 0x0c, 0x88, 0x55,
540cdebaff8SEnji Cooper 	0x91, 0xdb, 0x29, 0x17, 0x70, 0xd7, 0x03, 0xff,
541cdebaff8SEnji Cooper 	0xbd, 0x0e, 0xbf, 0xf8, 0x73, 0x92, 0x19, 0xe9,
542cdebaff8SEnji Cooper 	0x92, 0x67, 0xdb, 0x08, 0x94, 0x77, 0x71, 0x2d,
543cdebaff8SEnji Cooper 	0x00, 0xad, 0x26, 0x42, 0x2d, 0xac, 0x8c, 0x67,
544cdebaff8SEnji Cooper 	0x6f, 0xb3, 0x8e, 0x36, 0x22, 0xeb, 0x1f, 0x8c,
545cdebaff8SEnji Cooper 	0xd4, 0x9b, 0x9f, 0xa6, 0xa9, 0xb1, 0x52, 0x65,
546cdebaff8SEnji Cooper 	0x9a, 0xfe, 0xcc, 0x92, 0x48, 0x75, 0xf6, 0xb8,
547cdebaff8SEnji Cooper 	0x59, 0xfe, 0x0e, 0x67, 0x93, 0xce, 0x3b, 0x7e,
548cdebaff8SEnji Cooper 	0x51, 0x74, 0xe5, 0x24, 0x35, 0x08, 0x68, 0x21,
549cdebaff8SEnji Cooper 	0x6a, 0x7f, 0xdd, 0x8c, 0xfd, 0xcd, 0x6d, 0x90,
550cdebaff8SEnji Cooper 	0xc5, 0x3b, 0x26, 0x9e, 0x00, 0xf4, 0x1e, 0x70,
551cdebaff8SEnji Cooper 	0xd3, 0xe7, 0xe8, 0x2f, 0x52, 0x87, 0x76, 0x84,
552cdebaff8SEnji Cooper 	0xbb, 0x5c, 0x76, 0x5a, 0xc8, 0xea, 0x74, 0xe2,
553cdebaff8SEnji Cooper 	0x9e, 0x85, 0xf6, 0x53, 0x85, 0x1a, 0x6e, 0x02,
554cdebaff8SEnji Cooper 	0x0d, 0x32, 0x11, 0xc4, 0xec, 0xee, 0x79, 0x27,
555cdebaff8SEnji Cooper 	0xda, 0xca, 0xc0, 0x0b, 0x8e, 0x2d, 0xb7, 0x7d,
556cdebaff8SEnji Cooper 	0x8c, 0x6e, 0xfb, 0xa3, 0xa8, 0x24, 0x24, 0x62,
557cdebaff8SEnji Cooper 	0xc8, 0xdd, 0xc7, 0x16, 0x09, 0x33, 0x0f, 0xe5,
558cdebaff8SEnji Cooper 	0xc8, 0x60, 0x3d, 0xb6, 0xbf, 0x6c, 0x28, 0xd2,
559cdebaff8SEnji Cooper 	0x0b, 0x9c, 0xd9, 0xcb, 0x64, 0x49, 0xe4, 0x80,
560cdebaff8SEnji Cooper 	0x72, 0x58, 0xaa, 0xaa, 0x7e, 0x1d, 0x9f, 0xd7,
561cdebaff8SEnji Cooper 	0x29, 0x15, 0x65, 0xfc, 0xfd, 0x3f, 0xe1, 0x82,
562cdebaff8SEnji Cooper 	0x25, 0x3c, 0xd4, 0xbe, 0x59, 0x79, 0x63, 0xd1,
563cdebaff8SEnji Cooper 	0xd6, 0x0e, 0xda, 0x00, 0xf3, 0xaa, 0x13, 0xd3,
564cdebaff8SEnji Cooper 	0xed, 0xef, 0xca, 0x8b, 0x97, 0x15, 0x2d, 0x10,
565cdebaff8SEnji Cooper 	0x6f, 0xcf, 0xee, 0xc7, 0x21, 0xad, 0xe3, 0xe4,
566cdebaff8SEnji Cooper 	0xd8, 0x95, 0x21, 0x1f, 0xc0, 0x06, 0x3a, 0xbc,
567cdebaff8SEnji Cooper 	0xbb, 0x2a, 0x92, 0x78, 0x76, 0x9d, 0x1e, 0x7b,
568cdebaff8SEnji Cooper 	0xb5, 0x29, 0xaf, 0x96, 0x75, 0x2b, 0x41, 0xbd,
569cdebaff8SEnji Cooper 	0xae, 0x79, 0x28, 0x72, 0xe7, 0x54, 0xc4, 0x08,
570cdebaff8SEnji Cooper 	0xd3, 0xd2, 0xac, 0x96, 0xd0, 0x0f, 0x9b, 0x68,
571cdebaff8SEnji Cooper 	0x7d, 0x3f, 0xc2, 0xdd, 0x3d, 0xfc, 0xca, 0xcd,
572cdebaff8SEnji Cooper 	0x11, 0x71, 0xd9, 0x48, 0x53, 0x9f, 0xd3, 0x79,
573cdebaff8SEnji Cooper 	0x7d, 0x47, 0x71, 0x2a, 0x6d, 0x9e, 0xa9, 0x47,
574cdebaff8SEnji Cooper 	0xa1, 0xf7, 0x97, 0x80, 0x83, 0x70, 0x6b, 0xfe,
575cdebaff8SEnji Cooper 	0x10, 0x11, 0x6a, 0x0e, 0xdd, 0xde, 0x22, 0x3c,
576cdebaff8SEnji Cooper 	0x19, 0x30, 0x73, 0x73, 0x2e, 0x4b, 0x54, 0x17,
577cdebaff8SEnji Cooper 	0xc3, 0x2e, 0xe9, 0xce, 0xe0, 0xe3, 0xa0, 0x1a,
578cdebaff8SEnji Cooper 	0x28, 0xd1, 0x50, 0xa8, 0xd2, 0x40, 0xe2, 0x1b,
579cdebaff8SEnji Cooper 	0xfa, 0x49, 0x06, 0x49, 0x8b, 0x4b, 0xd9, 0xd5,
580cdebaff8SEnji Cooper 	0xf5, 0x50, 0xae, 0x64, 0x19, 0xe1, 0xd9, 0x4e,
581cdebaff8SEnji Cooper 	0xbb, 0x29, 0x70, 0x66, 0x46, 0xa8, 0x7e, 0x5b,
582cdebaff8SEnji Cooper 	0xdc, 0xe2, 0xd5, 0x9d, 0x56, 0x6d, 0x4c, 0xe6,
583cdebaff8SEnji Cooper 	0x0e, 0x6b, 0x71, 0x40, 0x82, 0xf7, 0xb3, 0xad,
584cdebaff8SEnji Cooper 	0x23, 0x17, 0xe3, 0x1c, 0x61, 0x1d, 0x3b, 0x71,
585cdebaff8SEnji Cooper 	0xfc, 0x06, 0x17, 0xec, 0x6c, 0x77, 0x98, 0x27,
586cdebaff8SEnji Cooper 	0xc7, 0x4b, 0x65, 0x17, 0x81, 0xe7, 0xcb, 0xce,
587cdebaff8SEnji Cooper 	0x09, 0x76, 0x82, 0x82, 0x4a, 0x53, 0x67, 0xa0,
588cdebaff8SEnji Cooper 	0x05, 0x25, 0x4c, 0xc4, 0xa7, 0xad, 0xa7, 0xaf,
589cdebaff8SEnji Cooper 	0xa0, 0x11, 0xd7, 0x73, 0x3b, 0x30, 0xbf, 0x53,
590cdebaff8SEnji Cooper 	0x50, 0x9b, 0xd8, 0xf3, 0x32, 0x15, 0xdd, 0x36,
591cdebaff8SEnji Cooper 	0x88, 0xc2, 0x39, 0x51, 0xb6, 0xb8, 0x0d, 0x5c,
592cdebaff8SEnji Cooper 	0x20, 0x4e, 0x24, 0xee, 0x95, 0x32, 0x61, 0x25,
593cdebaff8SEnji Cooper 	0xda, 0x73, 0x0d, 0x8a, 0x58, 0xe6, 0xcc, 0xad,
594cdebaff8SEnji Cooper 	0x79, 0x3d, 0xef, 0x29, 0x0c, 0x9f, 0xe1, 0xa7,
595cdebaff8SEnji Cooper 	0x22, 0x1e, 0xea, 0x7a, 0x4f, 0xfb, 0xc1, 0x1f,
596cdebaff8SEnji Cooper 	0x17, 0xca, 0x69, 0xd6, 0xa4, 0xce, 0x6e, 0xc0,
597cdebaff8SEnji Cooper 	0x70, 0xa3, 0x08, 0x32, 0x87, 0xb4, 0x6b, 0x80,
598cdebaff8SEnji Cooper 	0x5c, 0x7f, 0x88, 0x5c, 0xbf, 0x07, 0xd8, 0xe9,
599cdebaff8SEnji Cooper 	0xdd, 0xd2, 0x76, 0xa9, 0xaa, 0xd9, 0x55, 0x48,
600cdebaff8SEnji Cooper };
601cdebaff8SEnji Cooper 
602cdebaff8SEnji Cooper /*
603cdebaff8SEnji Cooper  * IV method encblkno8, blkno 3.
604cdebaff8SEnji Cooper  */
605cdebaff8SEnji Cooper static const uint8_t c3des_cbc_192_encblkno8_vec3_ctxt[SECSIZE] = {
606cdebaff8SEnji Cooper 	0xf3, 0x49, 0xda, 0x5c, 0xde, 0x9d, 0x3e, 0x9d,
607cdebaff8SEnji Cooper 	0xb9, 0xc2, 0x6e, 0x96, 0xa9, 0x93, 0x10, 0x73,
608cdebaff8SEnji Cooper 	0x0e, 0x26, 0x39, 0xd6, 0x9f, 0x04, 0x5f, 0x69,
609cdebaff8SEnji Cooper 	0x54, 0xa3, 0x7c, 0x46, 0x7b, 0x18, 0x93, 0xc0,
610cdebaff8SEnji Cooper 	0xbb, 0x0c, 0x96, 0x6f, 0xb0, 0xbf, 0xce, 0x67,
611cdebaff8SEnji Cooper 	0x33, 0x3e, 0x56, 0xe8, 0x6b, 0x4d, 0x3f, 0xc8,
612cdebaff8SEnji Cooper 	0x3c, 0xc6, 0x89, 0x2c, 0x0b, 0x95, 0x3a, 0xaf,
613cdebaff8SEnji Cooper 	0xc0, 0xf3, 0x1f, 0x0e, 0x07, 0x01, 0xa6, 0x35,
614cdebaff8SEnji Cooper 	0x19, 0x79, 0x91, 0x24, 0xaa, 0x0d, 0xf0, 0x53,
615cdebaff8SEnji Cooper 	0x27, 0x7d, 0xbb, 0xa6, 0xb6, 0x44, 0x31, 0x4b,
616cdebaff8SEnji Cooper 	0xd4, 0xcf, 0xf6, 0x6d, 0x18, 0xa2, 0x28, 0x8a,
617cdebaff8SEnji Cooper 	0xc1, 0x0a, 0xbe, 0x57, 0x0c, 0x61, 0x5f, 0xd9,
618cdebaff8SEnji Cooper 	0x12, 0x14, 0xfe, 0xe2, 0xc7, 0x10, 0x72, 0xee,
619cdebaff8SEnji Cooper 	0x19, 0xb8, 0x16, 0x0b, 0x88, 0x87, 0xce, 0xf3,
620cdebaff8SEnji Cooper 	0xfe, 0x57, 0x37, 0xd1, 0xa2, 0xf7, 0xd0, 0x5e,
621cdebaff8SEnji Cooper 	0x73, 0xde, 0x39, 0x35, 0xbc, 0xde, 0xed, 0x61,
622cdebaff8SEnji Cooper 	0x4b, 0x31, 0xdc, 0xfe, 0x3c, 0x4d, 0x98, 0xa9,
623cdebaff8SEnji Cooper 	0x36, 0xb0, 0x34, 0x5b, 0xb4, 0xb7, 0x79, 0x25,
624cdebaff8SEnji Cooper 	0x6e, 0x24, 0x7e, 0x10, 0xfe, 0x20, 0xd5, 0x16,
625cdebaff8SEnji Cooper 	0x86, 0xaf, 0xcd, 0x26, 0x34, 0xd3, 0x2e, 0xdc,
626cdebaff8SEnji Cooper 	0x7c, 0x69, 0xe3, 0xc5, 0x62, 0x0c, 0xba, 0x29,
627cdebaff8SEnji Cooper 	0x9c, 0x4b, 0x2f, 0x39, 0x45, 0xe1, 0xcf, 0xc5,
628cdebaff8SEnji Cooper 	0xfe, 0x35, 0xb6, 0x2f, 0xb1, 0x1a, 0x90, 0xe1,
629cdebaff8SEnji Cooper 	0xa7, 0x39, 0xe8, 0x1e, 0x5f, 0xac, 0xab, 0x1e,
630cdebaff8SEnji Cooper 	0x32, 0xba, 0xc5, 0x92, 0x39, 0x62, 0x37, 0x2c,
631cdebaff8SEnji Cooper 	0x49, 0xf1, 0x62, 0x90, 0xf7, 0x1e, 0x10, 0xce,
632cdebaff8SEnji Cooper 	0x8e, 0x95, 0xa3, 0xc6, 0xd8, 0xe5, 0xc8, 0xdf,
633cdebaff8SEnji Cooper 	0xcc, 0x94, 0x7d, 0x26, 0xab, 0x29, 0xbb, 0x9d,
634cdebaff8SEnji Cooper 	0xf3, 0x73, 0xce, 0xac, 0x76, 0xdf, 0x75, 0x2a,
635cdebaff8SEnji Cooper 	0x3e, 0x8f, 0x47, 0xff, 0x76, 0xfe, 0xea, 0xd4,
636cdebaff8SEnji Cooper 	0x4a, 0xa9, 0x36, 0x9d, 0x12, 0x45, 0xb7, 0x99,
637cdebaff8SEnji Cooper 	0x81, 0xb6, 0x77, 0x98, 0x13, 0xfb, 0x5a, 0xe5,
638cdebaff8SEnji Cooper 	0x40, 0x87, 0x61, 0x0d, 0x10, 0x76, 0xf6, 0x3e,
639cdebaff8SEnji Cooper 	0x48, 0xac, 0xc4, 0x27, 0x87, 0xcd, 0x07, 0xde,
640cdebaff8SEnji Cooper 	0x0b, 0x23, 0x97, 0x61, 0x3d, 0x18, 0x64, 0x7f,
641cdebaff8SEnji Cooper 	0xbf, 0xd6, 0x87, 0xc1, 0x11, 0xfb, 0xf9, 0xda,
642cdebaff8SEnji Cooper 	0x14, 0xa1, 0x01, 0xf8, 0x7e, 0xea, 0x5b, 0x5b,
643cdebaff8SEnji Cooper 	0xdd, 0x09, 0xf9, 0x31, 0x80, 0x3c, 0xee, 0x34,
644cdebaff8SEnji Cooper 	0x2d, 0xda, 0x71, 0xd9, 0x32, 0x7d, 0x45, 0xb2,
645cdebaff8SEnji Cooper 	0x53, 0xea, 0xd5, 0x7c, 0x85, 0x45, 0xce, 0x1d,
646cdebaff8SEnji Cooper 	0x2b, 0xe9, 0xd7, 0x95, 0xf8, 0x8c, 0x08, 0xe4,
647cdebaff8SEnji Cooper 	0xd0, 0x2f, 0x60, 0x75, 0x02, 0xf3, 0xde, 0xeb,
648cdebaff8SEnji Cooper 	0x46, 0x40, 0xa8, 0xd2, 0x37, 0xd6, 0xca, 0x5d,
649cdebaff8SEnji Cooper 	0xb9, 0xf4, 0x51, 0x31, 0x8a, 0x1a, 0x82, 0xbd,
650cdebaff8SEnji Cooper 	0x6f, 0x6d, 0x88, 0x2b, 0x63, 0x0f, 0xe1, 0xf0,
651cdebaff8SEnji Cooper 	0xcf, 0x13, 0x79, 0x1d, 0x78, 0x82, 0x66, 0xa1,
652cdebaff8SEnji Cooper 	0xef, 0xdb, 0x34, 0x50, 0xd2, 0x71, 0x47, 0x49,
653cdebaff8SEnji Cooper 	0x41, 0x74, 0xd9, 0x0b, 0x14, 0x38, 0x1f, 0xc3,
654cdebaff8SEnji Cooper 	0x09, 0x4d, 0xb3, 0xa6, 0x03, 0x3f, 0x56, 0x67,
655cdebaff8SEnji Cooper 	0xd7, 0x51, 0x4c, 0x8a, 0x1d, 0x37, 0x99, 0xfb,
656cdebaff8SEnji Cooper 	0xe1, 0x84, 0x57, 0x55, 0x9b, 0xf8, 0x73, 0x63,
657cdebaff8SEnji Cooper 	0x68, 0x73, 0x89, 0x52, 0x06, 0xe7, 0x34, 0xe7,
658cdebaff8SEnji Cooper 	0x1a, 0x15, 0x7e, 0xd9, 0x84, 0xa3, 0x0e, 0x68,
659cdebaff8SEnji Cooper 	0x14, 0x1c, 0xe8, 0x23, 0x9e, 0xe3, 0x8f, 0x71,
660cdebaff8SEnji Cooper 	0x02, 0x9b, 0x87, 0xd4, 0xd9, 0x1b, 0xd1, 0x9e,
661cdebaff8SEnji Cooper 	0x9e, 0xa0, 0x7e, 0x49, 0x8e, 0xaa, 0x89, 0xb5,
662cdebaff8SEnji Cooper 	0x16, 0x48, 0x07, 0xb3, 0x3d, 0x9e, 0x4c, 0x35,
663cdebaff8SEnji Cooper 	0x3e, 0x94, 0xa9, 0xf8, 0x82, 0x50, 0x6a, 0x41,
664cdebaff8SEnji Cooper 	0x28, 0x3e, 0x9f, 0x9a, 0x1a, 0x5d, 0x02, 0x7c,
665cdebaff8SEnji Cooper 	0xd0, 0x32, 0x52, 0xa5, 0xee, 0x09, 0x27, 0x2d,
666cdebaff8SEnji Cooper 	0x49, 0x17, 0xf7, 0x92, 0xa1, 0x63, 0x9d, 0x2a,
667cdebaff8SEnji Cooper 	0xfd, 0x53, 0x26, 0x14, 0x7c, 0x92, 0x72, 0xa6,
668cdebaff8SEnji Cooper 	0x38, 0x18, 0x8f, 0xb5, 0x54, 0xb3, 0x69, 0x63,
669cdebaff8SEnji Cooper 	0x6a, 0xdc, 0xb1, 0x5a, 0x12, 0x7a, 0x0b, 0xa3,
670cdebaff8SEnji Cooper };
671cdebaff8SEnji Cooper 
672cdebaff8SEnji Cooper const struct testvec c3des_cbc_192_8_vectors[] = {
673cdebaff8SEnji Cooper 	{
674cdebaff8SEnji Cooper 		.blkno = 0,
675cdebaff8SEnji Cooper 		.ptxt = c3des_cbc_ptxt,
676cdebaff8SEnji Cooper 		.ctxt = c3des_cbc_192_encblkno8_vec0_ctxt,
677cdebaff8SEnji Cooper 	},
678cdebaff8SEnji Cooper 	{
679cdebaff8SEnji Cooper 		.blkno = 1,
680cdebaff8SEnji Cooper 		.ptxt = c3des_cbc_ptxt,
681cdebaff8SEnji Cooper 		.ctxt = c3des_cbc_192_encblkno8_vec1_ctxt,
682cdebaff8SEnji Cooper 	},
683cdebaff8SEnji Cooper 	{
684cdebaff8SEnji Cooper 		.blkno = 2,
685cdebaff8SEnji Cooper 		.ptxt = c3des_cbc_ptxt,
686cdebaff8SEnji Cooper 		.ctxt = c3des_cbc_192_encblkno8_vec2_ctxt,
687cdebaff8SEnji Cooper 	},
688cdebaff8SEnji Cooper 	{
689cdebaff8SEnji Cooper 		.blkno = 3,
690cdebaff8SEnji Cooper 		.ptxt = c3des_cbc_ptxt,
691cdebaff8SEnji Cooper 		.ctxt = c3des_cbc_192_encblkno8_vec3_ctxt,
692cdebaff8SEnji Cooper 	},
693cdebaff8SEnji Cooper };
694cdebaff8SEnji Cooper 
695cdebaff8SEnji Cooper static int
open_disk(const char * devpath,const char * imgpath,size_t size)696cdebaff8SEnji Cooper open_disk(const char *devpath, const char *imgpath, size_t size)
697cdebaff8SEnji Cooper {
698cdebaff8SEnji Cooper 	int fd;
699cdebaff8SEnji Cooper 
700cdebaff8SEnji Cooper 	fd = open(imgpath, O_CREAT | O_RDWR | O_TRUNC, 0600);
701cdebaff8SEnji Cooper 	if (fd < 0)
702cdebaff8SEnji Cooper 		return -1;
703cdebaff8SEnji Cooper 
704cdebaff8SEnji Cooper 	if (ftruncate(fd, size) < 0)
705cdebaff8SEnji Cooper 		goto fail;
706cdebaff8SEnji Cooper 
707cdebaff8SEnji Cooper 	if (rump_pub_etfs_register_withsize(devpath,
708cdebaff8SEnji Cooper 	    imgpath, RUMP_ETFS_BLK, 0, size) < 0) {
709cdebaff8SEnji Cooper 		goto fail;
710cdebaff8SEnji Cooper 	}
711cdebaff8SEnji Cooper 
712cdebaff8SEnji Cooper 	unlink(imgpath);
713cdebaff8SEnji Cooper 	return fd;
714cdebaff8SEnji Cooper fail:
715cdebaff8SEnji Cooper 	close(fd);
716cdebaff8SEnji Cooper 	unlink(imgpath);
717cdebaff8SEnji Cooper 	return -1;
718cdebaff8SEnji Cooper }
719cdebaff8SEnji Cooper 
720cdebaff8SEnji Cooper static int
open_cgd(int devno)721cdebaff8SEnji Cooper open_cgd(int devno)
722cdebaff8SEnji Cooper {
723cdebaff8SEnji Cooper 	char devpath[32];
724cdebaff8SEnji Cooper 
725cdebaff8SEnji Cooper 	sprintf(devpath, "/dev/rcgd%d%c", devno, getrawpartition() + 'a');
726cdebaff8SEnji Cooper 
727cdebaff8SEnji Cooper 	return rump_sys_open(devpath, O_RDWR, 0);
728cdebaff8SEnji Cooper }
729cdebaff8SEnji Cooper 
730cdebaff8SEnji Cooper static int
configure_cgd(int fd,const char * dkpath,const char * alg,const char * ivmethod,const char * key,size_t keylen)731cdebaff8SEnji Cooper configure_cgd(int fd, const char *dkpath, const char *alg,
732cdebaff8SEnji Cooper     const char *ivmethod, const char *key, size_t keylen)
733cdebaff8SEnji Cooper {
734cdebaff8SEnji Cooper 	struct cgd_ioctl ci;
735cdebaff8SEnji Cooper 
736cdebaff8SEnji Cooper 	memset(&ci, 0, sizeof(ci));
737cdebaff8SEnji Cooper 	ci.ci_disk = dkpath;
738cdebaff8SEnji Cooper 	ci.ci_alg = alg;
739cdebaff8SEnji Cooper 	ci.ci_ivmethod = ivmethod;
740cdebaff8SEnji Cooper 	ci.ci_keylen = 8 * keylen - 8; /* Exclude the NUL terminator. */
741cdebaff8SEnji Cooper 	ci.ci_key = key;
742cdebaff8SEnji Cooper 	ci.ci_blocksize = 64;
743cdebaff8SEnji Cooper 
744cdebaff8SEnji Cooper 	return rump_sys_ioctl(fd, CGDIOCSET, &ci);
745cdebaff8SEnji Cooper }
746cdebaff8SEnji Cooper 
747cdebaff8SEnji Cooper static int
unconfigure_cgd(int fd)748cdebaff8SEnji Cooper unconfigure_cgd(int fd)
749cdebaff8SEnji Cooper {
750cdebaff8SEnji Cooper 	struct cgd_ioctl ci;
751cdebaff8SEnji Cooper 
752cdebaff8SEnji Cooper 	return rump_sys_ioctl(fd, CGDIOCCLR, &ci);
753cdebaff8SEnji Cooper }
754cdebaff8SEnji Cooper 
755cdebaff8SEnji Cooper static int
write_testvec(int cgdfd,const struct testvec * tv)756cdebaff8SEnji Cooper write_testvec(int cgdfd, const struct testvec *tv)
757cdebaff8SEnji Cooper {
758cdebaff8SEnji Cooper 
759cdebaff8SEnji Cooper 	if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
760cdebaff8SEnji Cooper 		return -1;
761cdebaff8SEnji Cooper 
762cdebaff8SEnji Cooper 	if (rump_sys_write(cgdfd, tv->ptxt, SECSIZE) != SECSIZE)
763cdebaff8SEnji Cooper 		return -1;
764cdebaff8SEnji Cooper 
765cdebaff8SEnji Cooper 	return 0;
766cdebaff8SEnji Cooper }
767cdebaff8SEnji Cooper 
768cdebaff8SEnji Cooper static int
read_testvec(int cgdfd,const struct testvec * tv)769cdebaff8SEnji Cooper read_testvec(int cgdfd, const struct testvec *tv)
770cdebaff8SEnji Cooper {
771cdebaff8SEnji Cooper 	char *buf;
772cdebaff8SEnji Cooper 	int res = -1;
773cdebaff8SEnji Cooper 
774cdebaff8SEnji Cooper 	buf = malloc(SECSIZE);
775cdebaff8SEnji Cooper 	if (buf == NULL)
776cdebaff8SEnji Cooper 		return -1;
777cdebaff8SEnji Cooper 
778cdebaff8SEnji Cooper 	if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
779cdebaff8SEnji Cooper 		goto fail;
780cdebaff8SEnji Cooper 
781cdebaff8SEnji Cooper 	if (rump_sys_read(cgdfd, buf, SECSIZE) != SECSIZE)
782cdebaff8SEnji Cooper 		goto fail;
783cdebaff8SEnji Cooper 
784cdebaff8SEnji Cooper 	res = memcmp(buf, tv->ptxt, SECSIZE);
785cdebaff8SEnji Cooper fail:
786cdebaff8SEnji Cooper 	free(buf);
787cdebaff8SEnji Cooper 	return res;
788cdebaff8SEnji Cooper }
789cdebaff8SEnji Cooper 
790cdebaff8SEnji Cooper static int
check_testvec(int dkfd,const struct testvec * tv)791cdebaff8SEnji Cooper check_testvec(int dkfd, const struct testvec *tv)
792cdebaff8SEnji Cooper {
793cdebaff8SEnji Cooper 	char *buf;
794cdebaff8SEnji Cooper 	int res = -1;
795cdebaff8SEnji Cooper 
796cdebaff8SEnji Cooper 	buf = malloc(SECSIZE);
797cdebaff8SEnji Cooper 	if (buf == NULL)
798cdebaff8SEnji Cooper 		return -1;
799cdebaff8SEnji Cooper 
800cdebaff8SEnji Cooper 	if (lseek(dkfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
801cdebaff8SEnji Cooper 		goto fail;
802cdebaff8SEnji Cooper 
803cdebaff8SEnji Cooper 	if (read(dkfd, buf, SECSIZE) != SECSIZE)
804cdebaff8SEnji Cooper 		goto fail;
805cdebaff8SEnji Cooper 
806cdebaff8SEnji Cooper 	res = memcmp(buf, tv->ctxt, SECSIZE);
807cdebaff8SEnji Cooper fail:
808cdebaff8SEnji Cooper 	free(buf);
809cdebaff8SEnji Cooper 	return res;
810cdebaff8SEnji Cooper }
811cdebaff8SEnji Cooper 
812cdebaff8SEnji Cooper ATF_TC(cgd_3des_cbc_192_encblkno1);
ATF_TC_HEAD(cgd_3des_cbc_192_encblkno1,tc)813cdebaff8SEnji Cooper ATF_TC_HEAD(cgd_3des_cbc_192_encblkno1, tc)
814cdebaff8SEnji Cooper {
815cdebaff8SEnji Cooper 	atf_tc_set_md_var(tc, "descr",
816cdebaff8SEnji Cooper 	    "Test 3des-cbc with 192 bits key, ivmethod encblkno1");
817cdebaff8SEnji Cooper }
818cdebaff8SEnji Cooper 
ATF_TC_BODY(cgd_3des_cbc_192_encblkno1,tc)819cdebaff8SEnji Cooper ATF_TC_BODY(cgd_3des_cbc_192_encblkno1, tc)
820cdebaff8SEnji Cooper {
821cdebaff8SEnji Cooper 	const char imgpath[] = "3des-cbc-192-encblkno1.img";
822cdebaff8SEnji Cooper 	const char *dkpath = "/dev/dk";
823cdebaff8SEnji Cooper 	const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */
824cdebaff8SEnji Cooper 	int dkfd, cgdfd;
825cdebaff8SEnji Cooper 
826cdebaff8SEnji Cooper 	rump_init();
827cdebaff8SEnji Cooper 
828cdebaff8SEnji Cooper 	RL(dkfd = open_disk(dkpath, imgpath, dksize));
829cdebaff8SEnji Cooper 
830cdebaff8SEnji Cooper 	RL(cgdfd = open_cgd(0));
831cdebaff8SEnji Cooper 	RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno1",
832cdebaff8SEnji Cooper 	    c3des_cbc_192_key, sizeof(c3des_cbc_192_key)));
833cdebaff8SEnji Cooper 
834cdebaff8SEnji Cooper 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[0]), 0);
835cdebaff8SEnji Cooper 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[1]), 0);
836cdebaff8SEnji Cooper 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[2]), 0);
837cdebaff8SEnji Cooper 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[3]), 0);
838cdebaff8SEnji Cooper 
839cdebaff8SEnji Cooper 	RL(unconfigure_cgd(cgdfd));
840cdebaff8SEnji Cooper 	RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno1",
841cdebaff8SEnji Cooper 	    c3des_cbc_192_key, sizeof(c3des_cbc_192_key)));
842cdebaff8SEnji Cooper 
843cdebaff8SEnji Cooper 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[0]), 0);
844cdebaff8SEnji Cooper 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[1]), 0);
845cdebaff8SEnji Cooper 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[2]), 0);
846cdebaff8SEnji Cooper 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[3]), 0);
847cdebaff8SEnji Cooper 
848cdebaff8SEnji Cooper 	RL(unconfigure_cgd(cgdfd));
849cdebaff8SEnji Cooper 	RL(rump_sys_close(cgdfd));
850cdebaff8SEnji Cooper 
851cdebaff8SEnji Cooper 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[0]), 0);
852cdebaff8SEnji Cooper 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[1]), 0);
853cdebaff8SEnji Cooper 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[2]), 0);
854cdebaff8SEnji Cooper 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[3]), 0);
855cdebaff8SEnji Cooper 
856cdebaff8SEnji Cooper 	RL(close(dkfd));
857cdebaff8SEnji Cooper }
858cdebaff8SEnji Cooper 
859cdebaff8SEnji Cooper ATF_TC(cgd_3des_cbc_192_encblkno8);
ATF_TC_HEAD(cgd_3des_cbc_192_encblkno8,tc)860cdebaff8SEnji Cooper ATF_TC_HEAD(cgd_3des_cbc_192_encblkno8, tc)
861cdebaff8SEnji Cooper {
862cdebaff8SEnji Cooper 	atf_tc_set_md_var(tc, "descr",
863cdebaff8SEnji Cooper 	    "Test 3des-cbc with 192 bits key, ivmethod encblkno8");
864cdebaff8SEnji Cooper }
865cdebaff8SEnji Cooper 
ATF_TC_BODY(cgd_3des_cbc_192_encblkno8,tc)866cdebaff8SEnji Cooper ATF_TC_BODY(cgd_3des_cbc_192_encblkno8, tc)
867cdebaff8SEnji Cooper {
868cdebaff8SEnji Cooper 	const char imgpath[] = "3des-cbc-192-encblkno8.img";
869cdebaff8SEnji Cooper 	const char *dkpath = "/dev/dk";
870cdebaff8SEnji Cooper 	const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */
871cdebaff8SEnji Cooper 	int dkfd, cgdfd;
872cdebaff8SEnji Cooper 
873cdebaff8SEnji Cooper 	rump_init();
874cdebaff8SEnji Cooper 
875cdebaff8SEnji Cooper 	RL(dkfd = open_disk(dkpath, imgpath, dksize));
876cdebaff8SEnji Cooper 
877cdebaff8SEnji Cooper 	RL(cgdfd = open_cgd(0));
878cdebaff8SEnji Cooper 	RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno8",
879cdebaff8SEnji Cooper 	    c3des_cbc_192_key, sizeof(c3des_cbc_192_key)));
880cdebaff8SEnji Cooper 
881cdebaff8SEnji Cooper 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[0]), 0);
882cdebaff8SEnji Cooper 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[1]), 0);
883cdebaff8SEnji Cooper 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[2]), 0);
884cdebaff8SEnji Cooper 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[3]), 0);
885cdebaff8SEnji Cooper 
886cdebaff8SEnji Cooper 	RL(unconfigure_cgd(cgdfd));
887cdebaff8SEnji Cooper 	RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno8",
888cdebaff8SEnji Cooper 	    c3des_cbc_192_key, sizeof(c3des_cbc_192_key)));
889cdebaff8SEnji Cooper 
890cdebaff8SEnji Cooper 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[0]), 0);
891cdebaff8SEnji Cooper 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[1]), 0);
892cdebaff8SEnji Cooper 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[2]), 0);
893cdebaff8SEnji Cooper 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[3]), 0);
894cdebaff8SEnji Cooper 
895cdebaff8SEnji Cooper 	RL(unconfigure_cgd(cgdfd));
896cdebaff8SEnji Cooper 	RL(rump_sys_close(cgdfd));
897cdebaff8SEnji Cooper 
898cdebaff8SEnji Cooper 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[0]), 0);
899cdebaff8SEnji Cooper 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[1]), 0);
900cdebaff8SEnji Cooper 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[2]), 0);
901cdebaff8SEnji Cooper 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[3]), 0);
902cdebaff8SEnji Cooper 
903cdebaff8SEnji Cooper 	RL(close(dkfd));
904cdebaff8SEnji Cooper }
905cdebaff8SEnji Cooper 
ATF_TP_ADD_TCS(tp)906cdebaff8SEnji Cooper ATF_TP_ADD_TCS(tp)
907cdebaff8SEnji Cooper {
908cdebaff8SEnji Cooper 
909cdebaff8SEnji Cooper 	ATF_TP_ADD_TC(tp, cgd_3des_cbc_192_encblkno1);
910cdebaff8SEnji Cooper 	ATF_TP_ADD_TC(tp, cgd_3des_cbc_192_encblkno8);
911cdebaff8SEnji Cooper 
912cdebaff8SEnji Cooper 	return atf_no_error();
913cdebaff8SEnji Cooper }
914