1 1.3 mlelstv /* $NetBSD: t_cgd_3des.c,v 1.3 2020/08/15 10:03:10 mlelstv Exp $ */ 2 1.1 alnsn /*- 3 1.1 alnsn * Copyright (c) 2016 The NetBSD Foundation, Inc. 4 1.1 alnsn * All rights reserved. 5 1.1 alnsn * 6 1.1 alnsn * This code is derived from software contributed to The NetBSD Foundation 7 1.1 alnsn * by Alexander Nasonov. 8 1.1 alnsn * 9 1.1 alnsn * Redistribution and use in source and binary forms, with or without 10 1.1 alnsn * modification, are permitted provided that the following conditions 11 1.1 alnsn * are met: 12 1.1 alnsn * 13 1.1 alnsn * 1. Redistributions of source code must retain the above copyright 14 1.1 alnsn * notice, this list of conditions and the following disclaimer. 15 1.1 alnsn * 2. Redistributions in binary form must reproduce the above copyright 16 1.1 alnsn * notice, this list of conditions and the following disclaimer in 17 1.1 alnsn * the documentation and/or other materials provided with the 18 1.1 alnsn * distribution. 19 1.1 alnsn * 20 1.1 alnsn * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 1.1 alnsn * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 1.1 alnsn * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23 1.1 alnsn * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 24 1.1 alnsn * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25 1.1 alnsn * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 26 1.1 alnsn * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 1.1 alnsn * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28 1.1 alnsn * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 1.1 alnsn * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 30 1.1 alnsn * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 1.1 alnsn * SUCH DAMAGE. 32 1.1 alnsn */ 33 1.1 alnsn 34 1.1 alnsn #include <sys/types.h> 35 1.1 alnsn #include <sys/ioctl.h> 36 1.1 alnsn #include <sys/sysctl.h> 37 1.1 alnsn 38 1.1 alnsn #include <atf-c.h> 39 1.1 alnsn #include <fcntl.h> 40 1.1 alnsn #include <stdio.h> 41 1.1 alnsn #include <stdlib.h> 42 1.1 alnsn #include <string.h> 43 1.1 alnsn #include <unistd.h> 44 1.1 alnsn #include <util.h> 45 1.1 alnsn 46 1.1 alnsn #include <dev/cgdvar.h> 47 1.1 alnsn 48 1.1 alnsn #include <rump/rump.h> 49 1.1 alnsn #include <rump/rump_syscalls.h> 50 1.1 alnsn 51 1.2 christos #include "h_macros.h" 52 1.1 alnsn 53 1.1 alnsn #define SECSIZE 512 54 1.1 alnsn 55 1.1 alnsn struct testvec { 56 1.1 alnsn unsigned int blkno; 57 1.1 alnsn const uint8_t *ptxt; /* PlainText */ 58 1.1 alnsn const uint8_t *ctxt; /* CipherText */ 59 1.1 alnsn }; 60 1.1 alnsn 61 1.1 alnsn /* 62 1.1 alnsn * 192 bits CBC key, NUL terminated. 63 1.1 alnsn */ 64 1.1 alnsn static const char c3des_cbc_192_key[25] = { 65 1.1 alnsn 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* ABCDEFGH */ 66 1.1 alnsn 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* IJKLMNOP */ 67 1.1 alnsn 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* QRSTUVWX */ 68 1.1 alnsn 0 69 1.1 alnsn }; 70 1.1 alnsn 71 1.3 mlelstv static const uint8_t c3des_cbc_ptxt[SECSIZE] __aligned(4) = 72 1.1 alnsn " abcdefghijklmnop" 73 1.1 alnsn " abcdefghijklmnop" 74 1.1 alnsn " abcdefghijklmnop" 75 1.1 alnsn " abcdefghijklmnop" 76 1.1 alnsn " abcdefghijklmnop" 77 1.1 alnsn " abcdefghijklmnop" 78 1.1 alnsn " abcdefghijklmnop" 79 1.1 alnsn " abcdefghijklmnop" 80 1.1 alnsn " abcdefghijklmnop" 81 1.1 alnsn " abcdefghijklmnop" 82 1.1 alnsn " abcdefghijklmnop" 83 1.1 alnsn " abcdefghijklmnop" 84 1.1 alnsn " abcdefghijklmnop" 85 1.1 alnsn " abcdefghijklmnop" 86 1.1 alnsn " abcdefghijklmnop" 87 1.1 alnsn " abcdefghijklmnop"; 88 1.1 alnsn 89 1.1 alnsn /* 90 1.1 alnsn * IV method encblkno1, blkno 0. 91 1.1 alnsn */ 92 1.1 alnsn static const uint8_t c3des_cbc_192_encblkno1_vec0_ctxt[SECSIZE] = { 93 1.1 alnsn 0x19, 0x92, 0xc8, 0xce, 0xdf, 0xa3, 0x14, 0xef, 94 1.1 alnsn 0xff, 0x88, 0x9f, 0x01, 0xfa, 0x6f, 0xfa, 0xa6, 95 1.1 alnsn 0xdd, 0x2b, 0x43, 0x67, 0xfa, 0xce, 0x37, 0x95, 96 1.1 alnsn 0x73, 0x4d, 0x18, 0x33, 0x0c, 0x29, 0xb6, 0xbb, 97 1.1 alnsn 0x37, 0x77, 0x31, 0x74, 0xf6, 0x62, 0x03, 0xd2, 98 1.1 alnsn 0x78, 0x13, 0x55, 0xf6, 0x58, 0x49, 0xaf, 0x2a, 99 1.1 alnsn 0x15, 0x4c, 0xc2, 0x4a, 0x55, 0x99, 0x82, 0xb9, 100 1.1 alnsn 0xfb, 0x8b, 0x4f, 0x92, 0xe3, 0xbc, 0x9b, 0x09, 101 1.1 alnsn 0x42, 0x7b, 0x5f, 0x54, 0xed, 0xf0, 0xcb, 0x5d, 102 1.1 alnsn 0x93, 0xba, 0x09, 0x4b, 0x20, 0xf3, 0xe6, 0x44, 103 1.1 alnsn 0x30, 0x5e, 0x9e, 0xfc, 0x7a, 0x3c, 0x7d, 0x11, 104 1.1 alnsn 0x63, 0xea, 0x40, 0x94, 0xaa, 0xd0, 0xa9, 0xf6, 105 1.1 alnsn 0xc7, 0x1e, 0x8f, 0xc8, 0xa6, 0x2c, 0xf7, 0xeb, 106 1.1 alnsn 0x51, 0x26, 0xdc, 0xf8, 0x73, 0xf9, 0xb4, 0xa8, 107 1.1 alnsn 0x80, 0x4a, 0xe5, 0x6f, 0xb6, 0x33, 0x13, 0x6b, 108 1.1 alnsn 0x1b, 0x7d, 0x00, 0xde, 0x44, 0x7e, 0x26, 0xa2, 109 1.1 alnsn 0x82, 0xa7, 0x80, 0x16, 0x34, 0xde, 0xb9, 0x82, 110 1.1 alnsn 0x4c, 0x42, 0x8e, 0x0d, 0x48, 0x7e, 0x38, 0xbd, 111 1.1 alnsn 0x1d, 0x7d, 0x98, 0xbb, 0x11, 0x8a, 0x72, 0x14, 112 1.1 alnsn 0x4e, 0xaa, 0xd0, 0xef, 0x4d, 0x7f, 0xa3, 0xa6, 113 1.1 alnsn 0xfc, 0x85, 0x9d, 0x74, 0x63, 0x9d, 0xe4, 0x5c, 114 1.1 alnsn 0xf7, 0xa8, 0xd0, 0xd7, 0x95, 0xb4, 0x28, 0x64, 115 1.1 alnsn 0x41, 0x2d, 0x5d, 0xd9, 0xba, 0x79, 0xa7, 0xb3, 116 1.1 alnsn 0x9c, 0x16, 0xfa, 0xb8, 0x10, 0x5d, 0x1d, 0xd4, 117 1.1 alnsn 0xce, 0xad, 0x67, 0x27, 0x91, 0x8a, 0xb3, 0xbc, 118 1.1 alnsn 0x37, 0x20, 0x95, 0xac, 0xf7, 0x0d, 0xe0, 0x1e, 119 1.1 alnsn 0x59, 0xa7, 0xe5, 0x81, 0x82, 0x6a, 0x71, 0x07, 120 1.1 alnsn 0x85, 0x43, 0x43, 0xdb, 0xbf, 0x56, 0xb0, 0x0a, 121 1.1 alnsn 0x4c, 0xf1, 0xcd, 0xcd, 0xa3, 0x9a, 0x10, 0x8e, 122 1.1 alnsn 0x0c, 0xe2, 0x6d, 0xf2, 0x16, 0xd0, 0x4c, 0xac, 123 1.1 alnsn 0xf9, 0xfc, 0xc9, 0x56, 0x1f, 0x31, 0x89, 0x1c, 124 1.1 alnsn 0xfa, 0xb7, 0x49, 0xea, 0x69, 0x91, 0xfe, 0x45, 125 1.1 alnsn 0x96, 0x5e, 0x45, 0xc3, 0x2c, 0xb1, 0x40, 0xd9, 126 1.1 alnsn 0x1f, 0x82, 0x3f, 0xc1, 0x45, 0x7c, 0x39, 0x72, 127 1.1 alnsn 0x6f, 0x52, 0xe4, 0xaf, 0x15, 0xa4, 0xe2, 0xd4, 128 1.1 alnsn 0xa1, 0xa4, 0xb2, 0xb5, 0x4a, 0x0b, 0xad, 0xe4, 129 1.1 alnsn 0x1e, 0x5c, 0x26, 0x62, 0x81, 0x78, 0x3e, 0xd3, 130 1.1 alnsn 0x6a, 0x98, 0x94, 0x2a, 0x00, 0xa7, 0xe4, 0x04, 131 1.1 alnsn 0x9d, 0x9a, 0xfc, 0xcf, 0xad, 0x2b, 0xba, 0x9b, 132 1.1 alnsn 0x40, 0x1e, 0x71, 0x3a, 0xb6, 0x92, 0xc4, 0xc5, 133 1.1 alnsn 0x56, 0x58, 0x92, 0x2a, 0x69, 0xbe, 0x0f, 0xb0, 134 1.1 alnsn 0x91, 0xae, 0xaa, 0x3f, 0x07, 0xe8, 0xf9, 0x71, 135 1.1 alnsn 0x20, 0x06, 0xed, 0xe0, 0x80, 0xec, 0xc9, 0xe7, 136 1.1 alnsn 0x54, 0xaa, 0xaa, 0xf4, 0x4c, 0xb2, 0x34, 0xf7, 137 1.1 alnsn 0x8a, 0x76, 0xc2, 0x4a, 0xae, 0x71, 0x7a, 0x07, 138 1.1 alnsn 0xd7, 0xec, 0x75, 0x2f, 0x8a, 0x99, 0x59, 0x13, 139 1.1 alnsn 0xd0, 0x8d, 0x18, 0x69, 0x0d, 0xd9, 0x39, 0x73, 140 1.1 alnsn 0x2b, 0xd0, 0xa3, 0xbc, 0x9e, 0x29, 0x4d, 0x88, 141 1.1 alnsn 0xff, 0x98, 0x02, 0xb4, 0xcf, 0xa1, 0xf9, 0x2a, 142 1.1 alnsn 0xa6, 0xef, 0x7c, 0x72, 0x26, 0x4e, 0xd7, 0xdf, 143 1.1 alnsn 0xec, 0x3a, 0xbc, 0x8e, 0xe6, 0xb3, 0x2b, 0x43, 144 1.1 alnsn 0xcd, 0x67, 0x8b, 0x72, 0x00, 0x6f, 0xe5, 0x85, 145 1.1 alnsn 0xe2, 0x2a, 0x4c, 0x8d, 0x02, 0x44, 0x6b, 0x7a, 146 1.1 alnsn 0x89, 0x7a, 0x18, 0x3b, 0xc8, 0x9c, 0x8d, 0x60, 147 1.1 alnsn 0xec, 0x79, 0x58, 0x15, 0x98, 0x71, 0x4b, 0x1a, 148 1.1 alnsn 0x34, 0x69, 0x96, 0xd0, 0x0f, 0x01, 0x27, 0x2e, 149 1.1 alnsn 0x19, 0x02, 0xf0, 0x17, 0x8c, 0x89, 0xbf, 0x05, 150 1.1 alnsn 0xf0, 0xfe, 0xc3, 0xe6, 0x90, 0x9d, 0xa2, 0xb1, 151 1.1 alnsn 0x40, 0x06, 0x7e, 0xcd, 0x20, 0x7e, 0x5f, 0x54, 152 1.1 alnsn 0x31, 0xfb, 0x79, 0x84, 0x47, 0x38, 0x71, 0x69, 153 1.1 alnsn 0xe1, 0xd5, 0x4e, 0x84, 0xa3, 0x2b, 0x4a, 0x86, 154 1.1 alnsn 0xc2, 0x21, 0x5b, 0x15, 0xc3, 0x63, 0xbb, 0xc5, 155 1.1 alnsn 0x5c, 0xc1, 0xfb, 0x31, 0x3a, 0x4d, 0xb1, 0x9e, 156 1.1 alnsn 0xe1, 0xd8, 0x67, 0x4b, 0x08, 0x42, 0xc4, 0xe8, 157 1.1 alnsn }; 158 1.1 alnsn 159 1.1 alnsn /* 160 1.1 alnsn * IV method encblkno1, blkno 1. 161 1.1 alnsn */ 162 1.1 alnsn static const uint8_t c3des_cbc_192_encblkno1_vec1_ctxt[SECSIZE] = { 163 1.1 alnsn 0x1d, 0x65, 0xdf, 0x01, 0x9b, 0x24, 0xa5, 0x10, 164 1.1 alnsn 0x94, 0x9a, 0x5b, 0x81, 0x96, 0x4e, 0xa3, 0x42, 165 1.1 alnsn 0x42, 0xd5, 0x05, 0x52, 0xab, 0x3c, 0x67, 0x40, 166 1.1 alnsn 0x79, 0xf9, 0x4b, 0x58, 0x39, 0xf6, 0xd0, 0x97, 167 1.1 alnsn 0x48, 0xf4, 0x77, 0xb8, 0xac, 0xe2, 0x10, 0x66, 168 1.1 alnsn 0xa8, 0x04, 0x0a, 0x1e, 0xa6, 0xbb, 0x4c, 0xd9, 169 1.1 alnsn 0x5d, 0x0c, 0x11, 0xb5, 0xe0, 0x26, 0x84, 0x50, 170 1.1 alnsn 0x10, 0x80, 0xbf, 0xd6, 0xdc, 0x82, 0x53, 0x0a, 171 1.1 alnsn 0xcf, 0xf6, 0xd3, 0x07, 0x45, 0xb0, 0x8e, 0x36, 172 1.1 alnsn 0x2e, 0x60, 0x0f, 0xd0, 0xc1, 0xb9, 0xd8, 0x29, 173 1.1 alnsn 0x6e, 0x13, 0x8e, 0xc1, 0xa8, 0x63, 0x20, 0xe0, 174 1.1 alnsn 0x8d, 0x47, 0x8b, 0xf9, 0xa0, 0x60, 0x55, 0x53, 175 1.1 alnsn 0x1d, 0xaf, 0x43, 0x46, 0xe5, 0x10, 0xd5, 0xcd, 176 1.1 alnsn 0x91, 0x9e, 0x11, 0x4a, 0x6f, 0x6a, 0x13, 0xdf, 177 1.1 alnsn 0xee, 0x7a, 0x88, 0xbe, 0x59, 0x96, 0xdb, 0x65, 178 1.1 alnsn 0x25, 0x57, 0x9e, 0x82, 0xad, 0xc2, 0xd6, 0x28, 179 1.1 alnsn 0x96, 0xb3, 0x7f, 0x57, 0x5d, 0xb2, 0xfa, 0x60, 180 1.1 alnsn 0x43, 0x22, 0xa5, 0x33, 0x14, 0x99, 0x8f, 0x68, 181 1.1 alnsn 0x5a, 0x7f, 0xaf, 0x9e, 0xe9, 0x23, 0x57, 0x9b, 182 1.1 alnsn 0x52, 0xe9, 0x20, 0x59, 0x26, 0x89, 0x9b, 0x59, 183 1.1 alnsn 0xb0, 0xee, 0xe8, 0x6d, 0x06, 0x8c, 0x01, 0xc2, 184 1.1 alnsn 0xea, 0xbc, 0x7d, 0x93, 0x3f, 0x79, 0x7f, 0xeb, 185 1.1 alnsn 0x57, 0xc9, 0x0a, 0xca, 0x37, 0x81, 0xa7, 0x82, 186 1.1 alnsn 0xde, 0x37, 0x7d, 0x69, 0x01, 0xaa, 0x19, 0x98, 187 1.1 alnsn 0x26, 0xfe, 0x06, 0x83, 0xeb, 0x9d, 0x26, 0xdc, 188 1.1 alnsn 0x04, 0x5d, 0xc9, 0x05, 0xee, 0x1a, 0xd3, 0xeb, 189 1.1 alnsn 0x20, 0x8c, 0xb7, 0x99, 0x75, 0xe0, 0x19, 0x98, 190 1.1 alnsn 0xca, 0x83, 0xae, 0x94, 0x28, 0xbf, 0x47, 0x42, 191 1.1 alnsn 0x92, 0x05, 0x8c, 0xaa, 0xeb, 0x99, 0x0f, 0xcc, 192 1.1 alnsn 0x33, 0x79, 0x24, 0x62, 0xa0, 0x7a, 0x65, 0xcb, 193 1.1 alnsn 0x53, 0xb7, 0x86, 0x0d, 0xcb, 0x44, 0x2d, 0xbf, 194 1.1 alnsn 0xe8, 0x5d, 0x62, 0xeb, 0x21, 0x4d, 0x35, 0x86, 195 1.1 alnsn 0x56, 0x6c, 0x51, 0xff, 0xa3, 0x45, 0xcc, 0x88, 196 1.1 alnsn 0x09, 0x43, 0x08, 0x97, 0x13, 0x7d, 0x00, 0xd8, 197 1.1 alnsn 0x82, 0x2d, 0xbe, 0xbe, 0x44, 0x0c, 0x2c, 0xa4, 198 1.1 alnsn 0x4f, 0x84, 0x07, 0x20, 0x9c, 0x3f, 0xf6, 0x5b, 199 1.1 alnsn 0x9e, 0xe8, 0x68, 0x40, 0xd3, 0x64, 0x8f, 0xb4, 200 1.1 alnsn 0x9e, 0xac, 0xc6, 0x41, 0x11, 0xda, 0xf2, 0x60, 201 1.1 alnsn 0xfa, 0x29, 0x9d, 0x26, 0x68, 0x5b, 0x79, 0x3a, 202 1.1 alnsn 0xd1, 0x66, 0x78, 0xca, 0x80, 0x87, 0xae, 0xab, 203 1.1 alnsn 0x7b, 0x29, 0x3c, 0xb0, 0xe6, 0xa2, 0x6b, 0x24, 204 1.1 alnsn 0x81, 0xeb, 0x51, 0xf9, 0xcb, 0x4a, 0x08, 0x37, 205 1.1 alnsn 0x2a, 0x75, 0xb5, 0xd3, 0xb3, 0x8f, 0x3d, 0x13, 206 1.1 alnsn 0x11, 0x0c, 0xa9, 0xf7, 0xf6, 0x57, 0x7e, 0xb7, 207 1.1 alnsn 0xa6, 0x22, 0xe8, 0x13, 0xfd, 0xf1, 0x6a, 0xe9, 208 1.1 alnsn 0xc1, 0x94, 0xa6, 0xf5, 0xa5, 0xec, 0xfa, 0x31, 209 1.1 alnsn 0xd2, 0x66, 0x8f, 0xe3, 0x6e, 0x9a, 0xaa, 0xb0, 210 1.1 alnsn 0xe3, 0x04, 0x09, 0x00, 0x1e, 0x67, 0x3c, 0xbe, 211 1.1 alnsn 0x2a, 0x8c, 0xd5, 0x1f, 0x4f, 0x55, 0x2c, 0x1d, 212 1.1 alnsn 0x26, 0x7f, 0xc9, 0x27, 0x00, 0x88, 0x7d, 0x45, 213 1.1 alnsn 0x4e, 0xe1, 0x36, 0xf6, 0xf5, 0xa8, 0xd4, 0xef, 214 1.1 alnsn 0x8b, 0x26, 0x76, 0x41, 0x28, 0x87, 0xf4, 0x51, 215 1.1 alnsn 0x14, 0x36, 0xad, 0x60, 0x8d, 0xe9, 0xe2, 0x9d, 216 1.1 alnsn 0x3c, 0xea, 0x09, 0x51, 0x3c, 0x81, 0xdf, 0x1a, 217 1.1 alnsn 0xc2, 0xc2, 0xf6, 0x45, 0xe1, 0x73, 0xac, 0xae, 218 1.1 alnsn 0x85, 0x74, 0x83, 0x8f, 0x56, 0x3c, 0x36, 0x1c, 219 1.1 alnsn 0xe0, 0x07, 0xc6, 0x6a, 0x48, 0xe4, 0x34, 0xe9, 220 1.1 alnsn 0x81, 0x53, 0xb7, 0x53, 0x95, 0xa7, 0x94, 0x21, 221 1.1 alnsn 0x7e, 0x32, 0x53, 0xda, 0x83, 0xd8, 0x57, 0x92, 222 1.1 alnsn 0xd1, 0x15, 0x45, 0x86, 0x40, 0xac, 0xf1, 0x6f, 223 1.1 alnsn 0x3c, 0x29, 0xef, 0x8d, 0x12, 0xe1, 0x9d, 0x04, 224 1.1 alnsn 0x17, 0x3a, 0xcc, 0xa6, 0xc5, 0xe4, 0x27, 0x41, 225 1.1 alnsn 0xcb, 0xfb, 0x5e, 0x77, 0x73, 0x5a, 0x2c, 0x03, 226 1.1 alnsn 0xe9, 0x2b, 0x76, 0x4e, 0x69, 0xea, 0xcb, 0xb3, 227 1.1 alnsn }; 228 1.1 alnsn 229 1.1 alnsn /* 230 1.1 alnsn * IV method encblkno1, blkno 2. 231 1.1 alnsn */ 232 1.1 alnsn static const uint8_t c3des_cbc_192_encblkno1_vec2_ctxt[SECSIZE] = { 233 1.1 alnsn 0x87, 0xb1, 0x3c, 0xd6, 0x60, 0xa0, 0x5a, 0x35, 234 1.1 alnsn 0xf7, 0xe1, 0x6b, 0x87, 0xa0, 0x90, 0x2f, 0xc7, 235 1.1 alnsn 0x8c, 0xed, 0x53, 0xda, 0x93, 0x32, 0x78, 0x5d, 236 1.1 alnsn 0x24, 0x23, 0x42, 0xdd, 0x93, 0x5b, 0x2e, 0x40, 237 1.1 alnsn 0xa1, 0xb1, 0x3b, 0xbb, 0xf0, 0x50, 0xb4, 0x61, 238 1.1 alnsn 0xea, 0x15, 0x37, 0xf3, 0x49, 0xe1, 0xa0, 0x32, 239 1.1 alnsn 0x88, 0x85, 0x81, 0xfd, 0xb7, 0x96, 0xd7, 0x9d, 240 1.1 alnsn 0xd7, 0x29, 0x4b, 0x14, 0xf9, 0x18, 0x6a, 0xf6, 241 1.1 alnsn 0x46, 0xae, 0x69, 0xdf, 0x63, 0x9a, 0xe0, 0x0b, 242 1.1 alnsn 0x2c, 0x53, 0xd7, 0x82, 0x6f, 0xe5, 0xa0, 0x95, 243 1.1 alnsn 0x2f, 0x61, 0x7f, 0x15, 0xff, 0xc7, 0xe8, 0x83, 244 1.1 alnsn 0xfc, 0xfc, 0x16, 0x1c, 0x37, 0x0f, 0x9b, 0xbb, 245 1.1 alnsn 0x14, 0xb2, 0xe2, 0xb7, 0x1f, 0x85, 0xb7, 0x07, 246 1.1 alnsn 0x8a, 0x18, 0xed, 0xf7, 0x5f, 0x27, 0xff, 0x2f, 247 1.1 alnsn 0x07, 0xf9, 0x9d, 0xe3, 0x79, 0x45, 0x1f, 0x51, 248 1.1 alnsn 0x08, 0x54, 0x0f, 0x56, 0x84, 0xee, 0x87, 0x9a, 249 1.1 alnsn 0xa9, 0x46, 0xb8, 0x77, 0x85, 0x40, 0x46, 0x50, 250 1.1 alnsn 0xc1, 0x58, 0x07, 0xfd, 0xfa, 0x2b, 0x20, 0xd6, 251 1.1 alnsn 0x4e, 0xba, 0x08, 0x02, 0x59, 0x3d, 0x23, 0x3b, 252 1.1 alnsn 0x5d, 0xf9, 0x5e, 0x2f, 0xac, 0x9e, 0xa0, 0xd7, 253 1.1 alnsn 0x3f, 0x9a, 0xdf, 0x50, 0x66, 0xcc, 0x28, 0xce, 254 1.1 alnsn 0x93, 0xc8, 0x11, 0x5c, 0x74, 0xe2, 0x4f, 0xfd, 255 1.1 alnsn 0xaf, 0x33, 0xbb, 0xce, 0x96, 0x1f, 0xb3, 0x46, 256 1.1 alnsn 0x6e, 0xcd, 0xe4, 0xef, 0xfa, 0x2f, 0x93, 0xb1, 257 1.1 alnsn 0xe5, 0x7c, 0x54, 0xbc, 0x17, 0x1f, 0xd5, 0x31, 258 1.1 alnsn 0x0e, 0x88, 0xe7, 0xcd, 0xb0, 0xb5, 0x2e, 0x1e, 259 1.1 alnsn 0x9e, 0x40, 0x36, 0xa5, 0xbb, 0xa7, 0x4e, 0xc8, 260 1.1 alnsn 0x11, 0x6c, 0xae, 0x1c, 0x2d, 0xdb, 0x55, 0xd8, 261 1.1 alnsn 0x14, 0x40, 0x02, 0xad, 0xaf, 0x19, 0x28, 0x59, 262 1.1 alnsn 0xd7, 0x4f, 0x81, 0xd0, 0xc1, 0x54, 0x63, 0x73, 263 1.1 alnsn 0x0e, 0xfb, 0x26, 0xf2, 0xa6, 0x80, 0xca, 0x2e, 264 1.1 alnsn 0xf3, 0xca, 0x1e, 0xa4, 0x62, 0x07, 0x22, 0x10, 265 1.1 alnsn 0x11, 0x6a, 0x57, 0x28, 0x45, 0x80, 0xdf, 0x34, 266 1.1 alnsn 0x88, 0xe5, 0xf1, 0x23, 0xe0, 0xb6, 0x44, 0x51, 267 1.1 alnsn 0x54, 0xd8, 0xb3, 0x66, 0xac, 0x46, 0x4d, 0xdf, 268 1.1 alnsn 0xa2, 0x8e, 0x72, 0x3a, 0x1c, 0x87, 0x2a, 0x43, 269 1.1 alnsn 0xfe, 0xdb, 0x00, 0xff, 0xb7, 0x1c, 0x13, 0xc3, 270 1.1 alnsn 0x18, 0xfc, 0x71, 0x13, 0xe3, 0xd1, 0x1f, 0xde, 271 1.1 alnsn 0x16, 0x63, 0x73, 0xf5, 0x0e, 0xf7, 0x18, 0xe5, 272 1.1 alnsn 0x48, 0x8d, 0x30, 0xd9, 0x26, 0x20, 0x6d, 0xa1, 273 1.1 alnsn 0xba, 0xde, 0xe8, 0x7d, 0x77, 0x02, 0x33, 0x0d, 274 1.1 alnsn 0x73, 0xb2, 0xab, 0x35, 0xfd, 0xa5, 0x6e, 0x4c, 275 1.1 alnsn 0x5c, 0x27, 0xc7, 0x7e, 0x4a, 0x28, 0xf8, 0xf5, 276 1.1 alnsn 0x00, 0xbe, 0x4c, 0xd7, 0x2c, 0x27, 0x83, 0x16, 277 1.1 alnsn 0x37, 0xda, 0x0c, 0xb1, 0xd7, 0x89, 0xd8, 0x8f, 278 1.1 alnsn 0x17, 0x69, 0x1b, 0x6b, 0x48, 0x2b, 0xce, 0x9c, 279 1.1 alnsn 0xbd, 0xf4, 0x0d, 0xb5, 0x4d, 0x12, 0x11, 0x36, 280 1.1 alnsn 0x49, 0xd3, 0x8b, 0x52, 0xce, 0x7e, 0x47, 0xb0, 281 1.1 alnsn 0xb5, 0x54, 0x77, 0xef, 0x90, 0xb8, 0x0e, 0xaf, 282 1.1 alnsn 0x6f, 0x97, 0x88, 0xde, 0x6b, 0x37, 0x24, 0xdd, 283 1.1 alnsn 0x91, 0x84, 0x00, 0x51, 0xab, 0x06, 0x96, 0x3c, 284 1.1 alnsn 0x82, 0x73, 0xcf, 0xae, 0x8d, 0x23, 0x86, 0x59, 285 1.1 alnsn 0x62, 0x5b, 0xeb, 0x2a, 0xaf, 0x40, 0x17, 0xed, 286 1.1 alnsn 0x2b, 0x60, 0x73, 0x7d, 0x99, 0x95, 0x3f, 0xd6, 287 1.1 alnsn 0x6c, 0xca, 0x1e, 0xf3, 0xb0, 0xcd, 0xd5, 0x1d, 288 1.1 alnsn 0x53, 0xe0, 0xd2, 0x8b, 0x57, 0x7b, 0xac, 0x67, 289 1.1 alnsn 0x5a, 0x5a, 0x0a, 0x64, 0x82, 0xab, 0x8f, 0x5a, 290 1.1 alnsn 0x36, 0xe2, 0x45, 0x50, 0xec, 0x3e, 0x14, 0x80, 291 1.1 alnsn 0x7c, 0xfd, 0x0c, 0xa9, 0x94, 0xfb, 0xfe, 0x72, 292 1.1 alnsn 0xec, 0x47, 0x71, 0x2e, 0x90, 0x97, 0xf6, 0x33, 293 1.1 alnsn 0xbd, 0x7d, 0x7e, 0x77, 0x8f, 0xad, 0xd4, 0x1d, 294 1.1 alnsn 0x1d, 0x53, 0x0f, 0x28, 0x39, 0x77, 0x06, 0x1a, 295 1.1 alnsn 0x75, 0xfc, 0x12, 0xe6, 0x45, 0xfc, 0x87, 0xe1, 296 1.1 alnsn 0x46, 0xac, 0xb0, 0x73, 0xca, 0x24, 0x7c, 0x71, 297 1.1 alnsn }; 298 1.1 alnsn 299 1.1 alnsn /* 300 1.1 alnsn * IV method encblkno1, blkno 3. 301 1.1 alnsn */ 302 1.1 alnsn static const uint8_t c3des_cbc_192_encblkno1_vec3_ctxt[SECSIZE] = { 303 1.1 alnsn 0xb1, 0xef, 0x7c, 0xd0, 0xa0, 0x6b, 0xe4, 0x88, 304 1.1 alnsn 0x5c, 0xd7, 0xf1, 0xbf, 0x5f, 0xce, 0xda, 0x19, 305 1.1 alnsn 0x81, 0x32, 0xbb, 0x96, 0x7e, 0xb9, 0x6e, 0xa1, 306 1.1 alnsn 0x43, 0xde, 0x53, 0x66, 0x9c, 0x27, 0x94, 0x85, 307 1.1 alnsn 0xcb, 0x09, 0x4e, 0x16, 0xd8, 0x60, 0x7a, 0x38, 308 1.1 alnsn 0x27, 0x21, 0x4d, 0x08, 0xaa, 0xe2, 0x1e, 0x6e, 309 1.1 alnsn 0xa3, 0xcb, 0x9a, 0x7f, 0xd1, 0xbf, 0x18, 0x36, 310 1.1 alnsn 0x5a, 0x4d, 0x7a, 0x7f, 0xcf, 0x3f, 0xba, 0xa5, 311 1.1 alnsn 0x77, 0x5b, 0xb4, 0x79, 0xdc, 0xbf, 0x2a, 0x28, 312 1.1 alnsn 0x16, 0x27, 0x0f, 0x8b, 0xd7, 0x95, 0xc3, 0xcb, 313 1.1 alnsn 0xa1, 0x6a, 0x49, 0x53, 0xa8, 0x0c, 0x70, 0xde, 314 1.1 alnsn 0x90, 0x2e, 0x36, 0x74, 0x40, 0x5d, 0x81, 0x74, 315 1.1 alnsn 0x03, 0x11, 0xbd, 0xba, 0x40, 0x8d, 0x03, 0x86, 316 1.1 alnsn 0x2b, 0x17, 0x55, 0x20, 0xd8, 0x81, 0x30, 0xd2, 317 1.1 alnsn 0x2a, 0xbd, 0xea, 0xff, 0x5c, 0x69, 0x9b, 0xe6, 318 1.1 alnsn 0xe3, 0x21, 0x9a, 0x10, 0x3e, 0xb0, 0xf4, 0x7a, 319 1.1 alnsn 0xfc, 0x6e, 0x66, 0xec, 0x44, 0x0b, 0x95, 0x8d, 320 1.1 alnsn 0x13, 0xd4, 0xf6, 0x3e, 0xa1, 0xa1, 0xac, 0xb1, 321 1.1 alnsn 0xd8, 0x3d, 0x86, 0xaf, 0x5e, 0xef, 0x14, 0x6a, 322 1.1 alnsn 0x32, 0xf3, 0x13, 0x75, 0x3b, 0x64, 0x9a, 0xf4, 323 1.1 alnsn 0xd0, 0xf5, 0x00, 0x36, 0x9e, 0xdb, 0xfd, 0xcb, 324 1.1 alnsn 0xda, 0x1f, 0xed, 0x9d, 0x6d, 0x52, 0xd7, 0xb5, 325 1.1 alnsn 0x48, 0xce, 0x53, 0x5e, 0xdc, 0xc8, 0xe4, 0x96, 326 1.1 alnsn 0x04, 0x32, 0xa5, 0xcf, 0x0c, 0xba, 0xa0, 0xd0, 327 1.1 alnsn 0x44, 0xb3, 0xe8, 0x72, 0xc6, 0xff, 0x8f, 0xd4, 328 1.1 alnsn 0x4d, 0x0a, 0x22, 0x89, 0x74, 0x50, 0xaa, 0x65, 329 1.1 alnsn 0x15, 0xab, 0x99, 0xc8, 0xf9, 0xa4, 0x10, 0xe6, 330 1.1 alnsn 0xa6, 0x4b, 0x0c, 0xc8, 0xb9, 0xa7, 0x60, 0x41, 331 1.1 alnsn 0xe7, 0x57, 0x31, 0xfa, 0x86, 0x55, 0xdf, 0x29, 332 1.1 alnsn 0x49, 0xac, 0x55, 0x7b, 0x21, 0xf9, 0x3b, 0x1e, 333 1.1 alnsn 0x1f, 0xb4, 0x1c, 0x0b, 0x77, 0xcb, 0x88, 0xbf, 334 1.1 alnsn 0xa6, 0x79, 0xbf, 0x9a, 0x51, 0xc4, 0x8e, 0x59, 335 1.1 alnsn 0x9c, 0xb3, 0x9d, 0x9d, 0x6b, 0xb2, 0x15, 0x41, 336 1.1 alnsn 0x0d, 0x6c, 0xf7, 0x5e, 0xe2, 0xf9, 0xb3, 0x80, 337 1.1 alnsn 0x8f, 0x03, 0x67, 0x68, 0x6e, 0x4b, 0x4d, 0x52, 338 1.1 alnsn 0xbc, 0x9b, 0xa2, 0xd8, 0x29, 0x1e, 0x5c, 0xd7, 339 1.1 alnsn 0x59, 0x67, 0x94, 0x40, 0x9e, 0x08, 0x15, 0x0d, 340 1.1 alnsn 0x7e, 0xc9, 0x14, 0x53, 0xa8, 0x67, 0xb3, 0xb8, 341 1.1 alnsn 0xaa, 0x21, 0x0f, 0x79, 0x69, 0x48, 0x52, 0xea, 342 1.1 alnsn 0x56, 0x03, 0x7b, 0x55, 0xb7, 0xf3, 0xfe, 0xb1, 343 1.1 alnsn 0x8a, 0x22, 0x7d, 0x75, 0x55, 0x31, 0xad, 0x20, 344 1.1 alnsn 0x6a, 0xc2, 0xa4, 0xd1, 0x1e, 0xab, 0xdd, 0x29, 345 1.1 alnsn 0xb5, 0xf8, 0xdd, 0x9b, 0x1a, 0xb8, 0xe7, 0xde, 346 1.1 alnsn 0xae, 0xa1, 0xab, 0xbb, 0xf6, 0x00, 0x87, 0xc4, 347 1.1 alnsn 0x29, 0xee, 0x2b, 0xa1, 0xa9, 0x1a, 0x46, 0x05, 348 1.1 alnsn 0x5a, 0x12, 0x3f, 0x32, 0x81, 0x25, 0x20, 0x71, 349 1.1 alnsn 0xb6, 0xfa, 0x1f, 0x27, 0x2a, 0x33, 0x49, 0xfc, 350 1.1 alnsn 0x95, 0x00, 0x72, 0x6b, 0x03, 0x53, 0x94, 0x57, 351 1.1 alnsn 0x2f, 0x47, 0x3d, 0x2d, 0x7c, 0xb4, 0xde, 0xa7, 352 1.1 alnsn 0x96, 0x81, 0x12, 0xff, 0x2c, 0xec, 0x5c, 0x03, 353 1.1 alnsn 0x2a, 0x8c, 0x76, 0xc4, 0xed, 0x09, 0xe6, 0x00, 354 1.1 alnsn 0x28, 0xdb, 0x9b, 0x44, 0xb0, 0xb4, 0x7b, 0x57, 355 1.1 alnsn 0x3b, 0xb6, 0x4f, 0x0b, 0xff, 0xf2, 0xf5, 0x02, 356 1.1 alnsn 0x56, 0xcf, 0xd5, 0xbf, 0x71, 0xe6, 0x66, 0xf3, 357 1.1 alnsn 0x08, 0x8e, 0x8b, 0x15, 0x57, 0x07, 0x41, 0xa3, 358 1.1 alnsn 0x91, 0xc1, 0xe4, 0x64, 0x92, 0x89, 0xed, 0x22, 359 1.1 alnsn 0x88, 0x8f, 0x17, 0x91, 0xde, 0xea, 0x0c, 0xa6, 360 1.1 alnsn 0x86, 0x8e, 0x4c, 0xd9, 0x63, 0xc9, 0xe5, 0xdc, 361 1.1 alnsn 0xd6, 0xd3, 0x7b, 0x2b, 0x65, 0xfa, 0x36, 0x47, 362 1.1 alnsn 0x20, 0xa4, 0xe7, 0x0b, 0x52, 0xfa, 0xa6, 0xeb, 363 1.1 alnsn 0x1d, 0x20, 0xd0, 0x4b, 0xfd, 0x88, 0x8c, 0xbb, 364 1.1 alnsn 0x52, 0x9c, 0x2f, 0xb7, 0xba, 0x8b, 0xdd, 0x10, 365 1.1 alnsn 0x2d, 0x7d, 0x77, 0x79, 0x40, 0xa7, 0xed, 0xf9, 366 1.1 alnsn 0xbd, 0x2a, 0x55, 0x1f, 0x87, 0x1e, 0x3c, 0xfc, 367 1.1 alnsn }; 368 1.1 alnsn 369 1.1 alnsn const struct testvec c3des_cbc_192_1_vectors[] = { 370 1.1 alnsn { 371 1.1 alnsn .blkno = 0, 372 1.1 alnsn .ptxt = c3des_cbc_ptxt, 373 1.1 alnsn .ctxt = c3des_cbc_192_encblkno1_vec0_ctxt, 374 1.1 alnsn }, 375 1.1 alnsn { 376 1.1 alnsn .blkno = 1, 377 1.1 alnsn .ptxt = c3des_cbc_ptxt, 378 1.1 alnsn .ctxt = c3des_cbc_192_encblkno1_vec1_ctxt, 379 1.1 alnsn }, 380 1.1 alnsn { 381 1.1 alnsn .blkno = 2, 382 1.1 alnsn .ptxt = c3des_cbc_ptxt, 383 1.1 alnsn .ctxt = c3des_cbc_192_encblkno1_vec2_ctxt, 384 1.1 alnsn }, 385 1.1 alnsn { 386 1.1 alnsn .blkno = 3, 387 1.1 alnsn .ptxt = c3des_cbc_ptxt, 388 1.1 alnsn .ctxt = c3des_cbc_192_encblkno1_vec3_ctxt, 389 1.1 alnsn }, 390 1.1 alnsn }; 391 1.1 alnsn 392 1.1 alnsn /* 393 1.1 alnsn * IV method encblkno8, blkno 0. 394 1.1 alnsn */ 395 1.1 alnsn static const uint8_t c3des_cbc_192_encblkno8_vec0_ctxt[SECSIZE] = { 396 1.1 alnsn 0x9e, 0x5d, 0x35, 0x56, 0xa7, 0xcc, 0xc0, 0x1c, 397 1.1 alnsn 0x60, 0x4c, 0x42, 0x90, 0x35, 0xf3, 0xc1, 0x20, 398 1.1 alnsn 0xf2, 0x07, 0x6f, 0xf8, 0x7c, 0x33, 0x6a, 0x74, 399 1.1 alnsn 0xdc, 0x85, 0xbc, 0x9c, 0xa2, 0x29, 0xc6, 0x69, 400 1.1 alnsn 0x0e, 0xef, 0x0f, 0xa9, 0x6e, 0xec, 0xf2, 0x23, 401 1.1 alnsn 0x2f, 0x9a, 0xbe, 0x1a, 0x89, 0x22, 0x00, 0xc4, 402 1.1 alnsn 0x5a, 0xaf, 0x4a, 0xa0, 0x4f, 0x30, 0x8f, 0x99, 403 1.1 alnsn 0xd2, 0x93, 0x6d, 0xfa, 0xcd, 0x2f, 0xad, 0x19, 404 1.1 alnsn 0x10, 0x14, 0x90, 0x3a, 0x4b, 0xab, 0x17, 0x2e, 405 1.1 alnsn 0x2c, 0xe1, 0x26, 0xe5, 0x76, 0xf1, 0xd1, 0x1d, 406 1.1 alnsn 0x4c, 0x77, 0x68, 0xfb, 0x45, 0x9a, 0x3e, 0x19, 407 1.1 alnsn 0xe0, 0xfb, 0xdc, 0xd4, 0x0e, 0x29, 0x7c, 0x06, 408 1.1 alnsn 0xd3, 0x45, 0xa8, 0xf7, 0x39, 0x91, 0xe6, 0x18, 409 1.1 alnsn 0x0f, 0x81, 0xe6, 0x7d, 0x6c, 0x65, 0x2e, 0x16, 410 1.1 alnsn 0x24, 0xa4, 0x16, 0x96, 0x0a, 0x7b, 0x5f, 0x3a, 411 1.1 alnsn 0x0c, 0xe9, 0x0e, 0x3f, 0x34, 0x38, 0xb0, 0xe1, 412 1.1 alnsn 0x39, 0x23, 0x5c, 0x3c, 0x00, 0xb4, 0xa0, 0xf7, 413 1.1 alnsn 0x42, 0x18, 0x70, 0x25, 0x82, 0x13, 0x24, 0x49, 414 1.1 alnsn 0xbb, 0x3f, 0xfb, 0xef, 0xb6, 0xc6, 0x7f, 0x3d, 415 1.1 alnsn 0x8c, 0x17, 0x62, 0x60, 0x6f, 0xd5, 0xda, 0x2c, 416 1.1 alnsn 0xf8, 0x85, 0xee, 0xa7, 0xc2, 0x76, 0x5d, 0x34, 417 1.1 alnsn 0x4c, 0xe1, 0x0d, 0x36, 0x6e, 0x02, 0xdd, 0x08, 418 1.1 alnsn 0x85, 0xe4, 0x90, 0xfe, 0x1f, 0x81, 0x4a, 0x06, 419 1.1 alnsn 0xa6, 0x72, 0x81, 0x79, 0x47, 0xd7, 0x6d, 0x92, 420 1.1 alnsn 0x8f, 0xb7, 0xb2, 0xfd, 0xd0, 0x60, 0x6c, 0x06, 421 1.1 alnsn 0x44, 0xcd, 0x20, 0x28, 0xef, 0x16, 0xc3, 0x01, 422 1.1 alnsn 0x19, 0x14, 0x34, 0x39, 0xad, 0x87, 0x9f, 0xde, 423 1.1 alnsn 0x76, 0xb9, 0xb9, 0x87, 0x1a, 0xbd, 0x8e, 0x2c, 424 1.1 alnsn 0xe6, 0xb3, 0xe7, 0xb6, 0x80, 0xf8, 0xc5, 0x22, 425 1.1 alnsn 0x5f, 0x53, 0xed, 0x03, 0xfe, 0x09, 0x2c, 0x9d, 426 1.1 alnsn 0xb6, 0x61, 0x4a, 0xbb, 0x07, 0x5d, 0xbd, 0x68, 427 1.1 alnsn 0x74, 0xab, 0x02, 0x81, 0x64, 0x7b, 0x97, 0xa3, 428 1.1 alnsn 0xad, 0x15, 0x99, 0x7a, 0x04, 0x33, 0xbd, 0x50, 429 1.1 alnsn 0x94, 0x11, 0xcc, 0xf7, 0x8b, 0x77, 0x88, 0x78, 430 1.1 alnsn 0x80, 0xfe, 0x5f, 0xa1, 0x63, 0xbc, 0xb0, 0x65, 431 1.1 alnsn 0xcb, 0x9d, 0x4c, 0xfe, 0x66, 0x4e, 0xff, 0xe3, 432 1.1 alnsn 0x43, 0x61, 0x99, 0x88, 0x88, 0x4c, 0xbc, 0x8a, 433 1.1 alnsn 0xf1, 0x69, 0x00, 0xc2, 0xe5, 0xb9, 0x65, 0x8b, 434 1.1 alnsn 0x10, 0xdf, 0x38, 0x3e, 0x9e, 0x9f, 0x87, 0xed, 435 1.1 alnsn 0x84, 0x71, 0xe7, 0xf2, 0xb5, 0xb6, 0x11, 0xed, 436 1.1 alnsn 0x1e, 0xd4, 0xc0, 0x6d, 0x77, 0x08, 0x4b, 0xfd, 437 1.1 alnsn 0x95, 0xd5, 0xc0, 0xbe, 0xa6, 0xcc, 0x3b, 0xea, 438 1.1 alnsn 0x11, 0x38, 0xa5, 0x59, 0x36, 0x2a, 0xf4, 0x98, 439 1.1 alnsn 0x52, 0x9d, 0x3b, 0x8c, 0x8a, 0x19, 0xbd, 0xfb, 440 1.1 alnsn 0x49, 0xcb, 0xb0, 0x57, 0x91, 0xc7, 0xf8, 0x2a, 441 1.1 alnsn 0x89, 0xa8, 0x85, 0x03, 0xdf, 0x6e, 0xad, 0xf4, 442 1.1 alnsn 0x8a, 0x88, 0x9a, 0x2b, 0x5d, 0xe8, 0xca, 0xa9, 443 1.1 alnsn 0x8f, 0x18, 0xa3, 0x6a, 0x37, 0x84, 0xa9, 0x24, 444 1.1 alnsn 0x5b, 0xce, 0xd6, 0xbe, 0x7e, 0x40, 0x86, 0x6a, 445 1.1 alnsn 0xc3, 0x47, 0x28, 0x66, 0xf0, 0x8c, 0x2d, 0x69, 446 1.1 alnsn 0x22, 0x64, 0x61, 0x36, 0x6a, 0x0c, 0xc4, 0x18, 447 1.1 alnsn 0x5f, 0xd7, 0xff, 0xbc, 0xf1, 0x94, 0x16, 0xfb, 448 1.1 alnsn 0x26, 0xa7, 0x80, 0xa4, 0x2d, 0x72, 0xc6, 0x9d, 449 1.1 alnsn 0xa7, 0xed, 0x04, 0x13, 0x0f, 0xe7, 0xf8, 0x93, 450 1.1 alnsn 0x57, 0x6b, 0xd5, 0xa4, 0xad, 0x9a, 0x97, 0xeb, 451 1.1 alnsn 0x97, 0xe7, 0x60, 0x01, 0x89, 0x3f, 0x88, 0xf2, 452 1.1 alnsn 0xee, 0xf3, 0x79, 0xd6, 0x5a, 0x03, 0x94, 0x07, 453 1.1 alnsn 0xd3, 0x33, 0xc8, 0xda, 0x15, 0x17, 0x0a, 0x8f, 454 1.1 alnsn 0xbd, 0x58, 0x1b, 0xfe, 0x3d, 0x77, 0x5d, 0x8f, 455 1.1 alnsn 0x4e, 0x0e, 0x98, 0x7d, 0x02, 0x63, 0x94, 0x73, 456 1.1 alnsn 0x4a, 0x58, 0x47, 0xed, 0x52, 0xfc, 0x85, 0x19, 457 1.1 alnsn 0x5d, 0x2f, 0xfa, 0x07, 0x44, 0xbd, 0x8e, 0xcb, 458 1.1 alnsn 0x20, 0x63, 0x9d, 0x2b, 0x61, 0x5c, 0x19, 0x71, 459 1.1 alnsn 0x80, 0xe5, 0x25, 0x5b, 0x2e, 0xc5, 0xfe, 0x1a, 460 1.1 alnsn }; 461 1.1 alnsn 462 1.1 alnsn /* 463 1.1 alnsn * IV method encblkno8, blkno 1. 464 1.1 alnsn */ 465 1.1 alnsn static const uint8_t c3des_cbc_192_encblkno8_vec1_ctxt[SECSIZE] = { 466 1.1 alnsn 0xf4, 0xb0, 0xb0, 0xcb, 0x79, 0xcc, 0x8c, 0x0a, 467 1.1 alnsn 0x3b, 0xc7, 0x43, 0x4e, 0x62, 0x9d, 0xde, 0xb4, 468 1.1 alnsn 0xab, 0xa5, 0x62, 0x63, 0x32, 0xa7, 0x18, 0x2b, 469 1.1 alnsn 0xe3, 0xee, 0x44, 0xc6, 0x6f, 0xb2, 0xdc, 0x21, 470 1.1 alnsn 0xc5, 0xc8, 0x9e, 0x32, 0x71, 0x4c, 0x7a, 0x82, 471 1.1 alnsn 0x8d, 0xe0, 0xad, 0x91, 0x88, 0x0c, 0x41, 0x83, 472 1.1 alnsn 0x28, 0x0d, 0xed, 0xa7, 0xeb, 0x48, 0xb1, 0x31, 473 1.1 alnsn 0xfa, 0x40, 0xd9, 0x44, 0x19, 0xee, 0x8d, 0x2c, 474 1.1 alnsn 0x7d, 0xe2, 0x39, 0xa0, 0x39, 0xaa, 0x86, 0xab, 475 1.1 alnsn 0xb5, 0x68, 0xe5, 0x83, 0x06, 0x61, 0xec, 0xe6, 476 1.1 alnsn 0xc2, 0x85, 0xb2, 0x46, 0xf4, 0x5b, 0x0e, 0x34, 477 1.1 alnsn 0x7e, 0x0c, 0xa0, 0xda, 0xef, 0x58, 0x9c, 0x39, 478 1.1 alnsn 0x95, 0xa2, 0xca, 0xd3, 0x3b, 0x4d, 0x76, 0xe3, 479 1.1 alnsn 0x34, 0x6d, 0x08, 0xa4, 0xba, 0x88, 0x58, 0x39, 480 1.1 alnsn 0xb4, 0xe4, 0x6b, 0xb6, 0x32, 0x50, 0x2c, 0xe2, 481 1.1 alnsn 0x0a, 0x37, 0xbc, 0x98, 0x38, 0x32, 0x17, 0x1b, 482 1.1 alnsn 0x12, 0xef, 0xdc, 0x9d, 0x91, 0x09, 0x8e, 0xd8, 483 1.1 alnsn 0xc3, 0xf8, 0x7b, 0x35, 0x41, 0x3b, 0xf8, 0xf5, 484 1.1 alnsn 0x37, 0x48, 0x04, 0xf7, 0x94, 0xbf, 0x54, 0x8d, 485 1.1 alnsn 0x79, 0x49, 0x8f, 0xf0, 0x3f, 0xb7, 0x90, 0x76, 486 1.1 alnsn 0x14, 0x09, 0xc6, 0x8c, 0xba, 0x1a, 0x30, 0x1b, 487 1.1 alnsn 0xbb, 0xd9, 0xe2, 0xb5, 0xe8, 0xd9, 0x9b, 0x68, 488 1.1 alnsn 0x60, 0x90, 0xd3, 0x4a, 0xe8, 0x65, 0x7b, 0xaa, 489 1.1 alnsn 0xb0, 0xda, 0x69, 0x1d, 0x45, 0x78, 0x2c, 0x3b, 490 1.1 alnsn 0x59, 0x29, 0x3c, 0x26, 0x9a, 0xd2, 0xa5, 0xfd, 491 1.1 alnsn 0xb7, 0x16, 0x59, 0x7c, 0x46, 0xea, 0x99, 0xd0, 492 1.1 alnsn 0x06, 0x01, 0x3f, 0xd2, 0x23, 0xcc, 0xde, 0xb8, 493 1.1 alnsn 0xaa, 0x88, 0x17, 0x03, 0xe1, 0x48, 0x2c, 0xdd, 494 1.1 alnsn 0xce, 0xd1, 0x2c, 0xce, 0x37, 0xee, 0xe6, 0xa6, 495 1.1 alnsn 0x47, 0x8c, 0x07, 0xe5, 0xfe, 0x01, 0xc6, 0x27, 496 1.1 alnsn 0xfe, 0x3f, 0x9d, 0x30, 0x18, 0x36, 0xe7, 0xa7, 497 1.1 alnsn 0x37, 0x1d, 0xcf, 0x6d, 0x4c, 0x82, 0xec, 0x58, 498 1.1 alnsn 0xa1, 0x6f, 0x56, 0xc6, 0x08, 0x25, 0x94, 0xda, 499 1.1 alnsn 0xae, 0x1a, 0x4f, 0xda, 0xb2, 0xf4, 0xbf, 0x94, 500 1.1 alnsn 0xff, 0x66, 0x6a, 0xb1, 0x1f, 0x42, 0xfe, 0x32, 501 1.1 alnsn 0xa4, 0x0e, 0x3d, 0x6a, 0x16, 0x44, 0xe0, 0xac, 502 1.1 alnsn 0xe8, 0xc1, 0xe2, 0xa8, 0x73, 0xab, 0xac, 0x58, 503 1.1 alnsn 0xb1, 0xbc, 0x94, 0xb2, 0x6a, 0xe4, 0x45, 0xf5, 504 1.1 alnsn 0x90, 0x6b, 0x82, 0xeb, 0x9e, 0x22, 0x9e, 0xb2, 505 1.1 alnsn 0x27, 0x3e, 0xc8, 0x55, 0xf4, 0x8f, 0xda, 0x04, 506 1.1 alnsn 0xa3, 0x9c, 0xa4, 0x79, 0xbd, 0x79, 0xd3, 0xbd, 507 1.1 alnsn 0xbe, 0x72, 0x7f, 0x90, 0xef, 0xc3, 0x34, 0x17, 508 1.1 alnsn 0x72, 0x6f, 0xb4, 0xfe, 0x62, 0x56, 0xc3, 0xd6, 509 1.1 alnsn 0x43, 0xc8, 0x4c, 0x76, 0x91, 0x04, 0x97, 0x4c, 510 1.1 alnsn 0x84, 0x98, 0x56, 0xb7, 0x7b, 0x4f, 0xd5, 0xcf, 511 1.1 alnsn 0x1b, 0x9c, 0x09, 0xe3, 0x1d, 0xdf, 0x0e, 0xfa, 512 1.1 alnsn 0x39, 0xc8, 0x48, 0x43, 0x84, 0xec, 0x79, 0xc8, 513 1.1 alnsn 0x7f, 0x4f, 0xa8, 0xc0, 0xb4, 0xde, 0x8b, 0x79, 514 1.1 alnsn 0xcb, 0x9c, 0x42, 0x81, 0x49, 0xdc, 0x39, 0xb5, 515 1.1 alnsn 0x31, 0xa6, 0x22, 0xba, 0x71, 0xb8, 0x2d, 0x1d, 516 1.1 alnsn 0xc8, 0x17, 0xd8, 0x9d, 0x26, 0x2b, 0xd5, 0xcf, 517 1.1 alnsn 0x57, 0x46, 0x0a, 0x61, 0x7e, 0xb7, 0xc3, 0x9c, 518 1.1 alnsn 0xa6, 0x44, 0x60, 0x2d, 0x30, 0xb8, 0x10, 0x47, 519 1.1 alnsn 0x7d, 0x7e, 0x87, 0x76, 0xc1, 0x4e, 0x85, 0x77, 520 1.1 alnsn 0xbc, 0x30, 0x32, 0x56, 0x0a, 0x5b, 0x1c, 0xd0, 521 1.1 alnsn 0xf6, 0x47, 0x48, 0x22, 0xf4, 0x6e, 0x38, 0xc5, 522 1.1 alnsn 0xab, 0xe2, 0xd0, 0x4d, 0x40, 0x27, 0xab, 0x8f, 523 1.1 alnsn 0x43, 0xb1, 0x60, 0x29, 0x07, 0xd0, 0xf5, 0x25, 524 1.1 alnsn 0xe5, 0xfa, 0xe7, 0x46, 0x32, 0x37, 0xb9, 0xae, 525 1.1 alnsn 0x2e, 0x02, 0x8c, 0x94, 0x15, 0x69, 0xd6, 0x74, 526 1.1 alnsn 0xb4, 0x36, 0xdd, 0x94, 0x70, 0xa7, 0x16, 0x7b, 527 1.1 alnsn 0x4c, 0xd3, 0x48, 0x83, 0xc5, 0xb2, 0xb0, 0x6a, 528 1.1 alnsn 0xfe, 0x7e, 0xd4, 0xe5, 0x6d, 0xa5, 0x96, 0x20, 529 1.1 alnsn 0x08, 0x59, 0xbd, 0x0c, 0x3d, 0x55, 0xa5, 0x03, 530 1.1 alnsn }; 531 1.1 alnsn 532 1.1 alnsn /* 533 1.1 alnsn * IV method encblkno8, blkno 2. 534 1.1 alnsn */ 535 1.1 alnsn static const uint8_t c3des_cbc_192_encblkno8_vec2_ctxt[SECSIZE] = { 536 1.1 alnsn 0xea, 0x7c, 0x8c, 0x8e, 0x3e, 0x61, 0x34, 0x3d, 537 1.1 alnsn 0xe0, 0x7f, 0xd3, 0xe1, 0x3a, 0xb9, 0xc8, 0xf2, 538 1.1 alnsn 0x98, 0xdc, 0x59, 0x26, 0xd2, 0xd8, 0xa7, 0x7f, 539 1.1 alnsn 0x41, 0x98, 0x24, 0xa8, 0x28, 0x0c, 0x88, 0x55, 540 1.1 alnsn 0x91, 0xdb, 0x29, 0x17, 0x70, 0xd7, 0x03, 0xff, 541 1.1 alnsn 0xbd, 0x0e, 0xbf, 0xf8, 0x73, 0x92, 0x19, 0xe9, 542 1.1 alnsn 0x92, 0x67, 0xdb, 0x08, 0x94, 0x77, 0x71, 0x2d, 543 1.1 alnsn 0x00, 0xad, 0x26, 0x42, 0x2d, 0xac, 0x8c, 0x67, 544 1.1 alnsn 0x6f, 0xb3, 0x8e, 0x36, 0x22, 0xeb, 0x1f, 0x8c, 545 1.1 alnsn 0xd4, 0x9b, 0x9f, 0xa6, 0xa9, 0xb1, 0x52, 0x65, 546 1.1 alnsn 0x9a, 0xfe, 0xcc, 0x92, 0x48, 0x75, 0xf6, 0xb8, 547 1.1 alnsn 0x59, 0xfe, 0x0e, 0x67, 0x93, 0xce, 0x3b, 0x7e, 548 1.1 alnsn 0x51, 0x74, 0xe5, 0x24, 0x35, 0x08, 0x68, 0x21, 549 1.1 alnsn 0x6a, 0x7f, 0xdd, 0x8c, 0xfd, 0xcd, 0x6d, 0x90, 550 1.1 alnsn 0xc5, 0x3b, 0x26, 0x9e, 0x00, 0xf4, 0x1e, 0x70, 551 1.1 alnsn 0xd3, 0xe7, 0xe8, 0x2f, 0x52, 0x87, 0x76, 0x84, 552 1.1 alnsn 0xbb, 0x5c, 0x76, 0x5a, 0xc8, 0xea, 0x74, 0xe2, 553 1.1 alnsn 0x9e, 0x85, 0xf6, 0x53, 0x85, 0x1a, 0x6e, 0x02, 554 1.1 alnsn 0x0d, 0x32, 0x11, 0xc4, 0xec, 0xee, 0x79, 0x27, 555 1.1 alnsn 0xda, 0xca, 0xc0, 0x0b, 0x8e, 0x2d, 0xb7, 0x7d, 556 1.1 alnsn 0x8c, 0x6e, 0xfb, 0xa3, 0xa8, 0x24, 0x24, 0x62, 557 1.1 alnsn 0xc8, 0xdd, 0xc7, 0x16, 0x09, 0x33, 0x0f, 0xe5, 558 1.1 alnsn 0xc8, 0x60, 0x3d, 0xb6, 0xbf, 0x6c, 0x28, 0xd2, 559 1.1 alnsn 0x0b, 0x9c, 0xd9, 0xcb, 0x64, 0x49, 0xe4, 0x80, 560 1.1 alnsn 0x72, 0x58, 0xaa, 0xaa, 0x7e, 0x1d, 0x9f, 0xd7, 561 1.1 alnsn 0x29, 0x15, 0x65, 0xfc, 0xfd, 0x3f, 0xe1, 0x82, 562 1.1 alnsn 0x25, 0x3c, 0xd4, 0xbe, 0x59, 0x79, 0x63, 0xd1, 563 1.1 alnsn 0xd6, 0x0e, 0xda, 0x00, 0xf3, 0xaa, 0x13, 0xd3, 564 1.1 alnsn 0xed, 0xef, 0xca, 0x8b, 0x97, 0x15, 0x2d, 0x10, 565 1.1 alnsn 0x6f, 0xcf, 0xee, 0xc7, 0x21, 0xad, 0xe3, 0xe4, 566 1.1 alnsn 0xd8, 0x95, 0x21, 0x1f, 0xc0, 0x06, 0x3a, 0xbc, 567 1.1 alnsn 0xbb, 0x2a, 0x92, 0x78, 0x76, 0x9d, 0x1e, 0x7b, 568 1.1 alnsn 0xb5, 0x29, 0xaf, 0x96, 0x75, 0x2b, 0x41, 0xbd, 569 1.1 alnsn 0xae, 0x79, 0x28, 0x72, 0xe7, 0x54, 0xc4, 0x08, 570 1.1 alnsn 0xd3, 0xd2, 0xac, 0x96, 0xd0, 0x0f, 0x9b, 0x68, 571 1.1 alnsn 0x7d, 0x3f, 0xc2, 0xdd, 0x3d, 0xfc, 0xca, 0xcd, 572 1.1 alnsn 0x11, 0x71, 0xd9, 0x48, 0x53, 0x9f, 0xd3, 0x79, 573 1.1 alnsn 0x7d, 0x47, 0x71, 0x2a, 0x6d, 0x9e, 0xa9, 0x47, 574 1.1 alnsn 0xa1, 0xf7, 0x97, 0x80, 0x83, 0x70, 0x6b, 0xfe, 575 1.1 alnsn 0x10, 0x11, 0x6a, 0x0e, 0xdd, 0xde, 0x22, 0x3c, 576 1.1 alnsn 0x19, 0x30, 0x73, 0x73, 0x2e, 0x4b, 0x54, 0x17, 577 1.1 alnsn 0xc3, 0x2e, 0xe9, 0xce, 0xe0, 0xe3, 0xa0, 0x1a, 578 1.1 alnsn 0x28, 0xd1, 0x50, 0xa8, 0xd2, 0x40, 0xe2, 0x1b, 579 1.1 alnsn 0xfa, 0x49, 0x06, 0x49, 0x8b, 0x4b, 0xd9, 0xd5, 580 1.1 alnsn 0xf5, 0x50, 0xae, 0x64, 0x19, 0xe1, 0xd9, 0x4e, 581 1.1 alnsn 0xbb, 0x29, 0x70, 0x66, 0x46, 0xa8, 0x7e, 0x5b, 582 1.1 alnsn 0xdc, 0xe2, 0xd5, 0x9d, 0x56, 0x6d, 0x4c, 0xe6, 583 1.1 alnsn 0x0e, 0x6b, 0x71, 0x40, 0x82, 0xf7, 0xb3, 0xad, 584 1.1 alnsn 0x23, 0x17, 0xe3, 0x1c, 0x61, 0x1d, 0x3b, 0x71, 585 1.1 alnsn 0xfc, 0x06, 0x17, 0xec, 0x6c, 0x77, 0x98, 0x27, 586 1.1 alnsn 0xc7, 0x4b, 0x65, 0x17, 0x81, 0xe7, 0xcb, 0xce, 587 1.1 alnsn 0x09, 0x76, 0x82, 0x82, 0x4a, 0x53, 0x67, 0xa0, 588 1.1 alnsn 0x05, 0x25, 0x4c, 0xc4, 0xa7, 0xad, 0xa7, 0xaf, 589 1.1 alnsn 0xa0, 0x11, 0xd7, 0x73, 0x3b, 0x30, 0xbf, 0x53, 590 1.1 alnsn 0x50, 0x9b, 0xd8, 0xf3, 0x32, 0x15, 0xdd, 0x36, 591 1.1 alnsn 0x88, 0xc2, 0x39, 0x51, 0xb6, 0xb8, 0x0d, 0x5c, 592 1.1 alnsn 0x20, 0x4e, 0x24, 0xee, 0x95, 0x32, 0x61, 0x25, 593 1.1 alnsn 0xda, 0x73, 0x0d, 0x8a, 0x58, 0xe6, 0xcc, 0xad, 594 1.1 alnsn 0x79, 0x3d, 0xef, 0x29, 0x0c, 0x9f, 0xe1, 0xa7, 595 1.1 alnsn 0x22, 0x1e, 0xea, 0x7a, 0x4f, 0xfb, 0xc1, 0x1f, 596 1.1 alnsn 0x17, 0xca, 0x69, 0xd6, 0xa4, 0xce, 0x6e, 0xc0, 597 1.1 alnsn 0x70, 0xa3, 0x08, 0x32, 0x87, 0xb4, 0x6b, 0x80, 598 1.1 alnsn 0x5c, 0x7f, 0x88, 0x5c, 0xbf, 0x07, 0xd8, 0xe9, 599 1.1 alnsn 0xdd, 0xd2, 0x76, 0xa9, 0xaa, 0xd9, 0x55, 0x48, 600 1.1 alnsn }; 601 1.1 alnsn 602 1.1 alnsn /* 603 1.1 alnsn * IV method encblkno8, blkno 3. 604 1.1 alnsn */ 605 1.1 alnsn static const uint8_t c3des_cbc_192_encblkno8_vec3_ctxt[SECSIZE] = { 606 1.1 alnsn 0xf3, 0x49, 0xda, 0x5c, 0xde, 0x9d, 0x3e, 0x9d, 607 1.1 alnsn 0xb9, 0xc2, 0x6e, 0x96, 0xa9, 0x93, 0x10, 0x73, 608 1.1 alnsn 0x0e, 0x26, 0x39, 0xd6, 0x9f, 0x04, 0x5f, 0x69, 609 1.1 alnsn 0x54, 0xa3, 0x7c, 0x46, 0x7b, 0x18, 0x93, 0xc0, 610 1.1 alnsn 0xbb, 0x0c, 0x96, 0x6f, 0xb0, 0xbf, 0xce, 0x67, 611 1.1 alnsn 0x33, 0x3e, 0x56, 0xe8, 0x6b, 0x4d, 0x3f, 0xc8, 612 1.1 alnsn 0x3c, 0xc6, 0x89, 0x2c, 0x0b, 0x95, 0x3a, 0xaf, 613 1.1 alnsn 0xc0, 0xf3, 0x1f, 0x0e, 0x07, 0x01, 0xa6, 0x35, 614 1.1 alnsn 0x19, 0x79, 0x91, 0x24, 0xaa, 0x0d, 0xf0, 0x53, 615 1.1 alnsn 0x27, 0x7d, 0xbb, 0xa6, 0xb6, 0x44, 0x31, 0x4b, 616 1.1 alnsn 0xd4, 0xcf, 0xf6, 0x6d, 0x18, 0xa2, 0x28, 0x8a, 617 1.1 alnsn 0xc1, 0x0a, 0xbe, 0x57, 0x0c, 0x61, 0x5f, 0xd9, 618 1.1 alnsn 0x12, 0x14, 0xfe, 0xe2, 0xc7, 0x10, 0x72, 0xee, 619 1.1 alnsn 0x19, 0xb8, 0x16, 0x0b, 0x88, 0x87, 0xce, 0xf3, 620 1.1 alnsn 0xfe, 0x57, 0x37, 0xd1, 0xa2, 0xf7, 0xd0, 0x5e, 621 1.1 alnsn 0x73, 0xde, 0x39, 0x35, 0xbc, 0xde, 0xed, 0x61, 622 1.1 alnsn 0x4b, 0x31, 0xdc, 0xfe, 0x3c, 0x4d, 0x98, 0xa9, 623 1.1 alnsn 0x36, 0xb0, 0x34, 0x5b, 0xb4, 0xb7, 0x79, 0x25, 624 1.1 alnsn 0x6e, 0x24, 0x7e, 0x10, 0xfe, 0x20, 0xd5, 0x16, 625 1.1 alnsn 0x86, 0xaf, 0xcd, 0x26, 0x34, 0xd3, 0x2e, 0xdc, 626 1.1 alnsn 0x7c, 0x69, 0xe3, 0xc5, 0x62, 0x0c, 0xba, 0x29, 627 1.1 alnsn 0x9c, 0x4b, 0x2f, 0x39, 0x45, 0xe1, 0xcf, 0xc5, 628 1.1 alnsn 0xfe, 0x35, 0xb6, 0x2f, 0xb1, 0x1a, 0x90, 0xe1, 629 1.1 alnsn 0xa7, 0x39, 0xe8, 0x1e, 0x5f, 0xac, 0xab, 0x1e, 630 1.1 alnsn 0x32, 0xba, 0xc5, 0x92, 0x39, 0x62, 0x37, 0x2c, 631 1.1 alnsn 0x49, 0xf1, 0x62, 0x90, 0xf7, 0x1e, 0x10, 0xce, 632 1.1 alnsn 0x8e, 0x95, 0xa3, 0xc6, 0xd8, 0xe5, 0xc8, 0xdf, 633 1.1 alnsn 0xcc, 0x94, 0x7d, 0x26, 0xab, 0x29, 0xbb, 0x9d, 634 1.1 alnsn 0xf3, 0x73, 0xce, 0xac, 0x76, 0xdf, 0x75, 0x2a, 635 1.1 alnsn 0x3e, 0x8f, 0x47, 0xff, 0x76, 0xfe, 0xea, 0xd4, 636 1.1 alnsn 0x4a, 0xa9, 0x36, 0x9d, 0x12, 0x45, 0xb7, 0x99, 637 1.1 alnsn 0x81, 0xb6, 0x77, 0x98, 0x13, 0xfb, 0x5a, 0xe5, 638 1.1 alnsn 0x40, 0x87, 0x61, 0x0d, 0x10, 0x76, 0xf6, 0x3e, 639 1.1 alnsn 0x48, 0xac, 0xc4, 0x27, 0x87, 0xcd, 0x07, 0xde, 640 1.1 alnsn 0x0b, 0x23, 0x97, 0x61, 0x3d, 0x18, 0x64, 0x7f, 641 1.1 alnsn 0xbf, 0xd6, 0x87, 0xc1, 0x11, 0xfb, 0xf9, 0xda, 642 1.1 alnsn 0x14, 0xa1, 0x01, 0xf8, 0x7e, 0xea, 0x5b, 0x5b, 643 1.1 alnsn 0xdd, 0x09, 0xf9, 0x31, 0x80, 0x3c, 0xee, 0x34, 644 1.1 alnsn 0x2d, 0xda, 0x71, 0xd9, 0x32, 0x7d, 0x45, 0xb2, 645 1.1 alnsn 0x53, 0xea, 0xd5, 0x7c, 0x85, 0x45, 0xce, 0x1d, 646 1.1 alnsn 0x2b, 0xe9, 0xd7, 0x95, 0xf8, 0x8c, 0x08, 0xe4, 647 1.1 alnsn 0xd0, 0x2f, 0x60, 0x75, 0x02, 0xf3, 0xde, 0xeb, 648 1.1 alnsn 0x46, 0x40, 0xa8, 0xd2, 0x37, 0xd6, 0xca, 0x5d, 649 1.1 alnsn 0xb9, 0xf4, 0x51, 0x31, 0x8a, 0x1a, 0x82, 0xbd, 650 1.1 alnsn 0x6f, 0x6d, 0x88, 0x2b, 0x63, 0x0f, 0xe1, 0xf0, 651 1.1 alnsn 0xcf, 0x13, 0x79, 0x1d, 0x78, 0x82, 0x66, 0xa1, 652 1.1 alnsn 0xef, 0xdb, 0x34, 0x50, 0xd2, 0x71, 0x47, 0x49, 653 1.1 alnsn 0x41, 0x74, 0xd9, 0x0b, 0x14, 0x38, 0x1f, 0xc3, 654 1.1 alnsn 0x09, 0x4d, 0xb3, 0xa6, 0x03, 0x3f, 0x56, 0x67, 655 1.1 alnsn 0xd7, 0x51, 0x4c, 0x8a, 0x1d, 0x37, 0x99, 0xfb, 656 1.1 alnsn 0xe1, 0x84, 0x57, 0x55, 0x9b, 0xf8, 0x73, 0x63, 657 1.1 alnsn 0x68, 0x73, 0x89, 0x52, 0x06, 0xe7, 0x34, 0xe7, 658 1.1 alnsn 0x1a, 0x15, 0x7e, 0xd9, 0x84, 0xa3, 0x0e, 0x68, 659 1.1 alnsn 0x14, 0x1c, 0xe8, 0x23, 0x9e, 0xe3, 0x8f, 0x71, 660 1.1 alnsn 0x02, 0x9b, 0x87, 0xd4, 0xd9, 0x1b, 0xd1, 0x9e, 661 1.1 alnsn 0x9e, 0xa0, 0x7e, 0x49, 0x8e, 0xaa, 0x89, 0xb5, 662 1.1 alnsn 0x16, 0x48, 0x07, 0xb3, 0x3d, 0x9e, 0x4c, 0x35, 663 1.1 alnsn 0x3e, 0x94, 0xa9, 0xf8, 0x82, 0x50, 0x6a, 0x41, 664 1.1 alnsn 0x28, 0x3e, 0x9f, 0x9a, 0x1a, 0x5d, 0x02, 0x7c, 665 1.1 alnsn 0xd0, 0x32, 0x52, 0xa5, 0xee, 0x09, 0x27, 0x2d, 666 1.1 alnsn 0x49, 0x17, 0xf7, 0x92, 0xa1, 0x63, 0x9d, 0x2a, 667 1.1 alnsn 0xfd, 0x53, 0x26, 0x14, 0x7c, 0x92, 0x72, 0xa6, 668 1.1 alnsn 0x38, 0x18, 0x8f, 0xb5, 0x54, 0xb3, 0x69, 0x63, 669 1.1 alnsn 0x6a, 0xdc, 0xb1, 0x5a, 0x12, 0x7a, 0x0b, 0xa3, 670 1.1 alnsn }; 671 1.1 alnsn 672 1.1 alnsn const struct testvec c3des_cbc_192_8_vectors[] = { 673 1.1 alnsn { 674 1.1 alnsn .blkno = 0, 675 1.1 alnsn .ptxt = c3des_cbc_ptxt, 676 1.1 alnsn .ctxt = c3des_cbc_192_encblkno8_vec0_ctxt, 677 1.1 alnsn }, 678 1.1 alnsn { 679 1.1 alnsn .blkno = 1, 680 1.1 alnsn .ptxt = c3des_cbc_ptxt, 681 1.1 alnsn .ctxt = c3des_cbc_192_encblkno8_vec1_ctxt, 682 1.1 alnsn }, 683 1.1 alnsn { 684 1.1 alnsn .blkno = 2, 685 1.1 alnsn .ptxt = c3des_cbc_ptxt, 686 1.1 alnsn .ctxt = c3des_cbc_192_encblkno8_vec2_ctxt, 687 1.1 alnsn }, 688 1.1 alnsn { 689 1.1 alnsn .blkno = 3, 690 1.1 alnsn .ptxt = c3des_cbc_ptxt, 691 1.1 alnsn .ctxt = c3des_cbc_192_encblkno8_vec3_ctxt, 692 1.1 alnsn }, 693 1.1 alnsn }; 694 1.1 alnsn 695 1.1 alnsn static int 696 1.1 alnsn open_disk(const char *devpath, const char *imgpath, size_t size) 697 1.1 alnsn { 698 1.1 alnsn int fd; 699 1.1 alnsn 700 1.1 alnsn fd = open(imgpath, O_CREAT | O_RDWR | O_TRUNC, 0600); 701 1.1 alnsn if (fd < 0) 702 1.1 alnsn return -1; 703 1.1 alnsn 704 1.1 alnsn if (ftruncate(fd, size) < 0) 705 1.1 alnsn goto fail; 706 1.1 alnsn 707 1.1 alnsn if (rump_pub_etfs_register_withsize(devpath, 708 1.1 alnsn imgpath, RUMP_ETFS_BLK, 0, size) < 0) { 709 1.1 alnsn goto fail; 710 1.1 alnsn } 711 1.1 alnsn 712 1.1 alnsn unlink(imgpath); 713 1.1 alnsn return fd; 714 1.1 alnsn fail: 715 1.1 alnsn close(fd); 716 1.1 alnsn unlink(imgpath); 717 1.1 alnsn return -1; 718 1.1 alnsn } 719 1.1 alnsn 720 1.1 alnsn static int 721 1.1 alnsn open_cgd(int devno) 722 1.1 alnsn { 723 1.1 alnsn char devpath[32]; 724 1.1 alnsn 725 1.1 alnsn sprintf(devpath, "/dev/rcgd%d%c", devno, getrawpartition() + 'a'); 726 1.1 alnsn 727 1.1 alnsn return rump_sys_open(devpath, O_RDWR, 0); 728 1.1 alnsn } 729 1.1 alnsn 730 1.1 alnsn static int 731 1.1 alnsn configure_cgd(int fd, const char *dkpath, const char *alg, 732 1.1 alnsn const char *ivmethod, const char *key, size_t keylen) 733 1.1 alnsn { 734 1.1 alnsn struct cgd_ioctl ci; 735 1.1 alnsn 736 1.1 alnsn memset(&ci, 0, sizeof(ci)); 737 1.1 alnsn ci.ci_disk = dkpath; 738 1.1 alnsn ci.ci_alg = alg; 739 1.1 alnsn ci.ci_ivmethod = ivmethod; 740 1.1 alnsn ci.ci_keylen = 8 * keylen - 8; /* Exclude the NUL terminator. */ 741 1.1 alnsn ci.ci_key = key; 742 1.1 alnsn ci.ci_blocksize = 64; 743 1.1 alnsn 744 1.1 alnsn return rump_sys_ioctl(fd, CGDIOCSET, &ci); 745 1.1 alnsn } 746 1.1 alnsn 747 1.1 alnsn static int 748 1.1 alnsn unconfigure_cgd(int fd) 749 1.1 alnsn { 750 1.1 alnsn struct cgd_ioctl ci; 751 1.1 alnsn 752 1.1 alnsn return rump_sys_ioctl(fd, CGDIOCCLR, &ci); 753 1.1 alnsn } 754 1.1 alnsn 755 1.1 alnsn static int 756 1.1 alnsn write_testvec(int cgdfd, const struct testvec *tv) 757 1.1 alnsn { 758 1.1 alnsn 759 1.1 alnsn if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0) 760 1.1 alnsn return -1; 761 1.1 alnsn 762 1.1 alnsn if (rump_sys_write(cgdfd, tv->ptxt, SECSIZE) != SECSIZE) 763 1.1 alnsn return -1; 764 1.1 alnsn 765 1.1 alnsn return 0; 766 1.1 alnsn } 767 1.1 alnsn 768 1.1 alnsn static int 769 1.1 alnsn read_testvec(int cgdfd, const struct testvec *tv) 770 1.1 alnsn { 771 1.1 alnsn char *buf; 772 1.1 alnsn int res = -1; 773 1.1 alnsn 774 1.1 alnsn buf = malloc(SECSIZE); 775 1.1 alnsn if (buf == NULL) 776 1.1 alnsn return -1; 777 1.1 alnsn 778 1.1 alnsn if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0) 779 1.1 alnsn goto fail; 780 1.1 alnsn 781 1.1 alnsn if (rump_sys_read(cgdfd, buf, SECSIZE) != SECSIZE) 782 1.1 alnsn goto fail; 783 1.1 alnsn 784 1.1 alnsn res = memcmp(buf, tv->ptxt, SECSIZE); 785 1.1 alnsn fail: 786 1.1 alnsn free(buf); 787 1.1 alnsn return res; 788 1.1 alnsn } 789 1.1 alnsn 790 1.1 alnsn static int 791 1.1 alnsn check_testvec(int dkfd, const struct testvec *tv) 792 1.1 alnsn { 793 1.1 alnsn char *buf; 794 1.1 alnsn int res = -1; 795 1.1 alnsn 796 1.1 alnsn buf = malloc(SECSIZE); 797 1.1 alnsn if (buf == NULL) 798 1.1 alnsn return -1; 799 1.1 alnsn 800 1.1 alnsn if (lseek(dkfd, tv->blkno * SECSIZE, SEEK_SET) < 0) 801 1.1 alnsn goto fail; 802 1.1 alnsn 803 1.1 alnsn if (read(dkfd, buf, SECSIZE) != SECSIZE) 804 1.1 alnsn goto fail; 805 1.1 alnsn 806 1.1 alnsn res = memcmp(buf, tv->ctxt, SECSIZE); 807 1.1 alnsn fail: 808 1.1 alnsn free(buf); 809 1.1 alnsn return res; 810 1.1 alnsn } 811 1.1 alnsn 812 1.1 alnsn ATF_TC(cgd_3des_cbc_192_encblkno1); 813 1.1 alnsn ATF_TC_HEAD(cgd_3des_cbc_192_encblkno1, tc) 814 1.1 alnsn { 815 1.1 alnsn atf_tc_set_md_var(tc, "descr", 816 1.1 alnsn "Test 3des-cbc with 192 bits key, ivmethod encblkno1"); 817 1.1 alnsn } 818 1.1 alnsn 819 1.1 alnsn ATF_TC_BODY(cgd_3des_cbc_192_encblkno1, tc) 820 1.1 alnsn { 821 1.1 alnsn const char imgpath[] = "3des-cbc-192-encblkno1.img"; 822 1.1 alnsn const char *dkpath = "/dev/dk"; 823 1.1 alnsn const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */ 824 1.1 alnsn int dkfd, cgdfd; 825 1.1 alnsn 826 1.1 alnsn rump_init(); 827 1.1 alnsn 828 1.1 alnsn RL(dkfd = open_disk(dkpath, imgpath, dksize)); 829 1.1 alnsn 830 1.1 alnsn RL(cgdfd = open_cgd(0)); 831 1.1 alnsn RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno1", 832 1.1 alnsn c3des_cbc_192_key, sizeof(c3des_cbc_192_key))); 833 1.1 alnsn 834 1.1 alnsn ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[0]), 0); 835 1.1 alnsn ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[1]), 0); 836 1.1 alnsn ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[2]), 0); 837 1.1 alnsn ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[3]), 0); 838 1.1 alnsn 839 1.1 alnsn RL(unconfigure_cgd(cgdfd)); 840 1.1 alnsn RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno1", 841 1.1 alnsn c3des_cbc_192_key, sizeof(c3des_cbc_192_key))); 842 1.1 alnsn 843 1.1 alnsn ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[0]), 0); 844 1.1 alnsn ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[1]), 0); 845 1.1 alnsn ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[2]), 0); 846 1.1 alnsn ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[3]), 0); 847 1.1 alnsn 848 1.1 alnsn RL(unconfigure_cgd(cgdfd)); 849 1.1 alnsn RL(rump_sys_close(cgdfd)); 850 1.1 alnsn 851 1.1 alnsn ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[0]), 0); 852 1.1 alnsn ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[1]), 0); 853 1.1 alnsn ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[2]), 0); 854 1.1 alnsn ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[3]), 0); 855 1.1 alnsn 856 1.1 alnsn RL(close(dkfd)); 857 1.1 alnsn } 858 1.1 alnsn 859 1.1 alnsn ATF_TC(cgd_3des_cbc_192_encblkno8); 860 1.1 alnsn ATF_TC_HEAD(cgd_3des_cbc_192_encblkno8, tc) 861 1.1 alnsn { 862 1.1 alnsn atf_tc_set_md_var(tc, "descr", 863 1.1 alnsn "Test 3des-cbc with 192 bits key, ivmethod encblkno8"); 864 1.1 alnsn } 865 1.1 alnsn 866 1.1 alnsn ATF_TC_BODY(cgd_3des_cbc_192_encblkno8, tc) 867 1.1 alnsn { 868 1.1 alnsn const char imgpath[] = "3des-cbc-192-encblkno8.img"; 869 1.1 alnsn const char *dkpath = "/dev/dk"; 870 1.1 alnsn const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */ 871 1.1 alnsn int dkfd, cgdfd; 872 1.1 alnsn 873 1.1 alnsn rump_init(); 874 1.1 alnsn 875 1.1 alnsn RL(dkfd = open_disk(dkpath, imgpath, dksize)); 876 1.1 alnsn 877 1.1 alnsn RL(cgdfd = open_cgd(0)); 878 1.1 alnsn RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno8", 879 1.1 alnsn c3des_cbc_192_key, sizeof(c3des_cbc_192_key))); 880 1.1 alnsn 881 1.1 alnsn ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[0]), 0); 882 1.1 alnsn ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[1]), 0); 883 1.1 alnsn ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[2]), 0); 884 1.1 alnsn ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[3]), 0); 885 1.1 alnsn 886 1.1 alnsn RL(unconfigure_cgd(cgdfd)); 887 1.1 alnsn RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno8", 888 1.1 alnsn c3des_cbc_192_key, sizeof(c3des_cbc_192_key))); 889 1.1 alnsn 890 1.1 alnsn ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[0]), 0); 891 1.1 alnsn ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[1]), 0); 892 1.1 alnsn ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[2]), 0); 893 1.1 alnsn ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[3]), 0); 894 1.1 alnsn 895 1.1 alnsn RL(unconfigure_cgd(cgdfd)); 896 1.1 alnsn RL(rump_sys_close(cgdfd)); 897 1.1 alnsn 898 1.1 alnsn ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[0]), 0); 899 1.1 alnsn ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[1]), 0); 900 1.1 alnsn ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[2]), 0); 901 1.1 alnsn ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[3]), 0); 902 1.1 alnsn 903 1.1 alnsn RL(close(dkfd)); 904 1.1 alnsn } 905 1.1 alnsn 906 1.1 alnsn ATF_TP_ADD_TCS(tp) 907 1.1 alnsn { 908 1.1 alnsn 909 1.1 alnsn ATF_TP_ADD_TC(tp, cgd_3des_cbc_192_encblkno1); 910 1.1 alnsn ATF_TP_ADD_TC(tp, cgd_3des_cbc_192_encblkno8); 911 1.1 alnsn 912 1.1 alnsn return atf_no_error(); 913 1.1 alnsn } 914