xref: /netbsd-src/tests/dev/cgd/t_cgd_3des.c (revision 8f599c8a78090230571a2c129ef597dce2d4ad2c)
1*8f599c8aSmlelstv /*	$NetBSD: t_cgd_3des.c,v 1.3 2020/08/15 10:03:10 mlelstv Exp $	*/
20fb91146Salnsn /*-
30fb91146Salnsn  * Copyright (c) 2016 The NetBSD Foundation, Inc.
40fb91146Salnsn  * All rights reserved.
50fb91146Salnsn  *
60fb91146Salnsn  * This code is derived from software contributed to The NetBSD Foundation
70fb91146Salnsn  * by Alexander Nasonov.
80fb91146Salnsn  *
90fb91146Salnsn  * Redistribution and use in source and binary forms, with or without
100fb91146Salnsn  * modification, are permitted provided that the following conditions
110fb91146Salnsn  * are met:
120fb91146Salnsn  *
130fb91146Salnsn  * 1. Redistributions of source code must retain the above copyright
140fb91146Salnsn  *    notice, this list of conditions and the following disclaimer.
150fb91146Salnsn  * 2. Redistributions in binary form must reproduce the above copyright
160fb91146Salnsn  *    notice, this list of conditions and the following disclaimer in
170fb91146Salnsn  *    the documentation and/or other materials provided with the
180fb91146Salnsn  *    distribution.
190fb91146Salnsn  *
200fb91146Salnsn  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
210fb91146Salnsn  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
220fb91146Salnsn  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
230fb91146Salnsn  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
240fb91146Salnsn  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
250fb91146Salnsn  * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
260fb91146Salnsn  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
270fb91146Salnsn  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
280fb91146Salnsn  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
290fb91146Salnsn  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
300fb91146Salnsn  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
310fb91146Salnsn  * SUCH DAMAGE.
320fb91146Salnsn  */
330fb91146Salnsn 
340fb91146Salnsn #include <sys/types.h>
350fb91146Salnsn #include <sys/ioctl.h>
360fb91146Salnsn #include <sys/sysctl.h>
370fb91146Salnsn 
380fb91146Salnsn #include <atf-c.h>
390fb91146Salnsn #include <fcntl.h>
400fb91146Salnsn #include <stdio.h>
410fb91146Salnsn #include <stdlib.h>
420fb91146Salnsn #include <string.h>
430fb91146Salnsn #include <unistd.h>
440fb91146Salnsn #include <util.h>
450fb91146Salnsn 
460fb91146Salnsn #include <dev/cgdvar.h>
470fb91146Salnsn 
480fb91146Salnsn #include <rump/rump.h>
490fb91146Salnsn #include <rump/rump_syscalls.h>
500fb91146Salnsn 
51c54cb811Schristos #include "h_macros.h"
520fb91146Salnsn 
530fb91146Salnsn #define SECSIZE 512
540fb91146Salnsn 
550fb91146Salnsn struct testvec {
560fb91146Salnsn 	unsigned int blkno;
570fb91146Salnsn 	const uint8_t *ptxt;	/* PlainText  */
580fb91146Salnsn 	const uint8_t *ctxt;	/* CipherText */
590fb91146Salnsn };
600fb91146Salnsn 
610fb91146Salnsn /*
620fb91146Salnsn  * 192 bits CBC key, NUL terminated.
630fb91146Salnsn  */
640fb91146Salnsn static const char c3des_cbc_192_key[25] = {
650fb91146Salnsn 	0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* ABCDEFGH */
660fb91146Salnsn 	0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* IJKLMNOP */
670fb91146Salnsn 	0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* QRSTUVWX */
680fb91146Salnsn 	0
690fb91146Salnsn };
700fb91146Salnsn 
71*8f599c8aSmlelstv static const uint8_t c3des_cbc_ptxt[SECSIZE] __aligned(4) =
720fb91146Salnsn 	"                abcdefghijklmnop"
730fb91146Salnsn 	"                abcdefghijklmnop"
740fb91146Salnsn 	"                abcdefghijklmnop"
750fb91146Salnsn 	"                abcdefghijklmnop"
760fb91146Salnsn 	"                abcdefghijklmnop"
770fb91146Salnsn 	"                abcdefghijklmnop"
780fb91146Salnsn 	"                abcdefghijklmnop"
790fb91146Salnsn 	"                abcdefghijklmnop"
800fb91146Salnsn 	"                abcdefghijklmnop"
810fb91146Salnsn 	"                abcdefghijklmnop"
820fb91146Salnsn 	"                abcdefghijklmnop"
830fb91146Salnsn 	"                abcdefghijklmnop"
840fb91146Salnsn 	"                abcdefghijklmnop"
850fb91146Salnsn 	"                abcdefghijklmnop"
860fb91146Salnsn 	"                abcdefghijklmnop"
870fb91146Salnsn 	"                abcdefghijklmnop";
880fb91146Salnsn 
890fb91146Salnsn /*
900fb91146Salnsn  * IV method encblkno1, blkno 0.
910fb91146Salnsn  */
920fb91146Salnsn static const uint8_t c3des_cbc_192_encblkno1_vec0_ctxt[SECSIZE] = {
930fb91146Salnsn 	0x19, 0x92, 0xc8, 0xce, 0xdf, 0xa3, 0x14, 0xef,
940fb91146Salnsn 	0xff, 0x88, 0x9f, 0x01, 0xfa, 0x6f, 0xfa, 0xa6,
950fb91146Salnsn 	0xdd, 0x2b, 0x43, 0x67, 0xfa, 0xce, 0x37, 0x95,
960fb91146Salnsn 	0x73, 0x4d, 0x18, 0x33, 0x0c, 0x29, 0xb6, 0xbb,
970fb91146Salnsn 	0x37, 0x77, 0x31, 0x74, 0xf6, 0x62, 0x03, 0xd2,
980fb91146Salnsn 	0x78, 0x13, 0x55, 0xf6, 0x58, 0x49, 0xaf, 0x2a,
990fb91146Salnsn 	0x15, 0x4c, 0xc2, 0x4a, 0x55, 0x99, 0x82, 0xb9,
1000fb91146Salnsn 	0xfb, 0x8b, 0x4f, 0x92, 0xe3, 0xbc, 0x9b, 0x09,
1010fb91146Salnsn 	0x42, 0x7b, 0x5f, 0x54, 0xed, 0xf0, 0xcb, 0x5d,
1020fb91146Salnsn 	0x93, 0xba, 0x09, 0x4b, 0x20, 0xf3, 0xe6, 0x44,
1030fb91146Salnsn 	0x30, 0x5e, 0x9e, 0xfc, 0x7a, 0x3c, 0x7d, 0x11,
1040fb91146Salnsn 	0x63, 0xea, 0x40, 0x94, 0xaa, 0xd0, 0xa9, 0xf6,
1050fb91146Salnsn 	0xc7, 0x1e, 0x8f, 0xc8, 0xa6, 0x2c, 0xf7, 0xeb,
1060fb91146Salnsn 	0x51, 0x26, 0xdc, 0xf8, 0x73, 0xf9, 0xb4, 0xa8,
1070fb91146Salnsn 	0x80, 0x4a, 0xe5, 0x6f, 0xb6, 0x33, 0x13, 0x6b,
1080fb91146Salnsn 	0x1b, 0x7d, 0x00, 0xde, 0x44, 0x7e, 0x26, 0xa2,
1090fb91146Salnsn 	0x82, 0xa7, 0x80, 0x16, 0x34, 0xde, 0xb9, 0x82,
1100fb91146Salnsn 	0x4c, 0x42, 0x8e, 0x0d, 0x48, 0x7e, 0x38, 0xbd,
1110fb91146Salnsn 	0x1d, 0x7d, 0x98, 0xbb, 0x11, 0x8a, 0x72, 0x14,
1120fb91146Salnsn 	0x4e, 0xaa, 0xd0, 0xef, 0x4d, 0x7f, 0xa3, 0xa6,
1130fb91146Salnsn 	0xfc, 0x85, 0x9d, 0x74, 0x63, 0x9d, 0xe4, 0x5c,
1140fb91146Salnsn 	0xf7, 0xa8, 0xd0, 0xd7, 0x95, 0xb4, 0x28, 0x64,
1150fb91146Salnsn 	0x41, 0x2d, 0x5d, 0xd9, 0xba, 0x79, 0xa7, 0xb3,
1160fb91146Salnsn 	0x9c, 0x16, 0xfa, 0xb8, 0x10, 0x5d, 0x1d, 0xd4,
1170fb91146Salnsn 	0xce, 0xad, 0x67, 0x27, 0x91, 0x8a, 0xb3, 0xbc,
1180fb91146Salnsn 	0x37, 0x20, 0x95, 0xac, 0xf7, 0x0d, 0xe0, 0x1e,
1190fb91146Salnsn 	0x59, 0xa7, 0xe5, 0x81, 0x82, 0x6a, 0x71, 0x07,
1200fb91146Salnsn 	0x85, 0x43, 0x43, 0xdb, 0xbf, 0x56, 0xb0, 0x0a,
1210fb91146Salnsn 	0x4c, 0xf1, 0xcd, 0xcd, 0xa3, 0x9a, 0x10, 0x8e,
1220fb91146Salnsn 	0x0c, 0xe2, 0x6d, 0xf2, 0x16, 0xd0, 0x4c, 0xac,
1230fb91146Salnsn 	0xf9, 0xfc, 0xc9, 0x56, 0x1f, 0x31, 0x89, 0x1c,
1240fb91146Salnsn 	0xfa, 0xb7, 0x49, 0xea, 0x69, 0x91, 0xfe, 0x45,
1250fb91146Salnsn 	0x96, 0x5e, 0x45, 0xc3, 0x2c, 0xb1, 0x40, 0xd9,
1260fb91146Salnsn 	0x1f, 0x82, 0x3f, 0xc1, 0x45, 0x7c, 0x39, 0x72,
1270fb91146Salnsn 	0x6f, 0x52, 0xe4, 0xaf, 0x15, 0xa4, 0xe2, 0xd4,
1280fb91146Salnsn 	0xa1, 0xa4, 0xb2, 0xb5, 0x4a, 0x0b, 0xad, 0xe4,
1290fb91146Salnsn 	0x1e, 0x5c, 0x26, 0x62, 0x81, 0x78, 0x3e, 0xd3,
1300fb91146Salnsn 	0x6a, 0x98, 0x94, 0x2a, 0x00, 0xa7, 0xe4, 0x04,
1310fb91146Salnsn 	0x9d, 0x9a, 0xfc, 0xcf, 0xad, 0x2b, 0xba, 0x9b,
1320fb91146Salnsn 	0x40, 0x1e, 0x71, 0x3a, 0xb6, 0x92, 0xc4, 0xc5,
1330fb91146Salnsn 	0x56, 0x58, 0x92, 0x2a, 0x69, 0xbe, 0x0f, 0xb0,
1340fb91146Salnsn 	0x91, 0xae, 0xaa, 0x3f, 0x07, 0xe8, 0xf9, 0x71,
1350fb91146Salnsn 	0x20, 0x06, 0xed, 0xe0, 0x80, 0xec, 0xc9, 0xe7,
1360fb91146Salnsn 	0x54, 0xaa, 0xaa, 0xf4, 0x4c, 0xb2, 0x34, 0xf7,
1370fb91146Salnsn 	0x8a, 0x76, 0xc2, 0x4a, 0xae, 0x71, 0x7a, 0x07,
1380fb91146Salnsn 	0xd7, 0xec, 0x75, 0x2f, 0x8a, 0x99, 0x59, 0x13,
1390fb91146Salnsn 	0xd0, 0x8d, 0x18, 0x69, 0x0d, 0xd9, 0x39, 0x73,
1400fb91146Salnsn 	0x2b, 0xd0, 0xa3, 0xbc, 0x9e, 0x29, 0x4d, 0x88,
1410fb91146Salnsn 	0xff, 0x98, 0x02, 0xb4, 0xcf, 0xa1, 0xf9, 0x2a,
1420fb91146Salnsn 	0xa6, 0xef, 0x7c, 0x72, 0x26, 0x4e, 0xd7, 0xdf,
1430fb91146Salnsn 	0xec, 0x3a, 0xbc, 0x8e, 0xe6, 0xb3, 0x2b, 0x43,
1440fb91146Salnsn 	0xcd, 0x67, 0x8b, 0x72, 0x00, 0x6f, 0xe5, 0x85,
1450fb91146Salnsn 	0xe2, 0x2a, 0x4c, 0x8d, 0x02, 0x44, 0x6b, 0x7a,
1460fb91146Salnsn 	0x89, 0x7a, 0x18, 0x3b, 0xc8, 0x9c, 0x8d, 0x60,
1470fb91146Salnsn 	0xec, 0x79, 0x58, 0x15, 0x98, 0x71, 0x4b, 0x1a,
1480fb91146Salnsn 	0x34, 0x69, 0x96, 0xd0, 0x0f, 0x01, 0x27, 0x2e,
1490fb91146Salnsn 	0x19, 0x02, 0xf0, 0x17, 0x8c, 0x89, 0xbf, 0x05,
1500fb91146Salnsn 	0xf0, 0xfe, 0xc3, 0xe6, 0x90, 0x9d, 0xa2, 0xb1,
1510fb91146Salnsn 	0x40, 0x06, 0x7e, 0xcd, 0x20, 0x7e, 0x5f, 0x54,
1520fb91146Salnsn 	0x31, 0xfb, 0x79, 0x84, 0x47, 0x38, 0x71, 0x69,
1530fb91146Salnsn 	0xe1, 0xd5, 0x4e, 0x84, 0xa3, 0x2b, 0x4a, 0x86,
1540fb91146Salnsn 	0xc2, 0x21, 0x5b, 0x15, 0xc3, 0x63, 0xbb, 0xc5,
1550fb91146Salnsn 	0x5c, 0xc1, 0xfb, 0x31, 0x3a, 0x4d, 0xb1, 0x9e,
1560fb91146Salnsn 	0xe1, 0xd8, 0x67, 0x4b, 0x08, 0x42, 0xc4, 0xe8,
1570fb91146Salnsn };
1580fb91146Salnsn 
1590fb91146Salnsn /*
1600fb91146Salnsn  * IV method encblkno1, blkno 1.
1610fb91146Salnsn  */
1620fb91146Salnsn static const uint8_t c3des_cbc_192_encblkno1_vec1_ctxt[SECSIZE] = {
1630fb91146Salnsn 	0x1d, 0x65, 0xdf, 0x01, 0x9b, 0x24, 0xa5, 0x10,
1640fb91146Salnsn 	0x94, 0x9a, 0x5b, 0x81, 0x96, 0x4e, 0xa3, 0x42,
1650fb91146Salnsn 	0x42, 0xd5, 0x05, 0x52, 0xab, 0x3c, 0x67, 0x40,
1660fb91146Salnsn 	0x79, 0xf9, 0x4b, 0x58, 0x39, 0xf6, 0xd0, 0x97,
1670fb91146Salnsn 	0x48, 0xf4, 0x77, 0xb8, 0xac, 0xe2, 0x10, 0x66,
1680fb91146Salnsn 	0xa8, 0x04, 0x0a, 0x1e, 0xa6, 0xbb, 0x4c, 0xd9,
1690fb91146Salnsn 	0x5d, 0x0c, 0x11, 0xb5, 0xe0, 0x26, 0x84, 0x50,
1700fb91146Salnsn 	0x10, 0x80, 0xbf, 0xd6, 0xdc, 0x82, 0x53, 0x0a,
1710fb91146Salnsn 	0xcf, 0xf6, 0xd3, 0x07, 0x45, 0xb0, 0x8e, 0x36,
1720fb91146Salnsn 	0x2e, 0x60, 0x0f, 0xd0, 0xc1, 0xb9, 0xd8, 0x29,
1730fb91146Salnsn 	0x6e, 0x13, 0x8e, 0xc1, 0xa8, 0x63, 0x20, 0xe0,
1740fb91146Salnsn 	0x8d, 0x47, 0x8b, 0xf9, 0xa0, 0x60, 0x55, 0x53,
1750fb91146Salnsn 	0x1d, 0xaf, 0x43, 0x46, 0xe5, 0x10, 0xd5, 0xcd,
1760fb91146Salnsn 	0x91, 0x9e, 0x11, 0x4a, 0x6f, 0x6a, 0x13, 0xdf,
1770fb91146Salnsn 	0xee, 0x7a, 0x88, 0xbe, 0x59, 0x96, 0xdb, 0x65,
1780fb91146Salnsn 	0x25, 0x57, 0x9e, 0x82, 0xad, 0xc2, 0xd6, 0x28,
1790fb91146Salnsn 	0x96, 0xb3, 0x7f, 0x57, 0x5d, 0xb2, 0xfa, 0x60,
1800fb91146Salnsn 	0x43, 0x22, 0xa5, 0x33, 0x14, 0x99, 0x8f, 0x68,
1810fb91146Salnsn 	0x5a, 0x7f, 0xaf, 0x9e, 0xe9, 0x23, 0x57, 0x9b,
1820fb91146Salnsn 	0x52, 0xe9, 0x20, 0x59, 0x26, 0x89, 0x9b, 0x59,
1830fb91146Salnsn 	0xb0, 0xee, 0xe8, 0x6d, 0x06, 0x8c, 0x01, 0xc2,
1840fb91146Salnsn 	0xea, 0xbc, 0x7d, 0x93, 0x3f, 0x79, 0x7f, 0xeb,
1850fb91146Salnsn 	0x57, 0xc9, 0x0a, 0xca, 0x37, 0x81, 0xa7, 0x82,
1860fb91146Salnsn 	0xde, 0x37, 0x7d, 0x69, 0x01, 0xaa, 0x19, 0x98,
1870fb91146Salnsn 	0x26, 0xfe, 0x06, 0x83, 0xeb, 0x9d, 0x26, 0xdc,
1880fb91146Salnsn 	0x04, 0x5d, 0xc9, 0x05, 0xee, 0x1a, 0xd3, 0xeb,
1890fb91146Salnsn 	0x20, 0x8c, 0xb7, 0x99, 0x75, 0xe0, 0x19, 0x98,
1900fb91146Salnsn 	0xca, 0x83, 0xae, 0x94, 0x28, 0xbf, 0x47, 0x42,
1910fb91146Salnsn 	0x92, 0x05, 0x8c, 0xaa, 0xeb, 0x99, 0x0f, 0xcc,
1920fb91146Salnsn 	0x33, 0x79, 0x24, 0x62, 0xa0, 0x7a, 0x65, 0xcb,
1930fb91146Salnsn 	0x53, 0xb7, 0x86, 0x0d, 0xcb, 0x44, 0x2d, 0xbf,
1940fb91146Salnsn 	0xe8, 0x5d, 0x62, 0xeb, 0x21, 0x4d, 0x35, 0x86,
1950fb91146Salnsn 	0x56, 0x6c, 0x51, 0xff, 0xa3, 0x45, 0xcc, 0x88,
1960fb91146Salnsn 	0x09, 0x43, 0x08, 0x97, 0x13, 0x7d, 0x00, 0xd8,
1970fb91146Salnsn 	0x82, 0x2d, 0xbe, 0xbe, 0x44, 0x0c, 0x2c, 0xa4,
1980fb91146Salnsn 	0x4f, 0x84, 0x07, 0x20, 0x9c, 0x3f, 0xf6, 0x5b,
1990fb91146Salnsn 	0x9e, 0xe8, 0x68, 0x40, 0xd3, 0x64, 0x8f, 0xb4,
2000fb91146Salnsn 	0x9e, 0xac, 0xc6, 0x41, 0x11, 0xda, 0xf2, 0x60,
2010fb91146Salnsn 	0xfa, 0x29, 0x9d, 0x26, 0x68, 0x5b, 0x79, 0x3a,
2020fb91146Salnsn 	0xd1, 0x66, 0x78, 0xca, 0x80, 0x87, 0xae, 0xab,
2030fb91146Salnsn 	0x7b, 0x29, 0x3c, 0xb0, 0xe6, 0xa2, 0x6b, 0x24,
2040fb91146Salnsn 	0x81, 0xeb, 0x51, 0xf9, 0xcb, 0x4a, 0x08, 0x37,
2050fb91146Salnsn 	0x2a, 0x75, 0xb5, 0xd3, 0xb3, 0x8f, 0x3d, 0x13,
2060fb91146Salnsn 	0x11, 0x0c, 0xa9, 0xf7, 0xf6, 0x57, 0x7e, 0xb7,
2070fb91146Salnsn 	0xa6, 0x22, 0xe8, 0x13, 0xfd, 0xf1, 0x6a, 0xe9,
2080fb91146Salnsn 	0xc1, 0x94, 0xa6, 0xf5, 0xa5, 0xec, 0xfa, 0x31,
2090fb91146Salnsn 	0xd2, 0x66, 0x8f, 0xe3, 0x6e, 0x9a, 0xaa, 0xb0,
2100fb91146Salnsn 	0xe3, 0x04, 0x09, 0x00, 0x1e, 0x67, 0x3c, 0xbe,
2110fb91146Salnsn 	0x2a, 0x8c, 0xd5, 0x1f, 0x4f, 0x55, 0x2c, 0x1d,
2120fb91146Salnsn 	0x26, 0x7f, 0xc9, 0x27, 0x00, 0x88, 0x7d, 0x45,
2130fb91146Salnsn 	0x4e, 0xe1, 0x36, 0xf6, 0xf5, 0xa8, 0xd4, 0xef,
2140fb91146Salnsn 	0x8b, 0x26, 0x76, 0x41, 0x28, 0x87, 0xf4, 0x51,
2150fb91146Salnsn 	0x14, 0x36, 0xad, 0x60, 0x8d, 0xe9, 0xe2, 0x9d,
2160fb91146Salnsn 	0x3c, 0xea, 0x09, 0x51, 0x3c, 0x81, 0xdf, 0x1a,
2170fb91146Salnsn 	0xc2, 0xc2, 0xf6, 0x45, 0xe1, 0x73, 0xac, 0xae,
2180fb91146Salnsn 	0x85, 0x74, 0x83, 0x8f, 0x56, 0x3c, 0x36, 0x1c,
2190fb91146Salnsn 	0xe0, 0x07, 0xc6, 0x6a, 0x48, 0xe4, 0x34, 0xe9,
2200fb91146Salnsn 	0x81, 0x53, 0xb7, 0x53, 0x95, 0xa7, 0x94, 0x21,
2210fb91146Salnsn 	0x7e, 0x32, 0x53, 0xda, 0x83, 0xd8, 0x57, 0x92,
2220fb91146Salnsn 	0xd1, 0x15, 0x45, 0x86, 0x40, 0xac, 0xf1, 0x6f,
2230fb91146Salnsn 	0x3c, 0x29, 0xef, 0x8d, 0x12, 0xe1, 0x9d, 0x04,
2240fb91146Salnsn 	0x17, 0x3a, 0xcc, 0xa6, 0xc5, 0xe4, 0x27, 0x41,
2250fb91146Salnsn 	0xcb, 0xfb, 0x5e, 0x77, 0x73, 0x5a, 0x2c, 0x03,
2260fb91146Salnsn 	0xe9, 0x2b, 0x76, 0x4e, 0x69, 0xea, 0xcb, 0xb3,
2270fb91146Salnsn };
2280fb91146Salnsn 
2290fb91146Salnsn /*
2300fb91146Salnsn  * IV method encblkno1, blkno 2.
2310fb91146Salnsn  */
2320fb91146Salnsn static const uint8_t c3des_cbc_192_encblkno1_vec2_ctxt[SECSIZE] = {
2330fb91146Salnsn 	0x87, 0xb1, 0x3c, 0xd6, 0x60, 0xa0, 0x5a, 0x35,
2340fb91146Salnsn 	0xf7, 0xe1, 0x6b, 0x87, 0xa0, 0x90, 0x2f, 0xc7,
2350fb91146Salnsn 	0x8c, 0xed, 0x53, 0xda, 0x93, 0x32, 0x78, 0x5d,
2360fb91146Salnsn 	0x24, 0x23, 0x42, 0xdd, 0x93, 0x5b, 0x2e, 0x40,
2370fb91146Salnsn 	0xa1, 0xb1, 0x3b, 0xbb, 0xf0, 0x50, 0xb4, 0x61,
2380fb91146Salnsn 	0xea, 0x15, 0x37, 0xf3, 0x49, 0xe1, 0xa0, 0x32,
2390fb91146Salnsn 	0x88, 0x85, 0x81, 0xfd, 0xb7, 0x96, 0xd7, 0x9d,
2400fb91146Salnsn 	0xd7, 0x29, 0x4b, 0x14, 0xf9, 0x18, 0x6a, 0xf6,
2410fb91146Salnsn 	0x46, 0xae, 0x69, 0xdf, 0x63, 0x9a, 0xe0, 0x0b,
2420fb91146Salnsn 	0x2c, 0x53, 0xd7, 0x82, 0x6f, 0xe5, 0xa0, 0x95,
2430fb91146Salnsn 	0x2f, 0x61, 0x7f, 0x15, 0xff, 0xc7, 0xe8, 0x83,
2440fb91146Salnsn 	0xfc, 0xfc, 0x16, 0x1c, 0x37, 0x0f, 0x9b, 0xbb,
2450fb91146Salnsn 	0x14, 0xb2, 0xe2, 0xb7, 0x1f, 0x85, 0xb7, 0x07,
2460fb91146Salnsn 	0x8a, 0x18, 0xed, 0xf7, 0x5f, 0x27, 0xff, 0x2f,
2470fb91146Salnsn 	0x07, 0xf9, 0x9d, 0xe3, 0x79, 0x45, 0x1f, 0x51,
2480fb91146Salnsn 	0x08, 0x54, 0x0f, 0x56, 0x84, 0xee, 0x87, 0x9a,
2490fb91146Salnsn 	0xa9, 0x46, 0xb8, 0x77, 0x85, 0x40, 0x46, 0x50,
2500fb91146Salnsn 	0xc1, 0x58, 0x07, 0xfd, 0xfa, 0x2b, 0x20, 0xd6,
2510fb91146Salnsn 	0x4e, 0xba, 0x08, 0x02, 0x59, 0x3d, 0x23, 0x3b,
2520fb91146Salnsn 	0x5d, 0xf9, 0x5e, 0x2f, 0xac, 0x9e, 0xa0, 0xd7,
2530fb91146Salnsn 	0x3f, 0x9a, 0xdf, 0x50, 0x66, 0xcc, 0x28, 0xce,
2540fb91146Salnsn 	0x93, 0xc8, 0x11, 0x5c, 0x74, 0xe2, 0x4f, 0xfd,
2550fb91146Salnsn 	0xaf, 0x33, 0xbb, 0xce, 0x96, 0x1f, 0xb3, 0x46,
2560fb91146Salnsn 	0x6e, 0xcd, 0xe4, 0xef, 0xfa, 0x2f, 0x93, 0xb1,
2570fb91146Salnsn 	0xe5, 0x7c, 0x54, 0xbc, 0x17, 0x1f, 0xd5, 0x31,
2580fb91146Salnsn 	0x0e, 0x88, 0xe7, 0xcd, 0xb0, 0xb5, 0x2e, 0x1e,
2590fb91146Salnsn 	0x9e, 0x40, 0x36, 0xa5, 0xbb, 0xa7, 0x4e, 0xc8,
2600fb91146Salnsn 	0x11, 0x6c, 0xae, 0x1c, 0x2d, 0xdb, 0x55, 0xd8,
2610fb91146Salnsn 	0x14, 0x40, 0x02, 0xad, 0xaf, 0x19, 0x28, 0x59,
2620fb91146Salnsn 	0xd7, 0x4f, 0x81, 0xd0, 0xc1, 0x54, 0x63, 0x73,
2630fb91146Salnsn 	0x0e, 0xfb, 0x26, 0xf2, 0xa6, 0x80, 0xca, 0x2e,
2640fb91146Salnsn 	0xf3, 0xca, 0x1e, 0xa4, 0x62, 0x07, 0x22, 0x10,
2650fb91146Salnsn 	0x11, 0x6a, 0x57, 0x28, 0x45, 0x80, 0xdf, 0x34,
2660fb91146Salnsn 	0x88, 0xe5, 0xf1, 0x23, 0xe0, 0xb6, 0x44, 0x51,
2670fb91146Salnsn 	0x54, 0xd8, 0xb3, 0x66, 0xac, 0x46, 0x4d, 0xdf,
2680fb91146Salnsn 	0xa2, 0x8e, 0x72, 0x3a, 0x1c, 0x87, 0x2a, 0x43,
2690fb91146Salnsn 	0xfe, 0xdb, 0x00, 0xff, 0xb7, 0x1c, 0x13, 0xc3,
2700fb91146Salnsn 	0x18, 0xfc, 0x71, 0x13, 0xe3, 0xd1, 0x1f, 0xde,
2710fb91146Salnsn 	0x16, 0x63, 0x73, 0xf5, 0x0e, 0xf7, 0x18, 0xe5,
2720fb91146Salnsn 	0x48, 0x8d, 0x30, 0xd9, 0x26, 0x20, 0x6d, 0xa1,
2730fb91146Salnsn 	0xba, 0xde, 0xe8, 0x7d, 0x77, 0x02, 0x33, 0x0d,
2740fb91146Salnsn 	0x73, 0xb2, 0xab, 0x35, 0xfd, 0xa5, 0x6e, 0x4c,
2750fb91146Salnsn 	0x5c, 0x27, 0xc7, 0x7e, 0x4a, 0x28, 0xf8, 0xf5,
2760fb91146Salnsn 	0x00, 0xbe, 0x4c, 0xd7, 0x2c, 0x27, 0x83, 0x16,
2770fb91146Salnsn 	0x37, 0xda, 0x0c, 0xb1, 0xd7, 0x89, 0xd8, 0x8f,
2780fb91146Salnsn 	0x17, 0x69, 0x1b, 0x6b, 0x48, 0x2b, 0xce, 0x9c,
2790fb91146Salnsn 	0xbd, 0xf4, 0x0d, 0xb5, 0x4d, 0x12, 0x11, 0x36,
2800fb91146Salnsn 	0x49, 0xd3, 0x8b, 0x52, 0xce, 0x7e, 0x47, 0xb0,
2810fb91146Salnsn 	0xb5, 0x54, 0x77, 0xef, 0x90, 0xb8, 0x0e, 0xaf,
2820fb91146Salnsn 	0x6f, 0x97, 0x88, 0xde, 0x6b, 0x37, 0x24, 0xdd,
2830fb91146Salnsn 	0x91, 0x84, 0x00, 0x51, 0xab, 0x06, 0x96, 0x3c,
2840fb91146Salnsn 	0x82, 0x73, 0xcf, 0xae, 0x8d, 0x23, 0x86, 0x59,
2850fb91146Salnsn 	0x62, 0x5b, 0xeb, 0x2a, 0xaf, 0x40, 0x17, 0xed,
2860fb91146Salnsn 	0x2b, 0x60, 0x73, 0x7d, 0x99, 0x95, 0x3f, 0xd6,
2870fb91146Salnsn 	0x6c, 0xca, 0x1e, 0xf3, 0xb0, 0xcd, 0xd5, 0x1d,
2880fb91146Salnsn 	0x53, 0xe0, 0xd2, 0x8b, 0x57, 0x7b, 0xac, 0x67,
2890fb91146Salnsn 	0x5a, 0x5a, 0x0a, 0x64, 0x82, 0xab, 0x8f, 0x5a,
2900fb91146Salnsn 	0x36, 0xe2, 0x45, 0x50, 0xec, 0x3e, 0x14, 0x80,
2910fb91146Salnsn 	0x7c, 0xfd, 0x0c, 0xa9, 0x94, 0xfb, 0xfe, 0x72,
2920fb91146Salnsn 	0xec, 0x47, 0x71, 0x2e, 0x90, 0x97, 0xf6, 0x33,
2930fb91146Salnsn 	0xbd, 0x7d, 0x7e, 0x77, 0x8f, 0xad, 0xd4, 0x1d,
2940fb91146Salnsn 	0x1d, 0x53, 0x0f, 0x28, 0x39, 0x77, 0x06, 0x1a,
2950fb91146Salnsn 	0x75, 0xfc, 0x12, 0xe6, 0x45, 0xfc, 0x87, 0xe1,
2960fb91146Salnsn 	0x46, 0xac, 0xb0, 0x73, 0xca, 0x24, 0x7c, 0x71,
2970fb91146Salnsn };
2980fb91146Salnsn 
2990fb91146Salnsn /*
3000fb91146Salnsn  * IV method encblkno1, blkno 3.
3010fb91146Salnsn  */
3020fb91146Salnsn static const uint8_t c3des_cbc_192_encblkno1_vec3_ctxt[SECSIZE] = {
3030fb91146Salnsn 	0xb1, 0xef, 0x7c, 0xd0, 0xa0, 0x6b, 0xe4, 0x88,
3040fb91146Salnsn 	0x5c, 0xd7, 0xf1, 0xbf, 0x5f, 0xce, 0xda, 0x19,
3050fb91146Salnsn 	0x81, 0x32, 0xbb, 0x96, 0x7e, 0xb9, 0x6e, 0xa1,
3060fb91146Salnsn 	0x43, 0xde, 0x53, 0x66, 0x9c, 0x27, 0x94, 0x85,
3070fb91146Salnsn 	0xcb, 0x09, 0x4e, 0x16, 0xd8, 0x60, 0x7a, 0x38,
3080fb91146Salnsn 	0x27, 0x21, 0x4d, 0x08, 0xaa, 0xe2, 0x1e, 0x6e,
3090fb91146Salnsn 	0xa3, 0xcb, 0x9a, 0x7f, 0xd1, 0xbf, 0x18, 0x36,
3100fb91146Salnsn 	0x5a, 0x4d, 0x7a, 0x7f, 0xcf, 0x3f, 0xba, 0xa5,
3110fb91146Salnsn 	0x77, 0x5b, 0xb4, 0x79, 0xdc, 0xbf, 0x2a, 0x28,
3120fb91146Salnsn 	0x16, 0x27, 0x0f, 0x8b, 0xd7, 0x95, 0xc3, 0xcb,
3130fb91146Salnsn 	0xa1, 0x6a, 0x49, 0x53, 0xa8, 0x0c, 0x70, 0xde,
3140fb91146Salnsn 	0x90, 0x2e, 0x36, 0x74, 0x40, 0x5d, 0x81, 0x74,
3150fb91146Salnsn 	0x03, 0x11, 0xbd, 0xba, 0x40, 0x8d, 0x03, 0x86,
3160fb91146Salnsn 	0x2b, 0x17, 0x55, 0x20, 0xd8, 0x81, 0x30, 0xd2,
3170fb91146Salnsn 	0x2a, 0xbd, 0xea, 0xff, 0x5c, 0x69, 0x9b, 0xe6,
3180fb91146Salnsn 	0xe3, 0x21, 0x9a, 0x10, 0x3e, 0xb0, 0xf4, 0x7a,
3190fb91146Salnsn 	0xfc, 0x6e, 0x66, 0xec, 0x44, 0x0b, 0x95, 0x8d,
3200fb91146Salnsn 	0x13, 0xd4, 0xf6, 0x3e, 0xa1, 0xa1, 0xac, 0xb1,
3210fb91146Salnsn 	0xd8, 0x3d, 0x86, 0xaf, 0x5e, 0xef, 0x14, 0x6a,
3220fb91146Salnsn 	0x32, 0xf3, 0x13, 0x75, 0x3b, 0x64, 0x9a, 0xf4,
3230fb91146Salnsn 	0xd0, 0xf5, 0x00, 0x36, 0x9e, 0xdb, 0xfd, 0xcb,
3240fb91146Salnsn 	0xda, 0x1f, 0xed, 0x9d, 0x6d, 0x52, 0xd7, 0xb5,
3250fb91146Salnsn 	0x48, 0xce, 0x53, 0x5e, 0xdc, 0xc8, 0xe4, 0x96,
3260fb91146Salnsn 	0x04, 0x32, 0xa5, 0xcf, 0x0c, 0xba, 0xa0, 0xd0,
3270fb91146Salnsn 	0x44, 0xb3, 0xe8, 0x72, 0xc6, 0xff, 0x8f, 0xd4,
3280fb91146Salnsn 	0x4d, 0x0a, 0x22, 0x89, 0x74, 0x50, 0xaa, 0x65,
3290fb91146Salnsn 	0x15, 0xab, 0x99, 0xc8, 0xf9, 0xa4, 0x10, 0xe6,
3300fb91146Salnsn 	0xa6, 0x4b, 0x0c, 0xc8, 0xb9, 0xa7, 0x60, 0x41,
3310fb91146Salnsn 	0xe7, 0x57, 0x31, 0xfa, 0x86, 0x55, 0xdf, 0x29,
3320fb91146Salnsn 	0x49, 0xac, 0x55, 0x7b, 0x21, 0xf9, 0x3b, 0x1e,
3330fb91146Salnsn 	0x1f, 0xb4, 0x1c, 0x0b, 0x77, 0xcb, 0x88, 0xbf,
3340fb91146Salnsn 	0xa6, 0x79, 0xbf, 0x9a, 0x51, 0xc4, 0x8e, 0x59,
3350fb91146Salnsn 	0x9c, 0xb3, 0x9d, 0x9d, 0x6b, 0xb2, 0x15, 0x41,
3360fb91146Salnsn 	0x0d, 0x6c, 0xf7, 0x5e, 0xe2, 0xf9, 0xb3, 0x80,
3370fb91146Salnsn 	0x8f, 0x03, 0x67, 0x68, 0x6e, 0x4b, 0x4d, 0x52,
3380fb91146Salnsn 	0xbc, 0x9b, 0xa2, 0xd8, 0x29, 0x1e, 0x5c, 0xd7,
3390fb91146Salnsn 	0x59, 0x67, 0x94, 0x40, 0x9e, 0x08, 0x15, 0x0d,
3400fb91146Salnsn 	0x7e, 0xc9, 0x14, 0x53, 0xa8, 0x67, 0xb3, 0xb8,
3410fb91146Salnsn 	0xaa, 0x21, 0x0f, 0x79, 0x69, 0x48, 0x52, 0xea,
3420fb91146Salnsn 	0x56, 0x03, 0x7b, 0x55, 0xb7, 0xf3, 0xfe, 0xb1,
3430fb91146Salnsn 	0x8a, 0x22, 0x7d, 0x75, 0x55, 0x31, 0xad, 0x20,
3440fb91146Salnsn 	0x6a, 0xc2, 0xa4, 0xd1, 0x1e, 0xab, 0xdd, 0x29,
3450fb91146Salnsn 	0xb5, 0xf8, 0xdd, 0x9b, 0x1a, 0xb8, 0xe7, 0xde,
3460fb91146Salnsn 	0xae, 0xa1, 0xab, 0xbb, 0xf6, 0x00, 0x87, 0xc4,
3470fb91146Salnsn 	0x29, 0xee, 0x2b, 0xa1, 0xa9, 0x1a, 0x46, 0x05,
3480fb91146Salnsn 	0x5a, 0x12, 0x3f, 0x32, 0x81, 0x25, 0x20, 0x71,
3490fb91146Salnsn 	0xb6, 0xfa, 0x1f, 0x27, 0x2a, 0x33, 0x49, 0xfc,
3500fb91146Salnsn 	0x95, 0x00, 0x72, 0x6b, 0x03, 0x53, 0x94, 0x57,
3510fb91146Salnsn 	0x2f, 0x47, 0x3d, 0x2d, 0x7c, 0xb4, 0xde, 0xa7,
3520fb91146Salnsn 	0x96, 0x81, 0x12, 0xff, 0x2c, 0xec, 0x5c, 0x03,
3530fb91146Salnsn 	0x2a, 0x8c, 0x76, 0xc4, 0xed, 0x09, 0xe6, 0x00,
3540fb91146Salnsn 	0x28, 0xdb, 0x9b, 0x44, 0xb0, 0xb4, 0x7b, 0x57,
3550fb91146Salnsn 	0x3b, 0xb6, 0x4f, 0x0b, 0xff, 0xf2, 0xf5, 0x02,
3560fb91146Salnsn 	0x56, 0xcf, 0xd5, 0xbf, 0x71, 0xe6, 0x66, 0xf3,
3570fb91146Salnsn 	0x08, 0x8e, 0x8b, 0x15, 0x57, 0x07, 0x41, 0xa3,
3580fb91146Salnsn 	0x91, 0xc1, 0xe4, 0x64, 0x92, 0x89, 0xed, 0x22,
3590fb91146Salnsn 	0x88, 0x8f, 0x17, 0x91, 0xde, 0xea, 0x0c, 0xa6,
3600fb91146Salnsn 	0x86, 0x8e, 0x4c, 0xd9, 0x63, 0xc9, 0xe5, 0xdc,
3610fb91146Salnsn 	0xd6, 0xd3, 0x7b, 0x2b, 0x65, 0xfa, 0x36, 0x47,
3620fb91146Salnsn 	0x20, 0xa4, 0xe7, 0x0b, 0x52, 0xfa, 0xa6, 0xeb,
3630fb91146Salnsn 	0x1d, 0x20, 0xd0, 0x4b, 0xfd, 0x88, 0x8c, 0xbb,
3640fb91146Salnsn 	0x52, 0x9c, 0x2f, 0xb7, 0xba, 0x8b, 0xdd, 0x10,
3650fb91146Salnsn 	0x2d, 0x7d, 0x77, 0x79, 0x40, 0xa7, 0xed, 0xf9,
3660fb91146Salnsn 	0xbd, 0x2a, 0x55, 0x1f, 0x87, 0x1e, 0x3c, 0xfc,
3670fb91146Salnsn };
3680fb91146Salnsn 
3690fb91146Salnsn const struct testvec c3des_cbc_192_1_vectors[] = {
3700fb91146Salnsn 	{
3710fb91146Salnsn 		.blkno = 0,
3720fb91146Salnsn 		.ptxt = c3des_cbc_ptxt,
3730fb91146Salnsn 		.ctxt = c3des_cbc_192_encblkno1_vec0_ctxt,
3740fb91146Salnsn 	},
3750fb91146Salnsn 	{
3760fb91146Salnsn 		.blkno = 1,
3770fb91146Salnsn 		.ptxt = c3des_cbc_ptxt,
3780fb91146Salnsn 		.ctxt = c3des_cbc_192_encblkno1_vec1_ctxt,
3790fb91146Salnsn 	},
3800fb91146Salnsn 	{
3810fb91146Salnsn 		.blkno = 2,
3820fb91146Salnsn 		.ptxt = c3des_cbc_ptxt,
3830fb91146Salnsn 		.ctxt = c3des_cbc_192_encblkno1_vec2_ctxt,
3840fb91146Salnsn 	},
3850fb91146Salnsn 	{
3860fb91146Salnsn 		.blkno = 3,
3870fb91146Salnsn 		.ptxt = c3des_cbc_ptxt,
3880fb91146Salnsn 		.ctxt = c3des_cbc_192_encblkno1_vec3_ctxt,
3890fb91146Salnsn 	},
3900fb91146Salnsn };
3910fb91146Salnsn 
3920fb91146Salnsn /*
3930fb91146Salnsn  * IV method encblkno8, blkno 0.
3940fb91146Salnsn  */
3950fb91146Salnsn static const uint8_t c3des_cbc_192_encblkno8_vec0_ctxt[SECSIZE] = {
3960fb91146Salnsn 	0x9e, 0x5d, 0x35, 0x56, 0xa7, 0xcc, 0xc0, 0x1c,
3970fb91146Salnsn 	0x60, 0x4c, 0x42, 0x90, 0x35, 0xf3, 0xc1, 0x20,
3980fb91146Salnsn 	0xf2, 0x07, 0x6f, 0xf8, 0x7c, 0x33, 0x6a, 0x74,
3990fb91146Salnsn 	0xdc, 0x85, 0xbc, 0x9c, 0xa2, 0x29, 0xc6, 0x69,
4000fb91146Salnsn 	0x0e, 0xef, 0x0f, 0xa9, 0x6e, 0xec, 0xf2, 0x23,
4010fb91146Salnsn 	0x2f, 0x9a, 0xbe, 0x1a, 0x89, 0x22, 0x00, 0xc4,
4020fb91146Salnsn 	0x5a, 0xaf, 0x4a, 0xa0, 0x4f, 0x30, 0x8f, 0x99,
4030fb91146Salnsn 	0xd2, 0x93, 0x6d, 0xfa, 0xcd, 0x2f, 0xad, 0x19,
4040fb91146Salnsn 	0x10, 0x14, 0x90, 0x3a, 0x4b, 0xab, 0x17, 0x2e,
4050fb91146Salnsn 	0x2c, 0xe1, 0x26, 0xe5, 0x76, 0xf1, 0xd1, 0x1d,
4060fb91146Salnsn 	0x4c, 0x77, 0x68, 0xfb, 0x45, 0x9a, 0x3e, 0x19,
4070fb91146Salnsn 	0xe0, 0xfb, 0xdc, 0xd4, 0x0e, 0x29, 0x7c, 0x06,
4080fb91146Salnsn 	0xd3, 0x45, 0xa8, 0xf7, 0x39, 0x91, 0xe6, 0x18,
4090fb91146Salnsn 	0x0f, 0x81, 0xe6, 0x7d, 0x6c, 0x65, 0x2e, 0x16,
4100fb91146Salnsn 	0x24, 0xa4, 0x16, 0x96, 0x0a, 0x7b, 0x5f, 0x3a,
4110fb91146Salnsn 	0x0c, 0xe9, 0x0e, 0x3f, 0x34, 0x38, 0xb0, 0xe1,
4120fb91146Salnsn 	0x39, 0x23, 0x5c, 0x3c, 0x00, 0xb4, 0xa0, 0xf7,
4130fb91146Salnsn 	0x42, 0x18, 0x70, 0x25, 0x82, 0x13, 0x24, 0x49,
4140fb91146Salnsn 	0xbb, 0x3f, 0xfb, 0xef, 0xb6, 0xc6, 0x7f, 0x3d,
4150fb91146Salnsn 	0x8c, 0x17, 0x62, 0x60, 0x6f, 0xd5, 0xda, 0x2c,
4160fb91146Salnsn 	0xf8, 0x85, 0xee, 0xa7, 0xc2, 0x76, 0x5d, 0x34,
4170fb91146Salnsn 	0x4c, 0xe1, 0x0d, 0x36, 0x6e, 0x02, 0xdd, 0x08,
4180fb91146Salnsn 	0x85, 0xe4, 0x90, 0xfe, 0x1f, 0x81, 0x4a, 0x06,
4190fb91146Salnsn 	0xa6, 0x72, 0x81, 0x79, 0x47, 0xd7, 0x6d, 0x92,
4200fb91146Salnsn 	0x8f, 0xb7, 0xb2, 0xfd, 0xd0, 0x60, 0x6c, 0x06,
4210fb91146Salnsn 	0x44, 0xcd, 0x20, 0x28, 0xef, 0x16, 0xc3, 0x01,
4220fb91146Salnsn 	0x19, 0x14, 0x34, 0x39, 0xad, 0x87, 0x9f, 0xde,
4230fb91146Salnsn 	0x76, 0xb9, 0xb9, 0x87, 0x1a, 0xbd, 0x8e, 0x2c,
4240fb91146Salnsn 	0xe6, 0xb3, 0xe7, 0xb6, 0x80, 0xf8, 0xc5, 0x22,
4250fb91146Salnsn 	0x5f, 0x53, 0xed, 0x03, 0xfe, 0x09, 0x2c, 0x9d,
4260fb91146Salnsn 	0xb6, 0x61, 0x4a, 0xbb, 0x07, 0x5d, 0xbd, 0x68,
4270fb91146Salnsn 	0x74, 0xab, 0x02, 0x81, 0x64, 0x7b, 0x97, 0xa3,
4280fb91146Salnsn 	0xad, 0x15, 0x99, 0x7a, 0x04, 0x33, 0xbd, 0x50,
4290fb91146Salnsn 	0x94, 0x11, 0xcc, 0xf7, 0x8b, 0x77, 0x88, 0x78,
4300fb91146Salnsn 	0x80, 0xfe, 0x5f, 0xa1, 0x63, 0xbc, 0xb0, 0x65,
4310fb91146Salnsn 	0xcb, 0x9d, 0x4c, 0xfe, 0x66, 0x4e, 0xff, 0xe3,
4320fb91146Salnsn 	0x43, 0x61, 0x99, 0x88, 0x88, 0x4c, 0xbc, 0x8a,
4330fb91146Salnsn 	0xf1, 0x69, 0x00, 0xc2, 0xe5, 0xb9, 0x65, 0x8b,
4340fb91146Salnsn 	0x10, 0xdf, 0x38, 0x3e, 0x9e, 0x9f, 0x87, 0xed,
4350fb91146Salnsn 	0x84, 0x71, 0xe7, 0xf2, 0xb5, 0xb6, 0x11, 0xed,
4360fb91146Salnsn 	0x1e, 0xd4, 0xc0, 0x6d, 0x77, 0x08, 0x4b, 0xfd,
4370fb91146Salnsn 	0x95, 0xd5, 0xc0, 0xbe, 0xa6, 0xcc, 0x3b, 0xea,
4380fb91146Salnsn 	0x11, 0x38, 0xa5, 0x59, 0x36, 0x2a, 0xf4, 0x98,
4390fb91146Salnsn 	0x52, 0x9d, 0x3b, 0x8c, 0x8a, 0x19, 0xbd, 0xfb,
4400fb91146Salnsn 	0x49, 0xcb, 0xb0, 0x57, 0x91, 0xc7, 0xf8, 0x2a,
4410fb91146Salnsn 	0x89, 0xa8, 0x85, 0x03, 0xdf, 0x6e, 0xad, 0xf4,
4420fb91146Salnsn 	0x8a, 0x88, 0x9a, 0x2b, 0x5d, 0xe8, 0xca, 0xa9,
4430fb91146Salnsn 	0x8f, 0x18, 0xa3, 0x6a, 0x37, 0x84, 0xa9, 0x24,
4440fb91146Salnsn 	0x5b, 0xce, 0xd6, 0xbe, 0x7e, 0x40, 0x86, 0x6a,
4450fb91146Salnsn 	0xc3, 0x47, 0x28, 0x66, 0xf0, 0x8c, 0x2d, 0x69,
4460fb91146Salnsn 	0x22, 0x64, 0x61, 0x36, 0x6a, 0x0c, 0xc4, 0x18,
4470fb91146Salnsn 	0x5f, 0xd7, 0xff, 0xbc, 0xf1, 0x94, 0x16, 0xfb,
4480fb91146Salnsn 	0x26, 0xa7, 0x80, 0xa4, 0x2d, 0x72, 0xc6, 0x9d,
4490fb91146Salnsn 	0xa7, 0xed, 0x04, 0x13, 0x0f, 0xe7, 0xf8, 0x93,
4500fb91146Salnsn 	0x57, 0x6b, 0xd5, 0xa4, 0xad, 0x9a, 0x97, 0xeb,
4510fb91146Salnsn 	0x97, 0xe7, 0x60, 0x01, 0x89, 0x3f, 0x88, 0xf2,
4520fb91146Salnsn 	0xee, 0xf3, 0x79, 0xd6, 0x5a, 0x03, 0x94, 0x07,
4530fb91146Salnsn 	0xd3, 0x33, 0xc8, 0xda, 0x15, 0x17, 0x0a, 0x8f,
4540fb91146Salnsn 	0xbd, 0x58, 0x1b, 0xfe, 0x3d, 0x77, 0x5d, 0x8f,
4550fb91146Salnsn 	0x4e, 0x0e, 0x98, 0x7d, 0x02, 0x63, 0x94, 0x73,
4560fb91146Salnsn 	0x4a, 0x58, 0x47, 0xed, 0x52, 0xfc, 0x85, 0x19,
4570fb91146Salnsn 	0x5d, 0x2f, 0xfa, 0x07, 0x44, 0xbd, 0x8e, 0xcb,
4580fb91146Salnsn 	0x20, 0x63, 0x9d, 0x2b, 0x61, 0x5c, 0x19, 0x71,
4590fb91146Salnsn 	0x80, 0xe5, 0x25, 0x5b, 0x2e, 0xc5, 0xfe, 0x1a,
4600fb91146Salnsn };
4610fb91146Salnsn 
4620fb91146Salnsn /*
4630fb91146Salnsn  * IV method encblkno8, blkno 1.
4640fb91146Salnsn  */
4650fb91146Salnsn static const uint8_t c3des_cbc_192_encblkno8_vec1_ctxt[SECSIZE] = {
4660fb91146Salnsn 	0xf4, 0xb0, 0xb0, 0xcb, 0x79, 0xcc, 0x8c, 0x0a,
4670fb91146Salnsn 	0x3b, 0xc7, 0x43, 0x4e, 0x62, 0x9d, 0xde, 0xb4,
4680fb91146Salnsn 	0xab, 0xa5, 0x62, 0x63, 0x32, 0xa7, 0x18, 0x2b,
4690fb91146Salnsn 	0xe3, 0xee, 0x44, 0xc6, 0x6f, 0xb2, 0xdc, 0x21,
4700fb91146Salnsn 	0xc5, 0xc8, 0x9e, 0x32, 0x71, 0x4c, 0x7a, 0x82,
4710fb91146Salnsn 	0x8d, 0xe0, 0xad, 0x91, 0x88, 0x0c, 0x41, 0x83,
4720fb91146Salnsn 	0x28, 0x0d, 0xed, 0xa7, 0xeb, 0x48, 0xb1, 0x31,
4730fb91146Salnsn 	0xfa, 0x40, 0xd9, 0x44, 0x19, 0xee, 0x8d, 0x2c,
4740fb91146Salnsn 	0x7d, 0xe2, 0x39, 0xa0, 0x39, 0xaa, 0x86, 0xab,
4750fb91146Salnsn 	0xb5, 0x68, 0xe5, 0x83, 0x06, 0x61, 0xec, 0xe6,
4760fb91146Salnsn 	0xc2, 0x85, 0xb2, 0x46, 0xf4, 0x5b, 0x0e, 0x34,
4770fb91146Salnsn 	0x7e, 0x0c, 0xa0, 0xda, 0xef, 0x58, 0x9c, 0x39,
4780fb91146Salnsn 	0x95, 0xa2, 0xca, 0xd3, 0x3b, 0x4d, 0x76, 0xe3,
4790fb91146Salnsn 	0x34, 0x6d, 0x08, 0xa4, 0xba, 0x88, 0x58, 0x39,
4800fb91146Salnsn 	0xb4, 0xe4, 0x6b, 0xb6, 0x32, 0x50, 0x2c, 0xe2,
4810fb91146Salnsn 	0x0a, 0x37, 0xbc, 0x98, 0x38, 0x32, 0x17, 0x1b,
4820fb91146Salnsn 	0x12, 0xef, 0xdc, 0x9d, 0x91, 0x09, 0x8e, 0xd8,
4830fb91146Salnsn 	0xc3, 0xf8, 0x7b, 0x35, 0x41, 0x3b, 0xf8, 0xf5,
4840fb91146Salnsn 	0x37, 0x48, 0x04, 0xf7, 0x94, 0xbf, 0x54, 0x8d,
4850fb91146Salnsn 	0x79, 0x49, 0x8f, 0xf0, 0x3f, 0xb7, 0x90, 0x76,
4860fb91146Salnsn 	0x14, 0x09, 0xc6, 0x8c, 0xba, 0x1a, 0x30, 0x1b,
4870fb91146Salnsn 	0xbb, 0xd9, 0xe2, 0xb5, 0xe8, 0xd9, 0x9b, 0x68,
4880fb91146Salnsn 	0x60, 0x90, 0xd3, 0x4a, 0xe8, 0x65, 0x7b, 0xaa,
4890fb91146Salnsn 	0xb0, 0xda, 0x69, 0x1d, 0x45, 0x78, 0x2c, 0x3b,
4900fb91146Salnsn 	0x59, 0x29, 0x3c, 0x26, 0x9a, 0xd2, 0xa5, 0xfd,
4910fb91146Salnsn 	0xb7, 0x16, 0x59, 0x7c, 0x46, 0xea, 0x99, 0xd0,
4920fb91146Salnsn 	0x06, 0x01, 0x3f, 0xd2, 0x23, 0xcc, 0xde, 0xb8,
4930fb91146Salnsn 	0xaa, 0x88, 0x17, 0x03, 0xe1, 0x48, 0x2c, 0xdd,
4940fb91146Salnsn 	0xce, 0xd1, 0x2c, 0xce, 0x37, 0xee, 0xe6, 0xa6,
4950fb91146Salnsn 	0x47, 0x8c, 0x07, 0xe5, 0xfe, 0x01, 0xc6, 0x27,
4960fb91146Salnsn 	0xfe, 0x3f, 0x9d, 0x30, 0x18, 0x36, 0xe7, 0xa7,
4970fb91146Salnsn 	0x37, 0x1d, 0xcf, 0x6d, 0x4c, 0x82, 0xec, 0x58,
4980fb91146Salnsn 	0xa1, 0x6f, 0x56, 0xc6, 0x08, 0x25, 0x94, 0xda,
4990fb91146Salnsn 	0xae, 0x1a, 0x4f, 0xda, 0xb2, 0xf4, 0xbf, 0x94,
5000fb91146Salnsn 	0xff, 0x66, 0x6a, 0xb1, 0x1f, 0x42, 0xfe, 0x32,
5010fb91146Salnsn 	0xa4, 0x0e, 0x3d, 0x6a, 0x16, 0x44, 0xe0, 0xac,
5020fb91146Salnsn 	0xe8, 0xc1, 0xe2, 0xa8, 0x73, 0xab, 0xac, 0x58,
5030fb91146Salnsn 	0xb1, 0xbc, 0x94, 0xb2, 0x6a, 0xe4, 0x45, 0xf5,
5040fb91146Salnsn 	0x90, 0x6b, 0x82, 0xeb, 0x9e, 0x22, 0x9e, 0xb2,
5050fb91146Salnsn 	0x27, 0x3e, 0xc8, 0x55, 0xf4, 0x8f, 0xda, 0x04,
5060fb91146Salnsn 	0xa3, 0x9c, 0xa4, 0x79, 0xbd, 0x79, 0xd3, 0xbd,
5070fb91146Salnsn 	0xbe, 0x72, 0x7f, 0x90, 0xef, 0xc3, 0x34, 0x17,
5080fb91146Salnsn 	0x72, 0x6f, 0xb4, 0xfe, 0x62, 0x56, 0xc3, 0xd6,
5090fb91146Salnsn 	0x43, 0xc8, 0x4c, 0x76, 0x91, 0x04, 0x97, 0x4c,
5100fb91146Salnsn 	0x84, 0x98, 0x56, 0xb7, 0x7b, 0x4f, 0xd5, 0xcf,
5110fb91146Salnsn 	0x1b, 0x9c, 0x09, 0xe3, 0x1d, 0xdf, 0x0e, 0xfa,
5120fb91146Salnsn 	0x39, 0xc8, 0x48, 0x43, 0x84, 0xec, 0x79, 0xc8,
5130fb91146Salnsn 	0x7f, 0x4f, 0xa8, 0xc0, 0xb4, 0xde, 0x8b, 0x79,
5140fb91146Salnsn 	0xcb, 0x9c, 0x42, 0x81, 0x49, 0xdc, 0x39, 0xb5,
5150fb91146Salnsn 	0x31, 0xa6, 0x22, 0xba, 0x71, 0xb8, 0x2d, 0x1d,
5160fb91146Salnsn 	0xc8, 0x17, 0xd8, 0x9d, 0x26, 0x2b, 0xd5, 0xcf,
5170fb91146Salnsn 	0x57, 0x46, 0x0a, 0x61, 0x7e, 0xb7, 0xc3, 0x9c,
5180fb91146Salnsn 	0xa6, 0x44, 0x60, 0x2d, 0x30, 0xb8, 0x10, 0x47,
5190fb91146Salnsn 	0x7d, 0x7e, 0x87, 0x76, 0xc1, 0x4e, 0x85, 0x77,
5200fb91146Salnsn 	0xbc, 0x30, 0x32, 0x56, 0x0a, 0x5b, 0x1c, 0xd0,
5210fb91146Salnsn 	0xf6, 0x47, 0x48, 0x22, 0xf4, 0x6e, 0x38, 0xc5,
5220fb91146Salnsn 	0xab, 0xe2, 0xd0, 0x4d, 0x40, 0x27, 0xab, 0x8f,
5230fb91146Salnsn 	0x43, 0xb1, 0x60, 0x29, 0x07, 0xd0, 0xf5, 0x25,
5240fb91146Salnsn 	0xe5, 0xfa, 0xe7, 0x46, 0x32, 0x37, 0xb9, 0xae,
5250fb91146Salnsn 	0x2e, 0x02, 0x8c, 0x94, 0x15, 0x69, 0xd6, 0x74,
5260fb91146Salnsn 	0xb4, 0x36, 0xdd, 0x94, 0x70, 0xa7, 0x16, 0x7b,
5270fb91146Salnsn 	0x4c, 0xd3, 0x48, 0x83, 0xc5, 0xb2, 0xb0, 0x6a,
5280fb91146Salnsn 	0xfe, 0x7e, 0xd4, 0xe5, 0x6d, 0xa5, 0x96, 0x20,
5290fb91146Salnsn 	0x08, 0x59, 0xbd, 0x0c, 0x3d, 0x55, 0xa5, 0x03,
5300fb91146Salnsn };
5310fb91146Salnsn 
5320fb91146Salnsn /*
5330fb91146Salnsn  * IV method encblkno8, blkno 2.
5340fb91146Salnsn  */
5350fb91146Salnsn static const uint8_t c3des_cbc_192_encblkno8_vec2_ctxt[SECSIZE] = {
5360fb91146Salnsn 	0xea, 0x7c, 0x8c, 0x8e, 0x3e, 0x61, 0x34, 0x3d,
5370fb91146Salnsn 	0xe0, 0x7f, 0xd3, 0xe1, 0x3a, 0xb9, 0xc8, 0xf2,
5380fb91146Salnsn 	0x98, 0xdc, 0x59, 0x26, 0xd2, 0xd8, 0xa7, 0x7f,
5390fb91146Salnsn 	0x41, 0x98, 0x24, 0xa8, 0x28, 0x0c, 0x88, 0x55,
5400fb91146Salnsn 	0x91, 0xdb, 0x29, 0x17, 0x70, 0xd7, 0x03, 0xff,
5410fb91146Salnsn 	0xbd, 0x0e, 0xbf, 0xf8, 0x73, 0x92, 0x19, 0xe9,
5420fb91146Salnsn 	0x92, 0x67, 0xdb, 0x08, 0x94, 0x77, 0x71, 0x2d,
5430fb91146Salnsn 	0x00, 0xad, 0x26, 0x42, 0x2d, 0xac, 0x8c, 0x67,
5440fb91146Salnsn 	0x6f, 0xb3, 0x8e, 0x36, 0x22, 0xeb, 0x1f, 0x8c,
5450fb91146Salnsn 	0xd4, 0x9b, 0x9f, 0xa6, 0xa9, 0xb1, 0x52, 0x65,
5460fb91146Salnsn 	0x9a, 0xfe, 0xcc, 0x92, 0x48, 0x75, 0xf6, 0xb8,
5470fb91146Salnsn 	0x59, 0xfe, 0x0e, 0x67, 0x93, 0xce, 0x3b, 0x7e,
5480fb91146Salnsn 	0x51, 0x74, 0xe5, 0x24, 0x35, 0x08, 0x68, 0x21,
5490fb91146Salnsn 	0x6a, 0x7f, 0xdd, 0x8c, 0xfd, 0xcd, 0x6d, 0x90,
5500fb91146Salnsn 	0xc5, 0x3b, 0x26, 0x9e, 0x00, 0xf4, 0x1e, 0x70,
5510fb91146Salnsn 	0xd3, 0xe7, 0xe8, 0x2f, 0x52, 0x87, 0x76, 0x84,
5520fb91146Salnsn 	0xbb, 0x5c, 0x76, 0x5a, 0xc8, 0xea, 0x74, 0xe2,
5530fb91146Salnsn 	0x9e, 0x85, 0xf6, 0x53, 0x85, 0x1a, 0x6e, 0x02,
5540fb91146Salnsn 	0x0d, 0x32, 0x11, 0xc4, 0xec, 0xee, 0x79, 0x27,
5550fb91146Salnsn 	0xda, 0xca, 0xc0, 0x0b, 0x8e, 0x2d, 0xb7, 0x7d,
5560fb91146Salnsn 	0x8c, 0x6e, 0xfb, 0xa3, 0xa8, 0x24, 0x24, 0x62,
5570fb91146Salnsn 	0xc8, 0xdd, 0xc7, 0x16, 0x09, 0x33, 0x0f, 0xe5,
5580fb91146Salnsn 	0xc8, 0x60, 0x3d, 0xb6, 0xbf, 0x6c, 0x28, 0xd2,
5590fb91146Salnsn 	0x0b, 0x9c, 0xd9, 0xcb, 0x64, 0x49, 0xe4, 0x80,
5600fb91146Salnsn 	0x72, 0x58, 0xaa, 0xaa, 0x7e, 0x1d, 0x9f, 0xd7,
5610fb91146Salnsn 	0x29, 0x15, 0x65, 0xfc, 0xfd, 0x3f, 0xe1, 0x82,
5620fb91146Salnsn 	0x25, 0x3c, 0xd4, 0xbe, 0x59, 0x79, 0x63, 0xd1,
5630fb91146Salnsn 	0xd6, 0x0e, 0xda, 0x00, 0xf3, 0xaa, 0x13, 0xd3,
5640fb91146Salnsn 	0xed, 0xef, 0xca, 0x8b, 0x97, 0x15, 0x2d, 0x10,
5650fb91146Salnsn 	0x6f, 0xcf, 0xee, 0xc7, 0x21, 0xad, 0xe3, 0xe4,
5660fb91146Salnsn 	0xd8, 0x95, 0x21, 0x1f, 0xc0, 0x06, 0x3a, 0xbc,
5670fb91146Salnsn 	0xbb, 0x2a, 0x92, 0x78, 0x76, 0x9d, 0x1e, 0x7b,
5680fb91146Salnsn 	0xb5, 0x29, 0xaf, 0x96, 0x75, 0x2b, 0x41, 0xbd,
5690fb91146Salnsn 	0xae, 0x79, 0x28, 0x72, 0xe7, 0x54, 0xc4, 0x08,
5700fb91146Salnsn 	0xd3, 0xd2, 0xac, 0x96, 0xd0, 0x0f, 0x9b, 0x68,
5710fb91146Salnsn 	0x7d, 0x3f, 0xc2, 0xdd, 0x3d, 0xfc, 0xca, 0xcd,
5720fb91146Salnsn 	0x11, 0x71, 0xd9, 0x48, 0x53, 0x9f, 0xd3, 0x79,
5730fb91146Salnsn 	0x7d, 0x47, 0x71, 0x2a, 0x6d, 0x9e, 0xa9, 0x47,
5740fb91146Salnsn 	0xa1, 0xf7, 0x97, 0x80, 0x83, 0x70, 0x6b, 0xfe,
5750fb91146Salnsn 	0x10, 0x11, 0x6a, 0x0e, 0xdd, 0xde, 0x22, 0x3c,
5760fb91146Salnsn 	0x19, 0x30, 0x73, 0x73, 0x2e, 0x4b, 0x54, 0x17,
5770fb91146Salnsn 	0xc3, 0x2e, 0xe9, 0xce, 0xe0, 0xe3, 0xa0, 0x1a,
5780fb91146Salnsn 	0x28, 0xd1, 0x50, 0xa8, 0xd2, 0x40, 0xe2, 0x1b,
5790fb91146Salnsn 	0xfa, 0x49, 0x06, 0x49, 0x8b, 0x4b, 0xd9, 0xd5,
5800fb91146Salnsn 	0xf5, 0x50, 0xae, 0x64, 0x19, 0xe1, 0xd9, 0x4e,
5810fb91146Salnsn 	0xbb, 0x29, 0x70, 0x66, 0x46, 0xa8, 0x7e, 0x5b,
5820fb91146Salnsn 	0xdc, 0xe2, 0xd5, 0x9d, 0x56, 0x6d, 0x4c, 0xe6,
5830fb91146Salnsn 	0x0e, 0x6b, 0x71, 0x40, 0x82, 0xf7, 0xb3, 0xad,
5840fb91146Salnsn 	0x23, 0x17, 0xe3, 0x1c, 0x61, 0x1d, 0x3b, 0x71,
5850fb91146Salnsn 	0xfc, 0x06, 0x17, 0xec, 0x6c, 0x77, 0x98, 0x27,
5860fb91146Salnsn 	0xc7, 0x4b, 0x65, 0x17, 0x81, 0xe7, 0xcb, 0xce,
5870fb91146Salnsn 	0x09, 0x76, 0x82, 0x82, 0x4a, 0x53, 0x67, 0xa0,
5880fb91146Salnsn 	0x05, 0x25, 0x4c, 0xc4, 0xa7, 0xad, 0xa7, 0xaf,
5890fb91146Salnsn 	0xa0, 0x11, 0xd7, 0x73, 0x3b, 0x30, 0xbf, 0x53,
5900fb91146Salnsn 	0x50, 0x9b, 0xd8, 0xf3, 0x32, 0x15, 0xdd, 0x36,
5910fb91146Salnsn 	0x88, 0xc2, 0x39, 0x51, 0xb6, 0xb8, 0x0d, 0x5c,
5920fb91146Salnsn 	0x20, 0x4e, 0x24, 0xee, 0x95, 0x32, 0x61, 0x25,
5930fb91146Salnsn 	0xda, 0x73, 0x0d, 0x8a, 0x58, 0xe6, 0xcc, 0xad,
5940fb91146Salnsn 	0x79, 0x3d, 0xef, 0x29, 0x0c, 0x9f, 0xe1, 0xa7,
5950fb91146Salnsn 	0x22, 0x1e, 0xea, 0x7a, 0x4f, 0xfb, 0xc1, 0x1f,
5960fb91146Salnsn 	0x17, 0xca, 0x69, 0xd6, 0xa4, 0xce, 0x6e, 0xc0,
5970fb91146Salnsn 	0x70, 0xa3, 0x08, 0x32, 0x87, 0xb4, 0x6b, 0x80,
5980fb91146Salnsn 	0x5c, 0x7f, 0x88, 0x5c, 0xbf, 0x07, 0xd8, 0xe9,
5990fb91146Salnsn 	0xdd, 0xd2, 0x76, 0xa9, 0xaa, 0xd9, 0x55, 0x48,
6000fb91146Salnsn };
6010fb91146Salnsn 
6020fb91146Salnsn /*
6030fb91146Salnsn  * IV method encblkno8, blkno 3.
6040fb91146Salnsn  */
6050fb91146Salnsn static const uint8_t c3des_cbc_192_encblkno8_vec3_ctxt[SECSIZE] = {
6060fb91146Salnsn 	0xf3, 0x49, 0xda, 0x5c, 0xde, 0x9d, 0x3e, 0x9d,
6070fb91146Salnsn 	0xb9, 0xc2, 0x6e, 0x96, 0xa9, 0x93, 0x10, 0x73,
6080fb91146Salnsn 	0x0e, 0x26, 0x39, 0xd6, 0x9f, 0x04, 0x5f, 0x69,
6090fb91146Salnsn 	0x54, 0xa3, 0x7c, 0x46, 0x7b, 0x18, 0x93, 0xc0,
6100fb91146Salnsn 	0xbb, 0x0c, 0x96, 0x6f, 0xb0, 0xbf, 0xce, 0x67,
6110fb91146Salnsn 	0x33, 0x3e, 0x56, 0xe8, 0x6b, 0x4d, 0x3f, 0xc8,
6120fb91146Salnsn 	0x3c, 0xc6, 0x89, 0x2c, 0x0b, 0x95, 0x3a, 0xaf,
6130fb91146Salnsn 	0xc0, 0xf3, 0x1f, 0x0e, 0x07, 0x01, 0xa6, 0x35,
6140fb91146Salnsn 	0x19, 0x79, 0x91, 0x24, 0xaa, 0x0d, 0xf0, 0x53,
6150fb91146Salnsn 	0x27, 0x7d, 0xbb, 0xa6, 0xb6, 0x44, 0x31, 0x4b,
6160fb91146Salnsn 	0xd4, 0xcf, 0xf6, 0x6d, 0x18, 0xa2, 0x28, 0x8a,
6170fb91146Salnsn 	0xc1, 0x0a, 0xbe, 0x57, 0x0c, 0x61, 0x5f, 0xd9,
6180fb91146Salnsn 	0x12, 0x14, 0xfe, 0xe2, 0xc7, 0x10, 0x72, 0xee,
6190fb91146Salnsn 	0x19, 0xb8, 0x16, 0x0b, 0x88, 0x87, 0xce, 0xf3,
6200fb91146Salnsn 	0xfe, 0x57, 0x37, 0xd1, 0xa2, 0xf7, 0xd0, 0x5e,
6210fb91146Salnsn 	0x73, 0xde, 0x39, 0x35, 0xbc, 0xde, 0xed, 0x61,
6220fb91146Salnsn 	0x4b, 0x31, 0xdc, 0xfe, 0x3c, 0x4d, 0x98, 0xa9,
6230fb91146Salnsn 	0x36, 0xb0, 0x34, 0x5b, 0xb4, 0xb7, 0x79, 0x25,
6240fb91146Salnsn 	0x6e, 0x24, 0x7e, 0x10, 0xfe, 0x20, 0xd5, 0x16,
6250fb91146Salnsn 	0x86, 0xaf, 0xcd, 0x26, 0x34, 0xd3, 0x2e, 0xdc,
6260fb91146Salnsn 	0x7c, 0x69, 0xe3, 0xc5, 0x62, 0x0c, 0xba, 0x29,
6270fb91146Salnsn 	0x9c, 0x4b, 0x2f, 0x39, 0x45, 0xe1, 0xcf, 0xc5,
6280fb91146Salnsn 	0xfe, 0x35, 0xb6, 0x2f, 0xb1, 0x1a, 0x90, 0xe1,
6290fb91146Salnsn 	0xa7, 0x39, 0xe8, 0x1e, 0x5f, 0xac, 0xab, 0x1e,
6300fb91146Salnsn 	0x32, 0xba, 0xc5, 0x92, 0x39, 0x62, 0x37, 0x2c,
6310fb91146Salnsn 	0x49, 0xf1, 0x62, 0x90, 0xf7, 0x1e, 0x10, 0xce,
6320fb91146Salnsn 	0x8e, 0x95, 0xa3, 0xc6, 0xd8, 0xe5, 0xc8, 0xdf,
6330fb91146Salnsn 	0xcc, 0x94, 0x7d, 0x26, 0xab, 0x29, 0xbb, 0x9d,
6340fb91146Salnsn 	0xf3, 0x73, 0xce, 0xac, 0x76, 0xdf, 0x75, 0x2a,
6350fb91146Salnsn 	0x3e, 0x8f, 0x47, 0xff, 0x76, 0xfe, 0xea, 0xd4,
6360fb91146Salnsn 	0x4a, 0xa9, 0x36, 0x9d, 0x12, 0x45, 0xb7, 0x99,
6370fb91146Salnsn 	0x81, 0xb6, 0x77, 0x98, 0x13, 0xfb, 0x5a, 0xe5,
6380fb91146Salnsn 	0x40, 0x87, 0x61, 0x0d, 0x10, 0x76, 0xf6, 0x3e,
6390fb91146Salnsn 	0x48, 0xac, 0xc4, 0x27, 0x87, 0xcd, 0x07, 0xde,
6400fb91146Salnsn 	0x0b, 0x23, 0x97, 0x61, 0x3d, 0x18, 0x64, 0x7f,
6410fb91146Salnsn 	0xbf, 0xd6, 0x87, 0xc1, 0x11, 0xfb, 0xf9, 0xda,
6420fb91146Salnsn 	0x14, 0xa1, 0x01, 0xf8, 0x7e, 0xea, 0x5b, 0x5b,
6430fb91146Salnsn 	0xdd, 0x09, 0xf9, 0x31, 0x80, 0x3c, 0xee, 0x34,
6440fb91146Salnsn 	0x2d, 0xda, 0x71, 0xd9, 0x32, 0x7d, 0x45, 0xb2,
6450fb91146Salnsn 	0x53, 0xea, 0xd5, 0x7c, 0x85, 0x45, 0xce, 0x1d,
6460fb91146Salnsn 	0x2b, 0xe9, 0xd7, 0x95, 0xf8, 0x8c, 0x08, 0xe4,
6470fb91146Salnsn 	0xd0, 0x2f, 0x60, 0x75, 0x02, 0xf3, 0xde, 0xeb,
6480fb91146Salnsn 	0x46, 0x40, 0xa8, 0xd2, 0x37, 0xd6, 0xca, 0x5d,
6490fb91146Salnsn 	0xb9, 0xf4, 0x51, 0x31, 0x8a, 0x1a, 0x82, 0xbd,
6500fb91146Salnsn 	0x6f, 0x6d, 0x88, 0x2b, 0x63, 0x0f, 0xe1, 0xf0,
6510fb91146Salnsn 	0xcf, 0x13, 0x79, 0x1d, 0x78, 0x82, 0x66, 0xa1,
6520fb91146Salnsn 	0xef, 0xdb, 0x34, 0x50, 0xd2, 0x71, 0x47, 0x49,
6530fb91146Salnsn 	0x41, 0x74, 0xd9, 0x0b, 0x14, 0x38, 0x1f, 0xc3,
6540fb91146Salnsn 	0x09, 0x4d, 0xb3, 0xa6, 0x03, 0x3f, 0x56, 0x67,
6550fb91146Salnsn 	0xd7, 0x51, 0x4c, 0x8a, 0x1d, 0x37, 0x99, 0xfb,
6560fb91146Salnsn 	0xe1, 0x84, 0x57, 0x55, 0x9b, 0xf8, 0x73, 0x63,
6570fb91146Salnsn 	0x68, 0x73, 0x89, 0x52, 0x06, 0xe7, 0x34, 0xe7,
6580fb91146Salnsn 	0x1a, 0x15, 0x7e, 0xd9, 0x84, 0xa3, 0x0e, 0x68,
6590fb91146Salnsn 	0x14, 0x1c, 0xe8, 0x23, 0x9e, 0xe3, 0x8f, 0x71,
6600fb91146Salnsn 	0x02, 0x9b, 0x87, 0xd4, 0xd9, 0x1b, 0xd1, 0x9e,
6610fb91146Salnsn 	0x9e, 0xa0, 0x7e, 0x49, 0x8e, 0xaa, 0x89, 0xb5,
6620fb91146Salnsn 	0x16, 0x48, 0x07, 0xb3, 0x3d, 0x9e, 0x4c, 0x35,
6630fb91146Salnsn 	0x3e, 0x94, 0xa9, 0xf8, 0x82, 0x50, 0x6a, 0x41,
6640fb91146Salnsn 	0x28, 0x3e, 0x9f, 0x9a, 0x1a, 0x5d, 0x02, 0x7c,
6650fb91146Salnsn 	0xd0, 0x32, 0x52, 0xa5, 0xee, 0x09, 0x27, 0x2d,
6660fb91146Salnsn 	0x49, 0x17, 0xf7, 0x92, 0xa1, 0x63, 0x9d, 0x2a,
6670fb91146Salnsn 	0xfd, 0x53, 0x26, 0x14, 0x7c, 0x92, 0x72, 0xa6,
6680fb91146Salnsn 	0x38, 0x18, 0x8f, 0xb5, 0x54, 0xb3, 0x69, 0x63,
6690fb91146Salnsn 	0x6a, 0xdc, 0xb1, 0x5a, 0x12, 0x7a, 0x0b, 0xa3,
6700fb91146Salnsn };
6710fb91146Salnsn 
6720fb91146Salnsn const struct testvec c3des_cbc_192_8_vectors[] = {
6730fb91146Salnsn 	{
6740fb91146Salnsn 		.blkno = 0,
6750fb91146Salnsn 		.ptxt = c3des_cbc_ptxt,
6760fb91146Salnsn 		.ctxt = c3des_cbc_192_encblkno8_vec0_ctxt,
6770fb91146Salnsn 	},
6780fb91146Salnsn 	{
6790fb91146Salnsn 		.blkno = 1,
6800fb91146Salnsn 		.ptxt = c3des_cbc_ptxt,
6810fb91146Salnsn 		.ctxt = c3des_cbc_192_encblkno8_vec1_ctxt,
6820fb91146Salnsn 	},
6830fb91146Salnsn 	{
6840fb91146Salnsn 		.blkno = 2,
6850fb91146Salnsn 		.ptxt = c3des_cbc_ptxt,
6860fb91146Salnsn 		.ctxt = c3des_cbc_192_encblkno8_vec2_ctxt,
6870fb91146Salnsn 	},
6880fb91146Salnsn 	{
6890fb91146Salnsn 		.blkno = 3,
6900fb91146Salnsn 		.ptxt = c3des_cbc_ptxt,
6910fb91146Salnsn 		.ctxt = c3des_cbc_192_encblkno8_vec3_ctxt,
6920fb91146Salnsn 	},
6930fb91146Salnsn };
6940fb91146Salnsn 
6950fb91146Salnsn static int
open_disk(const char * devpath,const char * imgpath,size_t size)6960fb91146Salnsn open_disk(const char *devpath, const char *imgpath, size_t size)
6970fb91146Salnsn {
6980fb91146Salnsn 	int fd;
6990fb91146Salnsn 
7000fb91146Salnsn 	fd = open(imgpath, O_CREAT | O_RDWR | O_TRUNC, 0600);
7010fb91146Salnsn 	if (fd < 0)
7020fb91146Salnsn 		return -1;
7030fb91146Salnsn 
7040fb91146Salnsn 	if (ftruncate(fd, size) < 0)
7050fb91146Salnsn 		goto fail;
7060fb91146Salnsn 
7070fb91146Salnsn 	if (rump_pub_etfs_register_withsize(devpath,
7080fb91146Salnsn 	    imgpath, RUMP_ETFS_BLK, 0, size) < 0) {
7090fb91146Salnsn 		goto fail;
7100fb91146Salnsn 	}
7110fb91146Salnsn 
7120fb91146Salnsn 	unlink(imgpath);
7130fb91146Salnsn 	return fd;
7140fb91146Salnsn fail:
7150fb91146Salnsn 	close(fd);
7160fb91146Salnsn 	unlink(imgpath);
7170fb91146Salnsn 	return -1;
7180fb91146Salnsn }
7190fb91146Salnsn 
7200fb91146Salnsn static int
open_cgd(int devno)7210fb91146Salnsn open_cgd(int devno)
7220fb91146Salnsn {
7230fb91146Salnsn 	char devpath[32];
7240fb91146Salnsn 
7250fb91146Salnsn 	sprintf(devpath, "/dev/rcgd%d%c", devno, getrawpartition() + 'a');
7260fb91146Salnsn 
7270fb91146Salnsn 	return rump_sys_open(devpath, O_RDWR, 0);
7280fb91146Salnsn }
7290fb91146Salnsn 
7300fb91146Salnsn static int
configure_cgd(int fd,const char * dkpath,const char * alg,const char * ivmethod,const char * key,size_t keylen)7310fb91146Salnsn configure_cgd(int fd, const char *dkpath, const char *alg,
7320fb91146Salnsn     const char *ivmethod, const char *key, size_t keylen)
7330fb91146Salnsn {
7340fb91146Salnsn 	struct cgd_ioctl ci;
7350fb91146Salnsn 
7360fb91146Salnsn 	memset(&ci, 0, sizeof(ci));
7370fb91146Salnsn 	ci.ci_disk = dkpath;
7380fb91146Salnsn 	ci.ci_alg = alg;
7390fb91146Salnsn 	ci.ci_ivmethod = ivmethod;
7400fb91146Salnsn 	ci.ci_keylen = 8 * keylen - 8; /* Exclude the NUL terminator. */
7410fb91146Salnsn 	ci.ci_key = key;
7420fb91146Salnsn 	ci.ci_blocksize = 64;
7430fb91146Salnsn 
7440fb91146Salnsn 	return rump_sys_ioctl(fd, CGDIOCSET, &ci);
7450fb91146Salnsn }
7460fb91146Salnsn 
7470fb91146Salnsn static int
unconfigure_cgd(int fd)7480fb91146Salnsn unconfigure_cgd(int fd)
7490fb91146Salnsn {
7500fb91146Salnsn 	struct cgd_ioctl ci;
7510fb91146Salnsn 
7520fb91146Salnsn 	return rump_sys_ioctl(fd, CGDIOCCLR, &ci);
7530fb91146Salnsn }
7540fb91146Salnsn 
7550fb91146Salnsn static int
write_testvec(int cgdfd,const struct testvec * tv)7560fb91146Salnsn write_testvec(int cgdfd, const struct testvec *tv)
7570fb91146Salnsn {
7580fb91146Salnsn 
7590fb91146Salnsn 	if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
7600fb91146Salnsn 		return -1;
7610fb91146Salnsn 
7620fb91146Salnsn 	if (rump_sys_write(cgdfd, tv->ptxt, SECSIZE) != SECSIZE)
7630fb91146Salnsn 		return -1;
7640fb91146Salnsn 
7650fb91146Salnsn 	return 0;
7660fb91146Salnsn }
7670fb91146Salnsn 
7680fb91146Salnsn static int
read_testvec(int cgdfd,const struct testvec * tv)7690fb91146Salnsn read_testvec(int cgdfd, const struct testvec *tv)
7700fb91146Salnsn {
7710fb91146Salnsn 	char *buf;
7720fb91146Salnsn 	int res = -1;
7730fb91146Salnsn 
7740fb91146Salnsn 	buf = malloc(SECSIZE);
7750fb91146Salnsn 	if (buf == NULL)
7760fb91146Salnsn 		return -1;
7770fb91146Salnsn 
7780fb91146Salnsn 	if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
7790fb91146Salnsn 		goto fail;
7800fb91146Salnsn 
7810fb91146Salnsn 	if (rump_sys_read(cgdfd, buf, SECSIZE) != SECSIZE)
7820fb91146Salnsn 		goto fail;
7830fb91146Salnsn 
7840fb91146Salnsn 	res = memcmp(buf, tv->ptxt, SECSIZE);
7850fb91146Salnsn fail:
7860fb91146Salnsn 	free(buf);
7870fb91146Salnsn 	return res;
7880fb91146Salnsn }
7890fb91146Salnsn 
7900fb91146Salnsn static int
check_testvec(int dkfd,const struct testvec * tv)7910fb91146Salnsn check_testvec(int dkfd, const struct testvec *tv)
7920fb91146Salnsn {
7930fb91146Salnsn 	char *buf;
7940fb91146Salnsn 	int res = -1;
7950fb91146Salnsn 
7960fb91146Salnsn 	buf = malloc(SECSIZE);
7970fb91146Salnsn 	if (buf == NULL)
7980fb91146Salnsn 		return -1;
7990fb91146Salnsn 
8000fb91146Salnsn 	if (lseek(dkfd, tv->blkno * SECSIZE, SEEK_SET) < 0)
8010fb91146Salnsn 		goto fail;
8020fb91146Salnsn 
8030fb91146Salnsn 	if (read(dkfd, buf, SECSIZE) != SECSIZE)
8040fb91146Salnsn 		goto fail;
8050fb91146Salnsn 
8060fb91146Salnsn 	res = memcmp(buf, tv->ctxt, SECSIZE);
8070fb91146Salnsn fail:
8080fb91146Salnsn 	free(buf);
8090fb91146Salnsn 	return res;
8100fb91146Salnsn }
8110fb91146Salnsn 
8120fb91146Salnsn ATF_TC(cgd_3des_cbc_192_encblkno1);
ATF_TC_HEAD(cgd_3des_cbc_192_encblkno1,tc)8130fb91146Salnsn ATF_TC_HEAD(cgd_3des_cbc_192_encblkno1, tc)
8140fb91146Salnsn {
8150fb91146Salnsn 	atf_tc_set_md_var(tc, "descr",
8160fb91146Salnsn 	    "Test 3des-cbc with 192 bits key, ivmethod encblkno1");
8170fb91146Salnsn }
8180fb91146Salnsn 
ATF_TC_BODY(cgd_3des_cbc_192_encblkno1,tc)8190fb91146Salnsn ATF_TC_BODY(cgd_3des_cbc_192_encblkno1, tc)
8200fb91146Salnsn {
8210fb91146Salnsn 	const char imgpath[] = "3des-cbc-192-encblkno1.img";
8220fb91146Salnsn 	const char *dkpath = "/dev/dk";
8230fb91146Salnsn 	const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */
8240fb91146Salnsn 	int dkfd, cgdfd;
8250fb91146Salnsn 
8260fb91146Salnsn 	rump_init();
8270fb91146Salnsn 
8280fb91146Salnsn 	RL(dkfd = open_disk(dkpath, imgpath, dksize));
8290fb91146Salnsn 
8300fb91146Salnsn 	RL(cgdfd = open_cgd(0));
8310fb91146Salnsn 	RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno1",
8320fb91146Salnsn 	    c3des_cbc_192_key, sizeof(c3des_cbc_192_key)));
8330fb91146Salnsn 
8340fb91146Salnsn 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[0]), 0);
8350fb91146Salnsn 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[1]), 0);
8360fb91146Salnsn 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[2]), 0);
8370fb91146Salnsn 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[3]), 0);
8380fb91146Salnsn 
8390fb91146Salnsn 	RL(unconfigure_cgd(cgdfd));
8400fb91146Salnsn 	RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno1",
8410fb91146Salnsn 	    c3des_cbc_192_key, sizeof(c3des_cbc_192_key)));
8420fb91146Salnsn 
8430fb91146Salnsn 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[0]), 0);
8440fb91146Salnsn 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[1]), 0);
8450fb91146Salnsn 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[2]), 0);
8460fb91146Salnsn 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[3]), 0);
8470fb91146Salnsn 
8480fb91146Salnsn 	RL(unconfigure_cgd(cgdfd));
8490fb91146Salnsn 	RL(rump_sys_close(cgdfd));
8500fb91146Salnsn 
8510fb91146Salnsn 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[0]), 0);
8520fb91146Salnsn 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[1]), 0);
8530fb91146Salnsn 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[2]), 0);
8540fb91146Salnsn 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[3]), 0);
8550fb91146Salnsn 
8560fb91146Salnsn 	RL(close(dkfd));
8570fb91146Salnsn }
8580fb91146Salnsn 
8590fb91146Salnsn ATF_TC(cgd_3des_cbc_192_encblkno8);
ATF_TC_HEAD(cgd_3des_cbc_192_encblkno8,tc)8600fb91146Salnsn ATF_TC_HEAD(cgd_3des_cbc_192_encblkno8, tc)
8610fb91146Salnsn {
8620fb91146Salnsn 	atf_tc_set_md_var(tc, "descr",
8630fb91146Salnsn 	    "Test 3des-cbc with 192 bits key, ivmethod encblkno8");
8640fb91146Salnsn }
8650fb91146Salnsn 
ATF_TC_BODY(cgd_3des_cbc_192_encblkno8,tc)8660fb91146Salnsn ATF_TC_BODY(cgd_3des_cbc_192_encblkno8, tc)
8670fb91146Salnsn {
8680fb91146Salnsn 	const char imgpath[] = "3des-cbc-192-encblkno8.img";
8690fb91146Salnsn 	const char *dkpath = "/dev/dk";
8700fb91146Salnsn 	const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */
8710fb91146Salnsn 	int dkfd, cgdfd;
8720fb91146Salnsn 
8730fb91146Salnsn 	rump_init();
8740fb91146Salnsn 
8750fb91146Salnsn 	RL(dkfd = open_disk(dkpath, imgpath, dksize));
8760fb91146Salnsn 
8770fb91146Salnsn 	RL(cgdfd = open_cgd(0));
8780fb91146Salnsn 	RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno8",
8790fb91146Salnsn 	    c3des_cbc_192_key, sizeof(c3des_cbc_192_key)));
8800fb91146Salnsn 
8810fb91146Salnsn 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[0]), 0);
8820fb91146Salnsn 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[1]), 0);
8830fb91146Salnsn 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[2]), 0);
8840fb91146Salnsn 	ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[3]), 0);
8850fb91146Salnsn 
8860fb91146Salnsn 	RL(unconfigure_cgd(cgdfd));
8870fb91146Salnsn 	RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno8",
8880fb91146Salnsn 	    c3des_cbc_192_key, sizeof(c3des_cbc_192_key)));
8890fb91146Salnsn 
8900fb91146Salnsn 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[0]), 0);
8910fb91146Salnsn 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[1]), 0);
8920fb91146Salnsn 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[2]), 0);
8930fb91146Salnsn 	ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[3]), 0);
8940fb91146Salnsn 
8950fb91146Salnsn 	RL(unconfigure_cgd(cgdfd));
8960fb91146Salnsn 	RL(rump_sys_close(cgdfd));
8970fb91146Salnsn 
8980fb91146Salnsn 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[0]), 0);
8990fb91146Salnsn 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[1]), 0);
9000fb91146Salnsn 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[2]), 0);
9010fb91146Salnsn 	ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[3]), 0);
9020fb91146Salnsn 
9030fb91146Salnsn 	RL(close(dkfd));
9040fb91146Salnsn }
9050fb91146Salnsn 
ATF_TP_ADD_TCS(tp)9060fb91146Salnsn ATF_TP_ADD_TCS(tp)
9070fb91146Salnsn {
9080fb91146Salnsn 
9090fb91146Salnsn 	ATF_TP_ADD_TC(tp, cgd_3des_cbc_192_encblkno1);
9100fb91146Salnsn 	ATF_TP_ADD_TC(tp, cgd_3des_cbc_192_encblkno8);
9110fb91146Salnsn 
9120fb91146Salnsn 	return atf_no_error();
9130fb91146Salnsn }
914