t_cgd_aes.c revision 1.1 1 /* $NetBSD: t_cgd_aes.c,v 1.1 2016/11/06 10:54:42 alnsn Exp $ */
2 /*-
3 * Copyright (c) 2016 The NetBSD Foundation, Inc.
4 * Copyright (c) 2007 The Institute of Electrical and Electronics Engineers, Inc
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Alexander Nasonov.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 *
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in
18 * the documentation and/or other materials provided with the
19 * distribution.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
27 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
31 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 */
34
35 #include <sys/types.h>
36 #include <sys/ioctl.h>
37 #include <sys/sysctl.h>
38
39 #include <atf-c.h>
40 #include <fcntl.h>
41 #include <stdio.h>
42 #include <stdlib.h>
43 #include <string.h>
44 #include <unistd.h>
45 #include <util.h>
46
47 #include <dev/cgdvar.h>
48
49 #include <rump/rump.h>
50 #include <rump/rump_syscalls.h>
51
52 #include "../../h_macros.h"
53
54 #define SECSIZE 512
55
56 struct testvec {
57 unsigned int blkno;
58 const uint8_t *ptxt; /* PlainText */
59 const uint8_t *ctxt; /* CipherText */
60 };
61
62 /*
63 * 256 bits key from IEEE 1619/D16, NUL terminated.
64 */
65 static const char aes_xts_256_key[33] = {
66 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
67 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
68 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
69 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
70 0
71 };
72
73 /*
74 * 512 bits key from IEEE 1619/D16, NUL terminated.
75 */
76 static const char aes_xts_512_key[65] = {
77 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45,
78 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26,
79 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69,
80 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27,
81 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93,
82 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95,
83 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37,
84 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92,
85 0
86 };
87
88 /*
89 * Vector 4 from IEEE 1619/D16, blkno 0.
90 */
91 static const uint8_t aes_xts_256_vec4_ptxt[SECSIZE] = {
92 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
93 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
94 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
95 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
96 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
97 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
98 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
99 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
100 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
101 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
102 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
103 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
104 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
105 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
106 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
107 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
108 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
109 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
110 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
111 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
112 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
113 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
114 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
115 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
116 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
117 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
118 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
119 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
120 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
121 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
122 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
123 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
124 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
125 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
126 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
127 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
128 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
129 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
130 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
131 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
132 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
133 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
134 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
135 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
136 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
137 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
138 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
139 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
140 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
141 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
142 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
143 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
144 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
145 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
146 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
147 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
148 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
149 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
150 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
151 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
152 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
153 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
154 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
155 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
156 };
157
158 static const uint8_t aes_xts_256_vec4_ctxt[SECSIZE] = {
159 0x27, 0xa7, 0x47, 0x9b, 0xef, 0xa1, 0xd4, 0x76,
160 0x48, 0x9f, 0x30, 0x8c, 0xd4, 0xcf, 0xa6, 0xe2,
161 0xa9, 0x6e, 0x4b, 0xbe, 0x32, 0x08, 0xff, 0x25,
162 0x28, 0x7d, 0xd3, 0x81, 0x96, 0x16, 0xe8, 0x9c,
163 0xc7, 0x8c, 0xf7, 0xf5, 0xe5, 0x43, 0x44, 0x5f,
164 0x83, 0x33, 0xd8, 0xfa, 0x7f, 0x56, 0x00, 0x00,
165 0x05, 0x27, 0x9f, 0xa5, 0xd8, 0xb5, 0xe4, 0xad,
166 0x40, 0xe7, 0x36, 0xdd, 0xb4, 0xd3, 0x54, 0x12,
167 0x32, 0x80, 0x63, 0xfd, 0x2a, 0xab, 0x53, 0xe5,
168 0xea, 0x1e, 0x0a, 0x9f, 0x33, 0x25, 0x00, 0xa5,
169 0xdf, 0x94, 0x87, 0xd0, 0x7a, 0x5c, 0x92, 0xcc,
170 0x51, 0x2c, 0x88, 0x66, 0xc7, 0xe8, 0x60, 0xce,
171 0x93, 0xfd, 0xf1, 0x66, 0xa2, 0x49, 0x12, 0xb4,
172 0x22, 0x97, 0x61, 0x46, 0xae, 0x20, 0xce, 0x84,
173 0x6b, 0xb7, 0xdc, 0x9b, 0xa9, 0x4a, 0x76, 0x7a,
174 0xae, 0xf2, 0x0c, 0x0d, 0x61, 0xad, 0x02, 0x65,
175 0x5e, 0xa9, 0x2d, 0xc4, 0xc4, 0xe4, 0x1a, 0x89,
176 0x52, 0xc6, 0x51, 0xd3, 0x31, 0x74, 0xbe, 0x51,
177 0xa1, 0x0c, 0x42, 0x11, 0x10, 0xe6, 0xd8, 0x15,
178 0x88, 0xed, 0xe8, 0x21, 0x03, 0xa2, 0x52, 0xd8,
179 0xa7, 0x50, 0xe8, 0x76, 0x8d, 0xef, 0xff, 0xed,
180 0x91, 0x22, 0x81, 0x0a, 0xae, 0xb9, 0x9f, 0x91,
181 0x72, 0xaf, 0x82, 0xb6, 0x04, 0xdc, 0x4b, 0x8e,
182 0x51, 0xbc, 0xb0, 0x82, 0x35, 0xa6, 0xf4, 0x34,
183 0x13, 0x32, 0xe4, 0xca, 0x60, 0x48, 0x2a, 0x4b,
184 0xa1, 0xa0, 0x3b, 0x3e, 0x65, 0x00, 0x8f, 0xc5,
185 0xda, 0x76, 0xb7, 0x0b, 0xf1, 0x69, 0x0d, 0xb4,
186 0xea, 0xe2, 0x9c, 0x5f, 0x1b, 0xad, 0xd0, 0x3c,
187 0x5c, 0xcf, 0x2a, 0x55, 0xd7, 0x05, 0xdd, 0xcd,
188 0x86, 0xd4, 0x49, 0x51, 0x1c, 0xeb, 0x7e, 0xc3,
189 0x0b, 0xf1, 0x2b, 0x1f, 0xa3, 0x5b, 0x91, 0x3f,
190 0x9f, 0x74, 0x7a, 0x8a, 0xfd, 0x1b, 0x13, 0x0e,
191 0x94, 0xbf, 0xf9, 0x4e, 0xff, 0xd0, 0x1a, 0x91,
192 0x73, 0x5c, 0xa1, 0x72, 0x6a, 0xcd, 0x0b, 0x19,
193 0x7c, 0x4e, 0x5b, 0x03, 0x39, 0x36, 0x97, 0xe1,
194 0x26, 0x82, 0x6f, 0xb6, 0xbb, 0xde, 0x8e, 0xcc,
195 0x1e, 0x08, 0x29, 0x85, 0x16, 0xe2, 0xc9, 0xed,
196 0x03, 0xff, 0x3c, 0x1b, 0x78, 0x60, 0xf6, 0xde,
197 0x76, 0xd4, 0xce, 0xcd, 0x94, 0xc8, 0x11, 0x98,
198 0x55, 0xef, 0x52, 0x97, 0xca, 0x67, 0xe9, 0xf3,
199 0xe7, 0xff, 0x72, 0xb1, 0xe9, 0x97, 0x85, 0xca,
200 0x0a, 0x7e, 0x77, 0x20, 0xc5, 0xb3, 0x6d, 0xc6,
201 0xd7, 0x2c, 0xac, 0x95, 0x74, 0xc8, 0xcb, 0xbc,
202 0x2f, 0x80, 0x1e, 0x23, 0xe5, 0x6f, 0xd3, 0x44,
203 0xb0, 0x7f, 0x22, 0x15, 0x4b, 0xeb, 0xa0, 0xf0,
204 0x8c, 0xe8, 0x89, 0x1e, 0x64, 0x3e, 0xd9, 0x95,
205 0xc9, 0x4d, 0x9a, 0x69, 0xc9, 0xf1, 0xb5, 0xf4,
206 0x99, 0x02, 0x7a, 0x78, 0x57, 0x2a, 0xee, 0xbd,
207 0x74, 0xd2, 0x0c, 0xc3, 0x98, 0x81, 0xc2, 0x13,
208 0xee, 0x77, 0x0b, 0x10, 0x10, 0xe4, 0xbe, 0xa7,
209 0x18, 0x84, 0x69, 0x77, 0xae, 0x11, 0x9f, 0x7a,
210 0x02, 0x3a, 0xb5, 0x8c, 0xca, 0x0a, 0xd7, 0x52,
211 0xaf, 0xe6, 0x56, 0xbb, 0x3c, 0x17, 0x25, 0x6a,
212 0x9f, 0x6e, 0x9b, 0xf1, 0x9f, 0xdd, 0x5a, 0x38,
213 0xfc, 0x82, 0xbb, 0xe8, 0x72, 0xc5, 0x53, 0x9e,
214 0xdb, 0x60, 0x9e, 0xf4, 0xf7, 0x9c, 0x20, 0x3e,
215 0xbb, 0x14, 0x0f, 0x2e, 0x58, 0x3c, 0xb2, 0xad,
216 0x15, 0xb4, 0xaa, 0x5b, 0x65, 0x50, 0x16, 0xa8,
217 0x44, 0x92, 0x77, 0xdb, 0xd4, 0x77, 0xef, 0x2c,
218 0x8d, 0x6c, 0x01, 0x7d, 0xb7, 0x38, 0xb1, 0x8d,
219 0xeb, 0x4a, 0x42, 0x7d, 0x19, 0x23, 0xce, 0x3f,
220 0xf2, 0x62, 0x73, 0x57, 0x79, 0xa4, 0x18, 0xf2,
221 0x0a, 0x28, 0x2d, 0xf9, 0x20, 0x14, 0x7b, 0xea,
222 0xbe, 0x42, 0x1e, 0xe5, 0x31, 0x9d, 0x05, 0x68,
223 };
224
225 /*
226 * Vector 5 from IEEE 1619/D16, blkno 1.
227 */
228 static const uint8_t aes_xts_256_vec5_ptxt[SECSIZE] = {
229 0x27, 0xa7, 0x47, 0x9b, 0xef, 0xa1, 0xd4, 0x76,
230 0x48, 0x9f, 0x30, 0x8c, 0xd4, 0xcf, 0xa6, 0xe2,
231 0xa9, 0x6e, 0x4b, 0xbe, 0x32, 0x08, 0xff, 0x25,
232 0x28, 0x7d, 0xd3, 0x81, 0x96, 0x16, 0xe8, 0x9c,
233 0xc7, 0x8c, 0xf7, 0xf5, 0xe5, 0x43, 0x44, 0x5f,
234 0x83, 0x33, 0xd8, 0xfa, 0x7f, 0x56, 0x00, 0x00,
235 0x05, 0x27, 0x9f, 0xa5, 0xd8, 0xb5, 0xe4, 0xad,
236 0x40, 0xe7, 0x36, 0xdd, 0xb4, 0xd3, 0x54, 0x12,
237 0x32, 0x80, 0x63, 0xfd, 0x2a, 0xab, 0x53, 0xe5,
238 0xea, 0x1e, 0x0a, 0x9f, 0x33, 0x25, 0x00, 0xa5,
239 0xdf, 0x94, 0x87, 0xd0, 0x7a, 0x5c, 0x92, 0xcc,
240 0x51, 0x2c, 0x88, 0x66, 0xc7, 0xe8, 0x60, 0xce,
241 0x93, 0xfd, 0xf1, 0x66, 0xa2, 0x49, 0x12, 0xb4,
242 0x22, 0x97, 0x61, 0x46, 0xae, 0x20, 0xce, 0x84,
243 0x6b, 0xb7, 0xdc, 0x9b, 0xa9, 0x4a, 0x76, 0x7a,
244 0xae, 0xf2, 0x0c, 0x0d, 0x61, 0xad, 0x02, 0x65,
245 0x5e, 0xa9, 0x2d, 0xc4, 0xc4, 0xe4, 0x1a, 0x89,
246 0x52, 0xc6, 0x51, 0xd3, 0x31, 0x74, 0xbe, 0x51,
247 0xa1, 0x0c, 0x42, 0x11, 0x10, 0xe6, 0xd8, 0x15,
248 0x88, 0xed, 0xe8, 0x21, 0x03, 0xa2, 0x52, 0xd8,
249 0xa7, 0x50, 0xe8, 0x76, 0x8d, 0xef, 0xff, 0xed,
250 0x91, 0x22, 0x81, 0x0a, 0xae, 0xb9, 0x9f, 0x91,
251 0x72, 0xaf, 0x82, 0xb6, 0x04, 0xdc, 0x4b, 0x8e,
252 0x51, 0xbc, 0xb0, 0x82, 0x35, 0xa6, 0xf4, 0x34,
253 0x13, 0x32, 0xe4, 0xca, 0x60, 0x48, 0x2a, 0x4b,
254 0xa1, 0xa0, 0x3b, 0x3e, 0x65, 0x00, 0x8f, 0xc5,
255 0xda, 0x76, 0xb7, 0x0b, 0xf1, 0x69, 0x0d, 0xb4,
256 0xea, 0xe2, 0x9c, 0x5f, 0x1b, 0xad, 0xd0, 0x3c,
257 0x5c, 0xcf, 0x2a, 0x55, 0xd7, 0x05, 0xdd, 0xcd,
258 0x86, 0xd4, 0x49, 0x51, 0x1c, 0xeb, 0x7e, 0xc3,
259 0x0b, 0xf1, 0x2b, 0x1f, 0xa3, 0x5b, 0x91, 0x3f,
260 0x9f, 0x74, 0x7a, 0x8a, 0xfd, 0x1b, 0x13, 0x0e,
261 0x94, 0xbf, 0xf9, 0x4e, 0xff, 0xd0, 0x1a, 0x91,
262 0x73, 0x5c, 0xa1, 0x72, 0x6a, 0xcd, 0x0b, 0x19,
263 0x7c, 0x4e, 0x5b, 0x03, 0x39, 0x36, 0x97, 0xe1,
264 0x26, 0x82, 0x6f, 0xb6, 0xbb, 0xde, 0x8e, 0xcc,
265 0x1e, 0x08, 0x29, 0x85, 0x16, 0xe2, 0xc9, 0xed,
266 0x03, 0xff, 0x3c, 0x1b, 0x78, 0x60, 0xf6, 0xde,
267 0x76, 0xd4, 0xce, 0xcd, 0x94, 0xc8, 0x11, 0x98,
268 0x55, 0xef, 0x52, 0x97, 0xca, 0x67, 0xe9, 0xf3,
269 0xe7, 0xff, 0x72, 0xb1, 0xe9, 0x97, 0x85, 0xca,
270 0x0a, 0x7e, 0x77, 0x20, 0xc5, 0xb3, 0x6d, 0xc6,
271 0xd7, 0x2c, 0xac, 0x95, 0x74, 0xc8, 0xcb, 0xbc,
272 0x2f, 0x80, 0x1e, 0x23, 0xe5, 0x6f, 0xd3, 0x44,
273 0xb0, 0x7f, 0x22, 0x15, 0x4b, 0xeb, 0xa0, 0xf0,
274 0x8c, 0xe8, 0x89, 0x1e, 0x64, 0x3e, 0xd9, 0x95,
275 0xc9, 0x4d, 0x9a, 0x69, 0xc9, 0xf1, 0xb5, 0xf4,
276 0x99, 0x02, 0x7a, 0x78, 0x57, 0x2a, 0xee, 0xbd,
277 0x74, 0xd2, 0x0c, 0xc3, 0x98, 0x81, 0xc2, 0x13,
278 0xee, 0x77, 0x0b, 0x10, 0x10, 0xe4, 0xbe, 0xa7,
279 0x18, 0x84, 0x69, 0x77, 0xae, 0x11, 0x9f, 0x7a,
280 0x02, 0x3a, 0xb5, 0x8c, 0xca, 0x0a, 0xd7, 0x52,
281 0xaf, 0xe6, 0x56, 0xbb, 0x3c, 0x17, 0x25, 0x6a,
282 0x9f, 0x6e, 0x9b, 0xf1, 0x9f, 0xdd, 0x5a, 0x38,
283 0xfc, 0x82, 0xbb, 0xe8, 0x72, 0xc5, 0x53, 0x9e,
284 0xdb, 0x60, 0x9e, 0xf4, 0xf7, 0x9c, 0x20, 0x3e,
285 0xbb, 0x14, 0x0f, 0x2e, 0x58, 0x3c, 0xb2, 0xad,
286 0x15, 0xb4, 0xaa, 0x5b, 0x65, 0x50, 0x16, 0xa8,
287 0x44, 0x92, 0x77, 0xdb, 0xd4, 0x77, 0xef, 0x2c,
288 0x8d, 0x6c, 0x01, 0x7d, 0xb7, 0x38, 0xb1, 0x8d,
289 0xeb, 0x4a, 0x42, 0x7d, 0x19, 0x23, 0xce, 0x3f,
290 0xf2, 0x62, 0x73, 0x57, 0x79, 0xa4, 0x18, 0xf2,
291 0x0a, 0x28, 0x2d, 0xf9, 0x20, 0x14, 0x7b, 0xea,
292 0xbe, 0x42, 0x1e, 0xe5, 0x31, 0x9d, 0x05, 0x68,
293 };
294
295 static const uint8_t aes_xts_256_vec5_ctxt[SECSIZE] = {
296 0x26, 0x4d, 0x3c, 0xa8, 0x51, 0x21, 0x94, 0xfe,
297 0xc3, 0x12, 0xc8, 0xc9, 0x89, 0x1f, 0x27, 0x9f,
298 0xef, 0xdd, 0x60, 0x8d, 0x0c, 0x02, 0x7b, 0x60,
299 0x48, 0x3a, 0x3f, 0xa8, 0x11, 0xd6, 0x5e, 0xe5,
300 0x9d, 0x52, 0xd9, 0xe4, 0x0e, 0xc5, 0x67, 0x2d,
301 0x81, 0x53, 0x2b, 0x38, 0xb6, 0xb0, 0x89, 0xce,
302 0x95, 0x1f, 0x0f, 0x9c, 0x35, 0x59, 0x0b, 0x8b,
303 0x97, 0x8d, 0x17, 0x52, 0x13, 0xf3, 0x29, 0xbb,
304 0x1c, 0x2f, 0xd3, 0x0f, 0x2f, 0x7f, 0x30, 0x49,
305 0x2a, 0x61, 0xa5, 0x32, 0xa7, 0x9f, 0x51, 0xd3,
306 0x6f, 0x5e, 0x31, 0xa7, 0xc9, 0xa1, 0x2c, 0x28,
307 0x60, 0x82, 0xff, 0x7d, 0x23, 0x94, 0xd1, 0x8f,
308 0x78, 0x3e, 0x1a, 0x8e, 0x72, 0xc7, 0x22, 0xca,
309 0xaa, 0xa5, 0x2d, 0x8f, 0x06, 0x56, 0x57, 0xd2,
310 0x63, 0x1f, 0xd2, 0x5b, 0xfd, 0x8e, 0x5b, 0xaa,
311 0xd6, 0xe5, 0x27, 0xd7, 0x63, 0x51, 0x75, 0x01,
312 0xc6, 0x8c, 0x5e, 0xdc, 0x3c, 0xdd, 0x55, 0x43,
313 0x5c, 0x53, 0x2d, 0x71, 0x25, 0xc8, 0x61, 0x4d,
314 0xee, 0xd9, 0xad, 0xaa, 0x3a, 0xca, 0xde, 0x58,
315 0x88, 0xb8, 0x7b, 0xef, 0x64, 0x1c, 0x4c, 0x99,
316 0x4c, 0x80, 0x91, 0xb5, 0xbc, 0xd3, 0x87, 0xf3,
317 0x96, 0x3f, 0xb5, 0xbc, 0x37, 0xaa, 0x92, 0x2f,
318 0xbf, 0xe3, 0xdf, 0x4e, 0x5b, 0x91, 0x5e, 0x6e,
319 0xb5, 0x14, 0x71, 0x7b, 0xdd, 0x2a, 0x74, 0x07,
320 0x9a, 0x50, 0x73, 0xf5, 0xc4, 0xbf, 0xd4, 0x6a,
321 0xdf, 0x7d, 0x28, 0x2e, 0x7a, 0x39, 0x3a, 0x52,
322 0x57, 0x9d, 0x11, 0xa0, 0x28, 0xda, 0x4d, 0x9c,
323 0xd9, 0xc7, 0x71, 0x24, 0xf9, 0x64, 0x8e, 0xe3,
324 0x83, 0xb1, 0xac, 0x76, 0x39, 0x30, 0xe7, 0x16,
325 0x2a, 0x8d, 0x37, 0xf3, 0x50, 0xb2, 0xf7, 0x4b,
326 0x84, 0x72, 0xcf, 0x09, 0x90, 0x20, 0x63, 0xc6,
327 0xb3, 0x2e, 0x8c, 0x2d, 0x92, 0x90, 0xce, 0xfb,
328 0xd7, 0x34, 0x6d, 0x1c, 0x77, 0x9a, 0x0d, 0xf5,
329 0x0e, 0xdc, 0xde, 0x45, 0x31, 0xda, 0x07, 0xb0,
330 0x99, 0xc6, 0x38, 0xe8, 0x3a, 0x75, 0x59, 0x44,
331 0xdf, 0x2a, 0xef, 0x1a, 0xa3, 0x17, 0x52, 0xfd,
332 0x32, 0x3d, 0xcb, 0x71, 0x0f, 0xb4, 0xbf, 0xbb,
333 0x9d, 0x22, 0xb9, 0x25, 0xbc, 0x35, 0x77, 0xe1,
334 0xb8, 0x94, 0x9e, 0x72, 0x9a, 0x90, 0xbb, 0xaf,
335 0xea, 0xcf, 0x7f, 0x78, 0x79, 0xe7, 0xb1, 0x14,
336 0x7e, 0x28, 0xba, 0x0b, 0xae, 0x94, 0x0d, 0xb7,
337 0x95, 0xa6, 0x1b, 0x15, 0xec, 0xf4, 0xdf, 0x8d,
338 0xb0, 0x7b, 0x82, 0x4b, 0xb0, 0x62, 0x80, 0x2c,
339 0xc9, 0x8a, 0x95, 0x45, 0xbb, 0x2a, 0xae, 0xed,
340 0x77, 0xcb, 0x3f, 0xc6, 0xdb, 0x15, 0xdc, 0xd7,
341 0xd8, 0x0d, 0x7d, 0x5b, 0xc4, 0x06, 0xc4, 0x97,
342 0x0a, 0x34, 0x78, 0xad, 0xa8, 0x89, 0x9b, 0x32,
343 0x91, 0x98, 0xeb, 0x61, 0xc1, 0x93, 0xfb, 0x62,
344 0x75, 0xaa, 0x8c, 0xa3, 0x40, 0x34, 0x4a, 0x75,
345 0xa8, 0x62, 0xae, 0xbe, 0x92, 0xee, 0xe1, 0xce,
346 0x03, 0x2f, 0xd9, 0x50, 0xb4, 0x7d, 0x77, 0x04,
347 0xa3, 0x87, 0x69, 0x23, 0xb4, 0xad, 0x62, 0x84,
348 0x4b, 0xf4, 0xa0, 0x9c, 0x4d, 0xbe, 0x8b, 0x43,
349 0x97, 0x18, 0x4b, 0x74, 0x71, 0x36, 0x0c, 0x95,
350 0x64, 0x88, 0x0a, 0xed, 0xdd, 0xb9, 0xba, 0xa4,
351 0xaf, 0x2e, 0x75, 0x39, 0x4b, 0x08, 0xcd, 0x32,
352 0xff, 0x47, 0x9c, 0x57, 0xa0, 0x7d, 0x3e, 0xab,
353 0x5d, 0x54, 0xde, 0x5f, 0x97, 0x38, 0xb8, 0xd2,
354 0x7f, 0x27, 0xa9, 0xf0, 0xab, 0x11, 0x79, 0x9d,
355 0x7b, 0x7f, 0xfe, 0xfb, 0x27, 0x04, 0xc9, 0x5c,
356 0x6a, 0xd1, 0x2c, 0x39, 0xf1, 0xe8, 0x67, 0xa4,
357 0xb7, 0xb1, 0xd7, 0x81, 0x8a, 0x4b, 0x75, 0x3d,
358 0xfd, 0x2a, 0x89, 0xcc, 0xb4, 0x5e, 0x00, 0x1a,
359 0x03, 0xa8, 0x67, 0xb1, 0x87, 0xf2, 0x25, 0xdd,
360 };
361
362 /*
363 * Vector 6 from IEEE 1619/D16, blkno 2.
364 */
365 static const uint8_t aes_xts_256_vec6_ptxt[SECSIZE] = {
366 0x26, 0x4d, 0x3c, 0xa8, 0x51, 0x21, 0x94, 0xfe,
367 0xc3, 0x12, 0xc8, 0xc9, 0x89, 0x1f, 0x27, 0x9f,
368 0xef, 0xdd, 0x60, 0x8d, 0x0c, 0x02, 0x7b, 0x60,
369 0x48, 0x3a, 0x3f, 0xa8, 0x11, 0xd6, 0x5e, 0xe5,
370 0x9d, 0x52, 0xd9, 0xe4, 0x0e, 0xc5, 0x67, 0x2d,
371 0x81, 0x53, 0x2b, 0x38, 0xb6, 0xb0, 0x89, 0xce,
372 0x95, 0x1f, 0x0f, 0x9c, 0x35, 0x59, 0x0b, 0x8b,
373 0x97, 0x8d, 0x17, 0x52, 0x13, 0xf3, 0x29, 0xbb,
374 0x1c, 0x2f, 0xd3, 0x0f, 0x2f, 0x7f, 0x30, 0x49,
375 0x2a, 0x61, 0xa5, 0x32, 0xa7, 0x9f, 0x51, 0xd3,
376 0x6f, 0x5e, 0x31, 0xa7, 0xc9, 0xa1, 0x2c, 0x28,
377 0x60, 0x82, 0xff, 0x7d, 0x23, 0x94, 0xd1, 0x8f,
378 0x78, 0x3e, 0x1a, 0x8e, 0x72, 0xc7, 0x22, 0xca,
379 0xaa, 0xa5, 0x2d, 0x8f, 0x06, 0x56, 0x57, 0xd2,
380 0x63, 0x1f, 0xd2, 0x5b, 0xfd, 0x8e, 0x5b, 0xaa,
381 0xd6, 0xe5, 0x27, 0xd7, 0x63, 0x51, 0x75, 0x01,
382 0xc6, 0x8c, 0x5e, 0xdc, 0x3c, 0xdd, 0x55, 0x43,
383 0x5c, 0x53, 0x2d, 0x71, 0x25, 0xc8, 0x61, 0x4d,
384 0xee, 0xd9, 0xad, 0xaa, 0x3a, 0xca, 0xde, 0x58,
385 0x88, 0xb8, 0x7b, 0xef, 0x64, 0x1c, 0x4c, 0x99,
386 0x4c, 0x80, 0x91, 0xb5, 0xbc, 0xd3, 0x87, 0xf3,
387 0x96, 0x3f, 0xb5, 0xbc, 0x37, 0xaa, 0x92, 0x2f,
388 0xbf, 0xe3, 0xdf, 0x4e, 0x5b, 0x91, 0x5e, 0x6e,
389 0xb5, 0x14, 0x71, 0x7b, 0xdd, 0x2a, 0x74, 0x07,
390 0x9a, 0x50, 0x73, 0xf5, 0xc4, 0xbf, 0xd4, 0x6a,
391 0xdf, 0x7d, 0x28, 0x2e, 0x7a, 0x39, 0x3a, 0x52,
392 0x57, 0x9d, 0x11, 0xa0, 0x28, 0xda, 0x4d, 0x9c,
393 0xd9, 0xc7, 0x71, 0x24, 0xf9, 0x64, 0x8e, 0xe3,
394 0x83, 0xb1, 0xac, 0x76, 0x39, 0x30, 0xe7, 0x16,
395 0x2a, 0x8d, 0x37, 0xf3, 0x50, 0xb2, 0xf7, 0x4b,
396 0x84, 0x72, 0xcf, 0x09, 0x90, 0x20, 0x63, 0xc6,
397 0xb3, 0x2e, 0x8c, 0x2d, 0x92, 0x90, 0xce, 0xfb,
398 0xd7, 0x34, 0x6d, 0x1c, 0x77, 0x9a, 0x0d, 0xf5,
399 0x0e, 0xdc, 0xde, 0x45, 0x31, 0xda, 0x07, 0xb0,
400 0x99, 0xc6, 0x38, 0xe8, 0x3a, 0x75, 0x59, 0x44,
401 0xdf, 0x2a, 0xef, 0x1a, 0xa3, 0x17, 0x52, 0xfd,
402 0x32, 0x3d, 0xcb, 0x71, 0x0f, 0xb4, 0xbf, 0xbb,
403 0x9d, 0x22, 0xb9, 0x25, 0xbc, 0x35, 0x77, 0xe1,
404 0xb8, 0x94, 0x9e, 0x72, 0x9a, 0x90, 0xbb, 0xaf,
405 0xea, 0xcf, 0x7f, 0x78, 0x79, 0xe7, 0xb1, 0x14,
406 0x7e, 0x28, 0xba, 0x0b, 0xae, 0x94, 0x0d, 0xb7,
407 0x95, 0xa6, 0x1b, 0x15, 0xec, 0xf4, 0xdf, 0x8d,
408 0xb0, 0x7b, 0x82, 0x4b, 0xb0, 0x62, 0x80, 0x2c,
409 0xc9, 0x8a, 0x95, 0x45, 0xbb, 0x2a, 0xae, 0xed,
410 0x77, 0xcb, 0x3f, 0xc6, 0xdb, 0x15, 0xdc, 0xd7,
411 0xd8, 0x0d, 0x7d, 0x5b, 0xc4, 0x06, 0xc4, 0x97,
412 0x0a, 0x34, 0x78, 0xad, 0xa8, 0x89, 0x9b, 0x32,
413 0x91, 0x98, 0xeb, 0x61, 0xc1, 0x93, 0xfb, 0x62,
414 0x75, 0xaa, 0x8c, 0xa3, 0x40, 0x34, 0x4a, 0x75,
415 0xa8, 0x62, 0xae, 0xbe, 0x92, 0xee, 0xe1, 0xce,
416 0x03, 0x2f, 0xd9, 0x50, 0xb4, 0x7d, 0x77, 0x04,
417 0xa3, 0x87, 0x69, 0x23, 0xb4, 0xad, 0x62, 0x84,
418 0x4b, 0xf4, 0xa0, 0x9c, 0x4d, 0xbe, 0x8b, 0x43,
419 0x97, 0x18, 0x4b, 0x74, 0x71, 0x36, 0x0c, 0x95,
420 0x64, 0x88, 0x0a, 0xed, 0xdd, 0xb9, 0xba, 0xa4,
421 0xaf, 0x2e, 0x75, 0x39, 0x4b, 0x08, 0xcd, 0x32,
422 0xff, 0x47, 0x9c, 0x57, 0xa0, 0x7d, 0x3e, 0xab,
423 0x5d, 0x54, 0xde, 0x5f, 0x97, 0x38, 0xb8, 0xd2,
424 0x7f, 0x27, 0xa9, 0xf0, 0xab, 0x11, 0x79, 0x9d,
425 0x7b, 0x7f, 0xfe, 0xfb, 0x27, 0x04, 0xc9, 0x5c,
426 0x6a, 0xd1, 0x2c, 0x39, 0xf1, 0xe8, 0x67, 0xa4,
427 0xb7, 0xb1, 0xd7, 0x81, 0x8a, 0x4b, 0x75, 0x3d,
428 0xfd, 0x2a, 0x89, 0xcc, 0xb4, 0x5e, 0x00, 0x1a,
429 0x03, 0xa8, 0x67, 0xb1, 0x87, 0xf2, 0x25, 0xdd,
430 };
431
432 static const uint8_t aes_xts_256_vec6_ctxt[SECSIZE] = {
433 0xfa, 0x76, 0x2a, 0x36, 0x80, 0xb7, 0x60, 0x07,
434 0x92, 0x8e, 0xd4, 0xa4, 0xf4, 0x9a, 0x94, 0x56,
435 0x03, 0x1b, 0x70, 0x47, 0x82, 0xe6, 0x5e, 0x16,
436 0xce, 0xcb, 0x54, 0xed, 0x7d, 0x01, 0x7b, 0x5e,
437 0x18, 0xab, 0xd6, 0x7b, 0x33, 0x8e, 0x81, 0x07,
438 0x8f, 0x21, 0xed, 0xb7, 0x86, 0x8d, 0x90, 0x1e,
439 0xbe, 0x9c, 0x73, 0x1a, 0x7c, 0x18, 0xb5, 0xe6,
440 0xde, 0xc1, 0xd6, 0xa7, 0x2e, 0x07, 0x8a, 0xc9,
441 0xa4, 0x26, 0x2f, 0x86, 0x0b, 0xee, 0xfa, 0x14,
442 0xf4, 0xe8, 0x21, 0x01, 0x82, 0x72, 0xe4, 0x11,
443 0xa9, 0x51, 0x50, 0x2b, 0x6e, 0x79, 0x06, 0x6e,
444 0x84, 0x25, 0x2c, 0x33, 0x46, 0xf3, 0xaa, 0x62,
445 0x34, 0x43, 0x51, 0xa2, 0x91, 0xd4, 0xbe, 0xdc,
446 0x7a, 0x07, 0x61, 0x8b, 0xde, 0xa2, 0xaf, 0x63,
447 0x14, 0x5c, 0xc7, 0xa4, 0xb8, 0xd4, 0x07, 0x06,
448 0x91, 0xae, 0x89, 0x0c, 0xd6, 0x57, 0x33, 0xe7,
449 0x94, 0x6e, 0x90, 0x21, 0xa1, 0xdf, 0xfc, 0x4c,
450 0x59, 0xf1, 0x59, 0x42, 0x5e, 0xe6, 0xd5, 0x0c,
451 0xa9, 0xb1, 0x35, 0xfa, 0x61, 0x62, 0xce, 0xa1,
452 0x8a, 0x93, 0x98, 0x38, 0xdc, 0x00, 0x0f, 0xb3,
453 0x86, 0xfa, 0xd0, 0x86, 0xac, 0xce, 0x5a, 0xc0,
454 0x7c, 0xb2, 0xec, 0xe7, 0xfd, 0x58, 0x0b, 0x00,
455 0xcf, 0xa5, 0xe9, 0x85, 0x89, 0x63, 0x1d, 0xc2,
456 0x5e, 0x8e, 0x2a, 0x3d, 0xaf, 0x2f, 0xfd, 0xec,
457 0x26, 0x53, 0x16, 0x59, 0x91, 0x2c, 0x9d, 0x8f,
458 0x7a, 0x15, 0xe5, 0x86, 0x5e, 0xa8, 0xfb, 0x58,
459 0x16, 0xd6, 0x20, 0x70, 0x52, 0xbd, 0x71, 0x28,
460 0xcd, 0x74, 0x3c, 0x12, 0xc8, 0x11, 0x87, 0x91,
461 0xa4, 0x73, 0x68, 0x11, 0x93, 0x5e, 0xb9, 0x82,
462 0xa5, 0x32, 0x34, 0x9e, 0x31, 0xdd, 0x40, 0x1e,
463 0x0b, 0x66, 0x0a, 0x56, 0x8c, 0xb1, 0xa4, 0x71,
464 0x1f, 0x55, 0x2f, 0x55, 0xde, 0xd5, 0x9f, 0x1f,
465 0x15, 0xbf, 0x71, 0x96, 0xb3, 0xca, 0x12, 0xa9,
466 0x1e, 0x48, 0x8e, 0xf5, 0x9d, 0x64, 0xf3, 0xa0,
467 0x2b, 0xf4, 0x52, 0x39, 0x49, 0x9a, 0xc6, 0x17,
468 0x6a, 0xe3, 0x21, 0xc4, 0xa2, 0x11, 0xec, 0x54,
469 0x53, 0x65, 0x97, 0x1c, 0x5d, 0x3f, 0x4f, 0x09,
470 0xd4, 0xeb, 0x13, 0x9b, 0xfd, 0xf2, 0x07, 0x3d,
471 0x33, 0x18, 0x0b, 0x21, 0x00, 0x2b, 0x65, 0xcc,
472 0x98, 0x65, 0xe7, 0x6c, 0xb2, 0x4c, 0xd9, 0x2c,
473 0x87, 0x4c, 0x24, 0xc1, 0x83, 0x50, 0x39, 0x9a,
474 0x93, 0x6a, 0xb3, 0x63, 0x70, 0x79, 0x29, 0x5d,
475 0x76, 0xc4, 0x17, 0x77, 0x6b, 0x94, 0xef, 0xce,
476 0x3a, 0x0e, 0xf7, 0x20, 0x6b, 0x15, 0x11, 0x05,
477 0x19, 0x65, 0x5c, 0x95, 0x6c, 0xbd, 0x8b, 0x24,
478 0x89, 0x40, 0x5e, 0xe2, 0xb0, 0x9a, 0x6b, 0x6e,
479 0xeb, 0xe0, 0xc5, 0x37, 0x90, 0xa1, 0x2a, 0x89,
480 0x98, 0x37, 0x8b, 0x33, 0xa5, 0xb7, 0x11, 0x59,
481 0x62, 0x5f, 0x4b, 0xa4, 0x9d, 0x2a, 0x2f, 0xdb,
482 0xa5, 0x9f, 0xbf, 0x08, 0x97, 0xbc, 0x7a, 0xab,
483 0xd8, 0xd7, 0x07, 0xdc, 0x14, 0x0a, 0x80, 0xf0,
484 0xf3, 0x09, 0xf8, 0x35, 0xd3, 0xda, 0x54, 0xab,
485 0x58, 0x4e, 0x50, 0x1d, 0xfa, 0x0e, 0xe9, 0x77,
486 0xfe, 0xc5, 0x43, 0xf7, 0x41, 0x86, 0xa8, 0x02,
487 0xb9, 0xa3, 0x7a, 0xdb, 0x3e, 0x82, 0x91, 0xec,
488 0xa0, 0x4d, 0x66, 0x52, 0x0d, 0x22, 0x9e, 0x60,
489 0x40, 0x1e, 0x72, 0x82, 0xbe, 0xf4, 0x86, 0xae,
490 0x05, 0x9a, 0xa7, 0x06, 0x96, 0xe0, 0xe3, 0x05,
491 0xd7, 0x77, 0x14, 0x0a, 0x7a, 0x88, 0x3e, 0xcd,
492 0xcb, 0x69, 0xb9, 0xff, 0x93, 0x8e, 0x8a, 0x42,
493 0x31, 0x86, 0x4c, 0x69, 0xca, 0x2c, 0x20, 0x43,
494 0xbe, 0xd0, 0x07, 0xff, 0x3e, 0x60, 0x5e, 0x01,
495 0x4b, 0xcf, 0x51, 0x81, 0x38, 0xdc, 0x3a, 0x25,
496 0xc5, 0xe2, 0x36, 0x17, 0x1a, 0x2d, 0x01, 0xd6,
497 };
498
499 /*
500 * Vector 7 from IEEE 1619/D16, blkno 0xfd.
501 */
502 static const uint8_t aes_xts_256_vec7_ptxt[SECSIZE] = {
503 0x8e, 0x41, 0xb7, 0x8c, 0x39, 0x0b, 0x5a, 0xf9,
504 0xd7, 0x58, 0xbb, 0x21, 0x4a, 0x67, 0xe9, 0xf6,
505 0xbf, 0x77, 0x27, 0xb0, 0x9a, 0xc6, 0x12, 0x40,
506 0x84, 0xc3, 0x76, 0x11, 0x39, 0x8f, 0xa4, 0x5d,
507 0xaa, 0xd9, 0x48, 0x68, 0x60, 0x0e, 0xd3, 0x91,
508 0xfb, 0x1a, 0xcd, 0x48, 0x57, 0xa9, 0x5b, 0x46,
509 0x6e, 0x62, 0xef, 0x9f, 0x4b, 0x37, 0x72, 0x44,
510 0xd1, 0xc1, 0x52, 0xe7, 0xb3, 0x0d, 0x73, 0x1a,
511 0xad, 0x30, 0xc7, 0x16, 0xd2, 0x14, 0xb7, 0x07,
512 0xae, 0xd9, 0x9e, 0xb5, 0xb5, 0xe5, 0x80, 0xb3,
513 0xe8, 0x87, 0xcf, 0x74, 0x97, 0x46, 0x56, 0x51,
514 0xd4, 0xb6, 0x0e, 0x60, 0x42, 0x05, 0x1d, 0xa3,
515 0x69, 0x3c, 0x3b, 0x78, 0xc1, 0x44, 0x89, 0x54,
516 0x3b, 0xe8, 0xb6, 0xad, 0x0b, 0xa6, 0x29, 0x56,
517 0x5b, 0xba, 0x20, 0x23, 0x13, 0xba, 0x7b, 0x0d,
518 0x0c, 0x94, 0xa3, 0x25, 0x2b, 0x67, 0x6f, 0x46,
519 0xcc, 0x02, 0xce, 0x0f, 0x8a, 0x7d, 0x34, 0xc0,
520 0xed, 0x22, 0x91, 0x29, 0x67, 0x3c, 0x1f, 0x61,
521 0xae, 0xd5, 0x79, 0xd0, 0x8a, 0x92, 0x03, 0xa2,
522 0x5a, 0xac, 0x3a, 0x77, 0xe9, 0xdb, 0x60, 0x26,
523 0x79, 0x96, 0xdb, 0x38, 0xdf, 0x63, 0x73, 0x56,
524 0xd9, 0xdc, 0xd1, 0x63, 0x2e, 0x36, 0x99, 0x39,
525 0xf2, 0xa2, 0x9d, 0x89, 0x34, 0x5c, 0x66, 0xe0,
526 0x50, 0x66, 0xf1, 0xa3, 0x67, 0x7a, 0xef, 0x18,
527 0xde, 0xa4, 0x11, 0x3f, 0xae, 0xb6, 0x29, 0xe4,
528 0x67, 0x21, 0xa6, 0x6d, 0x0a, 0x7e, 0x78, 0x5d,
529 0x3e, 0x29, 0xaf, 0x25, 0x94, 0xeb, 0x67, 0xdf,
530 0xa9, 0x82, 0xaf, 0xfe, 0x0a, 0xac, 0x05, 0x8f,
531 0x6e, 0x15, 0x86, 0x42, 0x69, 0xb1, 0x35, 0x41,
532 0x82, 0x61, 0xfc, 0x3a, 0xfb, 0x08, 0x94, 0x72,
533 0xcf, 0x68, 0xc4, 0x5d, 0xd7, 0xf2, 0x31, 0xc6,
534 0x24, 0x9b, 0xa0, 0x25, 0x5e, 0x1e, 0x03, 0x38,
535 0x33, 0xfc, 0x4d, 0x00, 0xa3, 0xfe, 0x02, 0x13,
536 0x2d, 0x7b, 0xc3, 0x87, 0x36, 0x14, 0xb8, 0xae,
537 0xe3, 0x42, 0x73, 0x58, 0x1e, 0xa0, 0x32, 0x5c,
538 0x81, 0xf0, 0x27, 0x0a, 0xff, 0xa1, 0x36, 0x41,
539 0xd0, 0x52, 0xd3, 0x6f, 0x07, 0x57, 0xd4, 0x84,
540 0x01, 0x43, 0x54, 0xd0, 0x2d, 0x68, 0x83, 0xca,
541 0x15, 0xc2, 0x4d, 0x8c, 0x39, 0x56, 0xb1, 0xbd,
542 0x02, 0x7b, 0xcf, 0x41, 0xf1, 0x51, 0xfd, 0x80,
543 0x23, 0xc5, 0x34, 0x0e, 0x56, 0x06, 0xf3, 0x7e,
544 0x90, 0xfd, 0xb8, 0x7c, 0x86, 0xfb, 0x4f, 0xa6,
545 0x34, 0xb3, 0x71, 0x8a, 0x30, 0xba, 0xce, 0x06,
546 0xa6, 0x6e, 0xaf, 0x8f, 0x63, 0xc4, 0xaa, 0x3b,
547 0x63, 0x78, 0x26, 0xa8, 0x7f, 0xe8, 0xcf, 0xa4,
548 0x42, 0x82, 0xe9, 0x2c, 0xb1, 0x61, 0x5a, 0xf3,
549 0xa2, 0x8e, 0x53, 0xbc, 0x74, 0xc7, 0xcb, 0xa1,
550 0xa0, 0x97, 0x7b, 0xe9, 0x06, 0x5d, 0x0c, 0x1a,
551 0x5d, 0xec, 0x6c, 0x54, 0xae, 0x38, 0xd3, 0x7f,
552 0x37, 0xaa, 0x35, 0x28, 0x3e, 0x04, 0x8e, 0x55,
553 0x30, 0xa8, 0x5c, 0x4e, 0x7a, 0x29, 0xd7, 0xb9,
554 0x2e, 0xc0, 0xc3, 0x16, 0x9c, 0xdf, 0x2a, 0x80,
555 0x5c, 0x76, 0x04, 0xbc, 0xe6, 0x00, 0x49, 0xb9,
556 0xfb, 0x7b, 0x8e, 0xaa, 0xc1, 0x0f, 0x51, 0xae,
557 0x23, 0x79, 0x4c, 0xeb, 0xa6, 0x8b, 0xb5, 0x81,
558 0x12, 0xe2, 0x93, 0xb9, 0xb6, 0x92, 0xca, 0x72,
559 0x1b, 0x37, 0xc6, 0x62, 0xf8, 0x57, 0x4e, 0xd4,
560 0xdb, 0xa6, 0xf8, 0x8e, 0x17, 0x08, 0x81, 0xc8,
561 0x2c, 0xdd, 0xc1, 0x03, 0x4a, 0x0c, 0xa7, 0xe2,
562 0x84, 0xbf, 0x09, 0x62, 0xb6, 0xb2, 0x62, 0x92,
563 0xd8, 0x36, 0xfa, 0x9f, 0x73, 0xc1, 0xac, 0x77,
564 0x0e, 0xef, 0x0f, 0x2d, 0x3a, 0x1e, 0xaf, 0x61,
565 0xd3, 0xe0, 0x35, 0x55, 0xfd, 0x42, 0x4e, 0xed,
566 0xd6, 0x7e, 0x18, 0xa1, 0x80, 0x94, 0xf8, 0x88,
567 };
568
569 static const uint8_t aes_xts_256_vec7_ctxt[SECSIZE] = {
570 0xd5, 0x5f, 0x68, 0x4f, 0x81, 0xf4, 0x42, 0x6e,
571 0x9f, 0xde, 0x92, 0xa5, 0xff, 0x02, 0xdf, 0x2a,
572 0xc8, 0x96, 0xaf, 0x63, 0x96, 0x28, 0x88, 0xa9,
573 0x79, 0x10, 0xc1, 0x37, 0x9e, 0x20, 0xb0, 0xa3,
574 0xb1, 0xdb, 0x61, 0x3f, 0xb7, 0xfe, 0x2e, 0x07,
575 0x00, 0x43, 0x29, 0xea, 0x5c, 0x22, 0xbf, 0xd3,
576 0x3e, 0x3d, 0xbe, 0x4c, 0xf5, 0x8c, 0xc6, 0x08,
577 0xc2, 0xc2, 0x6c, 0x19, 0xa2, 0xe2, 0xfe, 0x22,
578 0xf9, 0x87, 0x32, 0xc2, 0xb5, 0xcb, 0x84, 0x4c,
579 0xc6, 0xc0, 0x70, 0x2d, 0x91, 0xe1, 0xd5, 0x0f,
580 0xc4, 0x38, 0x2a, 0x7e, 0xba, 0x56, 0x35, 0xcd,
581 0x60, 0x24, 0x32, 0xa2, 0x30, 0x6a, 0xc4, 0xce,
582 0x82, 0xf8, 0xd7, 0x0c, 0x8d, 0x9b, 0xc1, 0x5f,
583 0x91, 0x8f, 0xe7, 0x1e, 0x74, 0xc6, 0x22, 0xd5,
584 0xcf, 0x71, 0x17, 0x8b, 0xf6, 0xe0, 0xb9, 0xcc,
585 0x9f, 0x2b, 0x41, 0xdd, 0x8d, 0xbe, 0x44, 0x1c,
586 0x41, 0xcd, 0x0c, 0x73, 0xa6, 0xdc, 0x47, 0xa3,
587 0x48, 0xf6, 0x70, 0x2f, 0x9d, 0x0e, 0x9b, 0x1b,
588 0x14, 0x31, 0xe9, 0x48, 0xe2, 0x99, 0xb9, 0xec,
589 0x22, 0x72, 0xab, 0x2c, 0x5f, 0x0c, 0x7b, 0xe8,
590 0x6a, 0xff, 0xa5, 0xde, 0xc8, 0x7a, 0x0b, 0xee,
591 0x81, 0xd3, 0xd5, 0x00, 0x07, 0xed, 0xaa, 0x2b,
592 0xcf, 0xcc, 0xb3, 0x56, 0x05, 0x15, 0x5f, 0xf3,
593 0x6e, 0xd8, 0xed, 0xd4, 0xa4, 0x0d, 0xcd, 0x4b,
594 0x24, 0x3a, 0xcd, 0x11, 0xb2, 0xb9, 0x87, 0xbd,
595 0xbf, 0xaf, 0x91, 0xa7, 0xca, 0xc2, 0x7e, 0x9c,
596 0x5a, 0xea, 0x52, 0x5e, 0xe5, 0x3d, 0xe7, 0xb2,
597 0xd3, 0x33, 0x2c, 0x86, 0x44, 0x40, 0x2b, 0x82,
598 0x3e, 0x94, 0xa7, 0xdb, 0x26, 0x27, 0x6d, 0x2d,
599 0x23, 0xaa, 0x07, 0x18, 0x0f, 0x76, 0xb4, 0xfd,
600 0x29, 0xb9, 0xc0, 0x82, 0x30, 0x99, 0xc9, 0xd6,
601 0x2c, 0x51, 0x98, 0x80, 0xae, 0xe7, 0xe9, 0x69,
602 0x76, 0x17, 0xc1, 0x49, 0x7d, 0x47, 0xbf, 0x3e,
603 0x57, 0x19, 0x50, 0x31, 0x14, 0x21, 0xb6, 0xb7,
604 0x34, 0xd3, 0x8b, 0x0d, 0xb9, 0x1e, 0xb8, 0x53,
605 0x31, 0xb9, 0x1e, 0xa9, 0xf6, 0x15, 0x30, 0xf5,
606 0x45, 0x12, 0xa5, 0xa5, 0x2a, 0x4b, 0xad, 0x58,
607 0x9e, 0xb6, 0x97, 0x81, 0xd5, 0x37, 0xf2, 0x32,
608 0x97, 0xbb, 0x45, 0x9b, 0xda, 0xd2, 0x94, 0x8a,
609 0x29, 0xe1, 0x55, 0x0b, 0xf4, 0x78, 0x7e, 0x0b,
610 0xe9, 0x5b, 0xb1, 0x73, 0xcf, 0x5f, 0xab, 0x17,
611 0xda, 0xb7, 0xa1, 0x3a, 0x05, 0x2a, 0x63, 0x45,
612 0x3d, 0x97, 0xcc, 0xec, 0x1a, 0x32, 0x19, 0x54,
613 0x88, 0x6b, 0x7a, 0x12, 0x99, 0xfa, 0xae, 0xec,
614 0xae, 0x35, 0xc6, 0xea, 0xac, 0xa7, 0x53, 0xb0,
615 0x41, 0xb5, 0xe5, 0xf0, 0x93, 0xbf, 0x83, 0x39,
616 0x7f, 0xd2, 0x1d, 0xd6, 0xb3, 0x01, 0x20, 0x66,
617 0xfc, 0xc0, 0x58, 0xcc, 0x32, 0xc3, 0xb0, 0x9d,
618 0x75, 0x62, 0xde, 0xe2, 0x95, 0x09, 0xb5, 0x83,
619 0x93, 0x92, 0xc9, 0xff, 0x05, 0xf5, 0x1f, 0x31,
620 0x66, 0xaa, 0xac, 0x4a, 0xc5, 0xf2, 0x38, 0x03,
621 0x8a, 0x30, 0x45, 0xe6, 0xf7, 0x2e, 0x48, 0xef,
622 0x0f, 0xe8, 0xbc, 0x67, 0x5e, 0x82, 0xc3, 0x18,
623 0xa2, 0x68, 0xe4, 0x39, 0x70, 0x27, 0x1b, 0xf1,
624 0x19, 0xb8, 0x1b, 0xf6, 0xa9, 0x82, 0x74, 0x65,
625 0x54, 0xf8, 0x4e, 0x72, 0xb9, 0xf0, 0x02, 0x80,
626 0xa3, 0x20, 0xa0, 0x81, 0x42, 0x92, 0x3c, 0x23,
627 0xc8, 0x83, 0x42, 0x3f, 0xf9, 0x49, 0x82, 0x7f,
628 0x29, 0xbb, 0xac, 0xdc, 0x1c, 0xcd, 0xb0, 0x49,
629 0x38, 0xce, 0x60, 0x98, 0xc9, 0x5b, 0xa6, 0xb3,
630 0x25, 0x28, 0xf4, 0xef, 0x78, 0xee, 0xd7, 0x78,
631 0xb2, 0xe1, 0x22, 0xdd, 0xfd, 0x1c, 0xbd, 0xd1,
632 0x1d, 0x1c, 0x0a, 0x67, 0x83, 0xe0, 0x11, 0xfc,
633 0x53, 0x6d, 0x63, 0xd0, 0x53, 0x26, 0x06, 0x37,
634 };
635
636 /*
637 * Vector 8 from IEEE 1619/D16, blkno 0xfe.
638 */
639 static const uint8_t aes_xts_256_vec8_ptxt[SECSIZE] = {
640 0xd5, 0x5f, 0x68, 0x4f, 0x81, 0xf4, 0x42, 0x6e,
641 0x9f, 0xde, 0x92, 0xa5, 0xff, 0x02, 0xdf, 0x2a,
642 0xc8, 0x96, 0xaf, 0x63, 0x96, 0x28, 0x88, 0xa9,
643 0x79, 0x10, 0xc1, 0x37, 0x9e, 0x20, 0xb0, 0xa3,
644 0xb1, 0xdb, 0x61, 0x3f, 0xb7, 0xfe, 0x2e, 0x07,
645 0x00, 0x43, 0x29, 0xea, 0x5c, 0x22, 0xbf, 0xd3,
646 0x3e, 0x3d, 0xbe, 0x4c, 0xf5, 0x8c, 0xc6, 0x08,
647 0xc2, 0xc2, 0x6c, 0x19, 0xa2, 0xe2, 0xfe, 0x22,
648 0xf9, 0x87, 0x32, 0xc2, 0xb5, 0xcb, 0x84, 0x4c,
649 0xc6, 0xc0, 0x70, 0x2d, 0x91, 0xe1, 0xd5, 0x0f,
650 0xc4, 0x38, 0x2a, 0x7e, 0xba, 0x56, 0x35, 0xcd,
651 0x60, 0x24, 0x32, 0xa2, 0x30, 0x6a, 0xc4, 0xce,
652 0x82, 0xf8, 0xd7, 0x0c, 0x8d, 0x9b, 0xc1, 0x5f,
653 0x91, 0x8f, 0xe7, 0x1e, 0x74, 0xc6, 0x22, 0xd5,
654 0xcf, 0x71, 0x17, 0x8b, 0xf6, 0xe0, 0xb9, 0xcc,
655 0x9f, 0x2b, 0x41, 0xdd, 0x8d, 0xbe, 0x44, 0x1c,
656 0x41, 0xcd, 0x0c, 0x73, 0xa6, 0xdc, 0x47, 0xa3,
657 0x48, 0xf6, 0x70, 0x2f, 0x9d, 0x0e, 0x9b, 0x1b,
658 0x14, 0x31, 0xe9, 0x48, 0xe2, 0x99, 0xb9, 0xec,
659 0x22, 0x72, 0xab, 0x2c, 0x5f, 0x0c, 0x7b, 0xe8,
660 0x6a, 0xff, 0xa5, 0xde, 0xc8, 0x7a, 0x0b, 0xee,
661 0x81, 0xd3, 0xd5, 0x00, 0x07, 0xed, 0xaa, 0x2b,
662 0xcf, 0xcc, 0xb3, 0x56, 0x05, 0x15, 0x5f, 0xf3,
663 0x6e, 0xd8, 0xed, 0xd4, 0xa4, 0x0d, 0xcd, 0x4b,
664 0x24, 0x3a, 0xcd, 0x11, 0xb2, 0xb9, 0x87, 0xbd,
665 0xbf, 0xaf, 0x91, 0xa7, 0xca, 0xc2, 0x7e, 0x9c,
666 0x5a, 0xea, 0x52, 0x5e, 0xe5, 0x3d, 0xe7, 0xb2,
667 0xd3, 0x33, 0x2c, 0x86, 0x44, 0x40, 0x2b, 0x82,
668 0x3e, 0x94, 0xa7, 0xdb, 0x26, 0x27, 0x6d, 0x2d,
669 0x23, 0xaa, 0x07, 0x18, 0x0f, 0x76, 0xb4, 0xfd,
670 0x29, 0xb9, 0xc0, 0x82, 0x30, 0x99, 0xc9, 0xd6,
671 0x2c, 0x51, 0x98, 0x80, 0xae, 0xe7, 0xe9, 0x69,
672 0x76, 0x17, 0xc1, 0x49, 0x7d, 0x47, 0xbf, 0x3e,
673 0x57, 0x19, 0x50, 0x31, 0x14, 0x21, 0xb6, 0xb7,
674 0x34, 0xd3, 0x8b, 0x0d, 0xb9, 0x1e, 0xb8, 0x53,
675 0x31, 0xb9, 0x1e, 0xa9, 0xf6, 0x15, 0x30, 0xf5,
676 0x45, 0x12, 0xa5, 0xa5, 0x2a, 0x4b, 0xad, 0x58,
677 0x9e, 0xb6, 0x97, 0x81, 0xd5, 0x37, 0xf2, 0x32,
678 0x97, 0xbb, 0x45, 0x9b, 0xda, 0xd2, 0x94, 0x8a,
679 0x29, 0xe1, 0x55, 0x0b, 0xf4, 0x78, 0x7e, 0x0b,
680 0xe9, 0x5b, 0xb1, 0x73, 0xcf, 0x5f, 0xab, 0x17,
681 0xda, 0xb7, 0xa1, 0x3a, 0x05, 0x2a, 0x63, 0x45,
682 0x3d, 0x97, 0xcc, 0xec, 0x1a, 0x32, 0x19, 0x54,
683 0x88, 0x6b, 0x7a, 0x12, 0x99, 0xfa, 0xae, 0xec,
684 0xae, 0x35, 0xc6, 0xea, 0xac, 0xa7, 0x53, 0xb0,
685 0x41, 0xb5, 0xe5, 0xf0, 0x93, 0xbf, 0x83, 0x39,
686 0x7f, 0xd2, 0x1d, 0xd6, 0xb3, 0x01, 0x20, 0x66,
687 0xfc, 0xc0, 0x58, 0xcc, 0x32, 0xc3, 0xb0, 0x9d,
688 0x75, 0x62, 0xde, 0xe2, 0x95, 0x09, 0xb5, 0x83,
689 0x93, 0x92, 0xc9, 0xff, 0x05, 0xf5, 0x1f, 0x31,
690 0x66, 0xaa, 0xac, 0x4a, 0xc5, 0xf2, 0x38, 0x03,
691 0x8a, 0x30, 0x45, 0xe6, 0xf7, 0x2e, 0x48, 0xef,
692 0x0f, 0xe8, 0xbc, 0x67, 0x5e, 0x82, 0xc3, 0x18,
693 0xa2, 0x68, 0xe4, 0x39, 0x70, 0x27, 0x1b, 0xf1,
694 0x19, 0xb8, 0x1b, 0xf6, 0xa9, 0x82, 0x74, 0x65,
695 0x54, 0xf8, 0x4e, 0x72, 0xb9, 0xf0, 0x02, 0x80,
696 0xa3, 0x20, 0xa0, 0x81, 0x42, 0x92, 0x3c, 0x23,
697 0xc8, 0x83, 0x42, 0x3f, 0xf9, 0x49, 0x82, 0x7f,
698 0x29, 0xbb, 0xac, 0xdc, 0x1c, 0xcd, 0xb0, 0x49,
699 0x38, 0xce, 0x60, 0x98, 0xc9, 0x5b, 0xa6, 0xb3,
700 0x25, 0x28, 0xf4, 0xef, 0x78, 0xee, 0xd7, 0x78,
701 0xb2, 0xe1, 0x22, 0xdd, 0xfd, 0x1c, 0xbd, 0xd1,
702 0x1d, 0x1c, 0x0a, 0x67, 0x83, 0xe0, 0x11, 0xfc,
703 0x53, 0x6d, 0x63, 0xd0, 0x53, 0x26, 0x06, 0x37,
704 };
705
706 static const uint8_t aes_xts_256_vec8_ctxt[SECSIZE] = {
707 0x72, 0xef, 0xc1, 0xeb, 0xfe, 0x1e, 0xe2, 0x59,
708 0x75, 0xa6, 0xeb, 0x3a, 0xa8, 0x58, 0x9d, 0xda,
709 0x2b, 0x26, 0x1f, 0x1c, 0x85, 0xbd, 0xab, 0x44,
710 0x2a, 0x9e, 0x5b, 0x2d, 0xd1, 0xd7, 0xc3, 0x95,
711 0x7a, 0x16, 0xfc, 0x08, 0xe5, 0x26, 0xd4, 0xb1,
712 0x22, 0x3f, 0x1b, 0x12, 0x32, 0xa1, 0x1a, 0xf2,
713 0x74, 0xc3, 0xd7, 0x0d, 0xac, 0x57, 0xf8, 0x3e,
714 0x09, 0x83, 0xc4, 0x98, 0xf1, 0xa6, 0xf1, 0xae,
715 0xcb, 0x02, 0x1c, 0x3e, 0x70, 0x08, 0x5a, 0x1e,
716 0x52, 0x7f, 0x1c, 0xe4, 0x1e, 0xe5, 0x91, 0x1a,
717 0x82, 0x02, 0x01, 0x61, 0x52, 0x9c, 0xd8, 0x27,
718 0x73, 0x76, 0x2d, 0xaf, 0x54, 0x59, 0xde, 0x94,
719 0xa0, 0xa8, 0x2a, 0xda, 0xe7, 0xe1, 0x70, 0x3c,
720 0x80, 0x85, 0x43, 0xc2, 0x9e, 0xd6, 0xfb, 0x32,
721 0xd9, 0xe0, 0x04, 0x32, 0x7c, 0x13, 0x55, 0x18,
722 0x0c, 0x99, 0x5a, 0x07, 0x74, 0x14, 0x93, 0xa0,
723 0x9c, 0x21, 0xba, 0x01, 0xa3, 0x87, 0x88, 0x2d,
724 0xa4, 0xf6, 0x25, 0x34, 0xb8, 0x7b, 0xb1, 0x5d,
725 0x60, 0xd1, 0x97, 0x20, 0x1c, 0x0f, 0xd3, 0xbf,
726 0x30, 0xc1, 0x50, 0x0a, 0x3e, 0xcf, 0xec, 0xdd,
727 0x66, 0xd8, 0x72, 0x1f, 0x90, 0xbc, 0xc4, 0xc1,
728 0x7e, 0xe9, 0x25, 0xc6, 0x1b, 0x0a, 0x03, 0x72,
729 0x7a, 0x9c, 0x0d, 0x5f, 0x5c, 0xa4, 0x62, 0xfb,
730 0xfa, 0x0a, 0xf1, 0xc2, 0x51, 0x3a, 0x9d, 0x9d,
731 0x4b, 0x53, 0x45, 0xbd, 0x27, 0xa5, 0xf6, 0xe6,
732 0x53, 0xf7, 0x51, 0x69, 0x3e, 0x6b, 0x6a, 0x2b,
733 0x8e, 0xad, 0x57, 0xd5, 0x11, 0xe0, 0x0e, 0x58,
734 0xc4, 0x5b, 0x7b, 0x8d, 0x00, 0x5a, 0xf7, 0x92,
735 0x88, 0xf5, 0xc7, 0xc2, 0x2f, 0xd4, 0xf1, 0xbf,
736 0x7a, 0x89, 0x8b, 0x03, 0xa5, 0x63, 0x4c, 0x6a,
737 0x1a, 0xe3, 0xf9, 0xfa, 0xe5, 0xde, 0x4f, 0x29,
738 0x6a, 0x28, 0x96, 0xb2, 0x3e, 0x7e, 0xd4, 0x3e,
739 0xd1, 0x4f, 0xa5, 0xa2, 0x80, 0x3f, 0x4d, 0x28,
740 0xf0, 0xd3, 0xff, 0xcf, 0x24, 0x75, 0x76, 0x77,
741 0xae, 0xbd, 0xb4, 0x7b, 0xb3, 0x88, 0x37, 0x87,
742 0x08, 0x94, 0x8a, 0x8d, 0x41, 0x26, 0xed, 0x18,
743 0x39, 0xe0, 0xda, 0x29, 0xa5, 0x37, 0xa8, 0xc1,
744 0x98, 0xb3, 0xc6, 0x6a, 0xb0, 0x07, 0x12, 0xdd,
745 0x26, 0x16, 0x74, 0xbf, 0x45, 0xa7, 0x3d, 0x67,
746 0xf7, 0x69, 0x14, 0xf8, 0x30, 0xca, 0x01, 0x4b,
747 0x65, 0x59, 0x6f, 0x27, 0xe4, 0xcf, 0x62, 0xde,
748 0x66, 0x12, 0x5a, 0x55, 0x66, 0xdf, 0x99, 0x75,
749 0x15, 0x56, 0x28, 0xb4, 0x00, 0xfb, 0xfb, 0x3a,
750 0x29, 0x04, 0x0e, 0xd5, 0x0f, 0xaf, 0xfd, 0xbb,
751 0x18, 0xae, 0xce, 0x7c, 0x5c, 0x44, 0x69, 0x32,
752 0x60, 0xaa, 0xb3, 0x86, 0xc0, 0xa3, 0x7b, 0x11,
753 0xb1, 0x14, 0xf1, 0xc4, 0x15, 0xae, 0xbb, 0x65,
754 0x3b, 0xe4, 0x68, 0x17, 0x94, 0x28, 0xd4, 0x3a,
755 0x4d, 0x8b, 0xc3, 0xec, 0x38, 0x81, 0x3e, 0xca,
756 0x30, 0xa1, 0x3c, 0xf1, 0xbb, 0x18, 0xd5, 0x24,
757 0xf1, 0x99, 0x2d, 0x44, 0xd8, 0xb1, 0xa4, 0x2e,
758 0xa3, 0x0b, 0x22, 0xe6, 0xc9, 0x5b, 0x19, 0x9d,
759 0x8d, 0x18, 0x2f, 0x88, 0x40, 0xb0, 0x9d, 0x05,
760 0x95, 0x85, 0xc3, 0x1a, 0xd6, 0x91, 0xfa, 0x06,
761 0x19, 0xff, 0x03, 0x8a, 0xca, 0x2c, 0x39, 0xa9,
762 0x43, 0x42, 0x11, 0x57, 0x36, 0x17, 0x17, 0xc4,
763 0x9d, 0x32, 0x20, 0x28, 0xa7, 0x46, 0x48, 0x11,
764 0x3b, 0xd8, 0xc9, 0xd7, 0xec, 0x77, 0xcf, 0x3c,
765 0x89, 0xc1, 0xec, 0x87, 0x18, 0xce, 0xff, 0x85,
766 0x16, 0xd9, 0x6b, 0x34, 0xc3, 0xc6, 0x14, 0xf1,
767 0x06, 0x99, 0xc9, 0xab, 0xc4, 0xed, 0x04, 0x11,
768 0x50, 0x62, 0x23, 0xbe, 0xa1, 0x6a, 0xf3, 0x5c,
769 0x88, 0x3a, 0xcc, 0xdb, 0xe1, 0x10, 0x4e, 0xef,
770 0x0c, 0xfd, 0xb5, 0x4e, 0x12, 0xfb, 0x23, 0x0a,
771 };
772
773 /*
774 * Vector 9 from IEEE 1619/D16, blkno 0xff.
775 */
776 static const uint8_t aes_xts_256_vec9_ptxt[SECSIZE] = {
777 0x72, 0xef, 0xc1, 0xeb, 0xfe, 0x1e, 0xe2, 0x59,
778 0x75, 0xa6, 0xeb, 0x3a, 0xa8, 0x58, 0x9d, 0xda,
779 0x2b, 0x26, 0x1f, 0x1c, 0x85, 0xbd, 0xab, 0x44,
780 0x2a, 0x9e, 0x5b, 0x2d, 0xd1, 0xd7, 0xc3, 0x95,
781 0x7a, 0x16, 0xfc, 0x08, 0xe5, 0x26, 0xd4, 0xb1,
782 0x22, 0x3f, 0x1b, 0x12, 0x32, 0xa1, 0x1a, 0xf2,
783 0x74, 0xc3, 0xd7, 0x0d, 0xac, 0x57, 0xf8, 0x3e,
784 0x09, 0x83, 0xc4, 0x98, 0xf1, 0xa6, 0xf1, 0xae,
785 0xcb, 0x02, 0x1c, 0x3e, 0x70, 0x08, 0x5a, 0x1e,
786 0x52, 0x7f, 0x1c, 0xe4, 0x1e, 0xe5, 0x91, 0x1a,
787 0x82, 0x02, 0x01, 0x61, 0x52, 0x9c, 0xd8, 0x27,
788 0x73, 0x76, 0x2d, 0xaf, 0x54, 0x59, 0xde, 0x94,
789 0xa0, 0xa8, 0x2a, 0xda, 0xe7, 0xe1, 0x70, 0x3c,
790 0x80, 0x85, 0x43, 0xc2, 0x9e, 0xd6, 0xfb, 0x32,
791 0xd9, 0xe0, 0x04, 0x32, 0x7c, 0x13, 0x55, 0x18,
792 0x0c, 0x99, 0x5a, 0x07, 0x74, 0x14, 0x93, 0xa0,
793 0x9c, 0x21, 0xba, 0x01, 0xa3, 0x87, 0x88, 0x2d,
794 0xa4, 0xf6, 0x25, 0x34, 0xb8, 0x7b, 0xb1, 0x5d,
795 0x60, 0xd1, 0x97, 0x20, 0x1c, 0x0f, 0xd3, 0xbf,
796 0x30, 0xc1, 0x50, 0x0a, 0x3e, 0xcf, 0xec, 0xdd,
797 0x66, 0xd8, 0x72, 0x1f, 0x90, 0xbc, 0xc4, 0xc1,
798 0x7e, 0xe9, 0x25, 0xc6, 0x1b, 0x0a, 0x03, 0x72,
799 0x7a, 0x9c, 0x0d, 0x5f, 0x5c, 0xa4, 0x62, 0xfb,
800 0xfa, 0x0a, 0xf1, 0xc2, 0x51, 0x3a, 0x9d, 0x9d,
801 0x4b, 0x53, 0x45, 0xbd, 0x27, 0xa5, 0xf6, 0xe6,
802 0x53, 0xf7, 0x51, 0x69, 0x3e, 0x6b, 0x6a, 0x2b,
803 0x8e, 0xad, 0x57, 0xd5, 0x11, 0xe0, 0x0e, 0x58,
804 0xc4, 0x5b, 0x7b, 0x8d, 0x00, 0x5a, 0xf7, 0x92,
805 0x88, 0xf5, 0xc7, 0xc2, 0x2f, 0xd4, 0xf1, 0xbf,
806 0x7a, 0x89, 0x8b, 0x03, 0xa5, 0x63, 0x4c, 0x6a,
807 0x1a, 0xe3, 0xf9, 0xfa, 0xe5, 0xde, 0x4f, 0x29,
808 0x6a, 0x28, 0x96, 0xb2, 0x3e, 0x7e, 0xd4, 0x3e,
809 0xd1, 0x4f, 0xa5, 0xa2, 0x80, 0x3f, 0x4d, 0x28,
810 0xf0, 0xd3, 0xff, 0xcf, 0x24, 0x75, 0x76, 0x77,
811 0xae, 0xbd, 0xb4, 0x7b, 0xb3, 0x88, 0x37, 0x87,
812 0x08, 0x94, 0x8a, 0x8d, 0x41, 0x26, 0xed, 0x18,
813 0x39, 0xe0, 0xda, 0x29, 0xa5, 0x37, 0xa8, 0xc1,
814 0x98, 0xb3, 0xc6, 0x6a, 0xb0, 0x07, 0x12, 0xdd,
815 0x26, 0x16, 0x74, 0xbf, 0x45, 0xa7, 0x3d, 0x67,
816 0xf7, 0x69, 0x14, 0xf8, 0x30, 0xca, 0x01, 0x4b,
817 0x65, 0x59, 0x6f, 0x27, 0xe4, 0xcf, 0x62, 0xde,
818 0x66, 0x12, 0x5a, 0x55, 0x66, 0xdf, 0x99, 0x75,
819 0x15, 0x56, 0x28, 0xb4, 0x00, 0xfb, 0xfb, 0x3a,
820 0x29, 0x04, 0x0e, 0xd5, 0x0f, 0xaf, 0xfd, 0xbb,
821 0x18, 0xae, 0xce, 0x7c, 0x5c, 0x44, 0x69, 0x32,
822 0x60, 0xaa, 0xb3, 0x86, 0xc0, 0xa3, 0x7b, 0x11,
823 0xb1, 0x14, 0xf1, 0xc4, 0x15, 0xae, 0xbb, 0x65,
824 0x3b, 0xe4, 0x68, 0x17, 0x94, 0x28, 0xd4, 0x3a,
825 0x4d, 0x8b, 0xc3, 0xec, 0x38, 0x81, 0x3e, 0xca,
826 0x30, 0xa1, 0x3c, 0xf1, 0xbb, 0x18, 0xd5, 0x24,
827 0xf1, 0x99, 0x2d, 0x44, 0xd8, 0xb1, 0xa4, 0x2e,
828 0xa3, 0x0b, 0x22, 0xe6, 0xc9, 0x5b, 0x19, 0x9d,
829 0x8d, 0x18, 0x2f, 0x88, 0x40, 0xb0, 0x9d, 0x05,
830 0x95, 0x85, 0xc3, 0x1a, 0xd6, 0x91, 0xfa, 0x06,
831 0x19, 0xff, 0x03, 0x8a, 0xca, 0x2c, 0x39, 0xa9,
832 0x43, 0x42, 0x11, 0x57, 0x36, 0x17, 0x17, 0xc4,
833 0x9d, 0x32, 0x20, 0x28, 0xa7, 0x46, 0x48, 0x11,
834 0x3b, 0xd8, 0xc9, 0xd7, 0xec, 0x77, 0xcf, 0x3c,
835 0x89, 0xc1, 0xec, 0x87, 0x18, 0xce, 0xff, 0x85,
836 0x16, 0xd9, 0x6b, 0x34, 0xc3, 0xc6, 0x14, 0xf1,
837 0x06, 0x99, 0xc9, 0xab, 0xc4, 0xed, 0x04, 0x11,
838 0x50, 0x62, 0x23, 0xbe, 0xa1, 0x6a, 0xf3, 0x5c,
839 0x88, 0x3a, 0xcc, 0xdb, 0xe1, 0x10, 0x4e, 0xef,
840 0x0c, 0xfd, 0xb5, 0x4e, 0x12, 0xfb, 0x23, 0x0a,
841 };
842
843 static const uint8_t aes_xts_256_vec9_ctxt[SECSIZE] = {
844 0x32, 0x60, 0xae, 0x8d, 0xad, 0x1f, 0x4a, 0x32,
845 0xc5, 0xca, 0xfe, 0x3a, 0xb0, 0xeb, 0x95, 0x54,
846 0x9d, 0x46, 0x1a, 0x67, 0xce, 0xb9, 0xe5, 0xaa,
847 0x2d, 0x3a, 0xfb, 0x62, 0xde, 0xce, 0x05, 0x53,
848 0x19, 0x3b, 0xa5, 0x0c, 0x75, 0xbe, 0x25, 0x1e,
849 0x08, 0xd1, 0xd0, 0x8f, 0x10, 0x88, 0x57, 0x6c,
850 0x7e, 0xfd, 0xfa, 0xaf, 0x3f, 0x45, 0x95, 0x59,
851 0x57, 0x1e, 0x12, 0x51, 0x17, 0x53, 0xb0, 0x7a,
852 0xf0, 0x73, 0xf3, 0x5d, 0xa0, 0x6a, 0xf0, 0xce,
853 0x0b, 0xbf, 0x6b, 0x8f, 0x5c, 0xcc, 0x5c, 0xea,
854 0x50, 0x0e, 0xc1, 0xb2, 0x11, 0xbd, 0x51, 0xf6,
855 0x3b, 0x60, 0x6b, 0xf6, 0x52, 0x87, 0x96, 0xca,
856 0x12, 0x17, 0x3b, 0xa3, 0x9b, 0x89, 0x35, 0xee,
857 0x44, 0xcc, 0xce, 0x64, 0x6f, 0x90, 0xa4, 0x5b,
858 0xf9, 0xcc, 0xc5, 0x67, 0xf0, 0xac, 0xe1, 0x3d,
859 0xc2, 0xd5, 0x3e, 0xbe, 0xed, 0xc8, 0x1f, 0x58,
860 0xb2, 0xe4, 0x11, 0x79, 0xdd, 0xdf, 0x0d, 0x5a,
861 0x5c, 0x42, 0xf5, 0xd8, 0x50, 0x6c, 0x1a, 0x5d,
862 0x2f, 0x8f, 0x59, 0xf3, 0xea, 0x87, 0x3c, 0xbc,
863 0xd0, 0xee, 0xc1, 0x9a, 0xcb, 0xf3, 0x25, 0x42,
864 0x3b, 0xd3, 0xdc, 0xb8, 0xc2, 0xb1, 0xbf, 0x1d,
865 0x1e, 0xae, 0xd0, 0xeb, 0xa7, 0xf0, 0x69, 0x8e,
866 0x43, 0x14, 0xfb, 0xeb, 0x2f, 0x15, 0x66, 0xd1,
867 0xb9, 0x25, 0x30, 0x08, 0xcb, 0xcc, 0xf4, 0x5a,
868 0x2b, 0x0d, 0x9c, 0x5c, 0x9c, 0x21, 0x47, 0x4f,
869 0x40, 0x76, 0xe0, 0x2b, 0xe2, 0x60, 0x50, 0xb9,
870 0x9d, 0xee, 0x4f, 0xd6, 0x8a, 0x4c, 0xf8, 0x90,
871 0xe4, 0x96, 0xe4, 0xfc, 0xae, 0x7b, 0x70, 0xf9,
872 0x4e, 0xa5, 0xa9, 0x06, 0x2d, 0xa0, 0xda, 0xeb,
873 0xa1, 0x99, 0x3d, 0x2c, 0xcd, 0x1d, 0xd3, 0xc2,
874 0x44, 0xb8, 0x42, 0x88, 0x01, 0x49, 0x5a, 0x58,
875 0xb2, 0x16, 0x54, 0x7e, 0x7e, 0x84, 0x7c, 0x46,
876 0xd1, 0xd7, 0x56, 0x37, 0x7b, 0x62, 0x42, 0xd2,
877 0xe5, 0xfb, 0x83, 0xbf, 0x75, 0x2b, 0x54, 0xe0,
878 0xdf, 0x71, 0xe8, 0x89, 0xf3, 0xa2, 0xbb, 0x0f,
879 0x4c, 0x10, 0x80, 0x5b, 0xf3, 0xc5, 0x90, 0x37,
880 0x6e, 0x3c, 0x24, 0xe2, 0x2f, 0xf5, 0x7f, 0x7f,
881 0xa9, 0x65, 0x57, 0x73, 0x75, 0x32, 0x5c, 0xea,
882 0x5d, 0x92, 0x0d, 0xb9, 0x4b, 0x9c, 0x33, 0x6b,
883 0x45, 0x5f, 0x6e, 0x89, 0x4c, 0x01, 0x86, 0x6f,
884 0xe9, 0xfb, 0xb8, 0xc8, 0xd3, 0xf7, 0x0a, 0x29,
885 0x57, 0x28, 0x5f, 0x6d, 0xfb, 0x5d, 0xcd, 0x8c,
886 0xbf, 0x54, 0x78, 0x2f, 0x8f, 0xe7, 0x76, 0x6d,
887 0x47, 0x23, 0x81, 0x99, 0x13, 0xac, 0x77, 0x34,
888 0x21, 0xe3, 0xa3, 0x10, 0x95, 0x86, 0x6b, 0xad,
889 0x22, 0xc8, 0x6a, 0x60, 0x36, 0xb2, 0x51, 0x8b,
890 0x20, 0x59, 0xb4, 0x22, 0x9d, 0x18, 0xc8, 0xc2,
891 0xcc, 0xbd, 0xf9, 0x06, 0xc6, 0xcc, 0x6e, 0x82,
892 0x46, 0x4e, 0xe5, 0x7b, 0xdd, 0xb0, 0xbe, 0xbc,
893 0xb1, 0xdc, 0x64, 0x53, 0x25, 0xbf, 0xb3, 0xe6,
894 0x65, 0xef, 0x72, 0x51, 0x08, 0x2c, 0x88, 0xeb,
895 0xb1, 0xcf, 0x20, 0x3b, 0xd7, 0x79, 0xfd, 0xd3,
896 0x86, 0x75, 0x71, 0x3c, 0x8d, 0xaa, 0xdd, 0x17,
897 0xe1, 0xca, 0xbe, 0xe4, 0x32, 0xb0, 0x97, 0x87,
898 0xb6, 0xdd, 0xf3, 0x30, 0x4e, 0x38, 0xb7, 0x31,
899 0xb4, 0x5d, 0xf5, 0xdf, 0x51, 0xb7, 0x8f, 0xcf,
900 0xb3, 0xd3, 0x24, 0x66, 0x02, 0x8d, 0x0b, 0xa3,
901 0x65, 0x55, 0xe7, 0xe1, 0x1a, 0xb0, 0xee, 0x06,
902 0x66, 0x06, 0x1d, 0x16, 0x45, 0xd9, 0x62, 0x44,
903 0x4b, 0xc4, 0x7a, 0x38, 0x18, 0x89, 0x30, 0xa8,
904 0x4b, 0x4d, 0x56, 0x13, 0x95, 0xc7, 0x3c, 0x08,
905 0x70, 0x21, 0x92, 0x7c, 0xa6, 0x38, 0xb7, 0xaf,
906 0xc8, 0xa8, 0x67, 0x9c, 0xcb, 0x84, 0xc2, 0x65,
907 0x55, 0x44, 0x0e, 0xc7, 0xf1, 0x04, 0x45, 0xcd,
908 };
909
910 const struct testvec aes_xts_256_vectors[] = {
911 {
912 .blkno = 0,
913 .ptxt = aes_xts_256_vec4_ptxt,
914 .ctxt = aes_xts_256_vec4_ctxt,
915 },
916 {
917 .blkno = 1,
918 .ptxt = aes_xts_256_vec5_ptxt,
919 .ctxt = aes_xts_256_vec5_ctxt,
920 },
921 {
922 .blkno = 2,
923 .ptxt = aes_xts_256_vec6_ptxt,
924 .ctxt = aes_xts_256_vec6_ctxt,
925 },
926 {
927 .blkno = 0xfd,
928 .ptxt = aes_xts_256_vec7_ptxt,
929 .ctxt = aes_xts_256_vec7_ctxt,
930 },
931 {
932 .blkno = 0xfe,
933 .ptxt = aes_xts_256_vec8_ptxt,
934 .ctxt = aes_xts_256_vec8_ctxt,
935 },
936 {
937 .blkno = 0xff,
938 .ptxt = aes_xts_256_vec9_ptxt,
939 .ctxt = aes_xts_256_vec9_ctxt,
940 },
941 };
942
943 /*
944 * Vector 10 from IEEE 1619/D16, blkno 0xff.
945 */
946 static const uint8_t aes_xts_512_vec10_ptxt[SECSIZE] = {
947 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
948 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
949 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
950 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
951 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
952 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
953 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
954 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
955 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
956 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
957 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
958 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
959 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
960 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
961 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
962 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
963 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
964 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
965 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
966 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
967 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
968 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
969 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
970 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
971 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
972 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
973 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
974 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
975 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
976 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
977 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
978 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
979 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
980 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
981 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
982 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
983 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
984 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
985 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
986 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
987 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
988 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
989 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
990 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
991 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
992 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
993 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
994 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
995 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
996 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
997 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
998 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
999 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1000 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1001 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1002 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1003 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1004 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1005 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1006 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1007 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1008 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1009 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1010 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1011 };
1012
1013 static const uint8_t aes_xts_512_vec10_ctxt[SECSIZE] = {
1014 0x1c, 0x3b, 0x3a, 0x10, 0x2f, 0x77, 0x03, 0x86,
1015 0xe4, 0x83, 0x6c, 0x99, 0xe3, 0x70, 0xcf, 0x9b,
1016 0xea, 0x00, 0x80, 0x3f, 0x5e, 0x48, 0x23, 0x57,
1017 0xa4, 0xae, 0x12, 0xd4, 0x14, 0xa3, 0xe6, 0x3b,
1018 0x5d, 0x31, 0xe2, 0x76, 0xf8, 0xfe, 0x4a, 0x8d,
1019 0x66, 0xb3, 0x17, 0xf9, 0xac, 0x68, 0x3f, 0x44,
1020 0x68, 0x0a, 0x86, 0xac, 0x35, 0xad, 0xfc, 0x33,
1021 0x45, 0xbe, 0xfe, 0xcb, 0x4b, 0xb1, 0x88, 0xfd,
1022 0x57, 0x76, 0x92, 0x6c, 0x49, 0xa3, 0x09, 0x5e,
1023 0xb1, 0x08, 0xfd, 0x10, 0x98, 0xba, 0xec, 0x70,
1024 0xaa, 0xa6, 0x69, 0x99, 0xa7, 0x2a, 0x82, 0xf2,
1025 0x7d, 0x84, 0x8b, 0x21, 0xd4, 0xa7, 0x41, 0xb0,
1026 0xc5, 0xcd, 0x4d, 0x5f, 0xff, 0x9d, 0xac, 0x89,
1027 0xae, 0xba, 0x12, 0x29, 0x61, 0xd0, 0x3a, 0x75,
1028 0x71, 0x23, 0xe9, 0x87, 0x0f, 0x8a, 0xcf, 0x10,
1029 0x00, 0x02, 0x08, 0x87, 0x89, 0x14, 0x29, 0xca,
1030 0x2a, 0x3e, 0x7a, 0x7d, 0x7d, 0xf7, 0xb1, 0x03,
1031 0x55, 0x16, 0x5c, 0x8b, 0x9a, 0x6d, 0x0a, 0x7d,
1032 0xe8, 0xb0, 0x62, 0xc4, 0x50, 0x0d, 0xc4, 0xcd,
1033 0x12, 0x0c, 0x0f, 0x74, 0x18, 0xda, 0xe3, 0xd0,
1034 0xb5, 0x78, 0x1c, 0x34, 0x80, 0x3f, 0xa7, 0x54,
1035 0x21, 0xc7, 0x90, 0xdf, 0xe1, 0xde, 0x18, 0x34,
1036 0xf2, 0x80, 0xd7, 0x66, 0x7b, 0x32, 0x7f, 0x6c,
1037 0x8c, 0xd7, 0x55, 0x7e, 0x12, 0xac, 0x3a, 0x0f,
1038 0x93, 0xec, 0x05, 0xc5, 0x2e, 0x04, 0x93, 0xef,
1039 0x31, 0xa1, 0x2d, 0x3d, 0x92, 0x60, 0xf7, 0x9a,
1040 0x28, 0x9d, 0x6a, 0x37, 0x9b, 0xc7, 0x0c, 0x50,
1041 0x84, 0x14, 0x73, 0xd1, 0xa8, 0xcc, 0x81, 0xec,
1042 0x58, 0x3e, 0x96, 0x45, 0xe0, 0x7b, 0x8d, 0x96,
1043 0x70, 0x65, 0x5b, 0xa5, 0xbb, 0xcf, 0xec, 0xc6,
1044 0xdc, 0x39, 0x66, 0x38, 0x0a, 0xd8, 0xfe, 0xcb,
1045 0x17, 0xb6, 0xba, 0x02, 0x46, 0x9a, 0x02, 0x0a,
1046 0x84, 0xe1, 0x8e, 0x8f, 0x84, 0x25, 0x20, 0x70,
1047 0xc1, 0x3e, 0x9f, 0x1f, 0x28, 0x9b, 0xe5, 0x4f,
1048 0xbc, 0x48, 0x14, 0x57, 0x77, 0x8f, 0x61, 0x60,
1049 0x15, 0xe1, 0x32, 0x7a, 0x02, 0xb1, 0x40, 0xf1,
1050 0x50, 0x5e, 0xb3, 0x09, 0x32, 0x6d, 0x68, 0x37,
1051 0x8f, 0x83, 0x74, 0x59, 0x5c, 0x84, 0x9d, 0x84,
1052 0xf4, 0xc3, 0x33, 0xec, 0x44, 0x23, 0x88, 0x51,
1053 0x43, 0xcb, 0x47, 0xbd, 0x71, 0xc5, 0xed, 0xae,
1054 0x9b, 0xe6, 0x9a, 0x2f, 0xfe, 0xce, 0xb1, 0xbe,
1055 0xc9, 0xde, 0x24, 0x4f, 0xbe, 0x15, 0x99, 0x2b,
1056 0x11, 0xb7, 0x7c, 0x04, 0x0f, 0x12, 0xbd, 0x8f,
1057 0x6a, 0x97, 0x5a, 0x44, 0xa0, 0xf9, 0x0c, 0x29,
1058 0xa9, 0xab, 0xc3, 0xd4, 0xd8, 0x93, 0x92, 0x72,
1059 0x84, 0xc5, 0x87, 0x54, 0xcc, 0xe2, 0x94, 0x52,
1060 0x9f, 0x86, 0x14, 0xdc, 0xd2, 0xab, 0xa9, 0x91,
1061 0x92, 0x5f, 0xed, 0xc4, 0xae, 0x74, 0xff, 0xac,
1062 0x6e, 0x33, 0x3b, 0x93, 0xeb, 0x4a, 0xff, 0x04,
1063 0x79, 0xda, 0x9a, 0x41, 0x0e, 0x44, 0x50, 0xe0,
1064 0xdd, 0x7a, 0xe4, 0xc6, 0xe2, 0x91, 0x09, 0x00,
1065 0x57, 0x5d, 0xa4, 0x01, 0xfc, 0x07, 0x05, 0x9f,
1066 0x64, 0x5e, 0x8b, 0x7e, 0x9b, 0xfd, 0xef, 0x33,
1067 0x94, 0x30, 0x54, 0xff, 0x84, 0x01, 0x14, 0x93,
1068 0xc2, 0x7b, 0x34, 0x29, 0xea, 0xed, 0xb4, 0xed,
1069 0x53, 0x76, 0x44, 0x1a, 0x77, 0xed, 0x43, 0x85,
1070 0x1a, 0xd7, 0x7f, 0x16, 0xf5, 0x41, 0xdf, 0xd2,
1071 0x69, 0xd5, 0x0d, 0x6a, 0x5f, 0x14, 0xfb, 0x0a,
1072 0xab, 0x1c, 0xbb, 0x4c, 0x15, 0x50, 0xbe, 0x97,
1073 0xf7, 0xab, 0x40, 0x66, 0x19, 0x3c, 0x4c, 0xaa,
1074 0x77, 0x3d, 0xad, 0x38, 0x01, 0x4b, 0xd2, 0x09,
1075 0x2f, 0xa7, 0x55, 0xc8, 0x24, 0xbb, 0x5e, 0x54,
1076 0xc4, 0xf3, 0x6f, 0xfd, 0xa9, 0xfc, 0xea, 0x70,
1077 0xb9, 0xc6, 0xe6, 0x93, 0xe1, 0x48, 0xc1, 0x51,
1078 };
1079
1080 /*
1081 * Vector 11 from IEEE 1619/D16, blkno 0xffff.
1082 */
1083 static const uint8_t aes_xts_512_vec11_ptxt[SECSIZE] = {
1084 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1085 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1086 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1087 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1088 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1089 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1090 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1091 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1092 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1093 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1094 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1095 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1096 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1097 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1098 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1099 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1100 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1101 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1102 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1103 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1104 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1105 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1106 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1107 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1108 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1109 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1110 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1111 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1112 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1113 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1114 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1115 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1116 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1117 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1118 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1119 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1120 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1121 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1122 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1123 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1124 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
1125 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
1126 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
1127 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1128 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1129 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
1130 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1131 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
1132 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
1133 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
1134 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
1135 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
1136 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
1137 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
1138 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
1139 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
1140 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
1141 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
1142 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
1143 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
1144 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
1145 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
1146 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
1147 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
1148 };
1149
1150 static const uint8_t aes_xts_512_vec11_ctxt[SECSIZE] = {
1151 0x77, 0xa3, 0x12, 0x51, 0x61, 0x8a, 0x15, 0xe6,
1152 0xb9, 0x2d, 0x1d, 0x66, 0xdf, 0xfe, 0x7b, 0x50,
1153 0xb5, 0x0b, 0xad, 0x55, 0x23, 0x05, 0xba, 0x02,
1154 0x17, 0xa6, 0x10, 0x68, 0x8e, 0xff, 0x7e, 0x11,
1155 0xe1, 0xd0, 0x22, 0x54, 0x38, 0xe0, 0x93, 0x24,
1156 0x2d, 0x6d, 0xb2, 0x74, 0xfd, 0xe8, 0x01, 0xd4,
1157 0xca, 0xe0, 0x6f, 0x20, 0x92, 0xc7, 0x28, 0xb2,
1158 0x47, 0x85, 0x59, 0xdf, 0x58, 0xe8, 0x37, 0xc2,
1159 0x46, 0x9e, 0xe4, 0xa4, 0xfa, 0x79, 0x4e, 0x4b,
1160 0xbc, 0x7f, 0x39, 0xbc, 0x02, 0x6e, 0x3c, 0xb7,
1161 0x2c, 0x33, 0xb0, 0x88, 0x8f, 0x25, 0xb4, 0xac,
1162 0xf5, 0x6a, 0x2a, 0x98, 0x04, 0xf1, 0xce, 0x6d,
1163 0x3d, 0x6e, 0x1d, 0xc6, 0xca, 0x18, 0x1d, 0x4b,
1164 0x54, 0x61, 0x79, 0xd5, 0x55, 0x44, 0xaa, 0x77,
1165 0x60, 0xc4, 0x0d, 0x06, 0x74, 0x15, 0x39, 0xc7,
1166 0xe3, 0xcd, 0x9d, 0x2f, 0x66, 0x50, 0xb2, 0x01,
1167 0x3f, 0xd0, 0xee, 0xb8, 0xc2, 0xb8, 0xe3, 0xd8,
1168 0xd2, 0x40, 0xcc, 0xae, 0x2d, 0x4c, 0x98, 0x32,
1169 0x0a, 0x74, 0x42, 0xe1, 0xc8, 0xd7, 0x5a, 0x42,
1170 0xd6, 0xe6, 0xcf, 0xa4, 0xc2, 0xec, 0xa1, 0x79,
1171 0x8d, 0x15, 0x8c, 0x7a, 0xec, 0xdf, 0x82, 0x49,
1172 0x0f, 0x24, 0xbb, 0x9b, 0x38, 0xe1, 0x08, 0xbc,
1173 0xda, 0x12, 0xc3, 0xfa, 0xf9, 0xa2, 0x11, 0x41,
1174 0xc3, 0x61, 0x3b, 0x58, 0x36, 0x7f, 0x92, 0x2a,
1175 0xaa, 0x26, 0xcd, 0x22, 0xf2, 0x3d, 0x70, 0x8d,
1176 0xae, 0x69, 0x9a, 0xd7, 0xcb, 0x40, 0xa8, 0xad,
1177 0x0b, 0x6e, 0x27, 0x84, 0x97, 0x3d, 0xcb, 0x60,
1178 0x56, 0x84, 0xc0, 0x8b, 0x8d, 0x69, 0x98, 0xc6,
1179 0x9a, 0xac, 0x04, 0x99, 0x21, 0x87, 0x1e, 0xbb,
1180 0x65, 0x30, 0x1a, 0x46, 0x19, 0xca, 0x80, 0xec,
1181 0xb4, 0x85, 0xa3, 0x1d, 0x74, 0x42, 0x23, 0xce,
1182 0x8d, 0xdc, 0x23, 0x94, 0x82, 0x8d, 0x6a, 0x80,
1183 0x47, 0x0c, 0x09, 0x2f, 0x5b, 0xa4, 0x13, 0xc3,
1184 0x37, 0x8f, 0xa6, 0x05, 0x42, 0x55, 0xc6, 0xf9,
1185 0xdf, 0x44, 0x95, 0x86, 0x2b, 0xbb, 0x32, 0x87,
1186 0x68, 0x1f, 0x93, 0x1b, 0x68, 0x7c, 0x88, 0x8a,
1187 0xbf, 0x84, 0x4d, 0xfc, 0x8f, 0xc2, 0x83, 0x31,
1188 0xe5, 0x79, 0x92, 0x8c, 0xd1, 0x2b, 0xd2, 0x39,
1189 0x0a, 0xe1, 0x23, 0xcf, 0x03, 0x81, 0x8d, 0x14,
1190 0xde, 0xdd, 0xe5, 0xc0, 0xc2, 0x4c, 0x8a, 0xb0,
1191 0x18, 0xbf, 0xca, 0x75, 0xca, 0x09, 0x6f, 0x2d,
1192 0x53, 0x1f, 0x3d, 0x16, 0x19, 0xe7, 0x85, 0xf1,
1193 0xad, 0xa4, 0x37, 0xca, 0xb9, 0x2e, 0x98, 0x05,
1194 0x58, 0xb3, 0xdc, 0xe1, 0x47, 0x4a, 0xfb, 0x75,
1195 0xbf, 0xed, 0xbf, 0x8f, 0xf5, 0x4c, 0xb2, 0x61,
1196 0x8e, 0x02, 0x44, 0xc9, 0xac, 0x0d, 0x3c, 0x66,
1197 0xfb, 0x51, 0x59, 0x8c, 0xd2, 0xdb, 0x11, 0xf9,
1198 0xbe, 0x39, 0x79, 0x1a, 0xbe, 0x44, 0x7c, 0x63,
1199 0x09, 0x4f, 0x7c, 0x45, 0x3b, 0x7f, 0xf8, 0x7c,
1200 0xb5, 0xbb, 0x36, 0xb7, 0xc7, 0x9e, 0xfb, 0x08,
1201 0x72, 0xd1, 0x70, 0x58, 0xb8, 0x3b, 0x15, 0xab,
1202 0x08, 0x66, 0xad, 0x8a, 0x58, 0x65, 0x6c, 0x5a,
1203 0x7e, 0x20, 0xdb, 0xdf, 0x30, 0x8b, 0x24, 0x61,
1204 0xd9, 0x7c, 0x0e, 0xc0, 0x02, 0x4a, 0x27, 0x15,
1205 0x05, 0x52, 0x49, 0xcf, 0x3b, 0x47, 0x8d, 0xdd,
1206 0x47, 0x40, 0xde, 0x65, 0x4f, 0x75, 0xca, 0x68,
1207 0x6e, 0x0d, 0x73, 0x45, 0xc6, 0x9e, 0xd5, 0x0c,
1208 0xdc, 0x2a, 0x8b, 0x33, 0x2b, 0x1f, 0x88, 0x24,
1209 0x10, 0x8a, 0xc9, 0x37, 0xeb, 0x05, 0x05, 0x85,
1210 0x60, 0x8e, 0xe7, 0x34, 0x09, 0x7f, 0xc0, 0x90,
1211 0x54, 0xfb, 0xff, 0x89, 0xee, 0xae, 0xea, 0x79,
1212 0x1f, 0x4a, 0x7a, 0xb1, 0xf9, 0x86, 0x82, 0x94,
1213 0xa4, 0xf9, 0xe2, 0x7b, 0x42, 0xaf, 0x81, 0x00,
1214 0xcb, 0x9d, 0x59, 0xce, 0xf9, 0x64, 0x58, 0x03,
1215 };
1216
1217 const struct testvec aes_xts_512_vectors[] = {
1218 {
1219 .blkno = 0xff,
1220 .ptxt = aes_xts_512_vec10_ptxt,
1221 .ctxt = aes_xts_512_vec10_ctxt,
1222 },
1223 {
1224 .blkno = 0xffff,
1225 .ptxt = aes_xts_512_vec11_ptxt,
1226 .ctxt = aes_xts_512_vec11_ctxt,
1227 },
1228 };
1229
1230 static int
1231 open_disk(const char *devpath, const char *imgpath, size_t size)
1232 {
1233 int fd;
1234
1235 fd = open(imgpath, O_CREAT | O_RDWR | O_EXCL, 0600);
1236 if (fd < 0)
1237 return -1;
1238
1239 if (ftruncate(fd, size) < 0)
1240 goto fail;
1241
1242 if (rump_pub_etfs_register_withsize(devpath,
1243 imgpath, RUMP_ETFS_BLK, 0, size) < 0) {
1244 goto fail;
1245 }
1246
1247 unlink(imgpath);
1248 return fd;
1249 fail:
1250 close(fd);
1251 unlink(imgpath);
1252 return -1;
1253 }
1254
1255 static int
1256 open_cgd(int devno)
1257 {
1258 char devpath[32];
1259
1260 sprintf(devpath, "/dev/rcgd%d%c", devno, getrawpartition() + 'a');
1261
1262 return rump_sys_open(devpath, O_RDWR, 0);
1263 }
1264
1265 static int
1266 configure_cgd(int fd, const char *dkpath, const char *alg,
1267 const char *ivmethod, const char *key, size_t keylen)
1268 {
1269 struct cgd_ioctl ci;
1270
1271 memset(&ci, 0, sizeof(ci));
1272 ci.ci_disk = dkpath;
1273 ci.ci_alg = alg;
1274 ci.ci_ivmethod = ivmethod;
1275 ci.ci_keylen = 8 * keylen - 8; /* Exclude the NUL terminator. */
1276 ci.ci_key = key;
1277 ci.ci_blocksize = 128;
1278
1279 return rump_sys_ioctl(fd, CGDIOCSET, &ci);
1280 }
1281
1282 static int
1283 unconfigure_cgd(int fd)
1284 {
1285 struct cgd_ioctl ci;
1286
1287 return rump_sys_ioctl(fd, CGDIOCCLR, &ci);
1288 }
1289
1290 static int
1291 write_testvec(int cgdfd, const struct testvec *tv)
1292 {
1293
1294 if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
1295 return -1;
1296
1297 if (rump_sys_write(cgdfd, tv->ptxt, SECSIZE) != SECSIZE)
1298 return -1;
1299
1300 return 0;
1301 }
1302
1303 static int
1304 read_testvec(int cgdfd, const struct testvec *tv)
1305 {
1306 char *buf;
1307 int res = -1;
1308
1309 buf = malloc(SECSIZE);
1310 if (buf == NULL)
1311 return -1;
1312
1313 if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
1314 goto fail;
1315
1316 if (rump_sys_read(cgdfd, buf, SECSIZE) != SECSIZE)
1317 goto fail;
1318
1319 res = memcmp(buf, tv->ptxt, SECSIZE);
1320 fail:
1321 free(buf);
1322 return res;
1323 }
1324
1325 static int
1326 check_testvec(int dkfd, const struct testvec *tv)
1327 {
1328 char *buf;
1329 int res = -1;
1330
1331 buf = malloc(SECSIZE);
1332 if (buf == NULL)
1333 return -1;
1334
1335 if (lseek(dkfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
1336 goto fail;
1337
1338 if (read(dkfd, buf, SECSIZE) != SECSIZE)
1339 goto fail;
1340
1341 res = memcmp(buf, tv->ctxt, SECSIZE);
1342 fail:
1343 free(buf);
1344 return res;
1345 }
1346
1347 ATF_TC(cgd_aes_xts_256);
1348 ATF_TC_HEAD(cgd_aes_xts_256, tc)
1349 {
1350 atf_tc_set_md_var(tc, "descr", "Test aes-xts with 256 bits key");
1351 }
1352
1353 ATF_TC_BODY(cgd_aes_xts_256, tc)
1354 {
1355 char imgpath[] = "aes-xts-256.XXXXXX";
1356 const char *dkpath = "/dev/dk";
1357 const size_t dksize = 256 * SECSIZE; /* Last blkno is 0xff. */
1358 int dkfd, cgdfd;
1359
1360 atf_tc_expect_fail("aes-xts implementation not committed yet");
1361
1362 rump_init();
1363
1364 mktemp(imgpath);
1365 RL(dkfd = open_disk(dkpath, imgpath, dksize));
1366
1367 RL(cgdfd = open_cgd(0));
1368 RL(configure_cgd(cgdfd, dkpath, "aes-xts", "encblkno",
1369 aes_xts_256_key, sizeof(aes_xts_256_key)));
1370
1371 ATF_CHECK_EQ(write_testvec(cgdfd, &aes_xts_256_vectors[0]), 0);
1372 ATF_CHECK_EQ(write_testvec(cgdfd, &aes_xts_256_vectors[1]), 0);
1373 ATF_CHECK_EQ(write_testvec(cgdfd, &aes_xts_256_vectors[2]), 0);
1374 ATF_CHECK_EQ(write_testvec(cgdfd, &aes_xts_256_vectors[3]), 0);
1375 ATF_CHECK_EQ(write_testvec(cgdfd, &aes_xts_256_vectors[4]), 0);
1376 ATF_CHECK_EQ(write_testvec(cgdfd, &aes_xts_256_vectors[5]), 0);
1377
1378 RL(unconfigure_cgd(cgdfd));
1379 RL(configure_cgd(cgdfd, dkpath, "aes-xts", "encblkno",
1380 aes_xts_256_key, sizeof(aes_xts_256_key)));
1381
1382 ATF_CHECK_EQ(read_testvec(cgdfd, &aes_xts_256_vectors[0]), 0);
1383 ATF_CHECK_EQ(read_testvec(cgdfd, &aes_xts_256_vectors[1]), 0);
1384 ATF_CHECK_EQ(read_testvec(cgdfd, &aes_xts_256_vectors[2]), 0);
1385 ATF_CHECK_EQ(read_testvec(cgdfd, &aes_xts_256_vectors[3]), 0);
1386 ATF_CHECK_EQ(read_testvec(cgdfd, &aes_xts_256_vectors[4]), 0);
1387 ATF_CHECK_EQ(read_testvec(cgdfd, &aes_xts_256_vectors[5]), 0);
1388
1389 RL(unconfigure_cgd(cgdfd));
1390 RL(rump_sys_close(cgdfd));
1391
1392 ATF_CHECK_EQ(check_testvec(dkfd, &aes_xts_256_vectors[0]), 0);
1393 ATF_CHECK_EQ(check_testvec(dkfd, &aes_xts_256_vectors[1]), 0);
1394 ATF_CHECK_EQ(check_testvec(dkfd, &aes_xts_256_vectors[2]), 0);
1395 ATF_CHECK_EQ(check_testvec(dkfd, &aes_xts_256_vectors[3]), 0);
1396 ATF_CHECK_EQ(check_testvec(dkfd, &aes_xts_256_vectors[4]), 0);
1397 ATF_CHECK_EQ(check_testvec(dkfd, &aes_xts_256_vectors[5]), 0);
1398
1399 RL(close(dkfd));
1400 }
1401
1402 ATF_TC(cgd_aes_xts_512);
1403 ATF_TC_HEAD(cgd_aes_xts_512, tc)
1404 {
1405 atf_tc_set_md_var(tc, "descr", "Test aes-xts with 512 bits key");
1406 }
1407
1408 ATF_TC_BODY(cgd_aes_xts_512, tc)
1409 {
1410 char imgpath[] = "aes-xts-512.XXXXXX";
1411 const char *dkpath = "/dev/dk";
1412 const size_t dksize = 65536 * SECSIZE; /* Last blkno is 0xffff. */
1413 int dkfd, cgdfd;
1414
1415 atf_tc_expect_fail("aes-xts implementation not committed yet");
1416
1417 rump_init();
1418
1419 mktemp(imgpath);
1420 RL(dkfd = open_disk(dkpath, imgpath, dksize));
1421
1422 RL(cgdfd = open_cgd(0));
1423 RL(configure_cgd(cgdfd, dkpath, "aes-xts", "encblkno",
1424 aes_xts_512_key, sizeof(aes_xts_512_key)));
1425
1426 ATF_CHECK_EQ(write_testvec(cgdfd, &aes_xts_512_vectors[0]), 0);
1427 ATF_CHECK_EQ(write_testvec(cgdfd, &aes_xts_512_vectors[1]), 0);
1428
1429 RL(unconfigure_cgd(cgdfd));
1430 RL(configure_cgd(cgdfd, dkpath, "aes-xts", "encblkno",
1431 aes_xts_512_key, sizeof(aes_xts_512_key)));
1432
1433 ATF_CHECK_EQ(read_testvec(cgdfd, &aes_xts_512_vectors[0]), 0);
1434 ATF_CHECK_EQ(read_testvec(cgdfd, &aes_xts_512_vectors[1]), 0);
1435
1436 RL(unconfigure_cgd(cgdfd));
1437 RL(rump_sys_close(cgdfd));
1438
1439 ATF_CHECK_EQ(check_testvec(dkfd, &aes_xts_512_vectors[0]), 0);
1440 ATF_CHECK_EQ(check_testvec(dkfd, &aes_xts_512_vectors[1]), 0);
1441
1442 RL(close(dkfd));
1443 }
1444
1445 ATF_TP_ADD_TCS(tp)
1446 {
1447
1448 ATF_TP_ADD_TC(tp, cgd_aes_xts_256);
1449 ATF_TP_ADD_TC(tp, cgd_aes_xts_512);
1450
1451 return atf_no_error();
1452 }
1453