Home | History | Annotate | Line # | Download | only in cgd
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