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