]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/netbsd-tests/dev/cgd/t_cgd_blowfish.c
MFC r314450,r313439:
[FreeBSD/stable/10.git] / contrib / netbsd-tests / dev / cgd / t_cgd_blowfish.c
1 /*      $NetBSD: t_cgd_blowfish.c,v 1.2 2017/01/13 21:30:39 christos Exp $      */
2 /*-
3  * Copyright (c) 2016 The NetBSD Foundation, Inc.
4  * All rights reserved.
5  *
6  * This code is derived from software contributed to The NetBSD Foundation
7  * by Alexander Nasonov.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  *
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in
17  *    the documentation and/or other materials provided with the
18  *    distribution.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
24  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25  * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
26  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31  * SUCH DAMAGE.
32  */
33
34 #include <sys/types.h>
35 #include <sys/ioctl.h>
36 #include <sys/sysctl.h>
37
38 #include <atf-c.h>
39 #include <fcntl.h>
40 #include <stdio.h>
41 #include <stdlib.h>
42 #include <string.h>
43 #include <unistd.h>
44 #include <util.h>
45
46 #include <dev/cgdvar.h>
47
48 #include <rump/rump.h>
49 #include <rump/rump_syscalls.h>
50
51 #include "h_macros.h"
52
53 #define SECSIZE 512
54
55 struct testvec {
56         unsigned int blkno;
57         const uint8_t *ptxt;    /* PlainText  */
58         const uint8_t *ctxt;    /* CipherText */
59 };
60
61 /*
62  * 128 bits Blowfish key, NUL terminated.
63  */
64 static const char bf_cbc_128_key[17] = {
65         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
66         0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, /* 89ABCDEF */
67         0
68 };
69
70 /*
71  * 256 bits Blowfish key, NUL terminated.
72  */
73 static const char bf_cbc_256_key[33] = {
74         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
75         0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, /* 89ABCDEF */
76         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 01234567 */
77         0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, /* 89abcdef */
78         0
79 };
80
81 /*
82  * 448 bits Blowfish key, NUL terminated.
83  */
84 static const char bf_cbc_448_key[57] = {
85         0x3a, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* :ABCDEFG */
86         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, /* HIJKLMNO */
87         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* PQRSTUVW */
88         0x58, 0x59, 0x5a, 0x7e, 0x3a, 0x61, 0x62, 0x63, /* XYZ~:abc */
89         0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, /* defghijk */
90         0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, /* lmnopqrs */
91         0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x23, /* tuvwxyz# */
92         0
93 };
94
95 static const uint8_t bf_cbc_ptxt[SECSIZE] =
96         "                abcdefghijklmnop"
97         "                abcdefghijklmnop"
98         "                abcdefghijklmnop"
99         "                abcdefghijklmnop"
100         "                abcdefghijklmnop"
101         "                abcdefghijklmnop"
102         "                abcdefghijklmnop"
103         "                abcdefghijklmnop"
104         "                abcdefghijklmnop"
105         "                abcdefghijklmnop"
106         "                abcdefghijklmnop"
107         "                abcdefghijklmnop"
108         "                abcdefghijklmnop"
109         "                abcdefghijklmnop"
110         "                abcdefghijklmnop"
111         "                abcdefghijklmnop";
112
113 /*
114  * IV method encblkno1, blkno 0.
115  */
116 static const uint8_t bf_cbc_128_encblkno1_vec0_ctxt[SECSIZE] = {
117         0x78, 0x53, 0x43, 0x2a, 0x08, 0xe7, 0x84, 0x3f,
118         0xb7, 0x61, 0x9c, 0x17, 0x81, 0xbe, 0x38, 0xb9,
119         0x65, 0x51, 0x68, 0xa2, 0x29, 0xd7, 0x45, 0xc9,
120         0xee, 0x0e, 0x9d, 0xe1, 0x69, 0xc6, 0x81, 0x81,
121         0xf3, 0x93, 0xa6, 0x62, 0xc9, 0x05, 0x2c, 0x1b,
122         0x0e, 0x05, 0xca, 0xbe, 0x12, 0x25, 0x37, 0xd8,
123         0x98, 0x66, 0xa2, 0xd3, 0xd0, 0x8a, 0x89, 0x57,
124         0x44, 0x91, 0x1e, 0xe9, 0x07, 0x03, 0x5c, 0xa6,
125         0xb8, 0x30, 0xf1, 0xc7, 0x8c, 0x66, 0x05, 0xb0,
126         0x2d, 0xc3, 0xc3, 0xd7, 0x60, 0xef, 0x62, 0xd3,
127         0x34, 0x9c, 0xa9, 0xd2, 0x0c, 0x1a, 0x9c, 0xfe,
128         0x74, 0x92, 0xcb, 0x90, 0x80, 0xfa, 0x71, 0x5c,
129         0xaa, 0x29, 0x39, 0xdd, 0x3b, 0x62, 0xa1, 0xfc,
130         0xa5, 0x35, 0xcd, 0xa3, 0x29, 0x41, 0x1a, 0x03,
131         0xf7, 0xe1, 0x36, 0xb2, 0xdc, 0x1a, 0xb3, 0x9f,
132         0x46, 0xa3, 0xf7, 0xc3, 0xd1, 0x29, 0x83, 0xcf,
133         0x0d, 0x88, 0x0b, 0xd1, 0xb7, 0xc7, 0x87, 0x21,
134         0xb7, 0x1f, 0xe7, 0xa2, 0x8e, 0x5f, 0xac, 0x6b,
135         0x49, 0x9c, 0x93, 0x6b, 0x6b, 0x05, 0x8e, 0x4c,
136         0xbd, 0x31, 0x13, 0x5f, 0x4a, 0xd0, 0x35, 0x0c,
137         0x67, 0x8f, 0xd0, 0x7a, 0xc9, 0xe3, 0x52, 0x50,
138         0x4f, 0x85, 0x09, 0xf1, 0x27, 0xb9, 0xb1, 0x1e,
139         0xe4, 0x6a, 0x40, 0xf6, 0x5a, 0x4f, 0x5f, 0xbe,
140         0xab, 0xe8, 0xb9, 0xfe, 0xc7, 0x59, 0x6b, 0x0c,
141         0xcd, 0x46, 0x4e, 0x90, 0x99, 0xde, 0xf7, 0x43,
142         0xee, 0x6e, 0xb6, 0xae, 0xc2, 0x5e, 0x08, 0xbb,
143         0xe9, 0x30, 0x2d, 0xb2, 0x91, 0xcc, 0xb9, 0xc7,
144         0x58, 0xea, 0x35, 0xae, 0xa2, 0xd8, 0x00, 0xf7,
145         0xc0, 0x01, 0xc4, 0x34, 0x2b, 0x34, 0x43, 0xae,
146         0xeb, 0x27, 0xbc, 0x5c, 0x91, 0x5f, 0x5f, 0xc1,
147         0x61, 0x42, 0x45, 0x68, 0x31, 0xbc, 0xce, 0xb4,
148         0x5c, 0xd3, 0x07, 0xdf, 0x4e, 0x65, 0x65, 0x9d,
149         0x2e, 0x26, 0x28, 0xfa, 0xcd, 0x53, 0x77, 0x6a,
150         0x77, 0xad, 0x96, 0x0b, 0x1f, 0xea, 0x03, 0xc1,
151         0xdd, 0xca, 0xe8, 0xfe, 0xe8, 0x36, 0x01, 0x61,
152         0x72, 0xbb, 0xed, 0xfd, 0x8d, 0xa3, 0xc2, 0x15,
153         0x25, 0x4f, 0xa6, 0x1a, 0x73, 0xbd, 0xcd, 0x45,
154         0xdb, 0x08, 0x74, 0x7b, 0xa8, 0x23, 0xf5, 0x74,
155         0x3a, 0x18, 0x6d, 0x90, 0xe0, 0xee, 0xae, 0xfe,
156         0xc8, 0xac, 0x00, 0x57, 0xa0, 0xe1, 0xfe, 0x10,
157         0xd4, 0xf3, 0xa8, 0x00, 0x21, 0x3e, 0x2d, 0xf9,
158         0x63, 0xb8, 0xe9, 0xa4, 0x2e, 0xf4, 0x6b, 0xd7,
159         0x5c, 0xfd, 0x32, 0x6c, 0x98, 0x05, 0x38, 0x0d,
160         0x29, 0xb5, 0x5a, 0x5b, 0xbb, 0xad, 0xfd, 0x46,
161         0x9b, 0x6a, 0x97, 0x4c, 0x24, 0xcc, 0x7d, 0x13,
162         0x25, 0xe8, 0x2c, 0xb9, 0x13, 0x54, 0xb2, 0x8a,
163         0x28, 0xa0, 0x8a, 0x3a, 0x4d, 0x7e, 0xf4, 0x29,
164         0xff, 0xfb, 0x4f, 0xd6, 0x3d, 0xf7, 0xca, 0x89,
165         0x2a, 0x58, 0x9e, 0x42, 0x00, 0x84, 0x61, 0x58,
166         0x7c, 0x94, 0xf6, 0x50, 0x48, 0x2f, 0x34, 0x88,
167         0xec, 0x97, 0xef, 0x8b, 0x2f, 0x84, 0xca, 0x23,
168         0xe1, 0xb7, 0x63, 0x99, 0xdd, 0x4a, 0x76, 0xdd,
169         0x20, 0xc1, 0xc2, 0x56, 0x45, 0xbe, 0x75, 0x9a,
170         0x40, 0x72, 0xc8, 0xfb, 0x7e, 0x40, 0x6f, 0x38,
171         0xfd, 0x76, 0xa4, 0x78, 0xf5, 0xde, 0x5f, 0xb7,
172         0x4a, 0xa9, 0xaf, 0xad, 0xa1, 0x8b, 0x25, 0x8f,
173         0xea, 0xb3, 0xeb, 0x54, 0x39, 0x5a, 0x91, 0xfe,
174         0x86, 0x18, 0xea, 0x8c, 0xd6, 0x66, 0xd5, 0x85,
175         0x02, 0x2b, 0x00, 0x5d, 0x7e, 0x13, 0xa0, 0x1f,
176         0x73, 0x46, 0x6d, 0x5e, 0xcd, 0xe0, 0x82, 0x02,
177         0x28, 0x88, 0xbf, 0x17, 0xfd, 0x9b, 0x83, 0x2c,
178         0xa2, 0xf7, 0xde, 0x51, 0x98, 0x3f, 0xe2, 0x80,
179         0x66, 0x14, 0x17, 0xce, 0x8e, 0x30, 0x2d, 0xe2,
180         0x24, 0x68, 0x4b, 0xe5, 0xd1, 0x09, 0xfb, 0x6e,
181 };
182
183 /*
184  * IV method encblkno1, blkno 1.
185  */
186 static const uint8_t bf_cbc_128_encblkno1_vec1_ctxt[SECSIZE] = {
187         0x87, 0xae, 0x01, 0x52, 0xe8, 0xe9, 0xd9, 0xba,
188         0xa9, 0x18, 0x31, 0x2c, 0x1b, 0xab, 0x57, 0xad,
189         0x45, 0x0e, 0x25, 0x5e, 0x0e, 0x04, 0xfa, 0xdd,
190         0xf1, 0x59, 0xe6, 0xea, 0x78, 0x4b, 0x83, 0x07,
191         0x8b, 0x46, 0x91, 0x09, 0x58, 0x5a, 0x11, 0x2e,
192         0x54, 0x43, 0xa4, 0xc1, 0x04, 0x35, 0xd3, 0x3e,
193         0xc9, 0xc8, 0xf5, 0xff, 0x69, 0x1e, 0x57, 0x85,
194         0x6d, 0x91, 0x03, 0xeb, 0x8c, 0xa7, 0xe8, 0xcc,
195         0x3f, 0xac, 0xf9, 0x14, 0x1e, 0x88, 0x50, 0xa5,
196         0x38, 0x66, 0xa9, 0xf4, 0xf5, 0xc6, 0x30, 0x95,
197         0xd6, 0x84, 0x0b, 0x81, 0xf9, 0x51, 0x05, 0x80,
198         0x9a, 0x89, 0xbf, 0xd4, 0x7d, 0x6a, 0x26, 0x59,
199         0x29, 0x44, 0xe7, 0x1d, 0x0e, 0xad, 0x8c, 0xa0,
200         0x93, 0xe9, 0x4b, 0x4b, 0x51, 0x46, 0xa5, 0x07,
201         0xe8, 0xcb, 0x59, 0xf4, 0x63, 0xb5, 0x36, 0xdb,
202         0xbc, 0x54, 0x2d, 0xec, 0xf0, 0x90, 0x3a, 0xa5,
203         0xed, 0xc8, 0x28, 0x0e, 0xd3, 0x79, 0xb8, 0x57,
204         0xc6, 0x7f, 0x02, 0x22, 0x5e, 0x80, 0xe8, 0x7f,
205         0xdf, 0xa0, 0x0f, 0xbc, 0x98, 0x79, 0x6f, 0xd2,
206         0xb0, 0xb2, 0x4f, 0x9b, 0x1a, 0x21, 0x8f, 0x63,
207         0xce, 0x54, 0x41, 0x64, 0xbf, 0xb9, 0xa7, 0x93,
208         0xd6, 0x5b, 0x89, 0x86, 0xda, 0x90, 0x23, 0x2e,
209         0x25, 0x35, 0x1a, 0x9a, 0xf5, 0x1e, 0x8f, 0xb4,
210         0xe6, 0x66, 0x8e, 0x0e, 0x2d, 0x91, 0x06, 0x4b,
211         0x3d, 0x4a, 0x97, 0xab, 0x9b, 0x92, 0x09, 0xaa,
212         0x07, 0xbf, 0xc1, 0x7d, 0xe2, 0xbc, 0xd2, 0xf1,
213         0x38, 0x8d, 0x02, 0x45, 0xc8, 0x13, 0x12, 0xda,
214         0xaa, 0x53, 0xa2, 0x2c, 0x96, 0x69, 0x64, 0xce,
215         0x86, 0xe4, 0x84, 0x56, 0xd0, 0xe5, 0x81, 0x99,
216         0x27, 0xad, 0x86, 0x47, 0x5f, 0xaf, 0xa2, 0xa2,
217         0x90, 0x7f, 0xe7, 0x86, 0xec, 0x7f, 0xf4, 0xa3,
218         0xcd, 0x4f, 0x60, 0xcc, 0x1e, 0x35, 0x44, 0xe8,
219         0xe9, 0x06, 0xaf, 0x5e, 0x53, 0x3d, 0x30, 0x91,
220         0xfe, 0x44, 0x59, 0x66, 0x82, 0xc2, 0xea, 0x9f,
221         0xc8, 0x3b, 0xe2, 0xe5, 0x58, 0xf7, 0x34, 0xd5,
222         0x9e, 0xfc, 0x20, 0x84, 0x34, 0xaa, 0x4f, 0xe1,
223         0xd4, 0x95, 0x76, 0x11, 0x59, 0x90, 0x90, 0xfd,
224         0x4d, 0xf9, 0xb8, 0x41, 0xe1, 0xdb, 0x36, 0x05,
225         0xe3, 0x0f, 0xa4, 0x4f, 0x0c, 0x61, 0x70, 0xa5,
226         0x1b, 0xbf, 0xab, 0x65, 0x67, 0x75, 0x5c, 0x7d,
227         0x46, 0x3b, 0x29, 0xd0, 0x3d, 0x06, 0x40, 0x25,
228         0x47, 0x3e, 0x8d, 0x62, 0xf8, 0xd8, 0x08, 0xc1,
229         0x03, 0x04, 0x4b, 0x5a, 0x40, 0x65, 0x84, 0x52,
230         0x34, 0xa2, 0x4a, 0xcc, 0x3a, 0x9c, 0x1e, 0xbf,
231         0x2d, 0xed, 0x08, 0x8b, 0xc3, 0x8f, 0x48, 0xba,
232         0x06, 0x03, 0xea, 0x5b, 0xba, 0x6a, 0xac, 0x23,
233         0x5a, 0x5e, 0x31, 0x08, 0x29, 0x69, 0x64, 0x44,
234         0x1c, 0x31, 0xae, 0xb1, 0x86, 0x7b, 0x26, 0x89,
235         0xa6, 0xbe, 0xef, 0x69, 0x81, 0xf7, 0x77, 0xd5,
236         0x8e, 0x78, 0xa5, 0x11, 0x51, 0xca, 0xec, 0xd0,
237         0x86, 0xa5, 0x33, 0xf3, 0x65, 0x5d, 0x04, 0xc5,
238         0xd2, 0x17, 0x2a, 0xfe, 0x4a, 0x58, 0x0f, 0x98,
239         0x61, 0xad, 0xc3, 0xb8, 0x5b, 0x45, 0xcc, 0x28,
240         0x3d, 0x4d, 0x00, 0xf5, 0x4a, 0xe2, 0xbc, 0x6c,
241         0x1b, 0x80, 0x7a, 0x2b, 0x40, 0xb8, 0x34, 0x0e,
242         0x44, 0x53, 0x16, 0xda, 0x7c, 0x46, 0x8b, 0x42,
243         0x5e, 0xa8, 0xe1, 0xb8, 0xf8, 0xcf, 0xff, 0x48,
244         0xcf, 0x2c, 0x4c, 0x98, 0xdb, 0xe5, 0x55, 0xfe,
245         0x45, 0xfa, 0xf8, 0xde, 0x72, 0xf9, 0x84, 0x3c,
246         0xc0, 0x0c, 0x1f, 0x86, 0x97, 0x86, 0xb8, 0xfe,
247         0x7d, 0xff, 0xa3, 0xaf, 0x68, 0x00, 0x66, 0x90,
248         0xac, 0xb5, 0xd8, 0xde, 0x35, 0x01, 0xf7, 0xab,
249         0xab, 0xe3, 0xe9, 0x85, 0x4c, 0x6f, 0xe6, 0xbc,
250         0xce, 0x67, 0x4a, 0xbd, 0xad, 0x7b, 0xec, 0xa1,
251 };
252
253 /*
254  * IV method encblkno1, blkno 2.
255  */
256 static const uint8_t bf_cbc_128_encblkno1_vec2_ctxt[SECSIZE] = {
257         0x17, 0xdd, 0x0f, 0x4b, 0x28, 0x33, 0x03, 0x89,
258         0x21, 0x7b, 0x67, 0x15, 0x15, 0x65, 0x08, 0x4f,
259         0x65, 0x18, 0xa6, 0x4b, 0x62, 0xdb, 0x1e, 0xc2,
260         0xaa, 0x82, 0xb6, 0x1d, 0xf7, 0x12, 0x9e, 0x73,
261         0xfe, 0xac, 0x2f, 0x1e, 0x2b, 0xea, 0x3a, 0x4f,
262         0xc3, 0x0a, 0x59, 0x80, 0x0d, 0x3d, 0xbc, 0x62,
263         0x8d, 0x70, 0xef, 0x1b, 0xfb, 0xdc, 0x4e, 0xc4,
264         0x97, 0xf4, 0x77, 0xb7, 0x25, 0x94, 0x13, 0x48,
265         0xf2, 0x3d, 0x4c, 0xa7, 0xb8, 0x8c, 0xf5, 0x26,
266         0xa4, 0x35, 0xeb, 0xa0, 0xe7, 0x68, 0xb0, 0x69,
267         0xf4, 0xf6, 0x13, 0x3a, 0x57, 0xa3, 0xd2, 0x26,
268         0xe6, 0x70, 0xd8, 0xd4, 0x05, 0xb5, 0x01, 0xda,
269         0xc7, 0x4a, 0x79, 0x1a, 0x6d, 0xb6, 0xf6, 0xb5,
270         0x7d, 0x9a, 0x5c, 0xf1, 0x6a, 0xf8, 0xd1, 0x0a,
271         0xbc, 0xe7, 0xea, 0xb4, 0x99, 0x72, 0x19, 0x97,
272         0x41, 0x4f, 0x14, 0x5f, 0xa3, 0xb3, 0x9b, 0x36,
273         0x00, 0x08, 0x88, 0x8c, 0xce, 0x7f, 0x3a, 0x9b,
274         0xb0, 0x24, 0x17, 0x95, 0xc4, 0x59, 0x30, 0x5d,
275         0xc6, 0x92, 0x19, 0x12, 0x99, 0xb0, 0x08, 0xa6,
276         0x04, 0xdb, 0xc6, 0xd5, 0x61, 0xe4, 0xe1, 0x68,
277         0xa8, 0xd7, 0x07, 0xfe, 0x2f, 0x47, 0xea, 0x14,
278         0xe5, 0xf7, 0x61, 0x9b, 0xbb, 0x98, 0xcb, 0x3b,
279         0x8c, 0x41, 0xd1, 0x55, 0x59, 0xb2, 0x41, 0x61,
280         0x8e, 0x60, 0x17, 0xcd, 0xe8, 0xf7, 0x1d, 0xbd,
281         0x28, 0x5d, 0x1e, 0x15, 0x28, 0x80, 0x8c, 0x29,
282         0x34, 0x96, 0x31, 0xda, 0xe1, 0x19, 0x88, 0xd5,
283         0xe0, 0xc8, 0xb4, 0xaa, 0x04, 0x21, 0xf5, 0xef,
284         0xfa, 0x0e, 0xc9, 0xa5, 0x88, 0x77, 0x49, 0xf4,
285         0x02, 0x22, 0x0b, 0x8b, 0x5e, 0xe1, 0xab, 0xd4,
286         0xb1, 0xb6, 0x48, 0x54, 0x96, 0x08, 0xaf, 0xa1,
287         0x0b, 0xc0, 0xfe, 0x2a, 0x12, 0x36, 0x56, 0x85,
288         0x6a, 0xf7, 0x3d, 0x82, 0xe6, 0xda, 0x5d, 0xfe,
289         0x4f, 0x4f, 0xc9, 0x43, 0xdc, 0x0f, 0x53, 0x05,
290         0x09, 0xd4, 0x9c, 0x2e, 0x6e, 0xf3, 0x52, 0x6a,
291         0x10, 0xc6, 0x48, 0xb1, 0x54, 0x70, 0xab, 0x7c,
292         0x31, 0xf6, 0x47, 0xef, 0x64, 0x5f, 0xff, 0x45,
293         0x8c, 0x3f, 0x87, 0x3a, 0x2d, 0xa6, 0xaf, 0xb2,
294         0x44, 0xdf, 0x80, 0x2e, 0x89, 0x4c, 0x94, 0x67,
295         0xfc, 0x20, 0x98, 0xb4, 0xcf, 0x58, 0x1e, 0x33,
296         0x55, 0x6a, 0x7c, 0x67, 0x5c, 0x28, 0x2f, 0x19,
297         0x02, 0x14, 0x06, 0x93, 0x8c, 0x84, 0xae, 0x62,
298         0x14, 0xf9, 0x87, 0xae, 0x85, 0xa3, 0x60, 0x26,
299         0xfc, 0x8d, 0x04, 0x92, 0x27, 0xfe, 0x35, 0x7b,
300         0x45, 0x9d, 0x4a, 0x86, 0x75, 0xa6, 0xb3, 0xa1,
301         0x59, 0xe4, 0x4b, 0x1c, 0xd2, 0x71, 0x36, 0xfe,
302         0x73, 0xed, 0x54, 0x0d, 0x9d, 0xde, 0x63, 0xb2,
303         0xc0, 0x7c, 0xf2, 0xb3, 0x36, 0x62, 0x06, 0x1f,
304         0xcd, 0x41, 0x92, 0x73, 0xbc, 0x11, 0x68, 0xc9,
305         0x69, 0x20, 0xf9, 0xbb, 0x9a, 0xe9, 0x6c, 0x05,
306         0xcf, 0x01, 0x57, 0xc4, 0x1d, 0x95, 0x5e, 0xe3,
307         0xb7, 0x15, 0xde, 0xa7, 0xb5, 0x1a, 0x4e, 0x78,
308         0x44, 0x5b, 0x9a, 0xee, 0x29, 0xe2, 0x22, 0x8b,
309         0xe9, 0xe3, 0xe6, 0x70, 0x3e, 0xcb, 0x9f, 0x7f,
310         0xc3, 0xd0, 0x2c, 0xdc, 0x55, 0xb4, 0x0d, 0x67,
311         0xf5, 0xd8, 0xff, 0xbb, 0xb1, 0x02, 0xbf, 0xf6,
312         0x33, 0x4e, 0x7a, 0x3a, 0x50, 0xb1, 0x01, 0x77,
313         0x51, 0xef, 0xb5, 0x75, 0xb3, 0x66, 0xe8, 0xe6,
314         0xd6, 0x53, 0x7d, 0x33, 0x51, 0x62, 0x5d, 0xf2,
315         0x77, 0x02, 0x34, 0x42, 0xda, 0xee, 0xd9, 0xee,
316         0x0b, 0x4d, 0x71, 0x5c, 0xc0, 0xec, 0xdd, 0xc0,
317         0x34, 0x6f, 0xf4, 0x65, 0x32, 0xde, 0xc5, 0xb2,
318         0x97, 0x60, 0x89, 0x4e, 0x3b, 0x0c, 0xf2, 0xa7,
319         0x74, 0x61, 0xd7, 0xe4, 0xa6, 0x80, 0x78, 0x76,
320         0xe5, 0x7d, 0xab, 0x96, 0x04, 0x00, 0x76, 0x22,
321 };
322
323 /*
324  * IV method encblkno1, blkno 3.
325  */
326 static const uint8_t bf_cbc_128_encblkno1_vec3_ctxt[SECSIZE] = {
327         0xdd, 0x8e, 0xce, 0x5b, 0xb8, 0x2a, 0xc8, 0x0e,
328         0xd2, 0xbe, 0xcf, 0xa7, 0x2a, 0x5b, 0x0c, 0x1a,
329         0xb2, 0x68, 0x5b, 0xe7, 0x53, 0xaf, 0xce, 0x56,
330         0xfd, 0xbd, 0x73, 0x3c, 0x44, 0x02, 0x96, 0x57,
331         0xaa, 0x47, 0x8d, 0xf1, 0x28, 0x59, 0xb6, 0xce,
332         0xba, 0x1e, 0xc9, 0x78, 0x76, 0xdd, 0x43, 0x3a,
333         0xbc, 0x43, 0x4c, 0x17, 0xd2, 0xba, 0xb1, 0xda,
334         0xa8, 0xbf, 0x32, 0x25, 0xaa, 0xc0, 0xf7, 0xb6,
335         0x72, 0x65, 0xe2, 0x67, 0xdb, 0xf0, 0xa8, 0x60,
336         0xda, 0x9b, 0x70, 0xad, 0x8f, 0x1d, 0x34, 0x24,
337         0x1a, 0xfd, 0x77, 0x2e, 0x1c, 0xb6, 0xc0, 0x6b,
338         0xa0, 0x4b, 0x4a, 0xa0, 0xd5, 0x8b, 0xbb, 0xd4,
339         0xcc, 0x7b, 0x4e, 0x4c, 0x71, 0x9a, 0x50, 0x12,
340         0x36, 0xd4, 0xfd, 0x1f, 0xf1, 0xfc, 0x19, 0x31,
341         0xec, 0x54, 0x24, 0xb4, 0x9f, 0xa9, 0xea, 0xd2,
342         0x87, 0x11, 0x03, 0x29, 0xbb, 0x20, 0x20, 0x37,
343         0xa0, 0xeb, 0x93, 0xa1, 0x60, 0x5f, 0x83, 0x9f,
344         0x00, 0x09, 0xe4, 0x9c, 0x79, 0xcb, 0xfc, 0x4f,
345         0x9e, 0xd2, 0x76, 0x9f, 0x56, 0x3b, 0x88, 0x1d,
346         0x29, 0x8f, 0x36, 0x07, 0xf7, 0x7e, 0xf1, 0xa1,
347         0xa4, 0x25, 0xfb, 0xa0, 0xbe, 0xc6, 0xa2, 0x76,
348         0xd3, 0x59, 0x2a, 0x7f, 0xb7, 0x9b, 0xb8, 0x75,
349         0xc7, 0xc1, 0xc0, 0xe9, 0x9b, 0x83, 0x16, 0x00,
350         0xc8, 0x9c, 0x25, 0x2a, 0x8b, 0xd1, 0x8d, 0x16,
351         0x9f, 0xd6, 0xd3, 0x03, 0x5b, 0xc7, 0x40, 0xac,
352         0xb6, 0xf3, 0xbb, 0x22, 0xa3, 0x3e, 0x56, 0x55,
353         0xdf, 0x06, 0x76, 0xe0, 0x7b, 0xd0, 0x52, 0x54,
354         0x38, 0xb0, 0xaa, 0xab, 0x62, 0x31, 0xd1, 0x79,
355         0x19, 0xec, 0x82, 0x36, 0x58, 0x31, 0xf9, 0x01,
356         0xf9, 0x5e, 0xaf, 0x24, 0xb3, 0xc9, 0xb2, 0x30,
357         0x3d, 0xbc, 0xf1, 0xbe, 0x17, 0xeb, 0xa0, 0x31,
358         0x43, 0xed, 0xd7, 0x50, 0xcc, 0xc2, 0xe2, 0xaa,
359         0x68, 0xc8, 0xf0, 0xd3, 0x89, 0xbd, 0xf5, 0x69,
360         0x56, 0xe3, 0x88, 0x92, 0x32, 0x56, 0x85, 0x6f,
361         0x25, 0x30, 0x28, 0x37, 0xd5, 0xe2, 0xa6, 0xf7,
362         0x6e, 0xa9, 0x71, 0xda, 0x4a, 0x25, 0x94, 0x0b,
363         0x84, 0x7f, 0x1f, 0x6b, 0x89, 0x2a, 0xf8, 0x30,
364         0xcb, 0x60, 0x75, 0x21, 0xbd, 0xe2, 0x34, 0xf7,
365         0x8f, 0x30, 0xd5, 0xd5, 0x1f, 0x17, 0x0d, 0x00,
366         0x6c, 0x50, 0xde, 0x56, 0x15, 0x33, 0x1b, 0x83,
367         0x68, 0x7b, 0x24, 0xe3, 0xa0, 0xda, 0xd5, 0x7a,
368         0x3e, 0x93, 0x6d, 0xe0, 0x02, 0x79, 0x62, 0x5d,
369         0x71, 0xe3, 0x7b, 0xa9, 0x0b, 0x7a, 0xcd, 0xb3,
370         0xb2, 0x6f, 0x96, 0x19, 0x8f, 0xf8, 0x8b, 0x26,
371         0x7a, 0x40, 0xc8, 0xae, 0xfe, 0x0d, 0x6f, 0x67,
372         0xce, 0x5e, 0xa0, 0x04, 0x7e, 0x93, 0x1d, 0x17,
373         0x1c, 0x32, 0x82, 0xf4, 0x54, 0xb9, 0x80, 0xdd,
374         0x82, 0xae, 0xf5, 0xc5, 0x1e, 0x15, 0xab, 0xc2,
375         0x5c, 0x60, 0xd2, 0x08, 0xc2, 0xa1, 0x1f, 0x89,
376         0x0b, 0x59, 0x36, 0x07, 0xdc, 0x57, 0xd3, 0xa0,
377         0x32, 0x42, 0xac, 0xa6, 0x90, 0x0b, 0xc0, 0xe4,
378         0x91, 0x45, 0x85, 0x27, 0xb9, 0x48, 0x2a, 0x88,
379         0x0a, 0xbf, 0xf6, 0x2d, 0xef, 0x4d, 0x1b, 0x64,
380         0x49, 0x23, 0x47, 0x30, 0x29, 0x25, 0xb2, 0xc9,
381         0xaf, 0xcd, 0xae, 0x56, 0x43, 0x28, 0xcf, 0x81,
382         0x95, 0xa7, 0x3e, 0x51, 0x5b, 0x3b, 0xf7, 0x87,
383         0x13, 0xc6, 0xee, 0x50, 0x2f, 0x78, 0xdd, 0xcf,
384         0x63, 0xef, 0x15, 0xb9, 0x4f, 0x21, 0x27, 0x5e,
385         0x94, 0x78, 0xad, 0xcd, 0x9b, 0x3d, 0xf2, 0xdb,
386         0xed, 0xf2, 0xa2, 0x39, 0xca, 0xa3, 0xa8, 0x2e,
387         0x68, 0xd5, 0xc3, 0xcf, 0x71, 0xec, 0x92, 0xdc,
388         0xce, 0xe7, 0x7d, 0x2b, 0xf7, 0xbc, 0xe9, 0x2b,
389         0x2e, 0xae, 0xaf, 0x0b, 0x92, 0x72, 0xac, 0x6e,
390         0x49, 0xe1, 0xb3, 0x1f, 0xe5, 0x43, 0x2f, 0xa7,
391 };
392
393 const struct testvec bf_cbc_128_1_vectors[] = {
394         {
395                 .blkno = 0,
396                 .ptxt = bf_cbc_ptxt,
397                 .ctxt = bf_cbc_128_encblkno1_vec0_ctxt,
398         },
399         {
400                 .blkno = 1,
401                 .ptxt = bf_cbc_ptxt,
402                 .ctxt = bf_cbc_128_encblkno1_vec1_ctxt,
403         },
404         {
405                 .blkno = 2,
406                 .ptxt = bf_cbc_ptxt,
407                 .ctxt = bf_cbc_128_encblkno1_vec2_ctxt,
408         },
409         {
410                 .blkno = 3,
411                 .ptxt = bf_cbc_ptxt,
412                 .ctxt = bf_cbc_128_encblkno1_vec3_ctxt,
413         },
414 };
415
416 /*
417  * IV method encblkno8, blkno 0.
418  */
419 static const uint8_t bf_cbc_128_encblkno8_vec0_ctxt[SECSIZE] = {
420         0xb8, 0x65, 0x67, 0x8e, 0xe4, 0xd8, 0xb4, 0x93,
421         0xa5, 0xbb, 0x13, 0x92, 0x27, 0x4b, 0xdd, 0xeb,
422         0x0d, 0xad, 0x80, 0x6a, 0x57, 0x37, 0xc0, 0x23,
423         0x23, 0xbf, 0xed, 0x86, 0x0c, 0x18, 0x48, 0x19,
424         0xcd, 0x84, 0x66, 0xa7, 0xd6, 0xa0, 0x44, 0xd3,
425         0x05, 0x4e, 0xf4, 0xfe, 0x6a, 0x57, 0x69, 0x01,
426         0xaa, 0x91, 0x9c, 0x6e, 0x4f, 0x79, 0xc9, 0x8f,
427         0x4c, 0xdf, 0x5b, 0x9c, 0xc4, 0xf7, 0x63, 0x16,
428         0x20, 0x09, 0x07, 0x3f, 0x5e, 0x31, 0xcc, 0x81,
429         0x71, 0xe3, 0x7b, 0xb5, 0xea, 0x2c, 0xb5, 0x14,
430         0x1e, 0xf9, 0x0d, 0xe0, 0x45, 0xbc, 0x9f, 0x92,
431         0x6c, 0xc9, 0x0a, 0x85, 0x62, 0x42, 0xf1, 0x4b,
432         0xac, 0xe2, 0xfa, 0xad, 0x97, 0x7a, 0x43, 0x3d,
433         0xb6, 0x5f, 0xcb, 0xe7, 0x17, 0x23, 0x28, 0xde,
434         0x4e, 0xf8, 0xa1, 0x3c, 0x22, 0x63, 0x49, 0x31,
435         0xa7, 0xbe, 0xbf, 0xfe, 0xee, 0xd9, 0x1f, 0xa0,
436         0x2a, 0x0e, 0xf2, 0x4f, 0x3e, 0xf8, 0xbb, 0xae,
437         0x9e, 0x0d, 0x2c, 0xaa, 0x2a, 0x2c, 0xf0, 0x6c,
438         0x37, 0x2a, 0x5d, 0x96, 0x70, 0x9c, 0x87, 0xcc,
439         0x2b, 0xca, 0x95, 0x37, 0xf4, 0x4d, 0x78, 0xae,
440         0x4f, 0xb5, 0xe6, 0xad, 0xb1, 0xc1, 0x31, 0xd3,
441         0x2d, 0xa6, 0xaf, 0xc1, 0x8c, 0xe4, 0x72, 0x05,
442         0xb0, 0xfc, 0xb0, 0xf7, 0xfe, 0xf9, 0x3e, 0xa3,
443         0xb9, 0xea, 0xc8, 0x69, 0xe3, 0x4e, 0x6d, 0xd1,
444         0x8b, 0x2b, 0xf9, 0x2f, 0xd9, 0x40, 0x69, 0xff,
445         0x90, 0x98, 0x7a, 0x82, 0xe3, 0x0d, 0x4e, 0x19,
446         0x2f, 0x77, 0xf9, 0xab, 0x36, 0xa9, 0x4e, 0xbc,
447         0x25, 0x32, 0xbd, 0x44, 0xea, 0x5a, 0x18, 0x31,
448         0x37, 0xcd, 0x6c, 0x98, 0xdd, 0x1d, 0xf9, 0xf7,
449         0x8f, 0x0b, 0x79, 0xbc, 0xe6, 0xf5, 0xf1, 0xa3,
450         0x13, 0xe9, 0x39, 0xaf, 0xa4, 0x8a, 0x74, 0xae,
451         0x60, 0x30, 0x63, 0x6e, 0xee, 0x97, 0x83, 0xee,
452         0xc0, 0xdd, 0xde, 0xad, 0x92, 0x83, 0xc9, 0x3c,
453         0xd8, 0x58, 0x6c, 0xcb, 0xe4, 0x29, 0x04, 0x69,
454         0x4f, 0x45, 0xc2, 0x59, 0x98, 0x20, 0x91, 0x6e,
455         0x95, 0x82, 0xb3, 0x47, 0x2c, 0xef, 0xdb, 0x96,
456         0x38, 0xba, 0x01, 0x89, 0x84, 0x96, 0x71, 0xf9,
457         0x2b, 0x23, 0xe0, 0x89, 0xb8, 0xb9, 0x80, 0xbf,
458         0x0c, 0xdc, 0xf0, 0x5c, 0xd6, 0x4f, 0x18, 0x19,
459         0xfe, 0x23, 0x5a, 0x1e, 0x20, 0x9a, 0x05, 0xf2,
460         0x62, 0xd4, 0x04, 0x92, 0x24, 0xfc, 0xc0, 0x48,
461         0xf0, 0x00, 0xb4, 0xbe, 0x2e, 0xea, 0x25, 0x17,
462         0x5d, 0xab, 0x73, 0x26, 0x79, 0x77, 0xc5, 0x96,
463         0xd3, 0xbf, 0x38, 0xda, 0x0f, 0xe1, 0x26, 0x9a,
464         0x38, 0xfc, 0x43, 0x82, 0xd1, 0x4d, 0xf2, 0xae,
465         0x98, 0x1e, 0xb0, 0x0d, 0xec, 0x7b, 0x56, 0x66,
466         0xcb, 0x30, 0x57, 0x4f, 0xe7, 0x03, 0xe3, 0xa6,
467         0x4a, 0x4a, 0xf9, 0xa3, 0xbf, 0x44, 0xac, 0x1a,
468         0xe7, 0x4b, 0xc1, 0x5b, 0x03, 0x25, 0x4e, 0xc6,
469         0x1f, 0x96, 0x4d, 0xf7, 0xbe, 0xa7, 0x5d, 0x60,
470         0x20, 0x62, 0x10, 0xd7, 0xab, 0x64, 0xce, 0x22,
471         0x8b, 0x52, 0x76, 0xa1, 0xa1, 0x8b, 0x1e, 0xb2,
472         0x18, 0x29, 0x8f, 0xc5, 0x24, 0x39, 0xd4, 0xf8,
473         0x75, 0x1e, 0x30, 0x57, 0x12, 0x01, 0x04, 0x78,
474         0x68, 0x97, 0xa8, 0x65, 0x8c, 0xac, 0xb4, 0x3b,
475         0x37, 0x45, 0x41, 0xbc, 0x7d, 0x4b, 0x09, 0xd7,
476         0x46, 0x40, 0x99, 0x59, 0xa1, 0xb5, 0x9e, 0x84,
477         0x24, 0x6d, 0xfb, 0x74, 0x22, 0xac, 0x4e, 0x5f,
478         0x11, 0xd3, 0xa7, 0x9f, 0xa5, 0xca, 0x38, 0x54,
479         0xe2, 0x65, 0x52, 0x02, 0x69, 0xe9, 0xa8, 0xf1,
480         0xd7, 0x9d, 0x9a, 0x17, 0x54, 0xa0, 0xda, 0xbb,
481         0x37, 0xb4, 0x0c, 0xb6, 0x00, 0xad, 0x6f, 0x88,
482         0x84, 0xa7, 0x69, 0xd7, 0x0b, 0xbe, 0xb4, 0xbe,
483         0x96, 0xbc, 0xcd, 0x08, 0xf1, 0x28, 0xe0, 0x6f,
484 };
485
486 /*
487  * IV method encblkno8, blkno 1.
488  */
489 static const uint8_t bf_cbc_128_encblkno8_vec1_ctxt[SECSIZE] = {
490         0x7d, 0x95, 0x5a, 0x66, 0x23, 0x98, 0xa8, 0xbe,
491         0x53, 0x63, 0x0d, 0x46, 0x4e, 0x38, 0x1b, 0x1d,
492         0x36, 0xdd, 0x2a, 0x57, 0x3c, 0x17, 0x01, 0xba,
493         0x4e, 0xf8, 0xaa, 0x22, 0x74, 0x05, 0xa2, 0x40,
494         0xd0, 0x30, 0x61, 0x6c, 0x65, 0x5e, 0xfb, 0x21,
495         0x63, 0xef, 0x62, 0x01, 0x74, 0x15, 0xf6, 0x87,
496         0x92, 0xc1, 0x4e, 0x46, 0xdd, 0x76, 0xdb, 0x8b,
497         0x20, 0x44, 0xc4, 0xfa, 0x7c, 0xd2, 0x07, 0x32,
498         0x11, 0xeb, 0x5b, 0x38, 0x44, 0x32, 0xa1, 0xe7,
499         0xcb, 0xa6, 0x1a, 0x12, 0xb9, 0x53, 0x13, 0x6f,
500         0xc2, 0x0e, 0x6a, 0x77, 0x8b, 0x96, 0x14, 0x0a,
501         0x23, 0x48, 0x65, 0xa5, 0xcd, 0x39, 0x38, 0x03,
502         0xc8, 0x3a, 0x98, 0x69, 0x3d, 0x14, 0xae, 0xad,
503         0x54, 0x57, 0xf6, 0x5a, 0xdd, 0x46, 0x4c, 0x3a,
504         0x68, 0xa8, 0xb7, 0x57, 0xdd, 0x1e, 0x66, 0x0e,
505         0xc2, 0x4c, 0x17, 0xba, 0xa4, 0x7e, 0x83, 0x45,
506         0xc6, 0xf2, 0x34, 0x3b, 0x4e, 0xab, 0x67, 0x0c,
507         0x73, 0xbf, 0x87, 0x7e, 0x93, 0x2b, 0x14, 0x33,
508         0xd6, 0x24, 0x8d, 0xc7, 0x90, 0x11, 0xd2, 0x38,
509         0xe6, 0xe0, 0x39, 0x1f, 0x00, 0x74, 0x40, 0xab,
510         0xdc, 0xdd, 0x46, 0xe8, 0x85, 0x14, 0xb1, 0x78,
511         0x34, 0x24, 0x04, 0x97, 0xde, 0xf9, 0x04, 0x69,
512         0x0b, 0x15, 0x72, 0x37, 0xf4, 0x0d, 0xf4, 0x76,
513         0x6f, 0xd8, 0x05, 0x75, 0x8f, 0x7e, 0x6b, 0xca,
514         0x55, 0x20, 0x4a, 0x29, 0x16, 0xc1, 0x6e, 0x91,
515         0x22, 0x01, 0x0d, 0x39, 0x5d, 0xb9, 0x09, 0xa4,
516         0xe8, 0xc7, 0xff, 0x60, 0x39, 0xc6, 0xe4, 0x2a,
517         0x1c, 0xf2, 0x3c, 0xf7, 0xf9, 0xd7, 0xde, 0x0b,
518         0x0e, 0x30, 0xf1, 0x20, 0x7c, 0x93, 0x2f, 0x74,
519         0x72, 0x40, 0x47, 0x2d, 0xeb, 0x8a, 0x5f, 0x69,
520         0x60, 0xdf, 0xe9, 0x4d, 0x06, 0x24, 0x9c, 0x79,
521         0xe7, 0x61, 0xd3, 0xa7, 0x57, 0x44, 0x49, 0x97,
522         0x3a, 0xa3, 0x11, 0xc4, 0x70, 0xf4, 0x3d, 0xb5,
523         0x4b, 0xb7, 0xae, 0x77, 0x36, 0xcf, 0x65, 0x3e,
524         0xb6, 0x51, 0x83, 0xcb, 0x43, 0x5f, 0xd0, 0xfb,
525         0x69, 0xc4, 0x1b, 0x77, 0x71, 0xcc, 0x72, 0xf4,
526         0x5f, 0xc2, 0xda, 0xea, 0xa4, 0x33, 0xec, 0x8e,
527         0x92, 0x22, 0x6a, 0x55, 0x34, 0x6a, 0x10, 0xb8,
528         0x62, 0x66, 0xc1, 0x6f, 0x65, 0xdd, 0x9a, 0x40,
529         0xa0, 0xbf, 0x88, 0xbb, 0x79, 0x1c, 0xa4, 0xaa,
530         0xdf, 0xe8, 0xe7, 0x40, 0x88, 0xc6, 0x0f, 0xa2,
531         0x2c, 0xee, 0xe7, 0x41, 0x32, 0x46, 0xa2, 0x46,
532         0x85, 0xbf, 0x4c, 0xca, 0x4d, 0xd3, 0x9b, 0x49,
533         0x43, 0x98, 0xae, 0xfc, 0x93, 0xa7, 0x94, 0x98,
534         0x86, 0xa1, 0x0a, 0x85, 0x77, 0x67, 0xa6, 0x16,
535         0x94, 0x76, 0xe5, 0x2f, 0x88, 0x5f, 0x24, 0x16,
536         0xe5, 0x84, 0x4c, 0xd2, 0x58, 0x59, 0x82, 0x59,
537         0x2c, 0xe2, 0x8d, 0xba, 0x08, 0x01, 0x67, 0x1f,
538         0x2a, 0x9e, 0x4d, 0x53, 0x57, 0x2d, 0x6e, 0x35,
539         0x38, 0xd5, 0x50, 0xa7, 0x0c, 0xe6, 0x77, 0x71,
540         0xbe, 0x45, 0x2e, 0xf4, 0x7a, 0x3a, 0x51, 0x03,
541         0x04, 0x2b, 0xd7, 0x42, 0x6c, 0x5b, 0x82, 0xba,
542         0xb4, 0x09, 0xee, 0x9d, 0xea, 0x8f, 0xf0, 0xb3,
543         0xb2, 0x9d, 0x0e, 0x09, 0x72, 0x8c, 0xd9, 0x1e,
544         0x6d, 0x78, 0x57, 0x10, 0x1f, 0xeb, 0x4e, 0x53,
545         0x57, 0x65, 0xe5, 0x43, 0xe8, 0xb4, 0xb6, 0xb8,
546         0x25, 0x8a, 0xe2, 0xb3, 0x99, 0x95, 0x2c, 0xd0,
547         0xc7, 0x89, 0xad, 0xdb, 0x72, 0xf0, 0x83, 0xe3,
548         0x2f, 0x30, 0x33, 0xf4, 0x03, 0x14, 0x86, 0xa0,
549         0xe0, 0x57, 0x15, 0x53, 0x26, 0xd0, 0x6d, 0x12,
550         0x51, 0x96, 0x9b, 0x00, 0x8e, 0x41, 0xea, 0x05,
551         0x75, 0x5d, 0xb3, 0x8d, 0x44, 0x7f, 0x41, 0x7f,
552         0xd1, 0xed, 0x7c, 0xf7, 0xac, 0x6b, 0x21, 0xc7,
553         0x0c, 0x49, 0xa1, 0x2e, 0x57, 0xa1, 0x21, 0xe2,
554 };
555
556 /*
557  * IV method encblkno8, blkno 2.
558  */
559 static const uint8_t bf_cbc_128_encblkno8_vec2_ctxt[SECSIZE] = {
560         0x28, 0x0c, 0x49, 0x08, 0x84, 0xcb, 0xba, 0x4a,
561         0xa5, 0xb6, 0x12, 0x4c, 0x14, 0x11, 0x1f, 0x88,
562         0x57, 0x78, 0x1e, 0x51, 0x7c, 0x9d, 0xba, 0x31,
563         0x80, 0x14, 0xeb, 0x4a, 0x98, 0x8a, 0xb5, 0x4d,
564         0xc5, 0xbd, 0xd2, 0x48, 0x1e, 0x19, 0x43, 0x54,
565         0x48, 0x1d, 0x24, 0x76, 0x7d, 0xd8, 0xcc, 0xe9,
566         0xd9, 0x7b, 0xa9, 0xdf, 0xe3, 0x65, 0x85, 0x10,
567         0xb8, 0x11, 0xce, 0xa3, 0x07, 0x4d, 0x87, 0x3f,
568         0x95, 0xfb, 0xa5, 0x06, 0xa4, 0x37, 0xb0, 0x89,
569         0x03, 0xa9, 0xef, 0x62, 0x98, 0xd3, 0x85, 0xe8,
570         0xb3, 0x21, 0xab, 0xe9, 0xdc, 0x03, 0x2a, 0x20,
571         0xf7, 0xb1, 0xa4, 0x7a, 0xd5, 0xdc, 0x61, 0x2e,
572         0x15, 0x81, 0x3e, 0xcf, 0x8d, 0x8d, 0x54, 0x19,
573         0x70, 0xde, 0xa9, 0x57, 0x93, 0x87, 0xc7, 0x16,
574         0x06, 0x25, 0xf3, 0x93, 0x8f, 0x73, 0x92, 0x29,
575         0x1e, 0xcd, 0x5a, 0x9d, 0x8f, 0x8d, 0x44, 0x15,
576         0x8d, 0x92, 0x44, 0x95, 0x7a, 0x5e, 0x1b, 0xfd,
577         0x31, 0xa5, 0x8c, 0x22, 0x89, 0xbb, 0x91, 0x15,
578         0xad, 0x0a, 0x73, 0x94, 0x65, 0xae, 0xca, 0xfc,
579         0x7e, 0xae, 0x85, 0x45, 0xe7, 0xd7, 0x8f, 0x89,
580         0x8e, 0x44, 0x62, 0x7a, 0xe0, 0xee, 0x78, 0xbd,
581         0x88, 0x62, 0x8e, 0xb8, 0x35, 0x7a, 0xa9, 0x12,
582         0x56, 0x2d, 0xe4, 0xbb, 0x2d, 0xc8, 0x98, 0x0e,
583         0x35, 0x9e, 0xea, 0x14, 0x43, 0x80, 0xde, 0x9e,
584         0x2e, 0xf8, 0xf9, 0xcd, 0x61, 0xa6, 0x22, 0xc8,
585         0x77, 0xfc, 0x32, 0x71, 0x4b, 0xcb, 0x00, 0x9b,
586         0x9f, 0x85, 0x02, 0x92, 0xfa, 0x84, 0xd8, 0xd8,
587         0x09, 0xa4, 0x08, 0xc1, 0x96, 0xd3, 0x9a, 0x27,
588         0xa3, 0x82, 0x05, 0xd0, 0x78, 0x18, 0x0a, 0x7d,
589         0xb6, 0x95, 0xc0, 0x27, 0x3e, 0x76, 0x77, 0xf3,
590         0xd9, 0x62, 0x8e, 0x77, 0xa0, 0x1f, 0x9e, 0x41,
591         0xdb, 0x24, 0xaa, 0xdd, 0x8f, 0x94, 0x7b, 0x1f,
592         0xff, 0xaa, 0xfd, 0xe2, 0x19, 0xc2, 0x71, 0x80,
593         0x0a, 0xda, 0xc5, 0x98, 0x57, 0xde, 0x4e, 0xfb,
594         0x38, 0xe6, 0x9b, 0xe5, 0xa6, 0x1f, 0x7d, 0x2c,
595         0x41, 0x5f, 0x4d, 0x13, 0xb8, 0x0c, 0xac, 0x9a,
596         0x7d, 0xc0, 0x7c, 0x44, 0x64, 0x1e, 0xbc, 0x7d,
597         0x16, 0xaa, 0x45, 0xda, 0x62, 0x4e, 0x64, 0x69,
598         0xd6, 0x71, 0xd9, 0x64, 0x2a, 0x5d, 0x20, 0x34,
599         0xb0, 0xcb, 0x9d, 0xd3, 0x69, 0xd6, 0x60, 0xad,
600         0x78, 0x72, 0xb8, 0x36, 0x17, 0xe7, 0xaf, 0x0a,
601         0x11, 0x84, 0x43, 0x32, 0x38, 0x43, 0xe5, 0xc5,
602         0x1b, 0xf4, 0x48, 0xb6, 0x0e, 0x72, 0x48, 0x2f,
603         0x9b, 0xe3, 0xce, 0x27, 0xcd, 0x66, 0x28, 0x5c,
604         0x2a, 0xd7, 0x28, 0x52, 0x6e, 0x86, 0x03, 0x60,
605         0x7b, 0xbd, 0xbd, 0x53, 0xfb, 0x7d, 0xa1, 0xba,
606         0x6a, 0x46, 0x0c, 0xf3, 0x1a, 0xbf, 0xa7, 0xa2,
607         0x46, 0x87, 0x40, 0xaa, 0x7d, 0x76, 0x36, 0x85,
608         0xa5, 0xbf, 0x0b, 0xd4, 0x56, 0x4c, 0x37, 0xe3,
609         0x60, 0x93, 0xdc, 0x3b, 0xca, 0x34, 0x78, 0xcf,
610         0xdb, 0x0c, 0x9d, 0x5c, 0x52, 0xb2, 0xd5, 0x7b,
611         0xbb, 0x4e, 0xe1, 0xa9, 0x2a, 0xc6, 0x42, 0xf5,
612         0x21, 0x9c, 0x15, 0xae, 0xb9, 0x08, 0x3a, 0xc4,
613         0x50, 0x7e, 0x0e, 0xb6, 0xc3, 0xfe, 0xf4, 0xd9,
614         0x1a, 0x97, 0x30, 0x9f, 0x51, 0x2c, 0xac, 0xd2,
615         0x13, 0x93, 0x62, 0x56, 0xcb, 0x34, 0xf3, 0xca,
616         0x26, 0xc6, 0x32, 0xbe, 0xf6, 0xd5, 0x1e, 0x5b,
617         0x3a, 0x5c, 0x31, 0x08, 0xa1, 0x47, 0x6b, 0x75,
618         0x95, 0x8e, 0x3d, 0xbf, 0x2e, 0x81, 0x02, 0x0d,
619         0x17, 0x66, 0x6f, 0x04, 0xe0, 0x1e, 0x03, 0x27,
620         0xd3, 0xcf, 0x45, 0xc6, 0x08, 0xdb, 0xdf, 0x83,
621         0xd5, 0xc2, 0x7f, 0xe8, 0x5f, 0x4a, 0x36, 0x0a,
622         0x6d, 0x3c, 0x91, 0x8e, 0x52, 0xf3, 0xdd, 0x62,
623         0xff, 0x78, 0x87, 0xd9, 0x4c, 0xad, 0x5c, 0x9f,
624 };
625
626 /*
627  * IV method encblkno8, blkno 3.
628  */
629 static const uint8_t bf_cbc_128_encblkno8_vec3_ctxt[SECSIZE] = {
630         0xa3, 0x9a, 0x21, 0xbd, 0x1c, 0x97, 0x4f, 0xe2,
631         0x7d, 0x63, 0xfe, 0x52, 0x07, 0xac, 0x81, 0x75,
632         0x15, 0x04, 0x8c, 0xc7, 0x7c, 0x11, 0x8d, 0x53,
633         0x17, 0x87, 0xe8, 0x5d, 0xb1, 0xe8, 0xcb, 0x43,
634         0xe2, 0x4b, 0xce, 0x9b, 0xf7, 0x51, 0x0a, 0xee,
635         0x0a, 0x49, 0xae, 0x9a, 0xbd, 0x33, 0x3f, 0x0b,
636         0xd4, 0xe8, 0x57, 0x77, 0xb1, 0xe1, 0xa5, 0x22,
637         0x83, 0xbf, 0x7c, 0x63, 0x6c, 0x3b, 0x25, 0xde,
638         0x2c, 0x6a, 0x28, 0x66, 0x0e, 0xc4, 0x8d, 0x66,
639         0x66, 0xb6, 0xc6, 0xb5, 0x38, 0x40, 0x84, 0x81,
640         0xec, 0x03, 0xdb, 0xbf, 0xe1, 0x8f, 0xf4, 0xb3,
641         0xc4, 0x50, 0x24, 0xa2, 0x48, 0x66, 0x73, 0xed,
642         0x4b, 0x00, 0x12, 0xd5, 0x15, 0x5f, 0xfb, 0xd9,
643         0x6c, 0x76, 0x3b, 0xa2, 0x68, 0x41, 0xc1, 0x96,
644         0x50, 0xff, 0x8a, 0x83, 0xac, 0x02, 0x42, 0xcb,
645         0xed, 0x93, 0xbf, 0xd9, 0x51, 0x46, 0x50, 0xd1,
646         0xeb, 0x02, 0x61, 0x64, 0xa7, 0x0e, 0x95, 0xc2,
647         0x95, 0x5a, 0x93, 0xd9, 0x77, 0x17, 0xa4, 0xc7,
648         0x51, 0x42, 0xa3, 0xd4, 0x32, 0x4e, 0x4f, 0xe1,
649         0xaa, 0x6d, 0xab, 0x08, 0xd9, 0xe9, 0xfe, 0x72,
650         0xf3, 0x2c, 0xfb, 0x43, 0xdf, 0x88, 0x44, 0x94,
651         0x0b, 0x5c, 0x85, 0x54, 0xe3, 0x13, 0xe2, 0x10,
652         0x64, 0xa7, 0xcf, 0xe3, 0x2a, 0x3e, 0xfe, 0xd1,
653         0x67, 0xcd, 0xd1, 0x66, 0x06, 0x26, 0x2f, 0x6f,
654         0x6f, 0x44, 0xe7, 0xf4, 0xac, 0xe4, 0x58, 0x2f,
655         0x61, 0xad, 0x64, 0xc6, 0x0c, 0xf0, 0x9a, 0x3b,
656         0x85, 0x1f, 0x3c, 0xea, 0x8e, 0x84, 0xbb, 0x1a,
657         0x51, 0x19, 0x3c, 0x6f, 0x5b, 0xf5, 0x6c, 0xb1,
658         0x8c, 0x91, 0x25, 0x89, 0x3a, 0x45, 0xb5, 0x35,
659         0x13, 0x74, 0xec, 0x68, 0x44, 0xb8, 0xfd, 0xd6,
660         0x20, 0x78, 0x7b, 0xe3, 0xe0, 0x82, 0xb7, 0x4a,
661         0x38, 0xb6, 0xe4, 0x1b, 0xbf, 0xd9, 0xd3, 0xe9,
662         0xbf, 0xd7, 0xdc, 0x8e, 0x90, 0x7d, 0xcb, 0x39,
663         0xc4, 0x6c, 0xa4, 0x70, 0x15, 0xf7, 0xa2, 0x16,
664         0x04, 0x9b, 0xc0, 0x85, 0x04, 0x1e, 0x69, 0x73,
665         0xf3, 0xbd, 0x64, 0x95, 0xfb, 0x21, 0xcb, 0xca,
666         0x72, 0xd4, 0x33, 0xe5, 0x11, 0xc3, 0x46, 0xa6,
667         0xd2, 0x4c, 0x8a, 0xbb, 0xba, 0x45, 0xcc, 0x45,
668         0xdb, 0x8a, 0xec, 0xef, 0x8c, 0x04, 0xcc, 0xeb,
669         0x42, 0xad, 0xc3, 0x87, 0xe2, 0x59, 0x3b, 0xed,
670         0x2a, 0x11, 0x74, 0xc1, 0x28, 0x8a, 0xc2, 0x17,
671         0xca, 0x5a, 0x88, 0xcc, 0x17, 0x2c, 0x03, 0xf6,
672         0xcd, 0xd6, 0x92, 0xbd, 0x68, 0x26, 0x41, 0x40,
673         0x15, 0x3e, 0x54, 0xf5, 0xb7, 0x4a, 0x82, 0x68,
674         0xca, 0x27, 0xed, 0xed, 0x25, 0xd6, 0x0d, 0x0f,
675         0x86, 0x62, 0xf0, 0x86, 0x5b, 0xed, 0x94, 0x0b,
676         0xd0, 0xec, 0xc7, 0xfd, 0x9c, 0x8a, 0xdf, 0x4f,
677         0x65, 0x7e, 0x63, 0x40, 0xeb, 0xe4, 0x79, 0xcb,
678         0x67, 0xc6, 0x0e, 0x45, 0xf9, 0xb1, 0x48, 0x27,
679         0x16, 0xfc, 0x99, 0x76, 0xac, 0xd0, 0xbc, 0xe6,
680         0x9b, 0x29, 0x2d, 0xa5, 0x6c, 0x88, 0x45, 0x7a,
681         0x01, 0xf3, 0xe3, 0x15, 0xfb, 0x29, 0xd4, 0x3b,
682         0x9a, 0xa8, 0xc6, 0x98, 0x92, 0x19, 0x16, 0xba,
683         0xdc, 0x41, 0x70, 0x40, 0x51, 0xfb, 0x7f, 0xb5,
684         0xe4, 0x3f, 0x3f, 0x73, 0xb0, 0xb3, 0xd7, 0x6d,
685         0x3e, 0x4d, 0x6b, 0x9e, 0x42, 0x8e, 0xbb, 0xd7,
686         0xb5, 0x26, 0xa9, 0x19, 0xf5, 0x68, 0xf3, 0x8d,
687         0x35, 0x91, 0x06, 0x48, 0xfa, 0x0e, 0x7d, 0xe2,
688         0xd3, 0x71, 0x75, 0x44, 0xbd, 0xe6, 0xe6, 0xd6,
689         0x36, 0x43, 0x64, 0x3a, 0xd5, 0x97, 0xfa, 0xc0,
690         0x10, 0xf7, 0x6c, 0x26, 0xf1, 0xb4, 0xbc, 0xf5,
691         0xf6, 0xa3, 0xec, 0x0a, 0xb5, 0x34, 0x55, 0x1a,
692         0x67, 0xcb, 0xec, 0x2c, 0x2e, 0x2e, 0x74, 0xed,
693         0xfc, 0x85, 0x53, 0x01, 0x87, 0xa7, 0xa0, 0x1f,
694 };
695
696 const struct testvec bf_cbc_128_8_vectors[] = {
697         {
698                 .blkno = 0,
699                 .ptxt = bf_cbc_ptxt,
700                 .ctxt = bf_cbc_128_encblkno8_vec0_ctxt,
701         },
702         {
703                 .blkno = 1,
704                 .ptxt = bf_cbc_ptxt,
705                 .ctxt = bf_cbc_128_encblkno8_vec1_ctxt,
706         },
707         {
708                 .blkno = 2,
709                 .ptxt = bf_cbc_ptxt,
710                 .ctxt = bf_cbc_128_encblkno8_vec2_ctxt,
711         },
712         {
713                 .blkno = 3,
714                 .ptxt = bf_cbc_ptxt,
715                 .ctxt = bf_cbc_128_encblkno8_vec3_ctxt,
716         },
717 };
718
719 /*
720  * IV method encblkno1, blkno 0.
721  */
722 static const uint8_t bf_cbc_256_encblkno1_vec0_ctxt[SECSIZE] = {
723         0x14, 0xec, 0xa9, 0xa0, 0x51, 0x9f, 0x5e, 0xb5,
724         0x81, 0x6f, 0xa2, 0xbf, 0x5e, 0xf7, 0x91, 0xad,
725         0xc5, 0x1a, 0x7e, 0xe6, 0x7a, 0x82, 0x4a, 0xba,
726         0x54, 0x60, 0xcb, 0xc3, 0x2f, 0x69, 0x5c, 0xd9,
727         0x1e, 0x58, 0xa1, 0x88, 0xa1, 0xe5, 0xa8, 0x52,
728         0xdf, 0xf3, 0x8d, 0x5e, 0x2f, 0x81, 0x54, 0xab,
729         0x67, 0xb5, 0x05, 0x63, 0x20, 0x10, 0x98, 0xf5,
730         0xa5, 0xc3, 0x9e, 0x6d, 0x80, 0x4d, 0xb6, 0x82,
731         0x80, 0x5e, 0xb3, 0xc5, 0xd8, 0x77, 0x94, 0xa0,
732         0xb8, 0x67, 0xb8, 0x2d, 0x9b, 0x11, 0x3c, 0x24,
733         0xbd, 0xb7, 0x0b, 0x1d, 0xeb, 0x1d, 0x6c, 0xab,
734         0x3f, 0x8c, 0x91, 0xa0, 0x3a, 0xa6, 0x0c, 0x5a,
735         0x88, 0xa0, 0xb5, 0xea, 0x49, 0x58, 0xfb, 0x37,
736         0x7c, 0x94, 0xc4, 0x22, 0x35, 0x84, 0xda, 0xd1,
737         0x1b, 0x4a, 0x42, 0xa1, 0xd4, 0x90, 0xcd, 0xfb,
738         0x77, 0x29, 0xd2, 0xe3, 0x89, 0xec, 0x9e, 0x6a,
739         0x4b, 0xbc, 0xc0, 0xfa, 0xb8, 0xdd, 0x5c, 0x2b,
740         0xc5, 0x49, 0xb1, 0x6d, 0x6f, 0x2c, 0xb5, 0x50,
741         0xd1, 0xd4, 0x9b, 0x15, 0x1c, 0xd7, 0x44, 0xf3,
742         0x2e, 0x1f, 0x46, 0xee, 0x38, 0x40, 0xaa, 0x73,
743         0xca, 0xf2, 0xc3, 0x83, 0xe2, 0xff, 0xd6, 0xc7,
744         0x20, 0xea, 0x70, 0x95, 0x48, 0x58, 0x29, 0x6e,
745         0xac, 0x10, 0x75, 0x69, 0x1d, 0xb2, 0x08, 0x3e,
746         0x68, 0x43, 0xff, 0x69, 0x1e, 0x88, 0x0a, 0x34,
747         0x40, 0xae, 0xb9, 0xf4, 0xb9, 0x3f, 0xa5, 0xd2,
748         0xfb, 0xa0, 0xfd, 0x10, 0xa5, 0xbb, 0xd7, 0x22,
749         0x8c, 0xd1, 0xf5, 0xc4, 0x11, 0xc6, 0x1e, 0xb5,
750         0xfc, 0x90, 0x84, 0xa2, 0x49, 0x38, 0x64, 0x92,
751         0x6e, 0xf2, 0xaa, 0xed, 0xe8, 0x9d, 0xac, 0x86,
752         0xb7, 0xb3, 0xd9, 0x98, 0x11, 0x8f, 0x51, 0x33,
753         0x84, 0x06, 0x40, 0x26, 0x3f, 0xe1, 0xb3, 0x4a,
754         0x76, 0x53, 0x68, 0x8b, 0xfe, 0x6f, 0xcd, 0x66,
755         0x92, 0x24, 0x42, 0xf4, 0x11, 0x02, 0x01, 0x00,
756         0xaa, 0x15, 0x35, 0x42, 0xab, 0x6f, 0x2b, 0x3b,
757         0x9a, 0x23, 0x73, 0x18, 0xa8, 0x9b, 0x43, 0x4b,
758         0xfb, 0xef, 0x07, 0x75, 0xd7, 0xd6, 0x08, 0x94,
759         0xe3, 0x2d, 0xd9, 0xd4, 0x8e, 0x6b, 0x7c, 0xe0,
760         0xae, 0xef, 0xcb, 0x5c, 0x46, 0x39, 0x64, 0x34,
761         0x48, 0x77, 0x2c, 0x87, 0x68, 0x57, 0xef, 0xba,
762         0xd3, 0x3b, 0xb8, 0x68, 0xc5, 0x65, 0x73, 0x44,
763         0x0b, 0xef, 0xc7, 0x5e, 0xe6, 0xa2, 0xba, 0x24,
764         0x8c, 0x67, 0xa0, 0xf4, 0xef, 0x18, 0x8c, 0x72,
765         0x5b, 0x81, 0x8c, 0x81, 0x4f, 0x9a, 0xed, 0x46,
766         0x5d, 0x05, 0x9a, 0xdc, 0x01, 0xbe, 0xe8, 0x3f,
767         0xb7, 0x5c, 0x8b, 0x2f, 0x92, 0x2c, 0x93, 0x54,
768         0x68, 0xfa, 0xd4, 0x27, 0x81, 0xab, 0xa9, 0xfd,
769         0x20, 0x21, 0x1b, 0x3a, 0x6e, 0x6b, 0x02, 0x57,
770         0x6e, 0xd6, 0x7b, 0x7e, 0x5d, 0x84, 0x47, 0x69,
771         0x86, 0x7b, 0x8f, 0x8b, 0xff, 0xb5, 0xcd, 0xc1,
772         0x03, 0x18, 0x23, 0x7f, 0x23, 0x2e, 0x3a, 0x48,
773         0xe2, 0xf6, 0xb1, 0x78, 0x13, 0x81, 0xbb, 0x80,
774         0x91, 0x89, 0x54, 0x7d, 0x1f, 0x1a, 0xd5, 0x35,
775         0xad, 0x56, 0x6a, 0x0f, 0xeb, 0x4d, 0x00, 0xdf,
776         0xe0, 0xf3, 0x7c, 0xd3, 0x2c, 0x5a, 0x48, 0x39,
777         0xa1, 0xc1, 0xfa, 0x34, 0x5f, 0xf9, 0x0b, 0xcd,
778         0x1f, 0x21, 0xc6, 0x46, 0xb3, 0xd8, 0x45, 0xc5,
779         0x37, 0xf7, 0xd0, 0xda, 0x27, 0x0f, 0xec, 0xec,
780         0x05, 0x81, 0x6f, 0x97, 0xca, 0x6d, 0xfa, 0x71,
781         0xc9, 0x59, 0x84, 0xc3, 0x0d, 0x55, 0x12, 0xbf,
782         0xe1, 0xd2, 0x7c, 0x51, 0x65, 0x8c, 0xc3, 0x8a,
783         0x73, 0x2f, 0x1c, 0xd8, 0x13, 0x4a, 0xd1, 0x78,
784         0xb2, 0xc8, 0x19, 0x09, 0xce, 0x7b, 0xb6, 0x77,
785         0xcc, 0xc3, 0xe6, 0xee, 0x3a, 0x82, 0xf9, 0xc6,
786         0x5a, 0x36, 0x46, 0xc0, 0x25, 0xee, 0xaf, 0x78,
787 };
788
789 /*
790  * IV method encblkno1, blkno 1.
791  */
792 static const uint8_t bf_cbc_256_encblkno1_vec1_ctxt[SECSIZE] = {
793         0x0b, 0xb6, 0x26, 0x92, 0x1d, 0x74, 0xc2, 0x10,
794         0xb5, 0x99, 0x5f, 0x62, 0x7f, 0x3b, 0x49, 0x10,
795         0xc1, 0x20, 0x9f, 0x38, 0x25, 0x0f, 0x59, 0xde,
796         0xe4, 0xc8, 0xb5, 0x27, 0xb1, 0xec, 0x96, 0x40,
797         0xe8, 0x05, 0x15, 0x40, 0x96, 0xe0, 0xff, 0xaf,
798         0x53, 0x73, 0xa1, 0xa6, 0x73, 0x03, 0xcf, 0x1f,
799         0x87, 0x48, 0x7d, 0x81, 0x0e, 0x35, 0x23, 0x7b,
800         0xde, 0x12, 0xd8, 0xcd, 0x0a, 0xcb, 0x03, 0xc5,
801         0x07, 0xf7, 0x7a, 0x04, 0xf3, 0xda, 0x7d, 0x3b,
802         0x73, 0xc6, 0x31, 0xbc, 0x24, 0xde, 0x23, 0x05,
803         0x3a, 0xdc, 0xe2, 0x96, 0x85, 0x06, 0xeb, 0x89,
804         0xb0, 0x49, 0x3c, 0x79, 0x8e, 0xcf, 0x49, 0x0e,
805         0x34, 0x04, 0xa5, 0xcf, 0x45, 0x56, 0xb6, 0xc2,
806         0xf1, 0xf1, 0xab, 0x7c, 0x8a, 0xfc, 0xeb, 0xa0,
807         0x8a, 0xe6, 0x73, 0xb4, 0xc3, 0x0c, 0x03, 0x5f,
808         0x03, 0x53, 0x6f, 0x69, 0xa2, 0xd0, 0xa7, 0x48,
809         0xc4, 0x11, 0x88, 0x75, 0xe1, 0xf3, 0xd0, 0x72,
810         0x98, 0x6f, 0x84, 0xa6, 0xa8, 0x35, 0xbb, 0xac,
811         0x4d, 0xac, 0x55, 0x88, 0x85, 0x86, 0x5a, 0xd9,
812         0xb6, 0x57, 0xf9, 0x40, 0xf6, 0x7f, 0x1b, 0x4e,
813         0x87, 0xc0, 0x56, 0x8a, 0x2f, 0x3a, 0xe5, 0xa6,
814         0x67, 0x68, 0x21, 0x2b, 0xea, 0xfa, 0xee, 0x47,
815         0xa0, 0x34, 0x56, 0x7d, 0xa0, 0x3d, 0x58, 0xd7,
816         0xff, 0xa2, 0xb6, 0x03, 0x52, 0x16, 0xa5, 0x15,
817         0x65, 0xdb, 0xe1, 0x1b, 0xdf, 0x69, 0xb1, 0x48,
818         0x6a, 0xdf, 0xc1, 0x00, 0x07, 0xdc, 0x46, 0x4b,
819         0x59, 0xcf, 0x15, 0x6b, 0xee, 0x4f, 0x72, 0x77,
820         0x6e, 0xbf, 0x47, 0x0e, 0x84, 0x0b, 0xb1, 0xac,
821         0x85, 0xce, 0x2b, 0x47, 0x7a, 0xcc, 0x30, 0x0c,
822         0x2f, 0x10, 0x27, 0xaa, 0x83, 0x3f, 0x17, 0x39,
823         0x84, 0x45, 0x8c, 0xb7, 0x31, 0xb3, 0x7c, 0xcd,
824         0xed, 0x86, 0x7d, 0xa9, 0x06, 0x25, 0x1f, 0xe3,
825         0x9a, 0x9b, 0x92, 0xdd, 0x07, 0x63, 0x3b, 0x51,
826         0x32, 0x2e, 0xae, 0xdf, 0xad, 0xd4, 0x54, 0x5d,
827         0x71, 0x36, 0xe9, 0xda, 0x70, 0xe9, 0xec, 0x75,
828         0x0b, 0xbb, 0xcc, 0x5d, 0xc5, 0x45, 0x8e, 0x56,
829         0x12, 0x87, 0x95, 0x0f, 0x0f, 0x5b, 0x22, 0xc2,
830         0xe9, 0x71, 0xf2, 0x7e, 0x7b, 0xc2, 0xce, 0x1f,
831         0xb4, 0x43, 0xa5, 0xf1, 0x80, 0x03, 0xd9, 0x44,
832         0x3e, 0x97, 0xd6, 0x32, 0x80, 0x99, 0x6b, 0x5b,
833         0x25, 0x8b, 0x73, 0x0c, 0x21, 0xda, 0x87, 0x29,
834         0x57, 0x1e, 0xa3, 0x1f, 0xc1, 0xb2, 0xd6, 0xa4,
835         0x72, 0x64, 0x4a, 0x6b, 0x6f, 0x4d, 0xa8, 0x03,
836         0x59, 0x6f, 0xce, 0x8a, 0xd6, 0x1c, 0x63, 0x30,
837         0x60, 0xd1, 0x55, 0xc5, 0x44, 0x9a, 0xa8, 0x69,
838         0x9f, 0xc7, 0xbe, 0xca, 0x92, 0x83, 0xe9, 0xea,
839         0x51, 0x00, 0x5a, 0xdc, 0xbb, 0xbd, 0x5d, 0xf2,
840         0x6d, 0x3c, 0x09, 0xde, 0x68, 0x33, 0x5f, 0x5c,
841         0x80, 0x8e, 0x22, 0x93, 0x28, 0x5b, 0x77, 0xae,
842         0xcd, 0x0d, 0x08, 0xab, 0x94, 0xd6, 0x12, 0x72,
843         0x3f, 0xd2, 0xb3, 0xff, 0x87, 0x0a, 0x6f, 0x72,
844         0xa7, 0xff, 0xc1, 0xdc, 0x8a, 0x64, 0xdf, 0xeb,
845         0x0e, 0x63, 0x71, 0x42, 0x88, 0x2b, 0x13, 0x17,
846         0xf2, 0x3b, 0xf9, 0xbb, 0xc9, 0xcc, 0x32, 0x1f,
847         0x12, 0x7f, 0xa0, 0x8e, 0x77, 0x31, 0x42, 0x46,
848         0x3d, 0xb6, 0xa9, 0x14, 0x6e, 0x02, 0x5a, 0x4f,
849         0xf1, 0x5b, 0x91, 0x7e, 0x93, 0xea, 0x94, 0xf1,
850         0xcf, 0x0e, 0x10, 0xf8, 0xc2, 0x55, 0x87, 0x68,
851         0xf9, 0x49, 0xfa, 0xeb, 0x0f, 0x2c, 0xd7, 0xd8,
852         0x26, 0x1a, 0x5b, 0x1a, 0x42, 0x06, 0xea, 0x8a,
853         0xb6, 0xec, 0x6e, 0xb0, 0x00, 0xb9, 0x3b, 0x50,
854         0xe8, 0x9e, 0xc2, 0x51, 0x4f, 0x03, 0xcd, 0x9f,
855         0x36, 0x27, 0xca, 0xa2, 0x98, 0x87, 0x5a, 0xae,
856         0xd8, 0x87, 0x76, 0xb6, 0xb6, 0x19, 0x7d, 0x75,
857 };
858
859 /*
860  * IV method encblkno1, blkno 2.
861  */
862 static const uint8_t bf_cbc_256_encblkno1_vec2_ctxt[SECSIZE] = {
863         0x91, 0x45, 0x4e, 0xe8, 0xad, 0xe3, 0x95, 0x0f,
864         0x40, 0x35, 0x21, 0x21, 0x77, 0x62, 0x1d, 0x65,
865         0xe4, 0x93, 0x11, 0xd2, 0x20, 0xa4, 0xe4, 0x53,
866         0x44, 0xff, 0x60, 0xe9, 0x34, 0xb2, 0x33, 0x87,
867         0x3d, 0xb0, 0xd8, 0x37, 0x7e, 0x0e, 0x9a, 0x53,
868         0x92, 0xeb, 0xee, 0x16, 0x41, 0x25, 0xe3, 0x80,
869         0x0c, 0x53, 0xd8, 0x1f, 0xf0, 0x99, 0xcb, 0x31,
870         0xd1, 0x00, 0x82, 0x03, 0xcc, 0xa9, 0x5c, 0x8d,
871         0x1a, 0xbb, 0x03, 0x81, 0x80, 0x0d, 0x5d, 0x4a,
872         0x96, 0x74, 0x79, 0xf4, 0xa7, 0x46, 0x97, 0x42,
873         0x5e, 0xb6, 0x8d, 0xc1, 0x95, 0x1d, 0x98, 0x4d,
874         0xe5, 0xe9, 0x70, 0x1a, 0x5a, 0xad, 0xf4, 0x3d,
875         0xe1, 0xa7, 0x25, 0xc7, 0xfa, 0x0a, 0x75, 0x98,
876         0x2f, 0xef, 0x16, 0x2e, 0xf2, 0x02, 0x8a, 0x4c,
877         0x1f, 0x5a, 0xbb, 0x06, 0x1b, 0x4e, 0x50, 0xfb,
878         0x03, 0xed, 0x2a, 0x53, 0xdc, 0x2a, 0x65, 0xad,
879         0x57, 0x84, 0x48, 0xdb, 0xd2, 0x9b, 0xc0, 0x01,
880         0x5f, 0x7d, 0x3e, 0x84, 0xe5, 0x15, 0x7d, 0xc5,
881         0x60, 0x4b, 0x18, 0xa1, 0xf3, 0x00, 0x82, 0xd3,
882         0x39, 0x2a, 0x1f, 0x8f, 0x6a, 0xb7, 0xeb, 0x76,
883         0xfb, 0xf0, 0x5e, 0x66, 0xd8, 0xf1, 0x85, 0xa8,
884         0x17, 0xdc, 0x6a, 0xee, 0x53, 0xd9, 0x72, 0x27,
885         0xd1, 0x47, 0x73, 0x97, 0x2c, 0xd7, 0xd2, 0xb8,
886         0xcd, 0xbe, 0x7b, 0xcc, 0xcc, 0x7d, 0x82, 0x10,
887         0x05, 0x5d, 0xff, 0xb0, 0xe0, 0x3a, 0xda, 0x1b,
888         0x39, 0x7b, 0x11, 0x30, 0x4f, 0xe7, 0xf9, 0xa6,
889         0x43, 0x56, 0x01, 0xe4, 0xed, 0x1a, 0x22, 0x5b,
890         0x53, 0x6b, 0x34, 0x58, 0x21, 0x3f, 0x0d, 0xca,
891         0x95, 0x24, 0x9a, 0xb0, 0x03, 0xe3, 0x97, 0xf5,
892         0x9b, 0xcb, 0x10, 0x6f, 0x1d, 0x8a, 0x8b, 0xaa,
893         0x14, 0x0a, 0x89, 0x92, 0xa1, 0x07, 0xb1, 0x35,
894         0x40, 0x7f, 0xb0, 0xc3, 0x9a, 0x2a, 0x1f, 0x94,
895         0x6c, 0x8f, 0xd8, 0x40, 0x52, 0xec, 0x0e, 0xbf,
896         0x91, 0x27, 0xbd, 0x65, 0x25, 0xf2, 0x36, 0xe8,
897         0x8f, 0x49, 0x08, 0xa6, 0x8f, 0x82, 0xb3, 0x47,
898         0xe9, 0xa4, 0xa6, 0x8e, 0xfb, 0x30, 0xb2, 0x4c,
899         0xad, 0x76, 0x65, 0x25, 0xdb, 0x60, 0xa8, 0xeb,
900         0xb9, 0xf9, 0x9a, 0x9c, 0x9c, 0x12, 0xab, 0xeb,
901         0x4b, 0x96, 0xa5, 0xc3, 0x58, 0x9b, 0x68, 0x2c,
902         0x41, 0xac, 0xe5, 0x03, 0xbc, 0xee, 0xb8, 0x05,
903         0xf7, 0xe6, 0xb1, 0x07, 0xde, 0x46, 0x28, 0xc1,
904         0x2c, 0x15, 0xa2, 0x34, 0xea, 0xe7, 0xc3, 0x36,
905         0xe6, 0x18, 0x20, 0x4e, 0x20, 0x3f, 0x32, 0xa8,
906         0x29, 0x05, 0xf6, 0xa5, 0xf2, 0xa3, 0xeb, 0x7a,
907         0x25, 0x5e, 0x14, 0x1f, 0xd0, 0xe1, 0x8e, 0xfb,
908         0x28, 0xc5, 0xa2, 0x42, 0xed, 0x4c, 0x12, 0x15,
909         0x2a, 0x08, 0xfb, 0x0b, 0xfb, 0x94, 0x64, 0xc0,
910         0x8b, 0xbb, 0xbb, 0x2c, 0xef, 0xab, 0x0b, 0x4c,
911         0x27, 0x40, 0x94, 0x3e, 0x93, 0x77, 0x98, 0xcc,
912         0x64, 0xe3, 0xba, 0x22, 0x95, 0xd7, 0xc1, 0xe3,
913         0xa7, 0xcd, 0xf9, 0x25, 0xdc, 0xc4, 0xd2, 0xee,
914         0x5b, 0x53, 0x72, 0x59, 0x8b, 0xea, 0xbf, 0xde,
915         0x2b, 0x35, 0xd5, 0x27, 0x57, 0x2e, 0x13, 0xa7,
916         0x50, 0x2d, 0xa5, 0xd5, 0x43, 0x0b, 0x49, 0x87,
917         0xd0, 0xbd, 0xdd, 0xec, 0x4b, 0xd1, 0x8b, 0xf6,
918         0xf6, 0xd0, 0x97, 0xcb, 0x8d, 0x58, 0x35, 0x27,
919         0xa5, 0x7e, 0x4a, 0xda, 0x93, 0xa4, 0x1e, 0x39,
920         0x53, 0x59, 0x87, 0xfe, 0x82, 0x09, 0xda, 0x03,
921         0x33, 0xcf, 0x94, 0x60, 0xb1, 0x0c, 0xa1, 0x0e,
922         0xd6, 0xaa, 0xb0, 0x09, 0x96, 0x8b, 0x72, 0x15,
923         0xfb, 0xb0, 0x7d, 0x06, 0xf5, 0x2d, 0x64, 0xcd,
924         0x03, 0xf0, 0xfa, 0xed, 0x6f, 0x43, 0xe3, 0xf3,
925         0x33, 0xaf, 0x65, 0x82, 0x1d, 0xad, 0x03, 0x62,
926         0xbe, 0x12, 0x14, 0x85, 0x66, 0x45, 0x03, 0x79,
927 };
928
929 /*
930  * IV method encblkno1, blkno 3.
931  */
932 static const uint8_t bf_cbc_256_encblkno1_vec3_ctxt[SECSIZE] = {
933         0x65, 0xbb, 0x30, 0x13, 0x9a, 0x26, 0xe9, 0x3d,
934         0x54, 0x28, 0x77, 0xf1, 0x3f, 0x9b, 0xe1, 0x3e,
935         0x70, 0x90, 0x6f, 0x16, 0xfc, 0x2f, 0x27, 0xb3,
936         0xc6, 0x3c, 0x38, 0x31, 0x11, 0xe1, 0x3b, 0x72,
937         0x22, 0x1c, 0x01, 0xc5, 0xa6, 0x70, 0x16, 0x4d,
938         0xd2, 0xbd, 0xcb, 0x15, 0x00, 0x22, 0xab, 0x65,
939         0x6a, 0x96, 0x5e, 0x45, 0x7f, 0xfd, 0x76, 0x18,
940         0x43, 0x25, 0x75, 0x73, 0xa4, 0x24, 0xe4, 0x5b,
941         0xca, 0xf7, 0x6f, 0xfe, 0xc6, 0x4c, 0x81, 0x77,
942         0xe5, 0x1b, 0xb4, 0x7b, 0x64, 0xc2, 0x0d, 0x2b,
943         0xa9, 0x76, 0xae, 0x5d, 0xab, 0x81, 0x77, 0xa6,
944         0x48, 0xe9, 0x0c, 0x6d, 0x93, 0xbd, 0x7e, 0xdc,
945         0x39, 0x89, 0x72, 0xd2, 0x07, 0x87, 0x44, 0xa6,
946         0x7d, 0x08, 0x54, 0xc6, 0x90, 0x1d, 0xa2, 0xd7,
947         0xfd, 0xd5, 0x59, 0x67, 0xd9, 0x5f, 0x5c, 0xbc,
948         0x60, 0xc7, 0xf6, 0x98, 0xad, 0x21, 0xdf, 0xde,
949         0x27, 0xca, 0x73, 0x2f, 0x56, 0xb7, 0xd7, 0x54,
950         0x6e, 0xc3, 0x09, 0x6f, 0x1b, 0x82, 0x6f, 0xf8,
951         0x1b, 0xb2, 0x54, 0x47, 0x54, 0x55, 0x67, 0x1c,
952         0x4a, 0x10, 0x44, 0xb8, 0x8e, 0x85, 0x71, 0x70,
953         0x02, 0x49, 0xdd, 0x4f, 0xd4, 0xd4, 0x8a, 0x60,
954         0x04, 0x17, 0x84, 0xbf, 0xb4, 0x0a, 0x6f, 0xc1,
955         0xec, 0x1f, 0x5d, 0x79, 0x59, 0x15, 0x7b, 0x87,
956         0xa2, 0xfe, 0x81, 0xa1, 0x0b, 0x74, 0xfa, 0xef,
957         0xce, 0x96, 0xec, 0x4b, 0xd8, 0x8e, 0xe9, 0xc2,
958         0x6b, 0x15, 0xd9, 0xe4, 0x1d, 0x81, 0xb2, 0x12,
959         0xb9, 0x8b, 0x64, 0x3d, 0xfa, 0xf6, 0x29, 0x25,
960         0x88, 0x4f, 0xfa, 0x56, 0x34, 0x85, 0xa6, 0xbe,
961         0xf7, 0x9f, 0x54, 0xc4, 0xb7, 0x17, 0xd5, 0x00,
962         0x2d, 0x06, 0xca, 0xf0, 0xec, 0xf9, 0x52, 0x62,
963         0x12, 0xef, 0xc0, 0x57, 0xd1, 0xf3, 0xf2, 0xb1,
964         0x3d, 0xc5, 0x69, 0x04, 0x95, 0xaf, 0xc6, 0x54,
965         0x18, 0x08, 0x2f, 0xe2, 0xc2, 0xdb, 0x28, 0x63,
966         0x7c, 0xf5, 0xba, 0xa4, 0xdf, 0xbd, 0xdd, 0xac,
967         0x98, 0xec, 0x9e, 0x07, 0x48, 0xee, 0xb9, 0x6f,
968         0x40, 0xba, 0x08, 0xd5, 0x74, 0x97, 0x34, 0x98,
969         0x7a, 0x80, 0xc5, 0x78, 0x69, 0x11, 0xd9, 0xcb,
970         0x3b, 0x6f, 0xe7, 0xb7, 0x78, 0xb0, 0x5e, 0x02,
971         0xaf, 0x6c, 0xef, 0x36, 0x00, 0xca, 0x97, 0x1a,
972         0x01, 0x2e, 0xe8, 0xc0, 0x8b, 0xc6, 0x78, 0xf4,
973         0x2d, 0x60, 0x2c, 0x04, 0x3f, 0x0b, 0xca, 0x7e,
974         0xf1, 0x2e, 0x67, 0x8f, 0x9d, 0xa7, 0xaa, 0xab,
975         0xcf, 0xb3, 0x84, 0x9e, 0x14, 0x35, 0x15, 0x3b,
976         0x88, 0x9a, 0x33, 0x5d, 0x68, 0x82, 0x29, 0x53,
977         0x94, 0x18, 0x0d, 0x14, 0x9e, 0x5f, 0xc1, 0x32,
978         0x0a, 0x95, 0x6e, 0xa3, 0x82, 0x4b, 0x58, 0x0f,
979         0x9c, 0xf0, 0x26, 0x4b, 0x2f, 0x02, 0x60, 0x85,
980         0xdd, 0x2c, 0xb8, 0x87, 0x8b, 0x14, 0x9c, 0x54,
981         0x0a, 0x5a, 0x02, 0xbe, 0xe2, 0x71, 0xcc, 0x07,
982         0xae, 0x67, 0x00, 0xa8, 0xd4, 0x09, 0x7c, 0xee,
983         0x0d, 0x29, 0x17, 0x67, 0x96, 0x68, 0x41, 0xfa,
984         0x72, 0x29, 0x98, 0x2b, 0x23, 0xd1, 0xa9, 0x89,
985         0x1c, 0xcc, 0xaf, 0x88, 0xdb, 0xb5, 0x1e, 0xb1,
986         0xae, 0x17, 0x5f, 0x29, 0x8d, 0x1c, 0x0a, 0x5c,
987         0xb9, 0xa7, 0x59, 0x8b, 0x91, 0x41, 0xee, 0x89,
988         0xe1, 0x0e, 0x7e, 0x0a, 0xee, 0xbc, 0x35, 0xab,
989         0xf1, 0x5a, 0x58, 0x03, 0xa2, 0xcf, 0x33, 0xa3,
990         0x74, 0x82, 0xd3, 0xa0, 0x32, 0xfc, 0x3b, 0x9c,
991         0xdf, 0xc0, 0x3a, 0x76, 0xe1, 0xea, 0xf0, 0x6d,
992         0xc8, 0xe7, 0x97, 0xec, 0x03, 0xc1, 0x72, 0x94,
993         0xe5, 0xc4, 0x04, 0x2a, 0x38, 0xb4, 0xef, 0x47,
994         0x1d, 0xf9, 0xb8, 0x0a, 0xa9, 0x45, 0xc1, 0x63,
995         0xf8, 0x32, 0xdb, 0x5d, 0xb1, 0xa2, 0x80, 0x8c,
996         0x23, 0xd3, 0x60, 0xfb, 0xf8, 0x84, 0x57, 0x8b,
997 };
998
999 const struct testvec bf_cbc_256_1_vectors[] = {
1000         {
1001                 .blkno = 0,
1002                 .ptxt = bf_cbc_ptxt,
1003                 .ctxt = bf_cbc_256_encblkno1_vec0_ctxt,
1004         },
1005         {
1006                 .blkno = 1,
1007                 .ptxt = bf_cbc_ptxt,
1008                 .ctxt = bf_cbc_256_encblkno1_vec1_ctxt,
1009         },
1010         {
1011                 .blkno = 2,
1012                 .ptxt = bf_cbc_ptxt,
1013                 .ctxt = bf_cbc_256_encblkno1_vec2_ctxt,
1014         },
1015         {
1016                 .blkno = 3,
1017                 .ptxt = bf_cbc_ptxt,
1018                 .ctxt = bf_cbc_256_encblkno1_vec3_ctxt,
1019         },
1020 };
1021
1022 /*
1023  * IV method encblkno8, blkno 0.
1024  */
1025 static const uint8_t bf_cbc_256_encblkno8_vec0_ctxt[SECSIZE] = {
1026         0x90, 0x3d, 0xd2, 0xc0, 0xd3, 0x75, 0xe8, 0x04,
1027         0x34, 0x66, 0x76, 0x25, 0x70, 0xde, 0x41, 0xf1,
1028         0x35, 0x63, 0x5c, 0xac, 0x8f, 0x28, 0x17, 0xd3,
1029         0xae, 0x43, 0xfd, 0x8a, 0xb8, 0xc2, 0xd3, 0x88,
1030         0xef, 0xfa, 0x21, 0xeb, 0xb4, 0x33, 0x75, 0x69,
1031         0x7d, 0xe9, 0x27, 0x1c, 0x03, 0xcf, 0x90, 0xcf,
1032         0xf0, 0xaa, 0x3e, 0x01, 0x41, 0x24, 0xdc, 0x01,
1033         0x5a, 0xe8, 0x92, 0xea, 0xde, 0x87, 0xbf, 0x75,
1034         0xe4, 0x0b, 0xf7, 0xa3, 0x42, 0x27, 0xc4, 0xde,
1035         0x01, 0x6f, 0x5c, 0xec, 0x6d, 0x37, 0x38, 0xd7,
1036         0x4f, 0x85, 0xc0, 0xc2, 0x3a, 0xa7, 0x2d, 0x15,
1037         0xd5, 0x1c, 0xee, 0x15, 0x13, 0x7a, 0x4e, 0x33,
1038         0xc7, 0x59, 0x93, 0x73, 0xe9, 0xf5, 0x39, 0xb0,
1039         0xad, 0x8b, 0x61, 0xca, 0x4d, 0x31, 0xaa, 0x44,
1040         0xf6, 0x5c, 0xb7, 0x99, 0xe5, 0x92, 0x3d, 0x47,
1041         0x79, 0x9b, 0x29, 0x16, 0xe1, 0x2c, 0x30, 0x8b,
1042         0x1e, 0x17, 0xf0, 0x91, 0x59, 0x00, 0xab, 0x6d,
1043         0x4d, 0xa7, 0x4d, 0x96, 0xc3, 0xe4, 0x3d, 0x17,
1044         0x5c, 0x8e, 0xfc, 0x59, 0x48, 0xd4, 0xdd, 0xf4,
1045         0xea, 0x3a, 0x68, 0xc8, 0xb1, 0x74, 0x69, 0xcb,
1046         0x49, 0x1a, 0xec, 0x24, 0x4e, 0x7e, 0xe9, 0xba,
1047         0x75, 0xfb, 0x52, 0x85, 0x75, 0xe9, 0x41, 0x9a,
1048         0xc6, 0x40, 0x9c, 0x92, 0x3f, 0xe8, 0x99, 0x81,
1049         0x84, 0x14, 0x2b, 0x62, 0x94, 0xba, 0x56, 0x00,
1050         0xde, 0x88, 0xe1, 0x35, 0xea, 0x25, 0x88, 0xd1,
1051         0xce, 0xd4, 0xfc, 0xde, 0xee, 0x1a, 0xfd, 0xb1,
1052         0xa7, 0x46, 0x9d, 0x0c, 0x99, 0xa6, 0xab, 0x23,
1053         0x55, 0x2f, 0x46, 0xd7, 0xb3, 0xcd, 0x2c, 0xab,
1054         0x93, 0x3e, 0xdb, 0xe2, 0x34, 0x69, 0x1a, 0x56,
1055         0x21, 0x92, 0x56, 0xf4, 0x05, 0xe1, 0x24, 0xee,
1056         0x4d, 0x5e, 0x89, 0xeb, 0x23, 0x26, 0xdc, 0x14,
1057         0xde, 0x56, 0x3f, 0x0c, 0x15, 0x3e, 0x42, 0x71,
1058         0x9b, 0xe8, 0xc5, 0xfd, 0x5e, 0x4a, 0xb6, 0xd9,
1059         0xa0, 0x18, 0x5d, 0xbd, 0xef, 0x80, 0xb4, 0xf6,
1060         0x1e, 0x56, 0x2a, 0x57, 0x13, 0xba, 0x24, 0xa4,
1061         0x6f, 0x4c, 0xd4, 0xaa, 0x31, 0x5e, 0x69, 0x26,
1062         0xd2, 0xee, 0xef, 0x7f, 0x83, 0x9c, 0x8e, 0x6a,
1063         0x17, 0xe3, 0xda, 0xf4, 0x59, 0xad, 0x26, 0x83,
1064         0x53, 0x4c, 0x0d, 0x62, 0xe5, 0x9a, 0x30, 0xc5,
1065         0x0a, 0xa8, 0xb1, 0x3b, 0x1b, 0x41, 0x5c, 0x74,
1066         0x42, 0x7b, 0x0c, 0x9e, 0x3c, 0x12, 0x04, 0x46,
1067         0xc3, 0xc7, 0x10, 0xea, 0xf1, 0x3b, 0xb1, 0x01,
1068         0xfe, 0x1b, 0xe8, 0xf8, 0x42, 0xbc, 0xe9, 0x11,
1069         0x9b, 0x63, 0x29, 0x99, 0x18, 0x79, 0x9e, 0xd2,
1070         0xbf, 0x9d, 0x93, 0x4d, 0x16, 0x0f, 0x14, 0x41,
1071         0xb6, 0x0c, 0xa5, 0x07, 0x13, 0x29, 0x21, 0x0d,
1072         0x8f, 0xf9, 0x0a, 0x0a, 0x54, 0xaf, 0xa6, 0x22,
1073         0x25, 0x79, 0x07, 0xe5, 0x3e, 0x49, 0x6b, 0x12,
1074         0x9e, 0xfc, 0x91, 0xdb, 0xf3, 0x7c, 0xdf, 0x03,
1075         0x9c, 0x78, 0xa7, 0xc3, 0x5e, 0x14, 0xde, 0xb5,
1076         0x6a, 0x7b, 0x3b, 0xe3, 0x4f, 0x8a, 0x49, 0xce,
1077         0xc9, 0x14, 0x29, 0x96, 0x84, 0xca, 0xe1, 0x49,
1078         0x41, 0x73, 0xb3, 0x2a, 0xbe, 0x37, 0xb6, 0x2d,
1079         0xff, 0xf2, 0x8e, 0x3d, 0x02, 0xeb, 0xd4, 0xd3,
1080         0x15, 0x8f, 0xc0, 0x00, 0x91, 0xd5, 0xe7, 0x76,
1081         0xf5, 0x6e, 0x81, 0x38, 0x38, 0x07, 0xa6, 0xe8,
1082         0x72, 0x14, 0x3b, 0x36, 0xef, 0xbc, 0x5b, 0x26,
1083         0xb0, 0x60, 0x25, 0x49, 0x7e, 0xfc, 0xd8, 0x3b,
1084         0x63, 0xdc, 0x7f, 0x80, 0xd5, 0x43, 0x78, 0xbb,
1085         0xf1, 0xf9, 0x3e, 0x75, 0x1d, 0x58, 0xb2, 0xc7,
1086         0xb6, 0x52, 0xfb, 0xe7, 0x42, 0xef, 0x87, 0xfd,
1087         0x3a, 0x02, 0x7a, 0xf9, 0xbc, 0xa8, 0x2f, 0xd6,
1088         0xc1, 0x5f, 0xa4, 0x57, 0x62, 0x83, 0x82, 0x8e,
1089         0x1e, 0xbb, 0x85, 0xf7, 0x1b, 0x2e, 0xe2, 0xb0,
1090 };
1091
1092 /*
1093  * IV method encblkno8, blkno 1.
1094  */
1095 static const uint8_t bf_cbc_256_encblkno8_vec1_ctxt[SECSIZE] = {
1096         0x2b, 0xf6, 0xd4, 0x61, 0x3b, 0x1f, 0x5b, 0xe9,
1097         0x32, 0xab, 0x27, 0xa1, 0xaf, 0x5e, 0xf4, 0xa7,
1098         0xaa, 0xc5, 0x2a, 0x3c, 0x0d, 0x34, 0xd8, 0xb3,
1099         0xfd, 0xb2, 0xca, 0xfb, 0x3c, 0x38, 0x96, 0x71,
1100         0x47, 0xaa, 0xa7, 0x2f, 0x48, 0x2c, 0x39, 0x88,
1101         0x2d, 0xc6, 0xb1, 0xf7, 0xc7, 0x2d, 0xda, 0xe9,
1102         0xfb, 0x4f, 0x9b, 0x1f, 0xe1, 0x0c, 0x24, 0x89,
1103         0xfe, 0x70, 0xe0, 0xb2, 0x51, 0x89, 0x51, 0xa9,
1104         0xae, 0xd1, 0x92, 0x4f, 0x56, 0x5c, 0x2a, 0xf4,
1105         0xbc, 0x4e, 0x77, 0x4a, 0xb8, 0xab, 0x02, 0x76,
1106         0xef, 0x69, 0xfb, 0x5e, 0x06, 0xb5, 0xff, 0x31,
1107         0xce, 0x2b, 0xfc, 0x48, 0x4c, 0x82, 0xe9, 0x3c,
1108         0x61, 0x69, 0x68, 0x1d, 0xb1, 0xc6, 0x40, 0x10,
1109         0xd7, 0x0e, 0xd2, 0x26, 0x33, 0x5b, 0x0b, 0xe7,
1110         0xc2, 0xbe, 0xf4, 0x24, 0x1a, 0xa6, 0x70, 0x31,
1111         0xa7, 0x15, 0x76, 0xc7, 0x90, 0x8d, 0x60, 0xe0,
1112         0xee, 0x5b, 0x73, 0xa9, 0xe1, 0xe1, 0xaf, 0xf0,
1113         0x5e, 0x6f, 0x32, 0x98, 0x92, 0xbe, 0x24, 0x81,
1114         0x26, 0x9f, 0xb8, 0x67, 0xd0, 0xca, 0x9d, 0x8f,
1115         0x14, 0xc8, 0x81, 0x2e, 0x57, 0x1c, 0x3a, 0xe0,
1116         0xdb, 0x49, 0xad, 0x47, 0x51, 0x07, 0x7d, 0xec,
1117         0xbc, 0xa5, 0x8f, 0xdf, 0x84, 0xe4, 0xdf, 0x76,
1118         0x8f, 0x0b, 0xef, 0xc4, 0x41, 0xd5, 0x7c, 0xf5,
1119         0x3c, 0x21, 0x62, 0xc0, 0x1f, 0xbd, 0x39, 0xbe,
1120         0xe5, 0x75, 0x64, 0xcd, 0xa4, 0xa0, 0x03, 0xf4,
1121         0x8a, 0x16, 0x3e, 0xde, 0x79, 0x9a, 0x96, 0xff,
1122         0xf2, 0xbe, 0x88, 0xfd, 0xac, 0xc1, 0x9d, 0x5b,
1123         0xbf, 0x2f, 0xde, 0xf0, 0x26, 0x2f, 0xc9, 0x45,
1124         0xbd, 0x26, 0xa5, 0x2c, 0x3c, 0x12, 0x8b, 0xc0,
1125         0xc8, 0x7a, 0x71, 0xbb, 0xc3, 0xe9, 0xf6, 0x15,
1126         0x01, 0x6e, 0x94, 0x37, 0xbc, 0xc5, 0x9a, 0x93,
1127         0x6f, 0x9c, 0x04, 0x7e, 0xe9, 0xb2, 0xba, 0xe8,
1128         0x86, 0xa1, 0x9c, 0x1f, 0x4b, 0x77, 0x6f, 0x99,
1129         0x2d, 0x8f, 0x23, 0x34, 0x32, 0x1a, 0x82, 0x2d,
1130         0x32, 0x41, 0x3e, 0xb8, 0x6a, 0x67, 0xa9, 0x81,
1131         0xd5, 0x1b, 0x76, 0x9f, 0xd1, 0xb0, 0x06, 0xaf,
1132         0x10, 0x9e, 0x00, 0x2e, 0xb3, 0x80, 0xde, 0xae,
1133         0xf2, 0x96, 0x12, 0x5b, 0xe7, 0xc7, 0x25, 0xb7,
1134         0xd9, 0x1c, 0x04, 0xe5, 0x05, 0xaf, 0x77, 0xfa,
1135         0x6d, 0xa8, 0x04, 0x74, 0xf8, 0x9c, 0x09, 0xcf,
1136         0xe2, 0xc2, 0xd1, 0xb6, 0xac, 0xed, 0xb4, 0xbc,
1137         0x2e, 0xc2, 0xf6, 0x3c, 0xc4, 0x47, 0xc8, 0x81,
1138         0x3a, 0x50, 0x3c, 0x5c, 0x7c, 0x86, 0x17, 0x22,
1139         0xe7, 0xa3, 0xff, 0x73, 0x5e, 0x91, 0xbf, 0xb3,
1140         0x59, 0x07, 0xb7, 0xa4, 0xd5, 0x1b, 0x5c, 0xce,
1141         0x56, 0xde, 0x5f, 0xae, 0x89, 0xcb, 0x6a, 0xfe,
1142         0xaf, 0xe7, 0xd4, 0x34, 0x8d, 0x18, 0x22, 0x4d,
1143         0xd9, 0x91, 0xa6, 0xec, 0x97, 0x0e, 0x29, 0x4d,
1144         0xf6, 0xd8, 0xb3, 0x50, 0x1c, 0xc9, 0x66, 0x9d,
1145         0x2e, 0x5e, 0x27, 0xce, 0x36, 0xcb, 0x47, 0x35,
1146         0x41, 0x16, 0x0c, 0x4e, 0x73, 0x90, 0x52, 0xc5,
1147         0x65, 0xb8, 0x0c, 0xdc, 0x36, 0x8d, 0xdc, 0xca,
1148         0x97, 0x0b, 0xbc, 0xcb, 0x79, 0xc7, 0x4c, 0xd2,
1149         0x21, 0x5c, 0xbd, 0xeb, 0xea, 0xfb, 0x87, 0xe1,
1150         0xe0, 0x75, 0x39, 0xb9, 0x84, 0x1e, 0xa7, 0xfe,
1151         0x7d, 0x41, 0x75, 0x15, 0x88, 0x98, 0xd4, 0x80,
1152         0x42, 0x57, 0xb5, 0x65, 0xbf, 0xb8, 0xbd, 0x19,
1153         0x28, 0xd8, 0xa7, 0x6c, 0xe7, 0xc1, 0x00, 0xdc,
1154         0xde, 0xcb, 0x30, 0x3d, 0x29, 0x5e, 0xa6, 0x9c,
1155         0xbb, 0xb8, 0xec, 0x28, 0x23, 0x36, 0x23, 0x27,
1156         0xee, 0xdd, 0x24, 0x7d, 0x9a, 0xc9, 0xb5, 0x3c,
1157         0x7a, 0x3f, 0x1d, 0xd9, 0x32, 0x47, 0xc0, 0x4d,
1158         0x86, 0x9b, 0x2d, 0xa9, 0x5c, 0x93, 0x90, 0x51,
1159         0x70, 0xe6, 0x8f, 0x35, 0x96, 0xe0, 0x11, 0x00,
1160 };
1161
1162 /*
1163  * IV method encblkno8, blkno 2.
1164  */
1165 static const uint8_t bf_cbc_256_encblkno8_vec2_ctxt[SECSIZE] = {
1166         0x28, 0x93, 0x0f, 0x23, 0xfb, 0xa4, 0x9e, 0xe5,
1167         0x11, 0x38, 0x2b, 0xbd, 0x8d, 0x2d, 0xdb, 0x11,
1168         0xfa, 0xac, 0x74, 0x28, 0x95, 0x29, 0xf2, 0x92,
1169         0x8d, 0x00, 0x8a, 0x8a, 0x04, 0x92, 0x92, 0x33,
1170         0x8c, 0x4b, 0x29, 0x8e, 0xde, 0x59, 0xf4, 0x72,
1171         0xae, 0x2f, 0xe4, 0xe9, 0xd4, 0xe4, 0xb6, 0x69,
1172         0xc5, 0x1b, 0xbe, 0x02, 0x85, 0x4b, 0x24, 0x1e,
1173         0x79, 0xb9, 0x22, 0x29, 0x4c, 0x60, 0x8c, 0xc5,
1174         0x03, 0x1d, 0x79, 0xfe, 0x3d, 0x9e, 0x47, 0xb6,
1175         0xf7, 0x17, 0x65, 0x24, 0x15, 0x5d, 0x75, 0x4d,
1176         0xdb, 0xbc, 0x68, 0x67, 0x3b, 0xc3, 0x5a, 0x7e,
1177         0x9d, 0x98, 0x67, 0xe4, 0x8f, 0x9a, 0xd1, 0x31,
1178         0xe0, 0x26, 0xa1, 0x68, 0xbe, 0x53, 0x73, 0x7c,
1179         0xfd, 0xce, 0x6c, 0xd6, 0x1f, 0x51, 0xe6, 0x84,
1180         0x54, 0x7a, 0xe3, 0x7f, 0x7c, 0x8f, 0x2f, 0x88,
1181         0x58, 0xfe, 0x5e, 0x82, 0x11, 0xc9, 0xa5, 0x89,
1182         0xa4, 0x49, 0x92, 0x21, 0x0f, 0x03, 0xdb, 0x16,
1183         0xc4, 0xc0, 0x80, 0xb7, 0x16, 0x4c, 0x29, 0xbe,
1184         0x18, 0xfa, 0x2d, 0xdf, 0x4a, 0x23, 0x34, 0x9a,
1185         0x27, 0xea, 0xed, 0x95, 0x25, 0x14, 0xa8, 0x2e,
1186         0x17, 0x59, 0x04, 0xb0, 0x5c, 0x6d, 0xc7, 0xeb,
1187         0xed, 0xf6, 0x73, 0xae, 0x18, 0x0e, 0x4b, 0xec,
1188         0xc6, 0xb7, 0x39, 0xe7, 0x62, 0xf0, 0x84, 0x30,
1189         0x10, 0xb6, 0xf3, 0x27, 0x6d, 0xfe, 0x32, 0xe7,
1190         0xfe, 0xff, 0x43, 0xba, 0x89, 0xfe, 0x24, 0xa8,
1191         0x0e, 0x7c, 0xf2, 0x23, 0x9d, 0x66, 0x6f, 0x9c,
1192         0xe6, 0x88, 0xbc, 0x3f, 0x44, 0x4c, 0x73, 0x13,
1193         0x77, 0x95, 0x6f, 0xcb, 0xc8, 0xa5, 0x7a, 0xa9,
1194         0xeb, 0xe1, 0x0f, 0x9e, 0x25, 0xbe, 0x99, 0x1a,
1195         0x99, 0x7f, 0xbb, 0xec, 0x89, 0x91, 0x3e, 0x52,
1196         0xb5, 0xac, 0xc9, 0xd3, 0xea, 0xb0, 0xf2, 0x0c,
1197         0xc8, 0x58, 0x4b, 0x93, 0xa3, 0x9f, 0xad, 0x5a,
1198         0x80, 0x4e, 0x02, 0x20, 0x9d, 0xac, 0x4b, 0xe0,
1199         0x59, 0x4d, 0xb5, 0x51, 0x07, 0xf5, 0xa6, 0xb3,
1200         0xc9, 0x20, 0x58, 0x7e, 0x45, 0xec, 0x58, 0xea,
1201         0x49, 0xbb, 0x03, 0xf5, 0x6c, 0xdd, 0xcc, 0xa3,
1202         0x13, 0x21, 0x79, 0xc9, 0xc2, 0x92, 0x60, 0xd5,
1203         0xb2, 0x3b, 0x74, 0xbc, 0x57, 0xa6, 0x70, 0x36,
1204         0x75, 0xf5, 0x01, 0xd1, 0xb2, 0xe9, 0xfd, 0xc5,
1205         0x93, 0x5e, 0x60, 0x6b, 0xfd, 0xd2, 0x56, 0xc0,
1206         0x1f, 0xe4, 0xcd, 0x4c, 0xfa, 0xc4, 0xd8, 0xc2,
1207         0x2d, 0xf9, 0x9f, 0x82, 0x0f, 0x40, 0x7b, 0xad,
1208         0x35, 0x63, 0x95, 0x7e, 0x49, 0x4a, 0xfe, 0x8f,
1209         0xaa, 0x57, 0x3a, 0x0c, 0x59, 0x69, 0xe7, 0xb8,
1210         0xfc, 0x71, 0x5c, 0x4f, 0x18, 0x12, 0xe5, 0xef,
1211         0xdb, 0x1f, 0x66, 0x9a, 0xe2, 0x1a, 0x92, 0x1f,
1212         0xfe, 0x20, 0x81, 0xe5, 0x83, 0x97, 0xfb, 0xaf,
1213         0xeb, 0x31, 0x6c, 0x81, 0xf2, 0x2f, 0xf4, 0x41,
1214         0xf1, 0xd9, 0x61, 0xfb, 0x36, 0x4e, 0xab, 0xc5,
1215         0x8b, 0x9c, 0x37, 0xea, 0x88, 0xeb, 0x1e, 0x4c,
1216         0x84, 0x1a, 0xac, 0x4c, 0x19, 0x39, 0x51, 0x53,
1217         0xe0, 0x50, 0xb0, 0xdf, 0xe6, 0xc5, 0xbb, 0x80,
1218         0x06, 0x30, 0x14, 0xf5, 0x0e, 0x73, 0xd2, 0xdb,
1219         0x19, 0x45, 0x30, 0xdc, 0xd0, 0x4d, 0xe6, 0xd6,
1220         0x0e, 0x2d, 0x77, 0xa3, 0xb3, 0x27, 0xda, 0x99,
1221         0x62, 0x88, 0x35, 0xba, 0x64, 0x15, 0xec, 0xaf,
1222         0x70, 0x97, 0x94, 0x81, 0x30, 0x6d, 0x63, 0x42,
1223         0x71, 0x3e, 0x06, 0xec, 0x50, 0x96, 0x87, 0x59,
1224         0xe7, 0x26, 0x9c, 0xcf, 0xc7, 0xe7, 0x62, 0x82,
1225         0x3b, 0xd7, 0xfe, 0xb4, 0x48, 0x45, 0x9d, 0x54,
1226         0x18, 0x15, 0x13, 0x74, 0x92, 0x6f, 0x43, 0xb3,
1227         0xa9, 0x82, 0xd4, 0xc2, 0xef, 0x61, 0x9d, 0x5e,
1228         0x1d, 0xc6, 0x80, 0xd3, 0xe9, 0xdd, 0x52, 0x9c,
1229         0x4d, 0x04, 0x05, 0xa0, 0x43, 0x36, 0xb6, 0x89,
1230 };
1231
1232 /*
1233  * IV method encblkno8, blkno 3.
1234  */
1235 static const uint8_t bf_cbc_256_encblkno8_vec3_ctxt[SECSIZE] = {
1236         0x60, 0x91, 0x19, 0x89, 0xee, 0xac, 0x12, 0xe5,
1237         0x60, 0x6c, 0xfd, 0xf9, 0xe4, 0xc6, 0xc9, 0xbd,
1238         0x75, 0xe1, 0xa5, 0xe6, 0xf4, 0xed, 0x4b, 0xf4,
1239         0x16, 0xf4, 0x57, 0xa4, 0xe6, 0x60, 0x8e, 0x1b,
1240         0x97, 0x0e, 0xd5, 0x09, 0xa1, 0x3c, 0x6c, 0xe8,
1241         0x91, 0xaf, 0x19, 0x96, 0x2a, 0x7b, 0x77, 0x30,
1242         0xc7, 0x99, 0xe6, 0xaa, 0xb0, 0xe2, 0x29, 0x1c,
1243         0x39, 0x54, 0x1c, 0x0a, 0x4a, 0x51, 0xa2, 0xa2,
1244         0x22, 0x96, 0x05, 0x8b, 0x12, 0x80, 0x16, 0x28,
1245         0xdc, 0xfa, 0x22, 0x90, 0xa4, 0x33, 0xb1, 0x84,
1246         0x13, 0x52, 0x5d, 0xb5, 0xd4, 0xe8, 0x60, 0x18,
1247         0x6a, 0xb8, 0x1b, 0xdb, 0xb4, 0x69, 0xf6, 0x09,
1248         0x95, 0x71, 0xdd, 0x43, 0x21, 0xad, 0x7e, 0xf7,
1249         0x8e, 0x7a, 0x0d, 0xf0, 0x52, 0x54, 0xb8, 0xdc,
1250         0x7d, 0x72, 0x29, 0x97, 0x2b, 0x9c, 0x2c, 0xef,
1251         0xc3, 0x26, 0x68, 0x72, 0xae, 0x29, 0x0f, 0x67,
1252         0xbf, 0xea, 0x92, 0x27, 0xd1, 0xba, 0x8d, 0x32,
1253         0x8b, 0x26, 0x91, 0x30, 0x88, 0xcc, 0x47, 0xaf,
1254         0x54, 0x8c, 0x88, 0x88, 0x2f, 0x59, 0x76, 0x34,
1255         0x43, 0x35, 0x44, 0xc3, 0x16, 0x28, 0x62, 0x4b,
1256         0xbb, 0x47, 0x99, 0x7c, 0x26, 0x51, 0xe2, 0x7d,
1257         0xd8, 0x2c, 0x35, 0xf4, 0x24, 0xf1, 0x5b, 0x01,
1258         0xcc, 0x9a, 0x54, 0xd8, 0xc1, 0x73, 0x85, 0x83,
1259         0xdd, 0x0d, 0xd5, 0x75, 0xac, 0x67, 0x68, 0x59,
1260         0x3e, 0x6e, 0x9a, 0x4a, 0x7f, 0xbd, 0x85, 0xeb,
1261         0x36, 0x3e, 0xfd, 0x03, 0xfe, 0x2b, 0xe6, 0x97,
1262         0x16, 0x6b, 0xd0, 0x22, 0xb1, 0x00, 0xcc, 0x7c,
1263         0x03, 0xb1, 0x7c, 0x23, 0x7a, 0xca, 0x5e, 0x0b,
1264         0xba, 0x37, 0xa6, 0x08, 0x5b, 0xa6, 0x2b, 0x57,
1265         0x58, 0x0b, 0x5a, 0x58, 0x91, 0x3c, 0xf9, 0x46,
1266         0x05, 0x03, 0x0a, 0x9b, 0xca, 0x2d, 0x71, 0xe2,
1267         0xbb, 0x1e, 0xd3, 0xc5, 0xc2, 0xb4, 0xde, 0x7b,
1268         0xbb, 0x8b, 0x45, 0x39, 0xf5, 0x3d, 0xa2, 0xe5,
1269         0xb1, 0x40, 0x3b, 0x9e, 0x47, 0x93, 0xf9, 0x9c,
1270         0x50, 0x5c, 0x9b, 0x8d, 0x18, 0x47, 0xd3, 0xe8,
1271         0x61, 0xbc, 0x93, 0xdc, 0xf7, 0x20, 0x5a, 0x00,
1272         0x0e, 0xb8, 0xee, 0x5e, 0x83, 0x06, 0x48, 0x06,
1273         0x91, 0x08, 0x9e, 0x9c, 0x73, 0x6d, 0xb9, 0x31,
1274         0x62, 0xdc, 0x8a, 0x37, 0x17, 0x47, 0x2f, 0x0f,
1275         0xc0, 0x02, 0x02, 0xf3, 0x06, 0x26, 0x6c, 0x9d,
1276         0x96, 0x9f, 0xb0, 0xb3, 0x3b, 0x72, 0x18, 0x59,
1277         0xf4, 0xb7, 0x26, 0xcc, 0xa4, 0x46, 0xdb, 0x51,
1278         0xad, 0xed, 0xd8, 0x3a, 0xc4, 0x3a, 0x09, 0x30,
1279         0x72, 0xd9, 0x2c, 0xfe, 0x5f, 0xa8, 0x46, 0x75,
1280         0xf7, 0xba, 0x46, 0x1e, 0x7e, 0x4c, 0xd6, 0xdd,
1281         0x92, 0x2b, 0x23, 0xc6, 0x59, 0x19, 0xda, 0x9a,
1282         0x01, 0x9c, 0x5c, 0xc1, 0xaa, 0xcf, 0x6d, 0xd0,
1283         0xa5, 0x06, 0xc7, 0x5e, 0x6b, 0x60, 0x64, 0x9f,
1284         0xfe, 0xa8, 0x3f, 0x64, 0xa8, 0xed, 0xf8, 0x62,
1285         0xd7, 0x6d, 0x34, 0x41, 0x3e, 0x5e, 0x74, 0xc7,
1286         0xe6, 0x62, 0xb1, 0x5a, 0xec, 0x6a, 0xc1, 0x71,
1287         0x19, 0xf3, 0xf1, 0xe7, 0x46, 0x13, 0xd6, 0xb6,
1288         0x5a, 0xf4, 0xca, 0x3f, 0xe3, 0xa1, 0x1f, 0xe4,
1289         0xda, 0xd6, 0x0c, 0x62, 0x6a, 0x33, 0x42, 0x99,
1290         0x6f, 0x5d, 0x3a, 0xe0, 0xe7, 0xfa, 0x2d, 0x47,
1291         0x4a, 0xec, 0xaa, 0x71, 0xb5, 0xeb, 0x62, 0xb8,
1292         0x31, 0x34, 0x07, 0x44, 0xa2, 0x18, 0xec, 0x76,
1293         0xf7, 0x77, 0x56, 0x86, 0xc7, 0xe0, 0x1e, 0x8e,
1294         0xec, 0x16, 0x2b, 0xeb, 0xff, 0xaa, 0xba, 0x83,
1295         0x1f, 0xdc, 0x32, 0x23, 0x27, 0xea, 0xea, 0x0c,
1296         0x3a, 0x5f, 0x2b, 0xb4, 0xee, 0x0c, 0xf2, 0x73,
1297         0xbb, 0x59, 0x9b, 0x73, 0xf7, 0xfa, 0xe1, 0x1f,
1298         0x3b, 0xdb, 0x40, 0x29, 0xf0, 0x6c, 0xbe, 0x8f,
1299         0x2e, 0xd0, 0x83, 0xf7, 0xe8, 0x2a, 0x81, 0x82,
1300 };
1301
1302 const struct testvec bf_cbc_256_8_vectors[] = {
1303         {
1304                 .blkno = 0,
1305                 .ptxt = bf_cbc_ptxt,
1306                 .ctxt = bf_cbc_256_encblkno8_vec0_ctxt,
1307         },
1308         {
1309                 .blkno = 1,
1310                 .ptxt = bf_cbc_ptxt,
1311                 .ctxt = bf_cbc_256_encblkno8_vec1_ctxt,
1312         },
1313         {
1314                 .blkno = 2,
1315                 .ptxt = bf_cbc_ptxt,
1316                 .ctxt = bf_cbc_256_encblkno8_vec2_ctxt,
1317         },
1318         {
1319                 .blkno = 3,
1320                 .ptxt = bf_cbc_ptxt,
1321                 .ctxt = bf_cbc_256_encblkno8_vec3_ctxt,
1322         },
1323 };
1324
1325 /*
1326  * IV method encblkno1, blkno 0.
1327  */
1328 static const uint8_t bf_cbc_448_encblkno1_vec0_ctxt[SECSIZE] = {
1329         0xb0, 0x1b, 0x43, 0xc9, 0x84, 0x53, 0x51, 0x72,
1330         0x1f, 0x93, 0x62, 0x94, 0x13, 0x1f, 0xe3, 0xc1,
1331         0x30, 0xee, 0xc4, 0x35, 0x98, 0xb8, 0x11, 0x9b,
1332         0xd1, 0x23, 0xfa, 0x2d, 0xc1, 0xe6, 0xf3, 0x8f,
1333         0x8b, 0x05, 0x8d, 0xc5, 0x1d, 0xc3, 0x29, 0x1a,
1334         0xff, 0x08, 0xb0, 0x97, 0x88, 0x50, 0x8f, 0x41,
1335         0x66, 0xc6, 0x70, 0x37, 0xca, 0xb2, 0xcd, 0x91,
1336         0x89, 0x41, 0x1b, 0x42, 0xce, 0x02, 0xec, 0xe8,
1337         0x9b, 0xf3, 0x50, 0x95, 0x5f, 0xba, 0xda, 0xd5,
1338         0x0c, 0x2f, 0x29, 0x2a, 0x14, 0x96, 0x4a, 0x60,
1339         0x04, 0x43, 0x62, 0x80, 0x89, 0xcf, 0xfd, 0xb6,
1340         0xc7, 0x2d, 0xb2, 0xac, 0xce, 0x51, 0xf5, 0xd1,
1341         0xcd, 0x41, 0x59, 0x8b, 0xf5, 0x02, 0x2d, 0xe8,
1342         0xc4, 0xee, 0xe9, 0x40, 0x6f, 0xcd, 0xbe, 0x3b,
1343         0xd0, 0x8d, 0x3e, 0x6c, 0x42, 0x2a, 0x17, 0xfd,
1344         0x78, 0xf6, 0xb2, 0xde, 0x69, 0x81, 0xbb, 0xae,
1345         0xd9, 0x1f, 0x49, 0xa6, 0x4c, 0x5a, 0xe9, 0x94,
1346         0x49, 0x9b, 0x7e, 0x32, 0x6d, 0x11, 0xea, 0x88,
1347         0xda, 0xf0, 0xc7, 0x8d, 0x07, 0x98, 0xab, 0xc7,
1348         0xf3, 0xcf, 0x2e, 0xda, 0x27, 0x44, 0x68, 0xc7,
1349         0xdc, 0xda, 0x00, 0xd0, 0x6d, 0x64, 0x5b, 0x39,
1350         0x46, 0x3d, 0x98, 0x24, 0xee, 0x3b, 0x36, 0x23,
1351         0x62, 0xf6, 0x8e, 0xb9, 0x8d, 0xc1, 0x9a, 0x7b,
1352         0xd7, 0x03, 0x6b, 0xb7, 0x81, 0x19, 0xec, 0x2f,
1353         0x0c, 0x0b, 0x32, 0x5a, 0xb3, 0x25, 0xf5, 0xcc,
1354         0xa3, 0x60, 0xe6, 0x4e, 0x03, 0xcd, 0xdc, 0x67,
1355         0xe5, 0x26, 0xda, 0xe0, 0x1f, 0x33, 0x99, 0xc3,
1356         0x43, 0x8c, 0x9c, 0x1a, 0x85, 0xb1, 0x15, 0x04,
1357         0xc1, 0x06, 0xd1, 0x2d, 0xc9, 0x67, 0x72, 0xe7,
1358         0xd6, 0x6d, 0x1f, 0x22, 0x56, 0x56, 0xfa, 0x8a,
1359         0xd7, 0x16, 0x37, 0x3f, 0x3e, 0x67, 0xa5, 0xb7,
1360         0xee, 0x3e, 0xd2, 0x38, 0xd5, 0xce, 0xa9, 0x62,
1361         0x82, 0x17, 0xae, 0xae, 0x62, 0xe6, 0xb7, 0xf2,
1362         0x73, 0xf1, 0xc1, 0xb7, 0xe9, 0x62, 0x79, 0x3b,
1363         0x3b, 0x3f, 0xaa, 0x0d, 0x42, 0x03, 0x35, 0x3f,
1364         0x5d, 0xa4, 0xba, 0x02, 0x23, 0x65, 0x40, 0x0e,
1365         0x61, 0x31, 0xc9, 0xd5, 0x79, 0x36, 0x76, 0x7c,
1366         0x21, 0x4a, 0x75, 0xb2, 0xa0, 0x2b, 0xc1, 0xb8,
1367         0xba, 0xf8, 0x10, 0x7a, 0x85, 0x32, 0x81, 0xbf,
1368         0x2d, 0x58, 0x3c, 0x22, 0x2f, 0x0b, 0xce, 0x03,
1369         0x12, 0xce, 0x13, 0xce, 0x4a, 0x81, 0x77, 0x1d,
1370         0x68, 0x99, 0xc0, 0x25, 0xeb, 0xd9, 0x80, 0x0d,
1371         0xe7, 0x17, 0xc8, 0x41, 0xbd, 0x4b, 0x9c, 0xdd,
1372         0x41, 0x74, 0x90, 0x2a, 0x65, 0x92, 0x05, 0xff,
1373         0x06, 0x24, 0xeb, 0x89, 0xd8, 0x41, 0xaa, 0x41,
1374         0xac, 0x8a, 0x31, 0xc6, 0x82, 0x44, 0x12, 0x5a,
1375         0xd9, 0x1c, 0xca, 0x76, 0x2b, 0x4e, 0xe8, 0x18,
1376         0x7e, 0x50, 0xf5, 0x8c, 0x7c, 0x11, 0xe7, 0x0e,
1377         0xfd, 0x08, 0x5e, 0x64, 0x8b, 0x5b, 0x9f, 0x94,
1378         0x8b, 0x0d, 0x83, 0x7e, 0xef, 0x89, 0x30, 0x4a,
1379         0x55, 0xce, 0x10, 0x5f, 0x15, 0xd2, 0xe7, 0x07,
1380         0x0c, 0x34, 0x92, 0xda, 0xae, 0x84, 0x26, 0x28,
1381         0x36, 0x1a, 0x96, 0xc6, 0xf1, 0x41, 0x2b, 0xb6,
1382         0x01, 0xfe, 0x20, 0x05, 0x43, 0x80, 0x45, 0xdf,
1383         0x5c, 0xc2, 0x96, 0xc8, 0x41, 0x68, 0x87, 0x78,
1384         0xbc, 0xf8, 0x34, 0xfb, 0x19, 0x61, 0xab, 0x7f,
1385         0x15, 0x56, 0x7f, 0x1a, 0xf5, 0x08, 0xf1, 0x1c,
1386         0x59, 0x70, 0x92, 0x3a, 0xda, 0x1a, 0xfd, 0xfc,
1387         0x4d, 0xe1, 0x12, 0x61, 0xc1, 0xd8, 0xdb, 0x63,
1388         0x6e, 0x6b, 0x19, 0x96, 0x68, 0x17, 0x9b, 0xf5,
1389         0xa9, 0x5d, 0x2c, 0xaf, 0xad, 0xc6, 0x26, 0x9e,
1390         0x09, 0xcb, 0x67, 0x4e, 0x50, 0x7d, 0x2f, 0xae,
1391         0x4e, 0x73, 0xd9, 0x5a, 0xaa, 0x5d, 0x54, 0x20,
1392         0x7b, 0x77, 0xcf, 0xf8, 0xad, 0x88, 0x6b, 0xc8,
1393 };
1394
1395 /*
1396  * IV method encblkno1, blkno 1.
1397  */
1398 static const uint8_t bf_cbc_448_encblkno1_vec1_ctxt[SECSIZE] = {
1399         0x8b, 0x2a, 0xcf, 0x7d, 0x38, 0x1b, 0xaa, 0x33,
1400         0x1c, 0xe6, 0xa1, 0x37, 0x6e, 0x9e, 0xb3, 0x48,
1401         0x2a, 0xb8, 0x61, 0x11, 0x00, 0xe5, 0x48, 0xea,
1402         0xb5, 0x9f, 0x6c, 0xa4, 0xdf, 0x8d, 0x5a, 0xd8,
1403         0x03, 0x55, 0x4d, 0x07, 0x7d, 0x5f, 0x1b, 0x18,
1404         0xd1, 0x86, 0x52, 0xc1, 0x13, 0xda, 0x99, 0x23,
1405         0xeb, 0xab, 0xb2, 0x93, 0x40, 0x7c, 0x6a, 0x8a,
1406         0xaa, 0xf8, 0xf1, 0x66, 0xf1, 0x10, 0x1d, 0xcd,
1407         0x25, 0xc7, 0x84, 0x55, 0x02, 0x1d, 0xc0, 0x3c,
1408         0xba, 0xf4, 0xbf, 0xe2, 0xe4, 0xc3, 0x57, 0xdc,
1409         0x0d, 0xfd, 0xeb, 0xb3, 0x7d, 0x31, 0x82, 0x6b,
1410         0x5c, 0x0e, 0x92, 0xa5, 0x42, 0x8b, 0x7f, 0x36,
1411         0x74, 0x4d, 0xfd, 0x2f, 0xd7, 0x19, 0x0d, 0x23,
1412         0xa7, 0x36, 0xe8, 0xe4, 0xe5, 0xff, 0xc8, 0x0d,
1413         0xe1, 0x48, 0x25, 0x79, 0xa9, 0x22, 0xac, 0x72,
1414         0x86, 0x28, 0xcb, 0x63, 0xa6, 0xa0, 0x46, 0x08,
1415         0x53, 0xb8, 0x59, 0xab, 0x0f, 0x8f, 0xb1, 0x78,
1416         0xf8, 0x4e, 0x6d, 0x1a, 0xb5, 0xdd, 0x12, 0x02,
1417         0x57, 0x55, 0xf8, 0xab, 0x78, 0x7d, 0x75, 0x61,
1418         0x81, 0x20, 0xd6, 0x4b, 0x7d, 0x76, 0x05, 0xc9,
1419         0x56, 0xf2, 0xe9, 0x3f, 0xb6, 0xb5, 0x02, 0x2b,
1420         0x1c, 0x29, 0xbf, 0x07, 0xe9, 0x5f, 0x9b, 0x18,
1421         0x38, 0x26, 0xa0, 0x09, 0xde, 0x24, 0x5b, 0x37,
1422         0x72, 0x74, 0xf4, 0x9f, 0x86, 0x28, 0x89, 0xb6,
1423         0x0c, 0x95, 0x24, 0x2f, 0x88, 0x80, 0x6a, 0xc7,
1424         0x3a, 0xdc, 0x89, 0xb0, 0xa3, 0xfe, 0x6e, 0x38,
1425         0xec, 0x0b, 0x1d, 0xbc, 0xd5, 0x90, 0x48, 0xfb,
1426         0xb1, 0x54, 0xac, 0x6e, 0x35, 0xb0, 0x71, 0x9e,
1427         0x57, 0x07, 0x81, 0x90, 0xcb, 0x63, 0xb2, 0x7f,
1428         0x4c, 0x81, 0xe1, 0x58, 0xda, 0x27, 0xef, 0x77,
1429         0xe7, 0xde, 0x96, 0x83, 0x2a, 0xb1, 0x6b, 0x08,
1430         0x62, 0x89, 0xdc, 0x3a, 0x3f, 0x08, 0xff, 0xdc,
1431         0x50, 0x3e, 0xc1, 0xe4, 0x33, 0x8b, 0xad, 0x19,
1432         0x90, 0x0b, 0x8e, 0xc3, 0x55, 0x77, 0xf0, 0xc2,
1433         0x24, 0xf9, 0x0c, 0x99, 0x84, 0xb2, 0xcc, 0x23,
1434         0x8c, 0xab, 0x79, 0x0d, 0xff, 0x75, 0x3a, 0xe0,
1435         0xc9, 0xe8, 0x1e, 0x15, 0x02, 0xd5, 0x67, 0x8e,
1436         0x32, 0xe3, 0x1f, 0xda, 0xfb, 0x88, 0xeb, 0xa5,
1437         0x23, 0xea, 0x1d, 0xaa, 0xc3, 0x62, 0x7f, 0x27,
1438         0x38, 0x2a, 0xf6, 0xa2, 0x6a, 0x0e, 0x05, 0xff,
1439         0xe4, 0x63, 0x70, 0xec, 0xf8, 0x25, 0x96, 0x08,
1440         0xcb, 0x22, 0x2a, 0xaa, 0xbc, 0x45, 0x04, 0xb9,
1441         0xbc, 0x64, 0x07, 0x09, 0x31, 0xee, 0x5f, 0x9a,
1442         0xb1, 0x71, 0x85, 0x10, 0x60, 0xfb, 0x3c, 0x56,
1443         0xeb, 0xfe, 0x91, 0xab, 0x3f, 0x09, 0x76, 0xba,
1444         0x3c, 0xfc, 0xa6, 0x0d, 0xce, 0x9f, 0x59, 0xd4,
1445         0x83, 0x8d, 0x98, 0xf5, 0x0d, 0x60, 0x1f, 0xd1,
1446         0x10, 0x61, 0x77, 0x0d, 0xd1, 0xcd, 0xc2, 0xc2,
1447         0x2c, 0x7d, 0xf6, 0x15, 0x16, 0x90, 0xc9, 0xc5,
1448         0x1e, 0xe9, 0xf5, 0x7b, 0xb4, 0x49, 0x47, 0x91,
1449         0x6a, 0x94, 0x26, 0x94, 0xb3, 0xb5, 0xa7, 0x9e,
1450         0xcb, 0xb1, 0x9c, 0xb7, 0x5d, 0x25, 0x3c, 0x2d,
1451         0x8c, 0xa8, 0xa1, 0xb1, 0x79, 0x8e, 0x60, 0xa2,
1452         0x3e, 0x04, 0xfa, 0x3f, 0xb4, 0x43, 0xde, 0x0a,
1453         0xde, 0xf4, 0x58, 0xe7, 0xd1, 0x04, 0x1d, 0xb7,
1454         0x1d, 0xa6, 0xcb, 0x49, 0x41, 0x30, 0xb5, 0x41,
1455         0xb5, 0x14, 0x19, 0xe4, 0xeb, 0x2c, 0xe2, 0xf0,
1456         0x66, 0x59, 0xe3, 0xc6, 0xb0, 0xd0, 0x1e, 0xaa,
1457         0x9f, 0xa5, 0x0b, 0xb8, 0xfd, 0xae, 0x62, 0xcf,
1458         0x3e, 0xe2, 0xea, 0x79, 0xc5, 0x3e, 0xcf, 0xf0,
1459         0x40, 0x00, 0x8c, 0x81, 0x97, 0xed, 0xac, 0xf9,
1460         0x61, 0x75, 0x4e, 0xd7, 0xb7, 0xb2, 0x02, 0x14,
1461         0x04, 0xf6, 0xbf, 0x25, 0xbe, 0x78, 0x2a, 0xea,
1462         0xd2, 0x61, 0xf2, 0x7e, 0x45, 0x6b, 0x20, 0xca,
1463 };
1464
1465 /*
1466  * IV method encblkno1, blkno 2.
1467  */
1468 static const uint8_t bf_cbc_448_encblkno1_vec2_ctxt[SECSIZE] = {
1469         0x35, 0x34, 0x49, 0x29, 0x12, 0x3f, 0xc6, 0x2f,
1470         0xc9, 0x3d, 0xc9, 0x54, 0x46, 0xf3, 0x26, 0xf9,
1471         0x5e, 0x45, 0xb4, 0xba, 0x6d, 0x0f, 0x98, 0x53,
1472         0x8b, 0x7a, 0x00, 0x47, 0xb6, 0xbd, 0x70, 0x89,
1473         0x60, 0x8e, 0x52, 0x0b, 0xe3, 0x0a, 0xd8, 0x0e,
1474         0x48, 0xf3, 0xcc, 0x66, 0x8d, 0x71, 0xaa, 0x0e,
1475         0xc2, 0x68, 0x03, 0x05, 0xf9, 0xef, 0x1d, 0x14,
1476         0x5a, 0x85, 0x88, 0x70, 0x77, 0xcf, 0xe3, 0xdf,
1477         0x18, 0xe5, 0xfb, 0xea, 0xe1, 0xe8, 0xe0, 0x25,
1478         0xb2, 0x14, 0x61, 0x5d, 0x2f, 0xce, 0x61, 0xec,
1479         0x68, 0xc8, 0x06, 0x60, 0x41, 0xc1, 0xe3, 0x0a,
1480         0x5e, 0x96, 0x15, 0x9b, 0x2c, 0x5b, 0xfd, 0xba,
1481         0x17, 0x2e, 0x50, 0xb6, 0x68, 0x39, 0x21, 0x56,
1482         0x31, 0x2e, 0xb5, 0x29, 0xff, 0x4a, 0x12, 0x34,
1483         0x02, 0x54, 0xb1, 0x7f, 0xd8, 0x35, 0xec, 0x79,
1484         0x9e, 0xef, 0x62, 0xf3, 0x4b, 0x58, 0x96, 0xf1,
1485         0x83, 0x26, 0x57, 0x3d, 0x55, 0xb9, 0xb0, 0xa7,
1486         0x48, 0x65, 0x06, 0xee, 0x14, 0x88, 0xb5, 0x58,
1487         0xc8, 0x4d, 0x6e, 0xd8, 0x44, 0x76, 0x21, 0x16,
1488         0xa4, 0xdf, 0x68, 0x4b, 0xff, 0x69, 0x23, 0x66,
1489         0x18, 0x75, 0xe6, 0x29, 0xea, 0x95, 0x87, 0x1c,
1490         0xed, 0x2d, 0xbd, 0xbf, 0x22, 0x56, 0x11, 0xd5,
1491         0x59, 0x90, 0x24, 0xd7, 0xae, 0xda, 0x99, 0x49,
1492         0xe3, 0x23, 0x03, 0x24, 0x3b, 0x02, 0x49, 0x1d,
1493         0xa5, 0x57, 0x2f, 0xea, 0xd1, 0x6a, 0x17, 0x53,
1494         0x0f, 0xb3, 0xa9, 0x64, 0x8a, 0xdb, 0x62, 0x17,
1495         0xad, 0x5c, 0x7d, 0x56, 0x14, 0x0f, 0xfb, 0x14,
1496         0xbe, 0x7e, 0xa1, 0xa8, 0x27, 0xf0, 0xf0, 0x3a,
1497         0xe7, 0xc5, 0x26, 0x98, 0x9d, 0x29, 0xf7, 0xfd,
1498         0x43, 0x13, 0x34, 0xe2, 0xb8, 0x0b, 0x14, 0xe9,
1499         0x79, 0x66, 0x7a, 0xf2, 0xed, 0x79, 0x37, 0x16,
1500         0x75, 0x2b, 0xf2, 0x99, 0xa1, 0xba, 0xf1, 0xc1,
1501         0x61, 0x8d, 0x78, 0x46, 0x3a, 0x67, 0x58, 0x6a,
1502         0x55, 0x0d, 0x2e, 0x08, 0x47, 0xfc, 0x94, 0x2f,
1503         0x65, 0xa1, 0x1a, 0xfe, 0x05, 0xfa, 0x41, 0x00,
1504         0x6c, 0x42, 0xbc, 0x65, 0x37, 0xd9, 0x25, 0x9c,
1505         0xf4, 0x83, 0x8a, 0xdb, 0x91, 0x96, 0xc5, 0xa9,
1506         0x02, 0x44, 0xbc, 0x9a, 0x26, 0x9c, 0xd1, 0xfa,
1507         0x06, 0x8b, 0xd6, 0x40, 0x8f, 0x0a, 0xd2, 0x5b,
1508         0xd8, 0x57, 0xd5, 0x61, 0x1b, 0x86, 0xa6, 0x49,
1509         0x15, 0xe4, 0x06, 0x6c, 0x48, 0x24, 0xb8, 0xe3,
1510         0x23, 0xed, 0xcf, 0x39, 0x44, 0x4d, 0xf0, 0x4e,
1511         0x89, 0x44, 0x0d, 0x3a, 0xe6, 0x1b, 0x7c, 0x39,
1512         0xfd, 0x79, 0x0e, 0x78, 0xc7, 0xf6, 0xa3, 0x91,
1513         0x18, 0x2a, 0xfb, 0x92, 0x48, 0xcc, 0x8b, 0xbb,
1514         0x33, 0x07, 0x42, 0xf5, 0xd0, 0x01, 0x8b, 0x12,
1515         0xd9, 0x5e, 0x9d, 0xe4, 0x13, 0x99, 0x11, 0x18,
1516         0x86, 0x8a, 0xb7, 0xa6, 0xe2, 0x38, 0x34, 0x12,
1517         0x67, 0xd6, 0x4b, 0xc0, 0x23, 0x56, 0xba, 0x53,
1518         0xbe, 0x20, 0xe5, 0xec, 0x16, 0xf9, 0x74, 0x92,
1519         0x62, 0xfc, 0xb9, 0xe8, 0xa3, 0xbf, 0x3b, 0x06,
1520         0x76, 0xa5, 0xf5, 0x56, 0x81, 0x72, 0x50, 0xc8,
1521         0x55, 0x80, 0x7d, 0xe1, 0x46, 0x92, 0xa1, 0xeb,
1522         0x41, 0xaf, 0xce, 0x52, 0xb1, 0xb3, 0x51, 0xf2,
1523         0xba, 0x03, 0xb4, 0xcb, 0x16, 0xd2, 0x92, 0x3d,
1524         0x0c, 0x9b, 0xe9, 0xd9, 0x5d, 0xcf, 0x79, 0x05,
1525         0xbd, 0xe0, 0x44, 0x39, 0xf0, 0x35, 0x2d, 0x7a,
1526         0x31, 0x3b, 0x24, 0xb3, 0xb4, 0xa5, 0x08, 0xf5,
1527         0xac, 0x51, 0xf1, 0x09, 0x52, 0x14, 0xc7, 0xb5,
1528         0xe0, 0x65, 0x47, 0x30, 0xdd, 0xa4, 0xfd, 0x71,
1529         0x68, 0xa5, 0x4b, 0x00, 0x72, 0xe2, 0xc4, 0xa9,
1530         0x5d, 0x21, 0x6d, 0x83, 0x4e, 0x88, 0xaa, 0x76,
1531         0x07, 0xf0, 0xf7, 0x36, 0xa2, 0x5e, 0xd5, 0x4c,
1532         0x7f, 0x9b, 0x74, 0x89, 0x0a, 0x18, 0xdc, 0x9a,
1533 };
1534
1535 /*
1536  * IV method encblkno1, blkno 3.
1537  */
1538 static const uint8_t bf_cbc_448_encblkno1_vec3_ctxt[SECSIZE] = {
1539         0xc3, 0xd3, 0xae, 0x7e, 0x4f, 0xbe, 0x0d, 0x50,
1540         0xd6, 0x63, 0x2c, 0xa2, 0xfd, 0x07, 0xf1, 0x33,
1541         0x2a, 0x15, 0x8f, 0xd7, 0x63, 0xb6, 0x5f, 0x04,
1542         0x69, 0x90, 0xa3, 0x1a, 0xd3, 0xdd, 0xe0, 0x70,
1543         0xb1, 0xcd, 0xd5, 0xe0, 0x75, 0xd2, 0x31, 0x38,
1544         0xcc, 0x65, 0xbb, 0xc3, 0x3b, 0xc6, 0xc9, 0x33,
1545         0x43, 0x9c, 0x32, 0x69, 0x95, 0x10, 0x74, 0x36,
1546         0x3a, 0x05, 0x9c, 0x26, 0x2f, 0x80, 0x20, 0x92,
1547         0x74, 0x31, 0xc0, 0xf4, 0xb1, 0x42, 0x58, 0xc8,
1548         0x3e, 0xaa, 0xd4, 0xba, 0xba, 0x4b, 0x5f, 0x47,
1549         0x1a, 0x9e, 0x43, 0xaf, 0x25, 0x64, 0x0c, 0x2e,
1550         0xa3, 0xf5, 0xde, 0x6e, 0x28, 0x5e, 0xb9, 0x9e,
1551         0xc9, 0xdf, 0x85, 0xda, 0xc9, 0xa8, 0x30, 0xf9,
1552         0x44, 0x9b, 0x16, 0xcb, 0x4b, 0x47, 0x6f, 0x11,
1553         0x5c, 0xd7, 0xc9, 0xb7, 0x9c, 0x50, 0x04, 0x3b,
1554         0x2f, 0x13, 0xab, 0xb6, 0x72, 0xe7, 0x11, 0x29,
1555         0x35, 0xf3, 0xae, 0x5e, 0x2a, 0xa7, 0x1a, 0xac,
1556         0xb7, 0x4c, 0x7b, 0x69, 0x89, 0xfc, 0xff, 0x37,
1557         0x24, 0xf8, 0x65, 0xc0, 0x87, 0x89, 0x69, 0x1e,
1558         0xa6, 0x7e, 0xe7, 0xb3, 0xb7, 0xa8, 0x42, 0x73,
1559         0x83, 0xdb, 0x56, 0x4f, 0xce, 0xb9, 0x6e, 0x38,
1560         0x40, 0x24, 0xb8, 0xdd, 0xab, 0x25, 0x3b, 0xc6,
1561         0x58, 0xed, 0xc7, 0x2b, 0xe0, 0x11, 0x8b, 0x62,
1562         0xe8, 0x4f, 0xcf, 0xba, 0x2e, 0xd7, 0x6d, 0xf0,
1563         0x14, 0xa5, 0xee, 0x24, 0xd3, 0x3a, 0xb4, 0xf2,
1564         0xdc, 0x0d, 0x79, 0xc6, 0x14, 0x52, 0x14, 0x4b,
1565         0xd1, 0x8c, 0x18, 0xef, 0x1f, 0xd8, 0xe7, 0x60,
1566         0xf3, 0x28, 0xce, 0xf1, 0x59, 0xc8, 0x43, 0x02,
1567         0x0e, 0x08, 0x72, 0xe5, 0x7d, 0x5b, 0xc5, 0x80,
1568         0xfb, 0xca, 0x2a, 0x63, 0x8d, 0x3c, 0x54, 0x04,
1569         0x1e, 0xdf, 0x94, 0x53, 0xf8, 0x44, 0xe5, 0xc2,
1570         0x5c, 0x36, 0xc9, 0x75, 0x1c, 0xa2, 0x98, 0x3d,
1571         0xd6, 0xee, 0x38, 0xf9, 0xab, 0x2d, 0x1a, 0xdb,
1572         0x87, 0x2c, 0x86, 0xfd, 0xf9, 0xb2, 0x4d, 0x21,
1573         0xb7, 0xc0, 0x8f, 0x75, 0x21, 0x53, 0xc7, 0xd7,
1574         0x3e, 0xc6, 0x6c, 0x98, 0x2c, 0x6d, 0x44, 0x13,
1575         0x40, 0xea, 0xaa, 0x84, 0xd9, 0x47, 0xfd, 0x65,
1576         0x2c, 0x3d, 0xb0, 0x76, 0xe7, 0xdd, 0xd7, 0x06,
1577         0x8a, 0x79, 0xa7, 0x6c, 0x3a, 0x2d, 0x32, 0xf7,
1578         0xae, 0xe7, 0xd2, 0xb1, 0xf2, 0xe0, 0x3a, 0x10,
1579         0x19, 0xa1, 0x79, 0x7b, 0x76, 0x0b, 0xeb, 0xf3,
1580         0x01, 0x6e, 0x9f, 0xa1, 0x5d, 0x16, 0x09, 0xec,
1581         0x6b, 0x64, 0xe3, 0x96, 0xb8, 0x89, 0x99, 0x8c,
1582         0x77, 0xcf, 0x3f, 0x37, 0x42, 0x51, 0x82, 0x5a,
1583         0x63, 0x89, 0x12, 0x12, 0x59, 0x38, 0xe3, 0xcf,
1584         0xa0, 0xda, 0xbc, 0x69, 0x75, 0x48, 0x7c, 0x3e,
1585         0x56, 0x75, 0x12, 0x10, 0xc5, 0x96, 0x5b, 0x34,
1586         0x52, 0x2e, 0xce, 0xba, 0xd2, 0x7f, 0x8f, 0x1c,
1587         0xbd, 0x35, 0x3b, 0x74, 0x5b, 0x6c, 0xfe, 0xa7,
1588         0xf1, 0x4a, 0x07, 0x95, 0xff, 0xa8, 0xa0, 0x2a,
1589         0x85, 0xec, 0xd7, 0x56, 0x3b, 0x28, 0x2e, 0x09,
1590         0x50, 0x43, 0xbd, 0x49, 0x22, 0xdc, 0x78, 0x0e,
1591         0x7e, 0x68, 0x78, 0xd5, 0x57, 0xc2, 0xd6, 0x7c,
1592         0x2f, 0xd0, 0x4a, 0x62, 0x16, 0x38, 0x04, 0x23,
1593         0x43, 0x21, 0xaa, 0xe1, 0x96, 0x0e, 0xa9, 0x22,
1594         0xe7, 0x2c, 0xb8, 0x5e, 0x8f, 0xc6, 0x2d, 0xbd,
1595         0x99, 0x25, 0x33, 0xb8, 0x47, 0x99, 0x8d, 0xf5,
1596         0x22, 0x08, 0x9b, 0xd5, 0xad, 0x83, 0x67, 0xec,
1597         0x05, 0x89, 0xda, 0xd6, 0xe4, 0xe2, 0xd5, 0xef,
1598         0x7f, 0x61, 0x1e, 0x03, 0x81, 0x03, 0xb1, 0x98,
1599         0x5a, 0x29, 0x69, 0x13, 0xb2, 0xe6, 0xe1, 0x2c,
1600         0x66, 0x88, 0x39, 0x90, 0xf9, 0xae, 0x5d, 0x71,
1601         0xfe, 0x07, 0x30, 0x7d, 0xba, 0xa9, 0x37, 0xb5,
1602         0xff, 0x2c, 0xa9, 0xe6, 0x95, 0x48, 0xb2, 0xc8,
1603 };
1604
1605 const struct testvec bf_cbc_448_1_vectors[] = {
1606         {
1607                 .blkno = 0,
1608                 .ptxt = bf_cbc_ptxt,
1609                 .ctxt = bf_cbc_448_encblkno1_vec0_ctxt,
1610         },
1611         {
1612                 .blkno = 1,
1613                 .ptxt = bf_cbc_ptxt,
1614                 .ctxt = bf_cbc_448_encblkno1_vec1_ctxt,
1615         },
1616         {
1617                 .blkno = 2,
1618                 .ptxt = bf_cbc_ptxt,
1619                 .ctxt = bf_cbc_448_encblkno1_vec2_ctxt,
1620         },
1621         {
1622                 .blkno = 3,
1623                 .ptxt = bf_cbc_ptxt,
1624                 .ctxt = bf_cbc_448_encblkno1_vec3_ctxt,
1625         },
1626 };
1627
1628 /*
1629  * IV method encblkno8, blkno 0.
1630  */
1631 static const uint8_t bf_cbc_448_encblkno8_vec0_ctxt[SECSIZE] = {
1632         0x91, 0xb4, 0x8f, 0x78, 0x34, 0xbe, 0x03, 0xe9,
1633         0x4b, 0xca, 0xf4, 0xfa, 0x27, 0x99, 0xa0, 0xd0,
1634         0xa0, 0x85, 0xf9, 0xca, 0xcc, 0x2e, 0x0d, 0x41,
1635         0x91, 0xdb, 0xf9, 0x71, 0xcd, 0x49, 0xf7, 0x66,
1636         0x9b, 0x0c, 0x70, 0x49, 0x36, 0x72, 0xf4, 0xc0,
1637         0x17, 0xdd, 0xd8, 0x6a, 0xd2, 0x17, 0xfe, 0x50,
1638         0xa3, 0x2b, 0xa8, 0x7c, 0x9c, 0x12, 0x8c, 0x08,
1639         0x3d, 0xb5, 0x20, 0xc0, 0x83, 0xc1, 0xf5, 0x34,
1640         0x4b, 0xa5, 0xcc, 0x7c, 0xc6, 0x9f, 0x4b, 0x7f,
1641         0x09, 0x0c, 0x04, 0xe3, 0x02, 0xfe, 0xe2, 0x5a,
1642         0x45, 0xee, 0x4a, 0xcb, 0xc0, 0xe1, 0xf1, 0xae,
1643         0x1a, 0x22, 0x95, 0xb9, 0x30, 0xe8, 0x2d, 0x90,
1644         0xe5, 0x6a, 0x2f, 0x0a, 0x59, 0x15, 0xfc, 0x60,
1645         0xa5, 0x91, 0x95, 0x1a, 0xa2, 0xf5, 0x87, 0xa3,
1646         0x97, 0x45, 0x1b, 0xfb, 0x78, 0x62, 0x8b, 0xb6,
1647         0x86, 0xc6, 0x94, 0x9a, 0x9d, 0x09, 0x46, 0xc9,
1648         0x1f, 0x5f, 0x2e, 0x6c, 0xed, 0x5e, 0xe2, 0xab,
1649         0xca, 0x30, 0xdb, 0x13, 0x37, 0x8d, 0xb7, 0xc6,
1650         0xce, 0x74, 0xe3, 0xe2, 0x64, 0x7b, 0x74, 0x3e,
1651         0x9f, 0x18, 0x4e, 0xe2, 0x2b, 0x52, 0x08, 0x60,
1652         0x2b, 0x6d, 0x17, 0x1a, 0xff, 0xae, 0xfb, 0xea,
1653         0x59, 0x1d, 0x45, 0xe8, 0xf9, 0x0c, 0x56, 0xb8,
1654         0xb5, 0xc7, 0x8f, 0xa7, 0x9e, 0x67, 0x87, 0xbb,
1655         0xe2, 0x37, 0x56, 0x49, 0xed, 0x75, 0x27, 0x54,
1656         0xb5, 0x16, 0x34, 0xb6, 0xa6, 0xe0, 0x27, 0x48,
1657         0x91, 0xfb, 0x80, 0x4f, 0x5e, 0xef, 0x40, 0x6d,
1658         0x28, 0x8f, 0x2e, 0x56, 0xab, 0x6c, 0x7d, 0xde,
1659         0xbd, 0xa5, 0xa6, 0x47, 0xe2, 0xc9, 0xb0, 0xc5,
1660         0x69, 0x5d, 0x57, 0x18, 0x59, 0x08, 0x66, 0x1b,
1661         0xdc, 0x4f, 0xa4, 0xe2, 0xb5, 0xff, 0x72, 0x4d,
1662         0x25, 0x79, 0x38, 0x8f, 0xca, 0x23, 0x81, 0x31,
1663         0x1d, 0xeb, 0x7b, 0x7e, 0x04, 0xc3, 0xa6, 0xac,
1664         0x12, 0x92, 0x95, 0x44, 0x08, 0xae, 0x25, 0xb5,
1665         0xc2, 0x39, 0x88, 0x28, 0xc5, 0xc7, 0x3c, 0xfe,
1666         0x95, 0xe1, 0x1a, 0x27, 0xbe, 0xfd, 0x0a, 0xc7,
1667         0xd1, 0x02, 0x1a, 0xae, 0x03, 0xfb, 0xce, 0x79,
1668         0xe6, 0xea, 0x4a, 0xa1, 0x0e, 0x68, 0x61, 0x2f,
1669         0xfa, 0x7a, 0xb8, 0xda, 0xd1, 0x4a, 0xbe, 0x88,
1670         0xd2, 0xa0, 0x6b, 0x90, 0xc3, 0x37, 0x18, 0x77,
1671         0x2e, 0xc8, 0x44, 0x2e, 0x9d, 0xa2, 0x4a, 0xc7,
1672         0x54, 0xb2, 0x38, 0x9b, 0x60, 0x5e, 0x5b, 0xb0,
1673         0x31, 0x4c, 0x10, 0xf0, 0x1d, 0x8c, 0xab, 0x9b,
1674         0x25, 0x86, 0x05, 0xfc, 0xd9, 0x39, 0x11, 0x2b,
1675         0x7e, 0x07, 0xfd, 0x6b, 0xb3, 0x28, 0x57, 0x66,
1676         0x94, 0xc6, 0xfc, 0x48, 0x71, 0xeb, 0x7b, 0x9a,
1677         0x26, 0x8f, 0x9f, 0x97, 0xb6, 0x83, 0x9a, 0xdc,
1678         0x5d, 0x84, 0x96, 0x9d, 0xe3, 0xa5, 0x12, 0x97,
1679         0x8c, 0x87, 0xa6, 0x2a, 0xa8, 0x15, 0x9a, 0xb0,
1680         0x0e, 0x31, 0x55, 0xf7, 0x1b, 0x5c, 0x9c, 0xaf,
1681         0x13, 0x20, 0x13, 0x50, 0xaf, 0xc9, 0xf4, 0xd9,
1682         0x47, 0x16, 0xcc, 0x9d, 0xec, 0xa9, 0x2d, 0xfc,
1683         0x3d, 0x5d, 0x48, 0x89, 0x86, 0x91, 0x6f, 0x1a,
1684         0xa5, 0xf0, 0xb6, 0x9b, 0xa9, 0x08, 0xf2, 0x05,
1685         0xad, 0xe5, 0xe0, 0xd8, 0x2e, 0x09, 0xbe, 0x3a,
1686         0xf2, 0xdc, 0xeb, 0x14, 0xe6, 0x8c, 0x21, 0x20,
1687         0xbb, 0x42, 0x6a, 0xba, 0x55, 0x79, 0x54, 0x8b,
1688         0xa8, 0x43, 0x14, 0x28, 0x66, 0xd2, 0x44, 0x65,
1689         0x9c, 0xa9, 0xdc, 0x3b, 0x3f, 0xab, 0x36, 0xb4,
1690         0xbc, 0x9d, 0x22, 0x92, 0x24, 0xa8, 0x29, 0x18,
1691         0x98, 0x3a, 0xbe, 0xa1, 0xb4, 0xf8, 0x7f, 0xea,
1692         0x2f, 0x58, 0x69, 0xce, 0xee, 0x99, 0x76, 0x2c,
1693         0x53, 0x84, 0xf5, 0x9e, 0xa3, 0x98, 0xe6, 0x94,
1694         0x39, 0xfa, 0xfa, 0x6d, 0x66, 0xe2, 0x39, 0x2b,
1695         0x4b, 0x84, 0x14, 0x89, 0x18, 0xa2, 0x03, 0xdd,
1696 };
1697
1698 /*
1699  * IV method encblkno8, blkno 1.
1700  */
1701 static const uint8_t bf_cbc_448_encblkno8_vec1_ctxt[SECSIZE] = {
1702         0x90, 0x3d, 0xee, 0x58, 0xf7, 0xe3, 0xc4, 0x18,
1703         0xaf, 0xfa, 0xaf, 0xed, 0x9a, 0x45, 0xe7, 0xa8,
1704         0xbe, 0xcd, 0x0f, 0xb9, 0x53, 0x18, 0xc6, 0x14,
1705         0xbe, 0xbb, 0x90, 0x1c, 0x5c, 0x60, 0x93, 0xcb,
1706         0x62, 0xb3, 0xdb, 0x31, 0x19, 0x39, 0xce, 0x3f,
1707         0xe4, 0x8f, 0x44, 0xc1, 0x10, 0x80, 0x05, 0x6b,
1708         0x77, 0xe3, 0xe1, 0xe5, 0xd2, 0x6d, 0x93, 0xf2,
1709         0xb3, 0x81, 0x03, 0xf8, 0xbc, 0x7b, 0x5a, 0x71,
1710         0x15, 0x16, 0x3a, 0x2f, 0x03, 0xbb, 0x67, 0x6a,
1711         0xd9, 0xf5, 0x63, 0x6f, 0x3d, 0x75, 0x1b, 0x0a,
1712         0x4b, 0x9d, 0x04, 0x11, 0x7e, 0xe8, 0x3e, 0x2d,
1713         0x04, 0x8f, 0xbf, 0x8a, 0xb2, 0x35, 0x76, 0xc5,
1714         0xcc, 0x6d, 0x9e, 0x99, 0x71, 0x13, 0xf6, 0x5e,
1715         0xeb, 0x74, 0x96, 0x8a, 0x29, 0x38, 0x0b, 0x25,
1716         0x4b, 0x89, 0xa9, 0x43, 0x3c, 0x2f, 0x03, 0x14,
1717         0x8d, 0x0f, 0xe3, 0xe7, 0x01, 0xd1, 0x2e, 0x14,
1718         0x08, 0x51, 0xba, 0x06, 0x39, 0x76, 0x35, 0xbc,
1719         0x14, 0xa6, 0x16, 0x36, 0x47, 0xcc, 0x48, 0xe0,
1720         0xd6, 0xd7, 0x07, 0xb0, 0xf0, 0x30, 0x6c, 0xf8,
1721         0x68, 0x9d, 0x6c, 0x4b, 0x69, 0x33, 0x78, 0x0e,
1722         0x4a, 0xfa, 0x97, 0xfb, 0x0c, 0x0d, 0x0a, 0xc3,
1723         0x4b, 0x7b, 0x77, 0x77, 0x18, 0x9a, 0x74, 0x85,
1724         0x2f, 0xae, 0xc7, 0x90, 0x45, 0x4b, 0xa2, 0x06,
1725         0x3e, 0xa2, 0x48, 0xe7, 0x6c, 0x86, 0x65, 0x78,
1726         0x97, 0x0b, 0x97, 0xc1, 0x70, 0x91, 0x12, 0x79,
1727         0xae, 0xf0, 0x2b, 0x44, 0xe9, 0x84, 0x8d, 0x78,
1728         0x53, 0xf8, 0x3a, 0xf5, 0x9f, 0x27, 0x3d, 0x49,
1729         0x69, 0xd1, 0x18, 0xa4, 0xb2, 0xd0, 0xbb, 0xf2,
1730         0x57, 0x76, 0xb7, 0x77, 0x16, 0x2f, 0xf8, 0x0c,
1731         0xa5, 0x86, 0x43, 0x0d, 0x2d, 0xfe, 0x84, 0xc6,
1732         0xbb, 0x58, 0x81, 0x47, 0x3d, 0xa3, 0x93, 0xb0,
1733         0x50, 0xfc, 0x25, 0xf7, 0xc5, 0x05, 0xe5, 0xf2,
1734         0xb3, 0x79, 0x12, 0xe4, 0x37, 0x71, 0x2d, 0xe8,
1735         0xa5, 0x0b, 0xce, 0x67, 0x51, 0x4f, 0xab, 0xc7,
1736         0x7b, 0x3b, 0xac, 0x78, 0x97, 0x82, 0x02, 0xf4,
1737         0x62, 0x20, 0x1b, 0x8b, 0xac, 0x07, 0x3b, 0xd7,
1738         0x0b, 0x99, 0x27, 0x85, 0x52, 0x7a, 0x79, 0x18,
1739         0xfb, 0x81, 0x3a, 0x05, 0x76, 0x6c, 0x3c, 0x6a,
1740         0x35, 0xe1, 0x2b, 0x03, 0x48, 0x70, 0x1a, 0xa8,
1741         0x30, 0x33, 0x61, 0xe2, 0xd8, 0x99, 0x86, 0x7f,
1742         0xfd, 0xe0, 0x4a, 0xe4, 0x62, 0xa1, 0xac, 0xcb,
1743         0xb8, 0x8a, 0xf3, 0xaa, 0xd6, 0x61, 0x9d, 0xc5,
1744         0xdb, 0xf5, 0x53, 0x39, 0x1d, 0xd7, 0xf8, 0x96,
1745         0xc6, 0x2b, 0xca, 0xbf, 0x83, 0x4e, 0x89, 0x63,
1746         0x53, 0x6f, 0x17, 0xaa, 0xf3, 0x61, 0x9b, 0x75,
1747         0x8c, 0x5a, 0xf8, 0x21, 0x84, 0x52, 0xb8, 0x76,
1748         0xbc, 0xf5, 0x9b, 0xd6, 0x98, 0x26, 0x58, 0xec,
1749         0xdd, 0xa8, 0xf1, 0xee, 0x9e, 0x14, 0x24, 0x94,
1750         0x7c, 0xb6, 0x45, 0x8b, 0xc7, 0x85, 0x50, 0x4e,
1751         0x30, 0xd7, 0x51, 0x8c, 0x33, 0xeb, 0xeb, 0x5d,
1752         0x52, 0x58, 0x43, 0xcb, 0x25, 0x4a, 0x77, 0x34,
1753         0xe6, 0x70, 0x5b, 0x6f, 0x8f, 0xe8, 0x07, 0xee,
1754         0x76, 0x4a, 0xad, 0xab, 0x11, 0x8a, 0x1b, 0x92,
1755         0x60, 0x79, 0xb8, 0xe0, 0x88, 0xa7, 0x3a, 0xe0,
1756         0x15, 0xf6, 0x57, 0xf0, 0xe8, 0x87, 0xda, 0xf8,
1757         0x90, 0x4e, 0xe7, 0xb3, 0xb4, 0xe7, 0x73, 0x5c,
1758         0xd3, 0x69, 0xfb, 0x23, 0x4f, 0x4f, 0xc8, 0xd2,
1759         0xfb, 0xf5, 0xf5, 0x76, 0x80, 0xb6, 0xb7, 0xe2,
1760         0xb7, 0x96, 0x1a, 0x97, 0x12, 0x40, 0x16, 0x86,
1761         0xd6, 0x66, 0xf5, 0x46, 0x9e, 0x04, 0x62, 0xaa,
1762         0x9c, 0xc9, 0x45, 0x39, 0x5c, 0xd3, 0x58, 0x40,
1763         0xb4, 0x32, 0xd8, 0x6c, 0x19, 0xfa, 0xa5, 0x5f,
1764         0x1e, 0x83, 0x5a, 0x32, 0x5e, 0x1d, 0xab, 0xa9,
1765         0x48, 0x1b, 0x1b, 0x37, 0x66, 0xf8, 0x67, 0xd7,
1766 };
1767
1768 /*
1769  * IV method encblkno8, blkno 2.
1770  */
1771 static const uint8_t bf_cbc_448_encblkno8_vec2_ctxt[SECSIZE] = {
1772         0xb3, 0x2d, 0x0d, 0x90, 0x7a, 0x50, 0xb6, 0x29,
1773         0x9d, 0xd4, 0x12, 0x1a, 0xc9, 0x71, 0x56, 0xc4,
1774         0xce, 0x3d, 0x74, 0xf9, 0x91, 0xe4, 0x79, 0x8a,
1775         0x42, 0x34, 0x1a, 0xd4, 0x84, 0xaa, 0x01, 0x85,
1776         0x13, 0xe8, 0xab, 0xaa, 0xb6, 0x81, 0x82, 0xd6,
1777         0x32, 0xd6, 0x9f, 0x63, 0x69, 0x55, 0x10, 0x5f,
1778         0x2e, 0xb3, 0x51, 0x74, 0x80, 0x5c, 0xe9, 0x8d,
1779         0x27, 0xd8, 0x41, 0x2d, 0x27, 0x07, 0xb4, 0x13,
1780         0xcd, 0xc0, 0xb3, 0x96, 0xaa, 0x59, 0x9c, 0x3e,
1781         0x16, 0x9e, 0x18, 0xa5, 0x92, 0x52, 0x59, 0x19,
1782         0x19, 0x62, 0xeb, 0xd9, 0xdf, 0x9d, 0x10, 0x77,
1783         0xfb, 0x3c, 0xf1, 0xeb, 0x70, 0xf6, 0x6a, 0x9b,
1784         0xad, 0x99, 0x35, 0xd7, 0xf8, 0xde, 0x2b, 0x52,
1785         0x85, 0xdd, 0x36, 0x07, 0x3a, 0x88, 0xa6, 0xbb,
1786         0x98, 0x7a, 0xe3, 0xb0, 0xe6, 0xae, 0x33, 0x5d,
1787         0x47, 0x0c, 0x6c, 0xd4, 0x84, 0x33, 0x7e, 0xf4,
1788         0xea, 0xfd, 0xf1, 0x1c, 0xdb, 0x8b, 0xfe, 0x01,
1789         0x77, 0xa3, 0x07, 0x21, 0x09, 0xac, 0x0c, 0xe4,
1790         0x63, 0xaa, 0x3d, 0xb3, 0x05, 0xf8, 0x73, 0x03,
1791         0x69, 0x53, 0x2f, 0xd3, 0x53, 0x29, 0xf2, 0x02,
1792         0x60, 0x41, 0xed, 0xc7, 0xe9, 0x2e, 0xba, 0x54,
1793         0xa4, 0xfe, 0x26, 0xf0, 0xd9, 0x2c, 0x58, 0x2d,
1794         0x90, 0x94, 0x19, 0xf9, 0xe5, 0xaa, 0xe2, 0x13,
1795         0x9a, 0x67, 0x90, 0x44, 0x61, 0x36, 0xd0, 0x3f,
1796         0xe7, 0xe8, 0x7e, 0x47, 0x2b, 0x84, 0x97, 0xe2,
1797         0x0b, 0x8a, 0xfa, 0x2f, 0xbc, 0x1a, 0x70, 0xed,
1798         0xb2, 0x93, 0x36, 0x0e, 0xe6, 0xb1, 0xa2, 0x5a,
1799         0x04, 0x04, 0x8d, 0x2f, 0x82, 0xdb, 0x49, 0x5e,
1800         0x1b, 0x90, 0xc1, 0x27, 0x2a, 0x2f, 0x64, 0x5b,
1801         0xce, 0x35, 0x06, 0x0d, 0xb6, 0x05, 0x50, 0x5a,
1802         0x90, 0xc8, 0x21, 0xd0, 0xf0, 0xb9, 0xf3, 0x43,
1803         0x25, 0xd8, 0xb9, 0x86, 0xb7, 0xd0, 0x29, 0x75,
1804         0xdc, 0xf6, 0xf6, 0x14, 0x5e, 0x1f, 0xad, 0x54,
1805         0x28, 0x63, 0x92, 0xcd, 0xcd, 0x75, 0xb2, 0xe8,
1806         0xf3, 0x1f, 0xfd, 0x88, 0x72, 0x04, 0xab, 0xe2,
1807         0x77, 0x21, 0xc1, 0xb4, 0x87, 0xa7, 0x98, 0x86,
1808         0x2d, 0x7f, 0x01, 0x24, 0xed, 0x3a, 0x23, 0x83,
1809         0xb7, 0xa4, 0xb7, 0x08, 0x4e, 0xee, 0x10, 0x77,
1810         0x29, 0x22, 0xab, 0xea, 0x4a, 0x68, 0x1f, 0x7f,
1811         0xd6, 0xe6, 0x90, 0x11, 0xbc, 0x23, 0x2e, 0x47,
1812         0x78, 0xea, 0x1d, 0x33, 0x7c, 0x02, 0x09, 0x55,
1813         0x7a, 0xbc, 0xa7, 0x3d, 0x9a, 0xd0, 0x4d, 0x40,
1814         0x6c, 0xc2, 0x99, 0xc2, 0xe9, 0x0e, 0xcf, 0x06,
1815         0x82, 0x61, 0x5c, 0x76, 0xca, 0xef, 0x8f, 0xd3,
1816         0x78, 0x2a, 0xae, 0x39, 0x29, 0x4e, 0xc1, 0x2c,
1817         0xb1, 0xbc, 0xcd, 0x76, 0x4f, 0x25, 0xf0, 0x5b,
1818         0x78, 0x3a, 0xa4, 0x39, 0x52, 0x5a, 0xc7, 0xcf,
1819         0x17, 0x3d, 0xb0, 0x39, 0x63, 0xf9, 0xf9, 0xfb,
1820         0x6f, 0x35, 0xb7, 0xf1, 0x49, 0x10, 0xd8, 0x12,
1821         0x8d, 0xa2, 0xdf, 0xc5, 0x26, 0x37, 0xd1, 0xb8,
1822         0xef, 0xdc, 0x04, 0x1b, 0x0d, 0x60, 0xbf, 0xbc,
1823         0xc0, 0xff, 0x56, 0x8b, 0xd3, 0x6e, 0x71, 0xfc,
1824         0x87, 0x00, 0x86, 0x10, 0x78, 0x3b, 0xce, 0x8b,
1825         0xe8, 0x5f, 0x8c, 0xce, 0x03, 0xa2, 0x89, 0x8c,
1826         0x16, 0x00, 0x0e, 0xd8, 0x53, 0xaf, 0x7f, 0x77,
1827         0x78, 0x40, 0x5e, 0x5e, 0xd1, 0x7d, 0xf8, 0x41,
1828         0xa8, 0x1e, 0xa5, 0xe5, 0xe9, 0xd6, 0x17, 0x2c,
1829         0x2f, 0x1b, 0xff, 0xef, 0xf5, 0x53, 0x31, 0xf3,
1830         0x5b, 0xe4, 0x84, 0x7c, 0xe2, 0x45, 0x3c, 0x82,
1831         0x5b, 0xf6, 0x03, 0x35, 0xdd, 0x03, 0x22, 0xbe,
1832         0x77, 0x9c, 0x6a, 0x7d, 0xc8, 0x29, 0x41, 0x53,
1833         0xbb, 0xab, 0x6e, 0xa5, 0x00, 0xaf, 0x3b, 0x1d,
1834         0x76, 0x12, 0xac, 0x44, 0x5c, 0x7d, 0xd2, 0x3b,
1835         0x3a, 0x95, 0xb0, 0xa9, 0x4f, 0x27, 0x76, 0x17,
1836 };
1837
1838 /*
1839  * IV method encblkno8, blkno 3.
1840  */
1841 static const uint8_t bf_cbc_448_encblkno8_vec3_ctxt[SECSIZE] = {
1842         0x8e, 0xc4, 0x56, 0x64, 0x1e, 0x2a, 0x0d, 0x60,
1843         0x54, 0x5c, 0xcd, 0xe0, 0x6d, 0xa7, 0x4c, 0x30,
1844         0x7e, 0x85, 0x21, 0xdf, 0xaa, 0xb2, 0x32, 0xde,
1845         0xc0, 0xc6, 0x56, 0xe0, 0x43, 0xc2, 0x3e, 0x6c,
1846         0x8c, 0x62, 0x35, 0xaa, 0xf9, 0xba, 0xc9, 0x52,
1847         0x38, 0x72, 0x06, 0xcc, 0x02, 0xa2, 0xb8, 0x85,
1848         0xf7, 0xcc, 0xe6, 0x8c, 0x86, 0x8f, 0x9c, 0xd6,
1849         0x1f, 0xf8, 0x24, 0x9d, 0xca, 0xe8, 0xed, 0x3c,
1850         0x80, 0x0b, 0xaf, 0x0c, 0x78, 0x4f, 0x5b, 0x2a,
1851         0x0f, 0xfe, 0xe5, 0xe6, 0x12, 0x8a, 0xff, 0xc7,
1852         0x6a, 0x97, 0xd9, 0xcb, 0xc8, 0x6a, 0x83, 0x12,
1853         0xa1, 0x12, 0x84, 0xc8, 0x72, 0x1c, 0xb7, 0x68,
1854         0x23, 0x24, 0xff, 0x5a, 0x78, 0x99, 0x9d, 0xb8,
1855         0x03, 0x70, 0x0a, 0x09, 0xa1, 0x3d, 0xfe, 0xe0,
1856         0xc5, 0x1b, 0xea, 0x58, 0xbc, 0x52, 0x70, 0xa2,
1857         0x4e, 0xcc, 0x43, 0xfb, 0xb7, 0xc4, 0xbd, 0xb6,
1858         0xa9, 0x1e, 0xff, 0xf6, 0x69, 0xaa, 0xab, 0xa4,
1859         0xd7, 0x07, 0x0d, 0xda, 0x41, 0x4b, 0xe3, 0xa5,
1860         0xef, 0x94, 0x9f, 0xb4, 0xd8, 0xd1, 0x41, 0xd0,
1861         0x9e, 0xa0, 0x0a, 0x70, 0xdb, 0xb8, 0x5e, 0x27,
1862         0xc6, 0x08, 0x38, 0x6a, 0x31, 0xe3, 0xa0, 0xd6,
1863         0x90, 0xad, 0x19, 0x0c, 0x7e, 0x1d, 0x21, 0xc8,
1864         0x66, 0x30, 0x73, 0x8e, 0x06, 0x97, 0xec, 0xc6,
1865         0xfe, 0x5c, 0xc6, 0xc0, 0xd1, 0x5c, 0x5f, 0xf8,
1866         0x01, 0xb3, 0xac, 0x18, 0x66, 0x1e, 0x04, 0xaf,
1867         0xa7, 0xd3, 0x6d, 0x10, 0x74, 0xa1, 0x9a, 0x36,
1868         0x10, 0xa0, 0xd6, 0x28, 0x61, 0x93, 0x98, 0x14,
1869         0x67, 0x6f, 0x7d, 0x52, 0x86, 0x48, 0x17, 0x99,
1870         0x53, 0xa3, 0xee, 0xe5, 0x93, 0xf6, 0x80, 0xe1,
1871         0x52, 0xf0, 0x39, 0x48, 0x5c, 0x20, 0x05, 0xd9,
1872         0xae, 0xa2, 0xe3, 0x25, 0x4e, 0x60, 0x84, 0xf8,
1873         0xad, 0xd6, 0xf6, 0x95, 0x8e, 0x95, 0xd0, 0x49,
1874         0x1c, 0x65, 0xd0, 0xc8, 0xa5, 0x26, 0xc0, 0xdf,
1875         0x32, 0xbe, 0xbc, 0xb7, 0x6d, 0xe5, 0x5e, 0x6d,
1876         0x38, 0x7d, 0x03, 0xd5, 0x94, 0x7a, 0x14, 0x2b,
1877         0x02, 0xe0, 0x09, 0x00, 0x50, 0xf1, 0x52, 0x69,
1878         0x06, 0x33, 0x4b, 0x5b, 0xa2, 0xbc, 0x2e, 0xa9,
1879         0x1a, 0xb7, 0xca, 0xa8, 0xb4, 0xa2, 0x5b, 0xcd,
1880         0x35, 0xe4, 0x03, 0xdd, 0x8f, 0x66, 0x3a, 0x34,
1881         0xc6, 0x2a, 0xd6, 0x90, 0xa2, 0xef, 0xe2, 0xfa,
1882         0x7c, 0xc1, 0x6c, 0x21, 0xd0, 0xfd, 0x96, 0x92,
1883         0xb5, 0x99, 0xe4, 0xb7, 0x66, 0xd4, 0xf2, 0x50,
1884         0x22, 0xef, 0x66, 0x1e, 0x5f, 0x62, 0xd1, 0x77,
1885         0x87, 0x52, 0xed, 0x40, 0x69, 0xfd, 0xab, 0x66,
1886         0xe4, 0x0e, 0x2b, 0xa8, 0x67, 0x4c, 0x6d, 0xce,
1887         0xb0, 0x61, 0x8e, 0x6c, 0xc5, 0x34, 0xab, 0x03,
1888         0x3e, 0x8a, 0xe5, 0x2b, 0xa2, 0xa4, 0x04, 0xa2,
1889         0x01, 0x81, 0x79, 0x72, 0xfc, 0x19, 0xbd, 0x38,
1890         0x39, 0xee, 0xb3, 0x95, 0xc5, 0x6f, 0xed, 0xaa,
1891         0x6e, 0xca, 0xeb, 0xc6, 0xaf, 0xeb, 0x76, 0xb4,
1892         0xd7, 0xc3, 0x1b, 0x65, 0x99, 0xc6, 0xa3, 0xe8,
1893         0x96, 0x5e, 0xc1, 0x0c, 0xd2, 0xf8, 0x65, 0xcf,
1894         0x42, 0xc5, 0x8f, 0x52, 0x5d, 0x90, 0x21, 0x55,
1895         0xec, 0x9d, 0x93, 0x81, 0xb7, 0x9a, 0xa4, 0x35,
1896         0xe7, 0xef, 0xef, 0x2d, 0x4c, 0x02, 0xf7, 0x2b,
1897         0x26, 0xe0, 0x9e, 0x3a, 0x31, 0xfd, 0x94, 0xb3,
1898         0xa7, 0x8a, 0x93, 0xf3, 0xe1, 0x77, 0x79, 0xdf,
1899         0xcf, 0x1f, 0x99, 0x55, 0x20, 0xc3, 0x7d, 0x8a,
1900         0xbc, 0xff, 0x63, 0x64, 0x87, 0xa9, 0x42, 0x63,
1901         0xc9, 0x67, 0x7e, 0x51, 0x99, 0x9c, 0xcb, 0x47,
1902         0xa9, 0xc8, 0x5e, 0x83, 0x87, 0x55, 0x7c, 0x45,
1903         0x3a, 0xb4, 0xfe, 0x97, 0x24, 0x17, 0x1d, 0x5e,
1904         0xdf, 0xe0, 0xe8, 0x17, 0xa6, 0x31, 0x99, 0xeb,
1905         0xb7, 0xb5, 0xd5, 0xd7, 0x7c, 0x2f, 0x22, 0x26,
1906 };
1907
1908 const struct testvec bf_cbc_448_8_vectors[] = {
1909         {
1910                 .blkno = 0,
1911                 .ptxt = bf_cbc_ptxt,
1912                 .ctxt = bf_cbc_448_encblkno8_vec0_ctxt,
1913         },
1914         {
1915                 .blkno = 1,
1916                 .ptxt = bf_cbc_ptxt,
1917                 .ctxt = bf_cbc_448_encblkno8_vec1_ctxt,
1918         },
1919         {
1920                 .blkno = 2,
1921                 .ptxt = bf_cbc_ptxt,
1922                 .ctxt = bf_cbc_448_encblkno8_vec2_ctxt,
1923         },
1924         {
1925                 .blkno = 3,
1926                 .ptxt = bf_cbc_ptxt,
1927                 .ctxt = bf_cbc_448_encblkno8_vec3_ctxt,
1928         },
1929 };
1930
1931 static int
1932 open_disk(const char *devpath, const char *imgpath, size_t size)
1933 {
1934         int fd;
1935
1936         fd = open(imgpath, O_CREAT | O_RDWR | O_TRUNC, 0600);
1937         if (fd < 0)
1938                 return -1;
1939
1940         if (ftruncate(fd, size) < 0)
1941                 goto fail;
1942
1943         if (rump_pub_etfs_register_withsize(devpath,
1944             imgpath, RUMP_ETFS_BLK, 0, size) < 0) {
1945                 goto fail;
1946         }
1947
1948         unlink(imgpath);
1949         return fd;
1950 fail:
1951         close(fd);
1952         unlink(imgpath);
1953         return -1;
1954 }
1955
1956 static int
1957 open_cgd(int devno)
1958 {
1959         char devpath[32];
1960
1961         sprintf(devpath, "/dev/rcgd%d%c", devno, getrawpartition() + 'a');
1962
1963         return rump_sys_open(devpath, O_RDWR, 0);
1964 }
1965
1966 static int
1967 configure_cgd(int fd, const char *dkpath, const char *alg,
1968     const char *ivmethod, const char *key, size_t keylen)
1969 {
1970         struct cgd_ioctl ci;
1971
1972         memset(&ci, 0, sizeof(ci));
1973         ci.ci_disk = dkpath;
1974         ci.ci_alg = alg;
1975         ci.ci_ivmethod = ivmethod;
1976         ci.ci_keylen = 8 * keylen - 8; /* Exclude the NUL terminator. */
1977         ci.ci_key = key;
1978         ci.ci_blocksize = 64;
1979
1980         return rump_sys_ioctl(fd, CGDIOCSET, &ci);
1981 }
1982
1983 static int
1984 unconfigure_cgd(int fd)
1985 {
1986         struct cgd_ioctl ci;
1987
1988         return rump_sys_ioctl(fd, CGDIOCCLR, &ci);
1989 }
1990
1991 static int
1992 write_testvec(int cgdfd, const struct testvec *tv)
1993 {
1994
1995         if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
1996                 return -1;
1997
1998         if (rump_sys_write(cgdfd, tv->ptxt, SECSIZE) != SECSIZE)
1999                 return -1;
2000
2001         return 0;
2002 }
2003
2004 static int
2005 read_testvec(int cgdfd, const struct testvec *tv)
2006 {
2007         char *buf;
2008         int res = -1;
2009
2010         buf = malloc(SECSIZE);
2011         if (buf == NULL)
2012                 return -1;
2013
2014         if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
2015                 goto fail;
2016
2017         if (rump_sys_read(cgdfd, buf, SECSIZE) != SECSIZE)
2018                 goto fail;
2019
2020         res = memcmp(buf, tv->ptxt, SECSIZE);
2021 fail:
2022         free(buf);
2023         return res;
2024 }
2025
2026 static int
2027 check_testvec(int dkfd, const struct testvec *tv)
2028 {
2029         char *buf;
2030         int res = -1;
2031
2032         buf = malloc(SECSIZE);
2033         if (buf == NULL)
2034                 return -1;
2035
2036         if (lseek(dkfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
2037                 goto fail;
2038
2039         if (read(dkfd, buf, SECSIZE) != SECSIZE)
2040                 goto fail;
2041
2042         res = memcmp(buf, tv->ctxt, SECSIZE);
2043 fail:
2044         free(buf);
2045         return res;
2046 }
2047
2048 ATF_TC(cgd_bf_cbc_128_encblkno1);
2049 ATF_TC_HEAD(cgd_bf_cbc_128_encblkno1, tc)
2050 {
2051         atf_tc_set_md_var(tc, "descr",
2052             "Test blowfish-cbc with 128 bits key, ivmethod encblkno1");
2053 }
2054
2055 ATF_TC_BODY(cgd_bf_cbc_128_encblkno1, tc)
2056 {
2057         const char imgpath[] = "blowfish-cbc-128-encblkno1.img";
2058         const char *dkpath = "/dev/dk";
2059         const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */
2060         int dkfd, cgdfd;
2061
2062         rump_init();
2063
2064         RL(dkfd = open_disk(dkpath, imgpath, dksize));
2065
2066         RL(cgdfd = open_cgd(0));
2067         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno1",
2068             bf_cbc_128_key, sizeof(bf_cbc_128_key)));
2069
2070         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_128_1_vectors[0]), 0);
2071         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_128_1_vectors[1]), 0);
2072         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_128_1_vectors[2]), 0);
2073         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_128_1_vectors[3]), 0);
2074
2075         RL(unconfigure_cgd(cgdfd));
2076         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno1",
2077             bf_cbc_128_key, sizeof(bf_cbc_128_key)));
2078
2079         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_128_1_vectors[0]), 0);
2080         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_128_1_vectors[1]), 0);
2081         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_128_1_vectors[2]), 0);
2082         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_128_1_vectors[3]), 0);
2083
2084         RL(unconfigure_cgd(cgdfd));
2085         RL(rump_sys_close(cgdfd));
2086
2087         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_128_1_vectors[0]), 0);
2088         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_128_1_vectors[1]), 0);
2089         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_128_1_vectors[2]), 0);
2090         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_128_1_vectors[3]), 0);
2091
2092         RL(close(dkfd));
2093 }
2094
2095 ATF_TC(cgd_bf_cbc_128_encblkno8);
2096 ATF_TC_HEAD(cgd_bf_cbc_128_encblkno8, tc)
2097 {
2098         atf_tc_set_md_var(tc, "descr",
2099             "Test blowfish-cbc with 128 bits key, ivmethod encblkno8");
2100 }
2101
2102 ATF_TC_BODY(cgd_bf_cbc_128_encblkno8, tc)
2103 {
2104         const char imgpath[] = "blowfish-cbc-128-encblkno8.img";
2105         const char *dkpath = "/dev/dk";
2106         const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */
2107         int dkfd, cgdfd;
2108
2109         rump_init();
2110
2111         RL(dkfd = open_disk(dkpath, imgpath, dksize));
2112
2113         RL(cgdfd = open_cgd(0));
2114         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno8",
2115             bf_cbc_128_key, sizeof(bf_cbc_128_key)));
2116
2117         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_128_8_vectors[0]), 0);
2118         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_128_8_vectors[1]), 0);
2119         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_128_8_vectors[2]), 0);
2120         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_128_8_vectors[3]), 0);
2121
2122         RL(unconfigure_cgd(cgdfd));
2123         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno8",
2124             bf_cbc_128_key, sizeof(bf_cbc_128_key)));
2125
2126         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_128_8_vectors[0]), 0);
2127         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_128_8_vectors[1]), 0);
2128         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_128_8_vectors[2]), 0);
2129         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_128_8_vectors[3]), 0);
2130
2131         RL(unconfigure_cgd(cgdfd));
2132         RL(rump_sys_close(cgdfd));
2133
2134         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_128_8_vectors[0]), 0);
2135         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_128_8_vectors[1]), 0);
2136         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_128_8_vectors[2]), 0);
2137         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_128_8_vectors[3]), 0);
2138
2139         RL(close(dkfd));
2140 }
2141
2142 ATF_TC(cgd_bf_cbc_256_encblkno1);
2143 ATF_TC_HEAD(cgd_bf_cbc_256_encblkno1, tc)
2144 {
2145         atf_tc_set_md_var(tc, "descr",
2146             "Test blowfish-cbc with 256 bits key, ivmethod encblkno1");
2147 }
2148
2149 ATF_TC_BODY(cgd_bf_cbc_256_encblkno1, tc)
2150 {
2151         const char imgpath[] = "blowfish-cbc-256-encblkno1.img";
2152         const char *dkpath = "/dev/dk";
2153         const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */
2154         int dkfd, cgdfd;
2155
2156         rump_init();
2157
2158         RL(dkfd = open_disk(dkpath, imgpath, dksize));
2159
2160         RL(cgdfd = open_cgd(0));
2161         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno1",
2162             bf_cbc_256_key, sizeof(bf_cbc_256_key)));
2163
2164         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_256_1_vectors[0]), 0);
2165         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_256_1_vectors[1]), 0);
2166         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_256_1_vectors[2]), 0);
2167         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_256_1_vectors[3]), 0);
2168
2169         RL(unconfigure_cgd(cgdfd));
2170         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno1",
2171             bf_cbc_256_key, sizeof(bf_cbc_256_key)));
2172
2173         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_256_1_vectors[0]), 0);
2174         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_256_1_vectors[1]), 0);
2175         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_256_1_vectors[2]), 0);
2176         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_256_1_vectors[3]), 0);
2177
2178         RL(unconfigure_cgd(cgdfd));
2179         RL(rump_sys_close(cgdfd));
2180
2181         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_256_1_vectors[0]), 0);
2182         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_256_1_vectors[1]), 0);
2183         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_256_1_vectors[2]), 0);
2184         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_256_1_vectors[3]), 0);
2185
2186         RL(close(dkfd));
2187 }
2188
2189 ATF_TC(cgd_bf_cbc_256_encblkno8);
2190 ATF_TC_HEAD(cgd_bf_cbc_256_encblkno8, tc)
2191 {
2192         atf_tc_set_md_var(tc, "descr",
2193             "Test blowfish-cbc with 256 bits key, ivmethod encblkno8");
2194 }
2195
2196 ATF_TC_BODY(cgd_bf_cbc_256_encblkno8, tc)
2197 {
2198         const char imgpath[] = "blowfish-cbc-256-encblkno8.img";
2199         const char *dkpath = "/dev/dk";
2200         const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */
2201         int dkfd, cgdfd;
2202
2203         rump_init();
2204
2205         RL(dkfd = open_disk(dkpath, imgpath, dksize));
2206
2207         RL(cgdfd = open_cgd(0));
2208         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno8",
2209             bf_cbc_256_key, sizeof(bf_cbc_256_key)));
2210
2211         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_256_8_vectors[0]), 0);
2212         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_256_8_vectors[1]), 0);
2213         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_256_8_vectors[2]), 0);
2214         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_256_8_vectors[3]), 0);
2215
2216         RL(unconfigure_cgd(cgdfd));
2217         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno8",
2218             bf_cbc_256_key, sizeof(bf_cbc_256_key)));
2219
2220         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_256_8_vectors[0]), 0);
2221         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_256_8_vectors[1]), 0);
2222         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_256_8_vectors[2]), 0);
2223         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_256_8_vectors[3]), 0);
2224
2225         RL(unconfigure_cgd(cgdfd));
2226         RL(rump_sys_close(cgdfd));
2227
2228         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_256_8_vectors[0]), 0);
2229         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_256_8_vectors[1]), 0);
2230         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_256_8_vectors[2]), 0);
2231         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_256_8_vectors[3]), 0);
2232
2233         RL(close(dkfd));
2234 }
2235
2236 ATF_TC(cgd_bf_cbc_448_encblkno1);
2237 ATF_TC_HEAD(cgd_bf_cbc_448_encblkno1, tc)
2238 {
2239         atf_tc_set_md_var(tc, "descr",
2240             "Test blowfish-cbc with 448 bits key, ivmethod encblkno1");
2241 }
2242
2243 ATF_TC_BODY(cgd_bf_cbc_448_encblkno1, tc)
2244 {
2245         const char imgpath[] = "blowfish-cbc-448-encblkno1.img";
2246         const char *dkpath = "/dev/dk";
2247         const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */
2248         int dkfd, cgdfd;
2249
2250         rump_init();
2251
2252         RL(dkfd = open_disk(dkpath, imgpath, dksize));
2253
2254         RL(cgdfd = open_cgd(0));
2255         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno1",
2256             bf_cbc_448_key, sizeof(bf_cbc_448_key)));
2257
2258         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_448_1_vectors[0]), 0);
2259         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_448_1_vectors[1]), 0);
2260         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_448_1_vectors[2]), 0);
2261         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_448_1_vectors[3]), 0);
2262
2263         RL(unconfigure_cgd(cgdfd));
2264         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno1",
2265             bf_cbc_448_key, sizeof(bf_cbc_448_key)));
2266
2267         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_448_1_vectors[0]), 0);
2268         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_448_1_vectors[1]), 0);
2269         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_448_1_vectors[2]), 0);
2270         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_448_1_vectors[3]), 0);
2271
2272         RL(unconfigure_cgd(cgdfd));
2273         RL(rump_sys_close(cgdfd));
2274
2275         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_448_1_vectors[0]), 0);
2276         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_448_1_vectors[1]), 0);
2277         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_448_1_vectors[2]), 0);
2278         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_448_1_vectors[3]), 0);
2279
2280         RL(close(dkfd));
2281 }
2282
2283 ATF_TC(cgd_bf_cbc_448_encblkno8);
2284 ATF_TC_HEAD(cgd_bf_cbc_448_encblkno8, tc)
2285 {
2286         atf_tc_set_md_var(tc, "descr",
2287             "Test blowfish-cbc with 448 bits key, ivmethod encblkno8");
2288 }
2289
2290 ATF_TC_BODY(cgd_bf_cbc_448_encblkno8, tc)
2291 {
2292         const char imgpath[] = "blowfish-cbc-448-encblkno8.img";
2293         const char *dkpath = "/dev/dk";
2294         const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */
2295         int dkfd, cgdfd;
2296
2297         rump_init();
2298
2299         RL(dkfd = open_disk(dkpath, imgpath, dksize));
2300
2301         RL(cgdfd = open_cgd(0));
2302         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno8",
2303             bf_cbc_448_key, sizeof(bf_cbc_448_key)));
2304
2305         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_448_8_vectors[0]), 0);
2306         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_448_8_vectors[1]), 0);
2307         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_448_8_vectors[2]), 0);
2308         ATF_CHECK_EQ(write_testvec(cgdfd, &bf_cbc_448_8_vectors[3]), 0);
2309
2310         RL(unconfigure_cgd(cgdfd));
2311         RL(configure_cgd(cgdfd, dkpath, "blowfish-cbc", "encblkno8",
2312             bf_cbc_448_key, sizeof(bf_cbc_448_key)));
2313
2314         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_448_8_vectors[0]), 0);
2315         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_448_8_vectors[1]), 0);
2316         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_448_8_vectors[2]), 0);
2317         ATF_CHECK_EQ(read_testvec(cgdfd, &bf_cbc_448_8_vectors[3]), 0);
2318
2319         RL(unconfigure_cgd(cgdfd));
2320         RL(rump_sys_close(cgdfd));
2321
2322         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_448_8_vectors[0]), 0);
2323         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_448_8_vectors[1]), 0);
2324         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_448_8_vectors[2]), 0);
2325         ATF_CHECK_EQ(check_testvec(dkfd, &bf_cbc_448_8_vectors[3]), 0);
2326
2327         RL(close(dkfd));
2328 }
2329
2330 ATF_TP_ADD_TCS(tp)
2331 {
2332
2333         ATF_TP_ADD_TC(tp, cgd_bf_cbc_128_encblkno1);
2334         ATF_TP_ADD_TC(tp, cgd_bf_cbc_128_encblkno8);
2335         ATF_TP_ADD_TC(tp, cgd_bf_cbc_256_encblkno1);
2336         ATF_TP_ADD_TC(tp, cgd_bf_cbc_256_encblkno8);
2337         ATF_TP_ADD_TC(tp, cgd_bf_cbc_448_encblkno1);
2338         ATF_TP_ADD_TC(tp, cgd_bf_cbc_448_encblkno8);
2339
2340         return atf_no_error();
2341 }