1314818Sngie/* $NetBSD: t_cgd_3des.c,v 1.2 2017/01/13 21:30:39 christos Exp $ */ 2311966Sngie/*- 3311966Sngie * Copyright (c) 2016 The NetBSD Foundation, Inc. 4311966Sngie * All rights reserved. 5311966Sngie * 6311966Sngie * This code is derived from software contributed to The NetBSD Foundation 7311966Sngie * by Alexander Nasonov. 8311966Sngie * 9311966Sngie * Redistribution and use in source and binary forms, with or without 10311966Sngie * modification, are permitted provided that the following conditions 11311966Sngie * are met: 12311966Sngie * 13311966Sngie * 1. Redistributions of source code must retain the above copyright 14311966Sngie * notice, this list of conditions and the following disclaimer. 15311966Sngie * 2. Redistributions in binary form must reproduce the above copyright 16311966Sngie * notice, this list of conditions and the following disclaimer in 17311966Sngie * the documentation and/or other materials provided with the 18311966Sngie * distribution. 19311966Sngie * 20311966Sngie * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21311966Sngie * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22311966Sngie * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23311966Sngie * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 24311966Sngie * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25311966Sngie * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 26311966Sngie * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27311966Sngie * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28311966Sngie * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29311966Sngie * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 30311966Sngie * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31311966Sngie * SUCH DAMAGE. 32311966Sngie */ 33311966Sngie 34311966Sngie#include <sys/types.h> 35311966Sngie#include <sys/ioctl.h> 36311966Sngie#include <sys/sysctl.h> 37311966Sngie 38311966Sngie#include <atf-c.h> 39311966Sngie#include <fcntl.h> 40311966Sngie#include <stdio.h> 41311966Sngie#include <stdlib.h> 42311966Sngie#include <string.h> 43311966Sngie#include <unistd.h> 44311966Sngie#include <util.h> 45311966Sngie 46311966Sngie#include <dev/cgdvar.h> 47311966Sngie 48311966Sngie#include <rump/rump.h> 49311966Sngie#include <rump/rump_syscalls.h> 50311966Sngie 51314818Sngie#include "h_macros.h" 52311966Sngie 53311966Sngie#define SECSIZE 512 54311966Sngie 55311966Sngiestruct testvec { 56311966Sngie unsigned int blkno; 57311966Sngie const uint8_t *ptxt; /* PlainText */ 58311966Sngie const uint8_t *ctxt; /* CipherText */ 59311966Sngie}; 60311966Sngie 61311966Sngie/* 62311966Sngie * 192 bits CBC key, NUL terminated. 63311966Sngie */ 64311966Sngiestatic const char c3des_cbc_192_key[25] = { 65311966Sngie 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* ABCDEFGH */ 66311966Sngie 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* IJKLMNOP */ 67311966Sngie 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* QRSTUVWX */ 68311966Sngie 0 69311966Sngie}; 70311966Sngie 71311966Sngiestatic const uint8_t c3des_cbc_ptxt[SECSIZE] = 72311966Sngie " abcdefghijklmnop" 73311966Sngie " abcdefghijklmnop" 74311966Sngie " abcdefghijklmnop" 75311966Sngie " abcdefghijklmnop" 76311966Sngie " abcdefghijklmnop" 77311966Sngie " abcdefghijklmnop" 78311966Sngie " abcdefghijklmnop" 79311966Sngie " abcdefghijklmnop" 80311966Sngie " abcdefghijklmnop" 81311966Sngie " abcdefghijklmnop" 82311966Sngie " abcdefghijklmnop" 83311966Sngie " abcdefghijklmnop" 84311966Sngie " abcdefghijklmnop" 85311966Sngie " abcdefghijklmnop" 86311966Sngie " abcdefghijklmnop" 87311966Sngie " abcdefghijklmnop"; 88311966Sngie 89311966Sngie/* 90311966Sngie * IV method encblkno1, blkno 0. 91311966Sngie */ 92311966Sngiestatic const uint8_t c3des_cbc_192_encblkno1_vec0_ctxt[SECSIZE] = { 93311966Sngie 0x19, 0x92, 0xc8, 0xce, 0xdf, 0xa3, 0x14, 0xef, 94311966Sngie 0xff, 0x88, 0x9f, 0x01, 0xfa, 0x6f, 0xfa, 0xa6, 95311966Sngie 0xdd, 0x2b, 0x43, 0x67, 0xfa, 0xce, 0x37, 0x95, 96311966Sngie 0x73, 0x4d, 0x18, 0x33, 0x0c, 0x29, 0xb6, 0xbb, 97311966Sngie 0x37, 0x77, 0x31, 0x74, 0xf6, 0x62, 0x03, 0xd2, 98311966Sngie 0x78, 0x13, 0x55, 0xf6, 0x58, 0x49, 0xaf, 0x2a, 99311966Sngie 0x15, 0x4c, 0xc2, 0x4a, 0x55, 0x99, 0x82, 0xb9, 100311966Sngie 0xfb, 0x8b, 0x4f, 0x92, 0xe3, 0xbc, 0x9b, 0x09, 101311966Sngie 0x42, 0x7b, 0x5f, 0x54, 0xed, 0xf0, 0xcb, 0x5d, 102311966Sngie 0x93, 0xba, 0x09, 0x4b, 0x20, 0xf3, 0xe6, 0x44, 103311966Sngie 0x30, 0x5e, 0x9e, 0xfc, 0x7a, 0x3c, 0x7d, 0x11, 104311966Sngie 0x63, 0xea, 0x40, 0x94, 0xaa, 0xd0, 0xa9, 0xf6, 105311966Sngie 0xc7, 0x1e, 0x8f, 0xc8, 0xa6, 0x2c, 0xf7, 0xeb, 106311966Sngie 0x51, 0x26, 0xdc, 0xf8, 0x73, 0xf9, 0xb4, 0xa8, 107311966Sngie 0x80, 0x4a, 0xe5, 0x6f, 0xb6, 0x33, 0x13, 0x6b, 108311966Sngie 0x1b, 0x7d, 0x00, 0xde, 0x44, 0x7e, 0x26, 0xa2, 109311966Sngie 0x82, 0xa7, 0x80, 0x16, 0x34, 0xde, 0xb9, 0x82, 110311966Sngie 0x4c, 0x42, 0x8e, 0x0d, 0x48, 0x7e, 0x38, 0xbd, 111311966Sngie 0x1d, 0x7d, 0x98, 0xbb, 0x11, 0x8a, 0x72, 0x14, 112311966Sngie 0x4e, 0xaa, 0xd0, 0xef, 0x4d, 0x7f, 0xa3, 0xa6, 113311966Sngie 0xfc, 0x85, 0x9d, 0x74, 0x63, 0x9d, 0xe4, 0x5c, 114311966Sngie 0xf7, 0xa8, 0xd0, 0xd7, 0x95, 0xb4, 0x28, 0x64, 115311966Sngie 0x41, 0x2d, 0x5d, 0xd9, 0xba, 0x79, 0xa7, 0xb3, 116311966Sngie 0x9c, 0x16, 0xfa, 0xb8, 0x10, 0x5d, 0x1d, 0xd4, 117311966Sngie 0xce, 0xad, 0x67, 0x27, 0x91, 0x8a, 0xb3, 0xbc, 118311966Sngie 0x37, 0x20, 0x95, 0xac, 0xf7, 0x0d, 0xe0, 0x1e, 119311966Sngie 0x59, 0xa7, 0xe5, 0x81, 0x82, 0x6a, 0x71, 0x07, 120311966Sngie 0x85, 0x43, 0x43, 0xdb, 0xbf, 0x56, 0xb0, 0x0a, 121311966Sngie 0x4c, 0xf1, 0xcd, 0xcd, 0xa3, 0x9a, 0x10, 0x8e, 122311966Sngie 0x0c, 0xe2, 0x6d, 0xf2, 0x16, 0xd0, 0x4c, 0xac, 123311966Sngie 0xf9, 0xfc, 0xc9, 0x56, 0x1f, 0x31, 0x89, 0x1c, 124311966Sngie 0xfa, 0xb7, 0x49, 0xea, 0x69, 0x91, 0xfe, 0x45, 125311966Sngie 0x96, 0x5e, 0x45, 0xc3, 0x2c, 0xb1, 0x40, 0xd9, 126311966Sngie 0x1f, 0x82, 0x3f, 0xc1, 0x45, 0x7c, 0x39, 0x72, 127311966Sngie 0x6f, 0x52, 0xe4, 0xaf, 0x15, 0xa4, 0xe2, 0xd4, 128311966Sngie 0xa1, 0xa4, 0xb2, 0xb5, 0x4a, 0x0b, 0xad, 0xe4, 129311966Sngie 0x1e, 0x5c, 0x26, 0x62, 0x81, 0x78, 0x3e, 0xd3, 130311966Sngie 0x6a, 0x98, 0x94, 0x2a, 0x00, 0xa7, 0xe4, 0x04, 131311966Sngie 0x9d, 0x9a, 0xfc, 0xcf, 0xad, 0x2b, 0xba, 0x9b, 132311966Sngie 0x40, 0x1e, 0x71, 0x3a, 0xb6, 0x92, 0xc4, 0xc5, 133311966Sngie 0x56, 0x58, 0x92, 0x2a, 0x69, 0xbe, 0x0f, 0xb0, 134311966Sngie 0x91, 0xae, 0xaa, 0x3f, 0x07, 0xe8, 0xf9, 0x71, 135311966Sngie 0x20, 0x06, 0xed, 0xe0, 0x80, 0xec, 0xc9, 0xe7, 136311966Sngie 0x54, 0xaa, 0xaa, 0xf4, 0x4c, 0xb2, 0x34, 0xf7, 137311966Sngie 0x8a, 0x76, 0xc2, 0x4a, 0xae, 0x71, 0x7a, 0x07, 138311966Sngie 0xd7, 0xec, 0x75, 0x2f, 0x8a, 0x99, 0x59, 0x13, 139311966Sngie 0xd0, 0x8d, 0x18, 0x69, 0x0d, 0xd9, 0x39, 0x73, 140311966Sngie 0x2b, 0xd0, 0xa3, 0xbc, 0x9e, 0x29, 0x4d, 0x88, 141311966Sngie 0xff, 0x98, 0x02, 0xb4, 0xcf, 0xa1, 0xf9, 0x2a, 142311966Sngie 0xa6, 0xef, 0x7c, 0x72, 0x26, 0x4e, 0xd7, 0xdf, 143311966Sngie 0xec, 0x3a, 0xbc, 0x8e, 0xe6, 0xb3, 0x2b, 0x43, 144311966Sngie 0xcd, 0x67, 0x8b, 0x72, 0x00, 0x6f, 0xe5, 0x85, 145311966Sngie 0xe2, 0x2a, 0x4c, 0x8d, 0x02, 0x44, 0x6b, 0x7a, 146311966Sngie 0x89, 0x7a, 0x18, 0x3b, 0xc8, 0x9c, 0x8d, 0x60, 147311966Sngie 0xec, 0x79, 0x58, 0x15, 0x98, 0x71, 0x4b, 0x1a, 148311966Sngie 0x34, 0x69, 0x96, 0xd0, 0x0f, 0x01, 0x27, 0x2e, 149311966Sngie 0x19, 0x02, 0xf0, 0x17, 0x8c, 0x89, 0xbf, 0x05, 150311966Sngie 0xf0, 0xfe, 0xc3, 0xe6, 0x90, 0x9d, 0xa2, 0xb1, 151311966Sngie 0x40, 0x06, 0x7e, 0xcd, 0x20, 0x7e, 0x5f, 0x54, 152311966Sngie 0x31, 0xfb, 0x79, 0x84, 0x47, 0x38, 0x71, 0x69, 153311966Sngie 0xe1, 0xd5, 0x4e, 0x84, 0xa3, 0x2b, 0x4a, 0x86, 154311966Sngie 0xc2, 0x21, 0x5b, 0x15, 0xc3, 0x63, 0xbb, 0xc5, 155311966Sngie 0x5c, 0xc1, 0xfb, 0x31, 0x3a, 0x4d, 0xb1, 0x9e, 156311966Sngie 0xe1, 0xd8, 0x67, 0x4b, 0x08, 0x42, 0xc4, 0xe8, 157311966Sngie}; 158311966Sngie 159311966Sngie/* 160311966Sngie * IV method encblkno1, blkno 1. 161311966Sngie */ 162311966Sngiestatic const uint8_t c3des_cbc_192_encblkno1_vec1_ctxt[SECSIZE] = { 163311966Sngie 0x1d, 0x65, 0xdf, 0x01, 0x9b, 0x24, 0xa5, 0x10, 164311966Sngie 0x94, 0x9a, 0x5b, 0x81, 0x96, 0x4e, 0xa3, 0x42, 165311966Sngie 0x42, 0xd5, 0x05, 0x52, 0xab, 0x3c, 0x67, 0x40, 166311966Sngie 0x79, 0xf9, 0x4b, 0x58, 0x39, 0xf6, 0xd0, 0x97, 167311966Sngie 0x48, 0xf4, 0x77, 0xb8, 0xac, 0xe2, 0x10, 0x66, 168311966Sngie 0xa8, 0x04, 0x0a, 0x1e, 0xa6, 0xbb, 0x4c, 0xd9, 169311966Sngie 0x5d, 0x0c, 0x11, 0xb5, 0xe0, 0x26, 0x84, 0x50, 170311966Sngie 0x10, 0x80, 0xbf, 0xd6, 0xdc, 0x82, 0x53, 0x0a, 171311966Sngie 0xcf, 0xf6, 0xd3, 0x07, 0x45, 0xb0, 0x8e, 0x36, 172311966Sngie 0x2e, 0x60, 0x0f, 0xd0, 0xc1, 0xb9, 0xd8, 0x29, 173311966Sngie 0x6e, 0x13, 0x8e, 0xc1, 0xa8, 0x63, 0x20, 0xe0, 174311966Sngie 0x8d, 0x47, 0x8b, 0xf9, 0xa0, 0x60, 0x55, 0x53, 175311966Sngie 0x1d, 0xaf, 0x43, 0x46, 0xe5, 0x10, 0xd5, 0xcd, 176311966Sngie 0x91, 0x9e, 0x11, 0x4a, 0x6f, 0x6a, 0x13, 0xdf, 177311966Sngie 0xee, 0x7a, 0x88, 0xbe, 0x59, 0x96, 0xdb, 0x65, 178311966Sngie 0x25, 0x57, 0x9e, 0x82, 0xad, 0xc2, 0xd6, 0x28, 179311966Sngie 0x96, 0xb3, 0x7f, 0x57, 0x5d, 0xb2, 0xfa, 0x60, 180311966Sngie 0x43, 0x22, 0xa5, 0x33, 0x14, 0x99, 0x8f, 0x68, 181311966Sngie 0x5a, 0x7f, 0xaf, 0x9e, 0xe9, 0x23, 0x57, 0x9b, 182311966Sngie 0x52, 0xe9, 0x20, 0x59, 0x26, 0x89, 0x9b, 0x59, 183311966Sngie 0xb0, 0xee, 0xe8, 0x6d, 0x06, 0x8c, 0x01, 0xc2, 184311966Sngie 0xea, 0xbc, 0x7d, 0x93, 0x3f, 0x79, 0x7f, 0xeb, 185311966Sngie 0x57, 0xc9, 0x0a, 0xca, 0x37, 0x81, 0xa7, 0x82, 186311966Sngie 0xde, 0x37, 0x7d, 0x69, 0x01, 0xaa, 0x19, 0x98, 187311966Sngie 0x26, 0xfe, 0x06, 0x83, 0xeb, 0x9d, 0x26, 0xdc, 188311966Sngie 0x04, 0x5d, 0xc9, 0x05, 0xee, 0x1a, 0xd3, 0xeb, 189311966Sngie 0x20, 0x8c, 0xb7, 0x99, 0x75, 0xe0, 0x19, 0x98, 190311966Sngie 0xca, 0x83, 0xae, 0x94, 0x28, 0xbf, 0x47, 0x42, 191311966Sngie 0x92, 0x05, 0x8c, 0xaa, 0xeb, 0x99, 0x0f, 0xcc, 192311966Sngie 0x33, 0x79, 0x24, 0x62, 0xa0, 0x7a, 0x65, 0xcb, 193311966Sngie 0x53, 0xb7, 0x86, 0x0d, 0xcb, 0x44, 0x2d, 0xbf, 194311966Sngie 0xe8, 0x5d, 0x62, 0xeb, 0x21, 0x4d, 0x35, 0x86, 195311966Sngie 0x56, 0x6c, 0x51, 0xff, 0xa3, 0x45, 0xcc, 0x88, 196311966Sngie 0x09, 0x43, 0x08, 0x97, 0x13, 0x7d, 0x00, 0xd8, 197311966Sngie 0x82, 0x2d, 0xbe, 0xbe, 0x44, 0x0c, 0x2c, 0xa4, 198311966Sngie 0x4f, 0x84, 0x07, 0x20, 0x9c, 0x3f, 0xf6, 0x5b, 199311966Sngie 0x9e, 0xe8, 0x68, 0x40, 0xd3, 0x64, 0x8f, 0xb4, 200311966Sngie 0x9e, 0xac, 0xc6, 0x41, 0x11, 0xda, 0xf2, 0x60, 201311966Sngie 0xfa, 0x29, 0x9d, 0x26, 0x68, 0x5b, 0x79, 0x3a, 202311966Sngie 0xd1, 0x66, 0x78, 0xca, 0x80, 0x87, 0xae, 0xab, 203311966Sngie 0x7b, 0x29, 0x3c, 0xb0, 0xe6, 0xa2, 0x6b, 0x24, 204311966Sngie 0x81, 0xeb, 0x51, 0xf9, 0xcb, 0x4a, 0x08, 0x37, 205311966Sngie 0x2a, 0x75, 0xb5, 0xd3, 0xb3, 0x8f, 0x3d, 0x13, 206311966Sngie 0x11, 0x0c, 0xa9, 0xf7, 0xf6, 0x57, 0x7e, 0xb7, 207311966Sngie 0xa6, 0x22, 0xe8, 0x13, 0xfd, 0xf1, 0x6a, 0xe9, 208311966Sngie 0xc1, 0x94, 0xa6, 0xf5, 0xa5, 0xec, 0xfa, 0x31, 209311966Sngie 0xd2, 0x66, 0x8f, 0xe3, 0x6e, 0x9a, 0xaa, 0xb0, 210311966Sngie 0xe3, 0x04, 0x09, 0x00, 0x1e, 0x67, 0x3c, 0xbe, 211311966Sngie 0x2a, 0x8c, 0xd5, 0x1f, 0x4f, 0x55, 0x2c, 0x1d, 212311966Sngie 0x26, 0x7f, 0xc9, 0x27, 0x00, 0x88, 0x7d, 0x45, 213311966Sngie 0x4e, 0xe1, 0x36, 0xf6, 0xf5, 0xa8, 0xd4, 0xef, 214311966Sngie 0x8b, 0x26, 0x76, 0x41, 0x28, 0x87, 0xf4, 0x51, 215311966Sngie 0x14, 0x36, 0xad, 0x60, 0x8d, 0xe9, 0xe2, 0x9d, 216311966Sngie 0x3c, 0xea, 0x09, 0x51, 0x3c, 0x81, 0xdf, 0x1a, 217311966Sngie 0xc2, 0xc2, 0xf6, 0x45, 0xe1, 0x73, 0xac, 0xae, 218311966Sngie 0x85, 0x74, 0x83, 0x8f, 0x56, 0x3c, 0x36, 0x1c, 219311966Sngie 0xe0, 0x07, 0xc6, 0x6a, 0x48, 0xe4, 0x34, 0xe9, 220311966Sngie 0x81, 0x53, 0xb7, 0x53, 0x95, 0xa7, 0x94, 0x21, 221311966Sngie 0x7e, 0x32, 0x53, 0xda, 0x83, 0xd8, 0x57, 0x92, 222311966Sngie 0xd1, 0x15, 0x45, 0x86, 0x40, 0xac, 0xf1, 0x6f, 223311966Sngie 0x3c, 0x29, 0xef, 0x8d, 0x12, 0xe1, 0x9d, 0x04, 224311966Sngie 0x17, 0x3a, 0xcc, 0xa6, 0xc5, 0xe4, 0x27, 0x41, 225311966Sngie 0xcb, 0xfb, 0x5e, 0x77, 0x73, 0x5a, 0x2c, 0x03, 226311966Sngie 0xe9, 0x2b, 0x76, 0x4e, 0x69, 0xea, 0xcb, 0xb3, 227311966Sngie}; 228311966Sngie 229311966Sngie/* 230311966Sngie * IV method encblkno1, blkno 2. 231311966Sngie */ 232311966Sngiestatic const uint8_t c3des_cbc_192_encblkno1_vec2_ctxt[SECSIZE] = { 233311966Sngie 0x87, 0xb1, 0x3c, 0xd6, 0x60, 0xa0, 0x5a, 0x35, 234311966Sngie 0xf7, 0xe1, 0x6b, 0x87, 0xa0, 0x90, 0x2f, 0xc7, 235311966Sngie 0x8c, 0xed, 0x53, 0xda, 0x93, 0x32, 0x78, 0x5d, 236311966Sngie 0x24, 0x23, 0x42, 0xdd, 0x93, 0x5b, 0x2e, 0x40, 237311966Sngie 0xa1, 0xb1, 0x3b, 0xbb, 0xf0, 0x50, 0xb4, 0x61, 238311966Sngie 0xea, 0x15, 0x37, 0xf3, 0x49, 0xe1, 0xa0, 0x32, 239311966Sngie 0x88, 0x85, 0x81, 0xfd, 0xb7, 0x96, 0xd7, 0x9d, 240311966Sngie 0xd7, 0x29, 0x4b, 0x14, 0xf9, 0x18, 0x6a, 0xf6, 241311966Sngie 0x46, 0xae, 0x69, 0xdf, 0x63, 0x9a, 0xe0, 0x0b, 242311966Sngie 0x2c, 0x53, 0xd7, 0x82, 0x6f, 0xe5, 0xa0, 0x95, 243311966Sngie 0x2f, 0x61, 0x7f, 0x15, 0xff, 0xc7, 0xe8, 0x83, 244311966Sngie 0xfc, 0xfc, 0x16, 0x1c, 0x37, 0x0f, 0x9b, 0xbb, 245311966Sngie 0x14, 0xb2, 0xe2, 0xb7, 0x1f, 0x85, 0xb7, 0x07, 246311966Sngie 0x8a, 0x18, 0xed, 0xf7, 0x5f, 0x27, 0xff, 0x2f, 247311966Sngie 0x07, 0xf9, 0x9d, 0xe3, 0x79, 0x45, 0x1f, 0x51, 248311966Sngie 0x08, 0x54, 0x0f, 0x56, 0x84, 0xee, 0x87, 0x9a, 249311966Sngie 0xa9, 0x46, 0xb8, 0x77, 0x85, 0x40, 0x46, 0x50, 250311966Sngie 0xc1, 0x58, 0x07, 0xfd, 0xfa, 0x2b, 0x20, 0xd6, 251311966Sngie 0x4e, 0xba, 0x08, 0x02, 0x59, 0x3d, 0x23, 0x3b, 252311966Sngie 0x5d, 0xf9, 0x5e, 0x2f, 0xac, 0x9e, 0xa0, 0xd7, 253311966Sngie 0x3f, 0x9a, 0xdf, 0x50, 0x66, 0xcc, 0x28, 0xce, 254311966Sngie 0x93, 0xc8, 0x11, 0x5c, 0x74, 0xe2, 0x4f, 0xfd, 255311966Sngie 0xaf, 0x33, 0xbb, 0xce, 0x96, 0x1f, 0xb3, 0x46, 256311966Sngie 0x6e, 0xcd, 0xe4, 0xef, 0xfa, 0x2f, 0x93, 0xb1, 257311966Sngie 0xe5, 0x7c, 0x54, 0xbc, 0x17, 0x1f, 0xd5, 0x31, 258311966Sngie 0x0e, 0x88, 0xe7, 0xcd, 0xb0, 0xb5, 0x2e, 0x1e, 259311966Sngie 0x9e, 0x40, 0x36, 0xa5, 0xbb, 0xa7, 0x4e, 0xc8, 260311966Sngie 0x11, 0x6c, 0xae, 0x1c, 0x2d, 0xdb, 0x55, 0xd8, 261311966Sngie 0x14, 0x40, 0x02, 0xad, 0xaf, 0x19, 0x28, 0x59, 262311966Sngie 0xd7, 0x4f, 0x81, 0xd0, 0xc1, 0x54, 0x63, 0x73, 263311966Sngie 0x0e, 0xfb, 0x26, 0xf2, 0xa6, 0x80, 0xca, 0x2e, 264311966Sngie 0xf3, 0xca, 0x1e, 0xa4, 0x62, 0x07, 0x22, 0x10, 265311966Sngie 0x11, 0x6a, 0x57, 0x28, 0x45, 0x80, 0xdf, 0x34, 266311966Sngie 0x88, 0xe5, 0xf1, 0x23, 0xe0, 0xb6, 0x44, 0x51, 267311966Sngie 0x54, 0xd8, 0xb3, 0x66, 0xac, 0x46, 0x4d, 0xdf, 268311966Sngie 0xa2, 0x8e, 0x72, 0x3a, 0x1c, 0x87, 0x2a, 0x43, 269311966Sngie 0xfe, 0xdb, 0x00, 0xff, 0xb7, 0x1c, 0x13, 0xc3, 270311966Sngie 0x18, 0xfc, 0x71, 0x13, 0xe3, 0xd1, 0x1f, 0xde, 271311966Sngie 0x16, 0x63, 0x73, 0xf5, 0x0e, 0xf7, 0x18, 0xe5, 272311966Sngie 0x48, 0x8d, 0x30, 0xd9, 0x26, 0x20, 0x6d, 0xa1, 273311966Sngie 0xba, 0xde, 0xe8, 0x7d, 0x77, 0x02, 0x33, 0x0d, 274311966Sngie 0x73, 0xb2, 0xab, 0x35, 0xfd, 0xa5, 0x6e, 0x4c, 275311966Sngie 0x5c, 0x27, 0xc7, 0x7e, 0x4a, 0x28, 0xf8, 0xf5, 276311966Sngie 0x00, 0xbe, 0x4c, 0xd7, 0x2c, 0x27, 0x83, 0x16, 277311966Sngie 0x37, 0xda, 0x0c, 0xb1, 0xd7, 0x89, 0xd8, 0x8f, 278311966Sngie 0x17, 0x69, 0x1b, 0x6b, 0x48, 0x2b, 0xce, 0x9c, 279311966Sngie 0xbd, 0xf4, 0x0d, 0xb5, 0x4d, 0x12, 0x11, 0x36, 280311966Sngie 0x49, 0xd3, 0x8b, 0x52, 0xce, 0x7e, 0x47, 0xb0, 281311966Sngie 0xb5, 0x54, 0x77, 0xef, 0x90, 0xb8, 0x0e, 0xaf, 282311966Sngie 0x6f, 0x97, 0x88, 0xde, 0x6b, 0x37, 0x24, 0xdd, 283311966Sngie 0x91, 0x84, 0x00, 0x51, 0xab, 0x06, 0x96, 0x3c, 284311966Sngie 0x82, 0x73, 0xcf, 0xae, 0x8d, 0x23, 0x86, 0x59, 285311966Sngie 0x62, 0x5b, 0xeb, 0x2a, 0xaf, 0x40, 0x17, 0xed, 286311966Sngie 0x2b, 0x60, 0x73, 0x7d, 0x99, 0x95, 0x3f, 0xd6, 287311966Sngie 0x6c, 0xca, 0x1e, 0xf3, 0xb0, 0xcd, 0xd5, 0x1d, 288311966Sngie 0x53, 0xe0, 0xd2, 0x8b, 0x57, 0x7b, 0xac, 0x67, 289311966Sngie 0x5a, 0x5a, 0x0a, 0x64, 0x82, 0xab, 0x8f, 0x5a, 290311966Sngie 0x36, 0xe2, 0x45, 0x50, 0xec, 0x3e, 0x14, 0x80, 291311966Sngie 0x7c, 0xfd, 0x0c, 0xa9, 0x94, 0xfb, 0xfe, 0x72, 292311966Sngie 0xec, 0x47, 0x71, 0x2e, 0x90, 0x97, 0xf6, 0x33, 293311966Sngie 0xbd, 0x7d, 0x7e, 0x77, 0x8f, 0xad, 0xd4, 0x1d, 294311966Sngie 0x1d, 0x53, 0x0f, 0x28, 0x39, 0x77, 0x06, 0x1a, 295311966Sngie 0x75, 0xfc, 0x12, 0xe6, 0x45, 0xfc, 0x87, 0xe1, 296311966Sngie 0x46, 0xac, 0xb0, 0x73, 0xca, 0x24, 0x7c, 0x71, 297311966Sngie}; 298311966Sngie 299311966Sngie/* 300311966Sngie * IV method encblkno1, blkno 3. 301311966Sngie */ 302311966Sngiestatic const uint8_t c3des_cbc_192_encblkno1_vec3_ctxt[SECSIZE] = { 303311966Sngie 0xb1, 0xef, 0x7c, 0xd0, 0xa0, 0x6b, 0xe4, 0x88, 304311966Sngie 0x5c, 0xd7, 0xf1, 0xbf, 0x5f, 0xce, 0xda, 0x19, 305311966Sngie 0x81, 0x32, 0xbb, 0x96, 0x7e, 0xb9, 0x6e, 0xa1, 306311966Sngie 0x43, 0xde, 0x53, 0x66, 0x9c, 0x27, 0x94, 0x85, 307311966Sngie 0xcb, 0x09, 0x4e, 0x16, 0xd8, 0x60, 0x7a, 0x38, 308311966Sngie 0x27, 0x21, 0x4d, 0x08, 0xaa, 0xe2, 0x1e, 0x6e, 309311966Sngie 0xa3, 0xcb, 0x9a, 0x7f, 0xd1, 0xbf, 0x18, 0x36, 310311966Sngie 0x5a, 0x4d, 0x7a, 0x7f, 0xcf, 0x3f, 0xba, 0xa5, 311311966Sngie 0x77, 0x5b, 0xb4, 0x79, 0xdc, 0xbf, 0x2a, 0x28, 312311966Sngie 0x16, 0x27, 0x0f, 0x8b, 0xd7, 0x95, 0xc3, 0xcb, 313311966Sngie 0xa1, 0x6a, 0x49, 0x53, 0xa8, 0x0c, 0x70, 0xde, 314311966Sngie 0x90, 0x2e, 0x36, 0x74, 0x40, 0x5d, 0x81, 0x74, 315311966Sngie 0x03, 0x11, 0xbd, 0xba, 0x40, 0x8d, 0x03, 0x86, 316311966Sngie 0x2b, 0x17, 0x55, 0x20, 0xd8, 0x81, 0x30, 0xd2, 317311966Sngie 0x2a, 0xbd, 0xea, 0xff, 0x5c, 0x69, 0x9b, 0xe6, 318311966Sngie 0xe3, 0x21, 0x9a, 0x10, 0x3e, 0xb0, 0xf4, 0x7a, 319311966Sngie 0xfc, 0x6e, 0x66, 0xec, 0x44, 0x0b, 0x95, 0x8d, 320311966Sngie 0x13, 0xd4, 0xf6, 0x3e, 0xa1, 0xa1, 0xac, 0xb1, 321311966Sngie 0xd8, 0x3d, 0x86, 0xaf, 0x5e, 0xef, 0x14, 0x6a, 322311966Sngie 0x32, 0xf3, 0x13, 0x75, 0x3b, 0x64, 0x9a, 0xf4, 323311966Sngie 0xd0, 0xf5, 0x00, 0x36, 0x9e, 0xdb, 0xfd, 0xcb, 324311966Sngie 0xda, 0x1f, 0xed, 0x9d, 0x6d, 0x52, 0xd7, 0xb5, 325311966Sngie 0x48, 0xce, 0x53, 0x5e, 0xdc, 0xc8, 0xe4, 0x96, 326311966Sngie 0x04, 0x32, 0xa5, 0xcf, 0x0c, 0xba, 0xa0, 0xd0, 327311966Sngie 0x44, 0xb3, 0xe8, 0x72, 0xc6, 0xff, 0x8f, 0xd4, 328311966Sngie 0x4d, 0x0a, 0x22, 0x89, 0x74, 0x50, 0xaa, 0x65, 329311966Sngie 0x15, 0xab, 0x99, 0xc8, 0xf9, 0xa4, 0x10, 0xe6, 330311966Sngie 0xa6, 0x4b, 0x0c, 0xc8, 0xb9, 0xa7, 0x60, 0x41, 331311966Sngie 0xe7, 0x57, 0x31, 0xfa, 0x86, 0x55, 0xdf, 0x29, 332311966Sngie 0x49, 0xac, 0x55, 0x7b, 0x21, 0xf9, 0x3b, 0x1e, 333311966Sngie 0x1f, 0xb4, 0x1c, 0x0b, 0x77, 0xcb, 0x88, 0xbf, 334311966Sngie 0xa6, 0x79, 0xbf, 0x9a, 0x51, 0xc4, 0x8e, 0x59, 335311966Sngie 0x9c, 0xb3, 0x9d, 0x9d, 0x6b, 0xb2, 0x15, 0x41, 336311966Sngie 0x0d, 0x6c, 0xf7, 0x5e, 0xe2, 0xf9, 0xb3, 0x80, 337311966Sngie 0x8f, 0x03, 0x67, 0x68, 0x6e, 0x4b, 0x4d, 0x52, 338311966Sngie 0xbc, 0x9b, 0xa2, 0xd8, 0x29, 0x1e, 0x5c, 0xd7, 339311966Sngie 0x59, 0x67, 0x94, 0x40, 0x9e, 0x08, 0x15, 0x0d, 340311966Sngie 0x7e, 0xc9, 0x14, 0x53, 0xa8, 0x67, 0xb3, 0xb8, 341311966Sngie 0xaa, 0x21, 0x0f, 0x79, 0x69, 0x48, 0x52, 0xea, 342311966Sngie 0x56, 0x03, 0x7b, 0x55, 0xb7, 0xf3, 0xfe, 0xb1, 343311966Sngie 0x8a, 0x22, 0x7d, 0x75, 0x55, 0x31, 0xad, 0x20, 344311966Sngie 0x6a, 0xc2, 0xa4, 0xd1, 0x1e, 0xab, 0xdd, 0x29, 345311966Sngie 0xb5, 0xf8, 0xdd, 0x9b, 0x1a, 0xb8, 0xe7, 0xde, 346311966Sngie 0xae, 0xa1, 0xab, 0xbb, 0xf6, 0x00, 0x87, 0xc4, 347311966Sngie 0x29, 0xee, 0x2b, 0xa1, 0xa9, 0x1a, 0x46, 0x05, 348311966Sngie 0x5a, 0x12, 0x3f, 0x32, 0x81, 0x25, 0x20, 0x71, 349311966Sngie 0xb6, 0xfa, 0x1f, 0x27, 0x2a, 0x33, 0x49, 0xfc, 350311966Sngie 0x95, 0x00, 0x72, 0x6b, 0x03, 0x53, 0x94, 0x57, 351311966Sngie 0x2f, 0x47, 0x3d, 0x2d, 0x7c, 0xb4, 0xde, 0xa7, 352311966Sngie 0x96, 0x81, 0x12, 0xff, 0x2c, 0xec, 0x5c, 0x03, 353311966Sngie 0x2a, 0x8c, 0x76, 0xc4, 0xed, 0x09, 0xe6, 0x00, 354311966Sngie 0x28, 0xdb, 0x9b, 0x44, 0xb0, 0xb4, 0x7b, 0x57, 355311966Sngie 0x3b, 0xb6, 0x4f, 0x0b, 0xff, 0xf2, 0xf5, 0x02, 356311966Sngie 0x56, 0xcf, 0xd5, 0xbf, 0x71, 0xe6, 0x66, 0xf3, 357311966Sngie 0x08, 0x8e, 0x8b, 0x15, 0x57, 0x07, 0x41, 0xa3, 358311966Sngie 0x91, 0xc1, 0xe4, 0x64, 0x92, 0x89, 0xed, 0x22, 359311966Sngie 0x88, 0x8f, 0x17, 0x91, 0xde, 0xea, 0x0c, 0xa6, 360311966Sngie 0x86, 0x8e, 0x4c, 0xd9, 0x63, 0xc9, 0xe5, 0xdc, 361311966Sngie 0xd6, 0xd3, 0x7b, 0x2b, 0x65, 0xfa, 0x36, 0x47, 362311966Sngie 0x20, 0xa4, 0xe7, 0x0b, 0x52, 0xfa, 0xa6, 0xeb, 363311966Sngie 0x1d, 0x20, 0xd0, 0x4b, 0xfd, 0x88, 0x8c, 0xbb, 364311966Sngie 0x52, 0x9c, 0x2f, 0xb7, 0xba, 0x8b, 0xdd, 0x10, 365311966Sngie 0x2d, 0x7d, 0x77, 0x79, 0x40, 0xa7, 0xed, 0xf9, 366311966Sngie 0xbd, 0x2a, 0x55, 0x1f, 0x87, 0x1e, 0x3c, 0xfc, 367311966Sngie}; 368311966Sngie 369311966Sngieconst struct testvec c3des_cbc_192_1_vectors[] = { 370311966Sngie { 371311966Sngie .blkno = 0, 372311966Sngie .ptxt = c3des_cbc_ptxt, 373311966Sngie .ctxt = c3des_cbc_192_encblkno1_vec0_ctxt, 374311966Sngie }, 375311966Sngie { 376311966Sngie .blkno = 1, 377311966Sngie .ptxt = c3des_cbc_ptxt, 378311966Sngie .ctxt = c3des_cbc_192_encblkno1_vec1_ctxt, 379311966Sngie }, 380311966Sngie { 381311966Sngie .blkno = 2, 382311966Sngie .ptxt = c3des_cbc_ptxt, 383311966Sngie .ctxt = c3des_cbc_192_encblkno1_vec2_ctxt, 384311966Sngie }, 385311966Sngie { 386311966Sngie .blkno = 3, 387311966Sngie .ptxt = c3des_cbc_ptxt, 388311966Sngie .ctxt = c3des_cbc_192_encblkno1_vec3_ctxt, 389311966Sngie }, 390311966Sngie}; 391311966Sngie 392311966Sngie/* 393311966Sngie * IV method encblkno8, blkno 0. 394311966Sngie */ 395311966Sngiestatic const uint8_t c3des_cbc_192_encblkno8_vec0_ctxt[SECSIZE] = { 396311966Sngie 0x9e, 0x5d, 0x35, 0x56, 0xa7, 0xcc, 0xc0, 0x1c, 397311966Sngie 0x60, 0x4c, 0x42, 0x90, 0x35, 0xf3, 0xc1, 0x20, 398311966Sngie 0xf2, 0x07, 0x6f, 0xf8, 0x7c, 0x33, 0x6a, 0x74, 399311966Sngie 0xdc, 0x85, 0xbc, 0x9c, 0xa2, 0x29, 0xc6, 0x69, 400311966Sngie 0x0e, 0xef, 0x0f, 0xa9, 0x6e, 0xec, 0xf2, 0x23, 401311966Sngie 0x2f, 0x9a, 0xbe, 0x1a, 0x89, 0x22, 0x00, 0xc4, 402311966Sngie 0x5a, 0xaf, 0x4a, 0xa0, 0x4f, 0x30, 0x8f, 0x99, 403311966Sngie 0xd2, 0x93, 0x6d, 0xfa, 0xcd, 0x2f, 0xad, 0x19, 404311966Sngie 0x10, 0x14, 0x90, 0x3a, 0x4b, 0xab, 0x17, 0x2e, 405311966Sngie 0x2c, 0xe1, 0x26, 0xe5, 0x76, 0xf1, 0xd1, 0x1d, 406311966Sngie 0x4c, 0x77, 0x68, 0xfb, 0x45, 0x9a, 0x3e, 0x19, 407311966Sngie 0xe0, 0xfb, 0xdc, 0xd4, 0x0e, 0x29, 0x7c, 0x06, 408311966Sngie 0xd3, 0x45, 0xa8, 0xf7, 0x39, 0x91, 0xe6, 0x18, 409311966Sngie 0x0f, 0x81, 0xe6, 0x7d, 0x6c, 0x65, 0x2e, 0x16, 410311966Sngie 0x24, 0xa4, 0x16, 0x96, 0x0a, 0x7b, 0x5f, 0x3a, 411311966Sngie 0x0c, 0xe9, 0x0e, 0x3f, 0x34, 0x38, 0xb0, 0xe1, 412311966Sngie 0x39, 0x23, 0x5c, 0x3c, 0x00, 0xb4, 0xa0, 0xf7, 413311966Sngie 0x42, 0x18, 0x70, 0x25, 0x82, 0x13, 0x24, 0x49, 414311966Sngie 0xbb, 0x3f, 0xfb, 0xef, 0xb6, 0xc6, 0x7f, 0x3d, 415311966Sngie 0x8c, 0x17, 0x62, 0x60, 0x6f, 0xd5, 0xda, 0x2c, 416311966Sngie 0xf8, 0x85, 0xee, 0xa7, 0xc2, 0x76, 0x5d, 0x34, 417311966Sngie 0x4c, 0xe1, 0x0d, 0x36, 0x6e, 0x02, 0xdd, 0x08, 418311966Sngie 0x85, 0xe4, 0x90, 0xfe, 0x1f, 0x81, 0x4a, 0x06, 419311966Sngie 0xa6, 0x72, 0x81, 0x79, 0x47, 0xd7, 0x6d, 0x92, 420311966Sngie 0x8f, 0xb7, 0xb2, 0xfd, 0xd0, 0x60, 0x6c, 0x06, 421311966Sngie 0x44, 0xcd, 0x20, 0x28, 0xef, 0x16, 0xc3, 0x01, 422311966Sngie 0x19, 0x14, 0x34, 0x39, 0xad, 0x87, 0x9f, 0xde, 423311966Sngie 0x76, 0xb9, 0xb9, 0x87, 0x1a, 0xbd, 0x8e, 0x2c, 424311966Sngie 0xe6, 0xb3, 0xe7, 0xb6, 0x80, 0xf8, 0xc5, 0x22, 425311966Sngie 0x5f, 0x53, 0xed, 0x03, 0xfe, 0x09, 0x2c, 0x9d, 426311966Sngie 0xb6, 0x61, 0x4a, 0xbb, 0x07, 0x5d, 0xbd, 0x68, 427311966Sngie 0x74, 0xab, 0x02, 0x81, 0x64, 0x7b, 0x97, 0xa3, 428311966Sngie 0xad, 0x15, 0x99, 0x7a, 0x04, 0x33, 0xbd, 0x50, 429311966Sngie 0x94, 0x11, 0xcc, 0xf7, 0x8b, 0x77, 0x88, 0x78, 430311966Sngie 0x80, 0xfe, 0x5f, 0xa1, 0x63, 0xbc, 0xb0, 0x65, 431311966Sngie 0xcb, 0x9d, 0x4c, 0xfe, 0x66, 0x4e, 0xff, 0xe3, 432311966Sngie 0x43, 0x61, 0x99, 0x88, 0x88, 0x4c, 0xbc, 0x8a, 433311966Sngie 0xf1, 0x69, 0x00, 0xc2, 0xe5, 0xb9, 0x65, 0x8b, 434311966Sngie 0x10, 0xdf, 0x38, 0x3e, 0x9e, 0x9f, 0x87, 0xed, 435311966Sngie 0x84, 0x71, 0xe7, 0xf2, 0xb5, 0xb6, 0x11, 0xed, 436311966Sngie 0x1e, 0xd4, 0xc0, 0x6d, 0x77, 0x08, 0x4b, 0xfd, 437311966Sngie 0x95, 0xd5, 0xc0, 0xbe, 0xa6, 0xcc, 0x3b, 0xea, 438311966Sngie 0x11, 0x38, 0xa5, 0x59, 0x36, 0x2a, 0xf4, 0x98, 439311966Sngie 0x52, 0x9d, 0x3b, 0x8c, 0x8a, 0x19, 0xbd, 0xfb, 440311966Sngie 0x49, 0xcb, 0xb0, 0x57, 0x91, 0xc7, 0xf8, 0x2a, 441311966Sngie 0x89, 0xa8, 0x85, 0x03, 0xdf, 0x6e, 0xad, 0xf4, 442311966Sngie 0x8a, 0x88, 0x9a, 0x2b, 0x5d, 0xe8, 0xca, 0xa9, 443311966Sngie 0x8f, 0x18, 0xa3, 0x6a, 0x37, 0x84, 0xa9, 0x24, 444311966Sngie 0x5b, 0xce, 0xd6, 0xbe, 0x7e, 0x40, 0x86, 0x6a, 445311966Sngie 0xc3, 0x47, 0x28, 0x66, 0xf0, 0x8c, 0x2d, 0x69, 446311966Sngie 0x22, 0x64, 0x61, 0x36, 0x6a, 0x0c, 0xc4, 0x18, 447311966Sngie 0x5f, 0xd7, 0xff, 0xbc, 0xf1, 0x94, 0x16, 0xfb, 448311966Sngie 0x26, 0xa7, 0x80, 0xa4, 0x2d, 0x72, 0xc6, 0x9d, 449311966Sngie 0xa7, 0xed, 0x04, 0x13, 0x0f, 0xe7, 0xf8, 0x93, 450311966Sngie 0x57, 0x6b, 0xd5, 0xa4, 0xad, 0x9a, 0x97, 0xeb, 451311966Sngie 0x97, 0xe7, 0x60, 0x01, 0x89, 0x3f, 0x88, 0xf2, 452311966Sngie 0xee, 0xf3, 0x79, 0xd6, 0x5a, 0x03, 0x94, 0x07, 453311966Sngie 0xd3, 0x33, 0xc8, 0xda, 0x15, 0x17, 0x0a, 0x8f, 454311966Sngie 0xbd, 0x58, 0x1b, 0xfe, 0x3d, 0x77, 0x5d, 0x8f, 455311966Sngie 0x4e, 0x0e, 0x98, 0x7d, 0x02, 0x63, 0x94, 0x73, 456311966Sngie 0x4a, 0x58, 0x47, 0xed, 0x52, 0xfc, 0x85, 0x19, 457311966Sngie 0x5d, 0x2f, 0xfa, 0x07, 0x44, 0xbd, 0x8e, 0xcb, 458311966Sngie 0x20, 0x63, 0x9d, 0x2b, 0x61, 0x5c, 0x19, 0x71, 459311966Sngie 0x80, 0xe5, 0x25, 0x5b, 0x2e, 0xc5, 0xfe, 0x1a, 460311966Sngie}; 461311966Sngie 462311966Sngie/* 463311966Sngie * IV method encblkno8, blkno 1. 464311966Sngie */ 465311966Sngiestatic const uint8_t c3des_cbc_192_encblkno8_vec1_ctxt[SECSIZE] = { 466311966Sngie 0xf4, 0xb0, 0xb0, 0xcb, 0x79, 0xcc, 0x8c, 0x0a, 467311966Sngie 0x3b, 0xc7, 0x43, 0x4e, 0x62, 0x9d, 0xde, 0xb4, 468311966Sngie 0xab, 0xa5, 0x62, 0x63, 0x32, 0xa7, 0x18, 0x2b, 469311966Sngie 0xe3, 0xee, 0x44, 0xc6, 0x6f, 0xb2, 0xdc, 0x21, 470311966Sngie 0xc5, 0xc8, 0x9e, 0x32, 0x71, 0x4c, 0x7a, 0x82, 471311966Sngie 0x8d, 0xe0, 0xad, 0x91, 0x88, 0x0c, 0x41, 0x83, 472311966Sngie 0x28, 0x0d, 0xed, 0xa7, 0xeb, 0x48, 0xb1, 0x31, 473311966Sngie 0xfa, 0x40, 0xd9, 0x44, 0x19, 0xee, 0x8d, 0x2c, 474311966Sngie 0x7d, 0xe2, 0x39, 0xa0, 0x39, 0xaa, 0x86, 0xab, 475311966Sngie 0xb5, 0x68, 0xe5, 0x83, 0x06, 0x61, 0xec, 0xe6, 476311966Sngie 0xc2, 0x85, 0xb2, 0x46, 0xf4, 0x5b, 0x0e, 0x34, 477311966Sngie 0x7e, 0x0c, 0xa0, 0xda, 0xef, 0x58, 0x9c, 0x39, 478311966Sngie 0x95, 0xa2, 0xca, 0xd3, 0x3b, 0x4d, 0x76, 0xe3, 479311966Sngie 0x34, 0x6d, 0x08, 0xa4, 0xba, 0x88, 0x58, 0x39, 480311966Sngie 0xb4, 0xe4, 0x6b, 0xb6, 0x32, 0x50, 0x2c, 0xe2, 481311966Sngie 0x0a, 0x37, 0xbc, 0x98, 0x38, 0x32, 0x17, 0x1b, 482311966Sngie 0x12, 0xef, 0xdc, 0x9d, 0x91, 0x09, 0x8e, 0xd8, 483311966Sngie 0xc3, 0xf8, 0x7b, 0x35, 0x41, 0x3b, 0xf8, 0xf5, 484311966Sngie 0x37, 0x48, 0x04, 0xf7, 0x94, 0xbf, 0x54, 0x8d, 485311966Sngie 0x79, 0x49, 0x8f, 0xf0, 0x3f, 0xb7, 0x90, 0x76, 486311966Sngie 0x14, 0x09, 0xc6, 0x8c, 0xba, 0x1a, 0x30, 0x1b, 487311966Sngie 0xbb, 0xd9, 0xe2, 0xb5, 0xe8, 0xd9, 0x9b, 0x68, 488311966Sngie 0x60, 0x90, 0xd3, 0x4a, 0xe8, 0x65, 0x7b, 0xaa, 489311966Sngie 0xb0, 0xda, 0x69, 0x1d, 0x45, 0x78, 0x2c, 0x3b, 490311966Sngie 0x59, 0x29, 0x3c, 0x26, 0x9a, 0xd2, 0xa5, 0xfd, 491311966Sngie 0xb7, 0x16, 0x59, 0x7c, 0x46, 0xea, 0x99, 0xd0, 492311966Sngie 0x06, 0x01, 0x3f, 0xd2, 0x23, 0xcc, 0xde, 0xb8, 493311966Sngie 0xaa, 0x88, 0x17, 0x03, 0xe1, 0x48, 0x2c, 0xdd, 494311966Sngie 0xce, 0xd1, 0x2c, 0xce, 0x37, 0xee, 0xe6, 0xa6, 495311966Sngie 0x47, 0x8c, 0x07, 0xe5, 0xfe, 0x01, 0xc6, 0x27, 496311966Sngie 0xfe, 0x3f, 0x9d, 0x30, 0x18, 0x36, 0xe7, 0xa7, 497311966Sngie 0x37, 0x1d, 0xcf, 0x6d, 0x4c, 0x82, 0xec, 0x58, 498311966Sngie 0xa1, 0x6f, 0x56, 0xc6, 0x08, 0x25, 0x94, 0xda, 499311966Sngie 0xae, 0x1a, 0x4f, 0xda, 0xb2, 0xf4, 0xbf, 0x94, 500311966Sngie 0xff, 0x66, 0x6a, 0xb1, 0x1f, 0x42, 0xfe, 0x32, 501311966Sngie 0xa4, 0x0e, 0x3d, 0x6a, 0x16, 0x44, 0xe0, 0xac, 502311966Sngie 0xe8, 0xc1, 0xe2, 0xa8, 0x73, 0xab, 0xac, 0x58, 503311966Sngie 0xb1, 0xbc, 0x94, 0xb2, 0x6a, 0xe4, 0x45, 0xf5, 504311966Sngie 0x90, 0x6b, 0x82, 0xeb, 0x9e, 0x22, 0x9e, 0xb2, 505311966Sngie 0x27, 0x3e, 0xc8, 0x55, 0xf4, 0x8f, 0xda, 0x04, 506311966Sngie 0xa3, 0x9c, 0xa4, 0x79, 0xbd, 0x79, 0xd3, 0xbd, 507311966Sngie 0xbe, 0x72, 0x7f, 0x90, 0xef, 0xc3, 0x34, 0x17, 508311966Sngie 0x72, 0x6f, 0xb4, 0xfe, 0x62, 0x56, 0xc3, 0xd6, 509311966Sngie 0x43, 0xc8, 0x4c, 0x76, 0x91, 0x04, 0x97, 0x4c, 510311966Sngie 0x84, 0x98, 0x56, 0xb7, 0x7b, 0x4f, 0xd5, 0xcf, 511311966Sngie 0x1b, 0x9c, 0x09, 0xe3, 0x1d, 0xdf, 0x0e, 0xfa, 512311966Sngie 0x39, 0xc8, 0x48, 0x43, 0x84, 0xec, 0x79, 0xc8, 513311966Sngie 0x7f, 0x4f, 0xa8, 0xc0, 0xb4, 0xde, 0x8b, 0x79, 514311966Sngie 0xcb, 0x9c, 0x42, 0x81, 0x49, 0xdc, 0x39, 0xb5, 515311966Sngie 0x31, 0xa6, 0x22, 0xba, 0x71, 0xb8, 0x2d, 0x1d, 516311966Sngie 0xc8, 0x17, 0xd8, 0x9d, 0x26, 0x2b, 0xd5, 0xcf, 517311966Sngie 0x57, 0x46, 0x0a, 0x61, 0x7e, 0xb7, 0xc3, 0x9c, 518311966Sngie 0xa6, 0x44, 0x60, 0x2d, 0x30, 0xb8, 0x10, 0x47, 519311966Sngie 0x7d, 0x7e, 0x87, 0x76, 0xc1, 0x4e, 0x85, 0x77, 520311966Sngie 0xbc, 0x30, 0x32, 0x56, 0x0a, 0x5b, 0x1c, 0xd0, 521311966Sngie 0xf6, 0x47, 0x48, 0x22, 0xf4, 0x6e, 0x38, 0xc5, 522311966Sngie 0xab, 0xe2, 0xd0, 0x4d, 0x40, 0x27, 0xab, 0x8f, 523311966Sngie 0x43, 0xb1, 0x60, 0x29, 0x07, 0xd0, 0xf5, 0x25, 524311966Sngie 0xe5, 0xfa, 0xe7, 0x46, 0x32, 0x37, 0xb9, 0xae, 525311966Sngie 0x2e, 0x02, 0x8c, 0x94, 0x15, 0x69, 0xd6, 0x74, 526311966Sngie 0xb4, 0x36, 0xdd, 0x94, 0x70, 0xa7, 0x16, 0x7b, 527311966Sngie 0x4c, 0xd3, 0x48, 0x83, 0xc5, 0xb2, 0xb0, 0x6a, 528311966Sngie 0xfe, 0x7e, 0xd4, 0xe5, 0x6d, 0xa5, 0x96, 0x20, 529311966Sngie 0x08, 0x59, 0xbd, 0x0c, 0x3d, 0x55, 0xa5, 0x03, 530311966Sngie}; 531311966Sngie 532311966Sngie/* 533311966Sngie * IV method encblkno8, blkno 2. 534311966Sngie */ 535311966Sngiestatic const uint8_t c3des_cbc_192_encblkno8_vec2_ctxt[SECSIZE] = { 536311966Sngie 0xea, 0x7c, 0x8c, 0x8e, 0x3e, 0x61, 0x34, 0x3d, 537311966Sngie 0xe0, 0x7f, 0xd3, 0xe1, 0x3a, 0xb9, 0xc8, 0xf2, 538311966Sngie 0x98, 0xdc, 0x59, 0x26, 0xd2, 0xd8, 0xa7, 0x7f, 539311966Sngie 0x41, 0x98, 0x24, 0xa8, 0x28, 0x0c, 0x88, 0x55, 540311966Sngie 0x91, 0xdb, 0x29, 0x17, 0x70, 0xd7, 0x03, 0xff, 541311966Sngie 0xbd, 0x0e, 0xbf, 0xf8, 0x73, 0x92, 0x19, 0xe9, 542311966Sngie 0x92, 0x67, 0xdb, 0x08, 0x94, 0x77, 0x71, 0x2d, 543311966Sngie 0x00, 0xad, 0x26, 0x42, 0x2d, 0xac, 0x8c, 0x67, 544311966Sngie 0x6f, 0xb3, 0x8e, 0x36, 0x22, 0xeb, 0x1f, 0x8c, 545311966Sngie 0xd4, 0x9b, 0x9f, 0xa6, 0xa9, 0xb1, 0x52, 0x65, 546311966Sngie 0x9a, 0xfe, 0xcc, 0x92, 0x48, 0x75, 0xf6, 0xb8, 547311966Sngie 0x59, 0xfe, 0x0e, 0x67, 0x93, 0xce, 0x3b, 0x7e, 548311966Sngie 0x51, 0x74, 0xe5, 0x24, 0x35, 0x08, 0x68, 0x21, 549311966Sngie 0x6a, 0x7f, 0xdd, 0x8c, 0xfd, 0xcd, 0x6d, 0x90, 550311966Sngie 0xc5, 0x3b, 0x26, 0x9e, 0x00, 0xf4, 0x1e, 0x70, 551311966Sngie 0xd3, 0xe7, 0xe8, 0x2f, 0x52, 0x87, 0x76, 0x84, 552311966Sngie 0xbb, 0x5c, 0x76, 0x5a, 0xc8, 0xea, 0x74, 0xe2, 553311966Sngie 0x9e, 0x85, 0xf6, 0x53, 0x85, 0x1a, 0x6e, 0x02, 554311966Sngie 0x0d, 0x32, 0x11, 0xc4, 0xec, 0xee, 0x79, 0x27, 555311966Sngie 0xda, 0xca, 0xc0, 0x0b, 0x8e, 0x2d, 0xb7, 0x7d, 556311966Sngie 0x8c, 0x6e, 0xfb, 0xa3, 0xa8, 0x24, 0x24, 0x62, 557311966Sngie 0xc8, 0xdd, 0xc7, 0x16, 0x09, 0x33, 0x0f, 0xe5, 558311966Sngie 0xc8, 0x60, 0x3d, 0xb6, 0xbf, 0x6c, 0x28, 0xd2, 559311966Sngie 0x0b, 0x9c, 0xd9, 0xcb, 0x64, 0x49, 0xe4, 0x80, 560311966Sngie 0x72, 0x58, 0xaa, 0xaa, 0x7e, 0x1d, 0x9f, 0xd7, 561311966Sngie 0x29, 0x15, 0x65, 0xfc, 0xfd, 0x3f, 0xe1, 0x82, 562311966Sngie 0x25, 0x3c, 0xd4, 0xbe, 0x59, 0x79, 0x63, 0xd1, 563311966Sngie 0xd6, 0x0e, 0xda, 0x00, 0xf3, 0xaa, 0x13, 0xd3, 564311966Sngie 0xed, 0xef, 0xca, 0x8b, 0x97, 0x15, 0x2d, 0x10, 565311966Sngie 0x6f, 0xcf, 0xee, 0xc7, 0x21, 0xad, 0xe3, 0xe4, 566311966Sngie 0xd8, 0x95, 0x21, 0x1f, 0xc0, 0x06, 0x3a, 0xbc, 567311966Sngie 0xbb, 0x2a, 0x92, 0x78, 0x76, 0x9d, 0x1e, 0x7b, 568311966Sngie 0xb5, 0x29, 0xaf, 0x96, 0x75, 0x2b, 0x41, 0xbd, 569311966Sngie 0xae, 0x79, 0x28, 0x72, 0xe7, 0x54, 0xc4, 0x08, 570311966Sngie 0xd3, 0xd2, 0xac, 0x96, 0xd0, 0x0f, 0x9b, 0x68, 571311966Sngie 0x7d, 0x3f, 0xc2, 0xdd, 0x3d, 0xfc, 0xca, 0xcd, 572311966Sngie 0x11, 0x71, 0xd9, 0x48, 0x53, 0x9f, 0xd3, 0x79, 573311966Sngie 0x7d, 0x47, 0x71, 0x2a, 0x6d, 0x9e, 0xa9, 0x47, 574311966Sngie 0xa1, 0xf7, 0x97, 0x80, 0x83, 0x70, 0x6b, 0xfe, 575311966Sngie 0x10, 0x11, 0x6a, 0x0e, 0xdd, 0xde, 0x22, 0x3c, 576311966Sngie 0x19, 0x30, 0x73, 0x73, 0x2e, 0x4b, 0x54, 0x17, 577311966Sngie 0xc3, 0x2e, 0xe9, 0xce, 0xe0, 0xe3, 0xa0, 0x1a, 578311966Sngie 0x28, 0xd1, 0x50, 0xa8, 0xd2, 0x40, 0xe2, 0x1b, 579311966Sngie 0xfa, 0x49, 0x06, 0x49, 0x8b, 0x4b, 0xd9, 0xd5, 580311966Sngie 0xf5, 0x50, 0xae, 0x64, 0x19, 0xe1, 0xd9, 0x4e, 581311966Sngie 0xbb, 0x29, 0x70, 0x66, 0x46, 0xa8, 0x7e, 0x5b, 582311966Sngie 0xdc, 0xe2, 0xd5, 0x9d, 0x56, 0x6d, 0x4c, 0xe6, 583311966Sngie 0x0e, 0x6b, 0x71, 0x40, 0x82, 0xf7, 0xb3, 0xad, 584311966Sngie 0x23, 0x17, 0xe3, 0x1c, 0x61, 0x1d, 0x3b, 0x71, 585311966Sngie 0xfc, 0x06, 0x17, 0xec, 0x6c, 0x77, 0x98, 0x27, 586311966Sngie 0xc7, 0x4b, 0x65, 0x17, 0x81, 0xe7, 0xcb, 0xce, 587311966Sngie 0x09, 0x76, 0x82, 0x82, 0x4a, 0x53, 0x67, 0xa0, 588311966Sngie 0x05, 0x25, 0x4c, 0xc4, 0xa7, 0xad, 0xa7, 0xaf, 589311966Sngie 0xa0, 0x11, 0xd7, 0x73, 0x3b, 0x30, 0xbf, 0x53, 590311966Sngie 0x50, 0x9b, 0xd8, 0xf3, 0x32, 0x15, 0xdd, 0x36, 591311966Sngie 0x88, 0xc2, 0x39, 0x51, 0xb6, 0xb8, 0x0d, 0x5c, 592311966Sngie 0x20, 0x4e, 0x24, 0xee, 0x95, 0x32, 0x61, 0x25, 593311966Sngie 0xda, 0x73, 0x0d, 0x8a, 0x58, 0xe6, 0xcc, 0xad, 594311966Sngie 0x79, 0x3d, 0xef, 0x29, 0x0c, 0x9f, 0xe1, 0xa7, 595311966Sngie 0x22, 0x1e, 0xea, 0x7a, 0x4f, 0xfb, 0xc1, 0x1f, 596311966Sngie 0x17, 0xca, 0x69, 0xd6, 0xa4, 0xce, 0x6e, 0xc0, 597311966Sngie 0x70, 0xa3, 0x08, 0x32, 0x87, 0xb4, 0x6b, 0x80, 598311966Sngie 0x5c, 0x7f, 0x88, 0x5c, 0xbf, 0x07, 0xd8, 0xe9, 599311966Sngie 0xdd, 0xd2, 0x76, 0xa9, 0xaa, 0xd9, 0x55, 0x48, 600311966Sngie}; 601311966Sngie 602311966Sngie/* 603311966Sngie * IV method encblkno8, blkno 3. 604311966Sngie */ 605311966Sngiestatic const uint8_t c3des_cbc_192_encblkno8_vec3_ctxt[SECSIZE] = { 606311966Sngie 0xf3, 0x49, 0xda, 0x5c, 0xde, 0x9d, 0x3e, 0x9d, 607311966Sngie 0xb9, 0xc2, 0x6e, 0x96, 0xa9, 0x93, 0x10, 0x73, 608311966Sngie 0x0e, 0x26, 0x39, 0xd6, 0x9f, 0x04, 0x5f, 0x69, 609311966Sngie 0x54, 0xa3, 0x7c, 0x46, 0x7b, 0x18, 0x93, 0xc0, 610311966Sngie 0xbb, 0x0c, 0x96, 0x6f, 0xb0, 0xbf, 0xce, 0x67, 611311966Sngie 0x33, 0x3e, 0x56, 0xe8, 0x6b, 0x4d, 0x3f, 0xc8, 612311966Sngie 0x3c, 0xc6, 0x89, 0x2c, 0x0b, 0x95, 0x3a, 0xaf, 613311966Sngie 0xc0, 0xf3, 0x1f, 0x0e, 0x07, 0x01, 0xa6, 0x35, 614311966Sngie 0x19, 0x79, 0x91, 0x24, 0xaa, 0x0d, 0xf0, 0x53, 615311966Sngie 0x27, 0x7d, 0xbb, 0xa6, 0xb6, 0x44, 0x31, 0x4b, 616311966Sngie 0xd4, 0xcf, 0xf6, 0x6d, 0x18, 0xa2, 0x28, 0x8a, 617311966Sngie 0xc1, 0x0a, 0xbe, 0x57, 0x0c, 0x61, 0x5f, 0xd9, 618311966Sngie 0x12, 0x14, 0xfe, 0xe2, 0xc7, 0x10, 0x72, 0xee, 619311966Sngie 0x19, 0xb8, 0x16, 0x0b, 0x88, 0x87, 0xce, 0xf3, 620311966Sngie 0xfe, 0x57, 0x37, 0xd1, 0xa2, 0xf7, 0xd0, 0x5e, 621311966Sngie 0x73, 0xde, 0x39, 0x35, 0xbc, 0xde, 0xed, 0x61, 622311966Sngie 0x4b, 0x31, 0xdc, 0xfe, 0x3c, 0x4d, 0x98, 0xa9, 623311966Sngie 0x36, 0xb0, 0x34, 0x5b, 0xb4, 0xb7, 0x79, 0x25, 624311966Sngie 0x6e, 0x24, 0x7e, 0x10, 0xfe, 0x20, 0xd5, 0x16, 625311966Sngie 0x86, 0xaf, 0xcd, 0x26, 0x34, 0xd3, 0x2e, 0xdc, 626311966Sngie 0x7c, 0x69, 0xe3, 0xc5, 0x62, 0x0c, 0xba, 0x29, 627311966Sngie 0x9c, 0x4b, 0x2f, 0x39, 0x45, 0xe1, 0xcf, 0xc5, 628311966Sngie 0xfe, 0x35, 0xb6, 0x2f, 0xb1, 0x1a, 0x90, 0xe1, 629311966Sngie 0xa7, 0x39, 0xe8, 0x1e, 0x5f, 0xac, 0xab, 0x1e, 630311966Sngie 0x32, 0xba, 0xc5, 0x92, 0x39, 0x62, 0x37, 0x2c, 631311966Sngie 0x49, 0xf1, 0x62, 0x90, 0xf7, 0x1e, 0x10, 0xce, 632311966Sngie 0x8e, 0x95, 0xa3, 0xc6, 0xd8, 0xe5, 0xc8, 0xdf, 633311966Sngie 0xcc, 0x94, 0x7d, 0x26, 0xab, 0x29, 0xbb, 0x9d, 634311966Sngie 0xf3, 0x73, 0xce, 0xac, 0x76, 0xdf, 0x75, 0x2a, 635311966Sngie 0x3e, 0x8f, 0x47, 0xff, 0x76, 0xfe, 0xea, 0xd4, 636311966Sngie 0x4a, 0xa9, 0x36, 0x9d, 0x12, 0x45, 0xb7, 0x99, 637311966Sngie 0x81, 0xb6, 0x77, 0x98, 0x13, 0xfb, 0x5a, 0xe5, 638311966Sngie 0x40, 0x87, 0x61, 0x0d, 0x10, 0x76, 0xf6, 0x3e, 639311966Sngie 0x48, 0xac, 0xc4, 0x27, 0x87, 0xcd, 0x07, 0xde, 640311966Sngie 0x0b, 0x23, 0x97, 0x61, 0x3d, 0x18, 0x64, 0x7f, 641311966Sngie 0xbf, 0xd6, 0x87, 0xc1, 0x11, 0xfb, 0xf9, 0xda, 642311966Sngie 0x14, 0xa1, 0x01, 0xf8, 0x7e, 0xea, 0x5b, 0x5b, 643311966Sngie 0xdd, 0x09, 0xf9, 0x31, 0x80, 0x3c, 0xee, 0x34, 644311966Sngie 0x2d, 0xda, 0x71, 0xd9, 0x32, 0x7d, 0x45, 0xb2, 645311966Sngie 0x53, 0xea, 0xd5, 0x7c, 0x85, 0x45, 0xce, 0x1d, 646311966Sngie 0x2b, 0xe9, 0xd7, 0x95, 0xf8, 0x8c, 0x08, 0xe4, 647311966Sngie 0xd0, 0x2f, 0x60, 0x75, 0x02, 0xf3, 0xde, 0xeb, 648311966Sngie 0x46, 0x40, 0xa8, 0xd2, 0x37, 0xd6, 0xca, 0x5d, 649311966Sngie 0xb9, 0xf4, 0x51, 0x31, 0x8a, 0x1a, 0x82, 0xbd, 650311966Sngie 0x6f, 0x6d, 0x88, 0x2b, 0x63, 0x0f, 0xe1, 0xf0, 651311966Sngie 0xcf, 0x13, 0x79, 0x1d, 0x78, 0x82, 0x66, 0xa1, 652311966Sngie 0xef, 0xdb, 0x34, 0x50, 0xd2, 0x71, 0x47, 0x49, 653311966Sngie 0x41, 0x74, 0xd9, 0x0b, 0x14, 0x38, 0x1f, 0xc3, 654311966Sngie 0x09, 0x4d, 0xb3, 0xa6, 0x03, 0x3f, 0x56, 0x67, 655311966Sngie 0xd7, 0x51, 0x4c, 0x8a, 0x1d, 0x37, 0x99, 0xfb, 656311966Sngie 0xe1, 0x84, 0x57, 0x55, 0x9b, 0xf8, 0x73, 0x63, 657311966Sngie 0x68, 0x73, 0x89, 0x52, 0x06, 0xe7, 0x34, 0xe7, 658311966Sngie 0x1a, 0x15, 0x7e, 0xd9, 0x84, 0xa3, 0x0e, 0x68, 659311966Sngie 0x14, 0x1c, 0xe8, 0x23, 0x9e, 0xe3, 0x8f, 0x71, 660311966Sngie 0x02, 0x9b, 0x87, 0xd4, 0xd9, 0x1b, 0xd1, 0x9e, 661311966Sngie 0x9e, 0xa0, 0x7e, 0x49, 0x8e, 0xaa, 0x89, 0xb5, 662311966Sngie 0x16, 0x48, 0x07, 0xb3, 0x3d, 0x9e, 0x4c, 0x35, 663311966Sngie 0x3e, 0x94, 0xa9, 0xf8, 0x82, 0x50, 0x6a, 0x41, 664311966Sngie 0x28, 0x3e, 0x9f, 0x9a, 0x1a, 0x5d, 0x02, 0x7c, 665311966Sngie 0xd0, 0x32, 0x52, 0xa5, 0xee, 0x09, 0x27, 0x2d, 666311966Sngie 0x49, 0x17, 0xf7, 0x92, 0xa1, 0x63, 0x9d, 0x2a, 667311966Sngie 0xfd, 0x53, 0x26, 0x14, 0x7c, 0x92, 0x72, 0xa6, 668311966Sngie 0x38, 0x18, 0x8f, 0xb5, 0x54, 0xb3, 0x69, 0x63, 669311966Sngie 0x6a, 0xdc, 0xb1, 0x5a, 0x12, 0x7a, 0x0b, 0xa3, 670311966Sngie}; 671311966Sngie 672311966Sngieconst struct testvec c3des_cbc_192_8_vectors[] = { 673311966Sngie { 674311966Sngie .blkno = 0, 675311966Sngie .ptxt = c3des_cbc_ptxt, 676311966Sngie .ctxt = c3des_cbc_192_encblkno8_vec0_ctxt, 677311966Sngie }, 678311966Sngie { 679311966Sngie .blkno = 1, 680311966Sngie .ptxt = c3des_cbc_ptxt, 681311966Sngie .ctxt = c3des_cbc_192_encblkno8_vec1_ctxt, 682311966Sngie }, 683311966Sngie { 684311966Sngie .blkno = 2, 685311966Sngie .ptxt = c3des_cbc_ptxt, 686311966Sngie .ctxt = c3des_cbc_192_encblkno8_vec2_ctxt, 687311966Sngie }, 688311966Sngie { 689311966Sngie .blkno = 3, 690311966Sngie .ptxt = c3des_cbc_ptxt, 691311966Sngie .ctxt = c3des_cbc_192_encblkno8_vec3_ctxt, 692311966Sngie }, 693311966Sngie}; 694311966Sngie 695311966Sngiestatic int 696311966Sngieopen_disk(const char *devpath, const char *imgpath, size_t size) 697311966Sngie{ 698311966Sngie int fd; 699311966Sngie 700311966Sngie fd = open(imgpath, O_CREAT | O_RDWR | O_TRUNC, 0600); 701311966Sngie if (fd < 0) 702311966Sngie return -1; 703311966Sngie 704311966Sngie if (ftruncate(fd, size) < 0) 705311966Sngie goto fail; 706311966Sngie 707311966Sngie if (rump_pub_etfs_register_withsize(devpath, 708311966Sngie imgpath, RUMP_ETFS_BLK, 0, size) < 0) { 709311966Sngie goto fail; 710311966Sngie } 711311966Sngie 712311966Sngie unlink(imgpath); 713311966Sngie return fd; 714311966Sngiefail: 715311966Sngie close(fd); 716311966Sngie unlink(imgpath); 717311966Sngie return -1; 718311966Sngie} 719311966Sngie 720311966Sngiestatic int 721311966Sngieopen_cgd(int devno) 722311966Sngie{ 723311966Sngie char devpath[32]; 724311966Sngie 725311966Sngie sprintf(devpath, "/dev/rcgd%d%c", devno, getrawpartition() + 'a'); 726311966Sngie 727311966Sngie return rump_sys_open(devpath, O_RDWR, 0); 728311966Sngie} 729311966Sngie 730311966Sngiestatic int 731311966Sngieconfigure_cgd(int fd, const char *dkpath, const char *alg, 732311966Sngie const char *ivmethod, const char *key, size_t keylen) 733311966Sngie{ 734311966Sngie struct cgd_ioctl ci; 735311966Sngie 736311966Sngie memset(&ci, 0, sizeof(ci)); 737311966Sngie ci.ci_disk = dkpath; 738311966Sngie ci.ci_alg = alg; 739311966Sngie ci.ci_ivmethod = ivmethod; 740311966Sngie ci.ci_keylen = 8 * keylen - 8; /* Exclude the NUL terminator. */ 741311966Sngie ci.ci_key = key; 742311966Sngie ci.ci_blocksize = 64; 743311966Sngie 744311966Sngie return rump_sys_ioctl(fd, CGDIOCSET, &ci); 745311966Sngie} 746311966Sngie 747311966Sngiestatic int 748311966Sngieunconfigure_cgd(int fd) 749311966Sngie{ 750311966Sngie struct cgd_ioctl ci; 751311966Sngie 752311966Sngie return rump_sys_ioctl(fd, CGDIOCCLR, &ci); 753311966Sngie} 754311966Sngie 755311966Sngiestatic int 756311966Sngiewrite_testvec(int cgdfd, const struct testvec *tv) 757311966Sngie{ 758311966Sngie 759311966Sngie if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0) 760311966Sngie return -1; 761311966Sngie 762311966Sngie if (rump_sys_write(cgdfd, tv->ptxt, SECSIZE) != SECSIZE) 763311966Sngie return -1; 764311966Sngie 765311966Sngie return 0; 766311966Sngie} 767311966Sngie 768311966Sngiestatic int 769311966Sngieread_testvec(int cgdfd, const struct testvec *tv) 770311966Sngie{ 771311966Sngie char *buf; 772311966Sngie int res = -1; 773311966Sngie 774311966Sngie buf = malloc(SECSIZE); 775311966Sngie if (buf == NULL) 776311966Sngie return -1; 777311966Sngie 778311966Sngie if (rump_sys_lseek(cgdfd, tv->blkno * SECSIZE, SEEK_SET) < 0) 779311966Sngie goto fail; 780311966Sngie 781311966Sngie if (rump_sys_read(cgdfd, buf, SECSIZE) != SECSIZE) 782311966Sngie goto fail; 783311966Sngie 784311966Sngie res = memcmp(buf, tv->ptxt, SECSIZE); 785311966Sngiefail: 786311966Sngie free(buf); 787311966Sngie return res; 788311966Sngie} 789311966Sngie 790311966Sngiestatic int 791311966Sngiecheck_testvec(int dkfd, const struct testvec *tv) 792311966Sngie{ 793311966Sngie char *buf; 794311966Sngie int res = -1; 795311966Sngie 796311966Sngie buf = malloc(SECSIZE); 797311966Sngie if (buf == NULL) 798311966Sngie return -1; 799311966Sngie 800311966Sngie if (lseek(dkfd, tv->blkno * SECSIZE, SEEK_SET) < 0) 801311966Sngie goto fail; 802311966Sngie 803311966Sngie if (read(dkfd, buf, SECSIZE) != SECSIZE) 804311966Sngie goto fail; 805311966Sngie 806311966Sngie res = memcmp(buf, tv->ctxt, SECSIZE); 807311966Sngiefail: 808311966Sngie free(buf); 809311966Sngie return res; 810311966Sngie} 811311966Sngie 812311966SngieATF_TC(cgd_3des_cbc_192_encblkno1); 813311966SngieATF_TC_HEAD(cgd_3des_cbc_192_encblkno1, tc) 814311966Sngie{ 815311966Sngie atf_tc_set_md_var(tc, "descr", 816311966Sngie "Test 3des-cbc with 192 bits key, ivmethod encblkno1"); 817311966Sngie} 818311966Sngie 819311966SngieATF_TC_BODY(cgd_3des_cbc_192_encblkno1, tc) 820311966Sngie{ 821311966Sngie const char imgpath[] = "3des-cbc-192-encblkno1.img"; 822311966Sngie const char *dkpath = "/dev/dk"; 823311966Sngie const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */ 824311966Sngie int dkfd, cgdfd; 825311966Sngie 826311966Sngie rump_init(); 827311966Sngie 828311966Sngie RL(dkfd = open_disk(dkpath, imgpath, dksize)); 829311966Sngie 830311966Sngie RL(cgdfd = open_cgd(0)); 831311966Sngie RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno1", 832311966Sngie c3des_cbc_192_key, sizeof(c3des_cbc_192_key))); 833311966Sngie 834311966Sngie ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[0]), 0); 835311966Sngie ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[1]), 0); 836311966Sngie ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[2]), 0); 837311966Sngie ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_1_vectors[3]), 0); 838311966Sngie 839311966Sngie RL(unconfigure_cgd(cgdfd)); 840311966Sngie RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno1", 841311966Sngie c3des_cbc_192_key, sizeof(c3des_cbc_192_key))); 842311966Sngie 843311966Sngie ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[0]), 0); 844311966Sngie ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[1]), 0); 845311966Sngie ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[2]), 0); 846311966Sngie ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_1_vectors[3]), 0); 847311966Sngie 848311966Sngie RL(unconfigure_cgd(cgdfd)); 849311966Sngie RL(rump_sys_close(cgdfd)); 850311966Sngie 851311966Sngie ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[0]), 0); 852311966Sngie ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[1]), 0); 853311966Sngie ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[2]), 0); 854311966Sngie ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_1_vectors[3]), 0); 855311966Sngie 856311966Sngie RL(close(dkfd)); 857311966Sngie} 858311966Sngie 859311966SngieATF_TC(cgd_3des_cbc_192_encblkno8); 860311966SngieATF_TC_HEAD(cgd_3des_cbc_192_encblkno8, tc) 861311966Sngie{ 862311966Sngie atf_tc_set_md_var(tc, "descr", 863311966Sngie "Test 3des-cbc with 192 bits key, ivmethod encblkno8"); 864311966Sngie} 865311966Sngie 866311966SngieATF_TC_BODY(cgd_3des_cbc_192_encblkno8, tc) 867311966Sngie{ 868311966Sngie const char imgpath[] = "3des-cbc-192-encblkno8.img"; 869311966Sngie const char *dkpath = "/dev/dk"; 870311966Sngie const size_t dksize = 4 * SECSIZE; /* Last blkno is 3. */ 871311966Sngie int dkfd, cgdfd; 872311966Sngie 873311966Sngie rump_init(); 874311966Sngie 875311966Sngie RL(dkfd = open_disk(dkpath, imgpath, dksize)); 876311966Sngie 877311966Sngie RL(cgdfd = open_cgd(0)); 878311966Sngie RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno8", 879311966Sngie c3des_cbc_192_key, sizeof(c3des_cbc_192_key))); 880311966Sngie 881311966Sngie ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[0]), 0); 882311966Sngie ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[1]), 0); 883311966Sngie ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[2]), 0); 884311966Sngie ATF_CHECK_EQ(write_testvec(cgdfd, &c3des_cbc_192_8_vectors[3]), 0); 885311966Sngie 886311966Sngie RL(unconfigure_cgd(cgdfd)); 887311966Sngie RL(configure_cgd(cgdfd, dkpath, "3des-cbc", "encblkno8", 888311966Sngie c3des_cbc_192_key, sizeof(c3des_cbc_192_key))); 889311966Sngie 890311966Sngie ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[0]), 0); 891311966Sngie ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[1]), 0); 892311966Sngie ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[2]), 0); 893311966Sngie ATF_CHECK_EQ(read_testvec(cgdfd, &c3des_cbc_192_8_vectors[3]), 0); 894311966Sngie 895311966Sngie RL(unconfigure_cgd(cgdfd)); 896311966Sngie RL(rump_sys_close(cgdfd)); 897311966Sngie 898311966Sngie ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[0]), 0); 899311966Sngie ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[1]), 0); 900311966Sngie ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[2]), 0); 901311966Sngie ATF_CHECK_EQ(check_testvec(dkfd, &c3des_cbc_192_8_vectors[3]), 0); 902311966Sngie 903311966Sngie RL(close(dkfd)); 904311966Sngie} 905311966Sngie 906311966SngieATF_TP_ADD_TCS(tp) 907311966Sngie{ 908311966Sngie 909311966Sngie ATF_TP_ADD_TC(tp, cgd_3des_cbc_192_encblkno1); 910311966Sngie ATF_TP_ADD_TC(tp, cgd_3des_cbc_192_encblkno8); 911311966Sngie 912311966Sngie return atf_no_error(); 913311966Sngie} 914