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