From patchwork Thu Feb 8 00:10:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 10206379 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 02C44602D8 for ; Thu, 8 Feb 2018 00:11:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E4A3E290F1 for ; Thu, 8 Feb 2018 00:11:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D1BFE2911A; Thu, 8 Feb 2018 00:11:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0954F29151 for ; Thu, 8 Feb 2018 00:11:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750729AbeBHALQ (ORCPT ); Wed, 7 Feb 2018 19:11:16 -0500 Received: from mail-it0-f65.google.com ([209.85.214.65]:50730 "EHLO mail-it0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751946AbeBHALL (ORCPT ); Wed, 7 Feb 2018 19:11:11 -0500 Received: by mail-it0-f65.google.com with SMTP id x128so4502753ite.0 for ; Wed, 07 Feb 2018 16:11:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=TKxyrYS/guc/ep8eRRFLmjb7AyYt3ylfKt1Ym0V/RFI=; b=btXXyPw/YsjyFNbJkoDMVhmVk9JwIngHK/128LTUdG5XKR68X/1zAlHSVBuJLD/KAj 1wLJl4K/JNXJENa0MkcmIHUkxUovoPz7doDfC3BKTlZ//eq9MSxwxb4Pes+eRAnuAZQO 7qFkvYx6+mMdEv4QqgpLOSv5tsl43Xx6pulLa6xYbpyfpB9obWwNIw7WiaEtTZXx5Lpc fsf+XMfCYjRcLZ/P2sOmPId1MIiOEhP/Eezfk2dbrqytaQ/4nBAOGUEmwAG/5YjKIQlR qEb+pz6khsfMmrfTOIkt/MngmAitSeYtBHRbMu3+qYY7jZfq5Iog1iyBT30KPkcU4FLj 5rqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=TKxyrYS/guc/ep8eRRFLmjb7AyYt3ylfKt1Ym0V/RFI=; b=hjJtoJ/IzHhblqavCEcThyuQT3/PJDJaovykqFWPCnUO2G727p2ZnlBJ6G+b+pGHul 4kEzft5zM3w+htocAkx0ybzfZ5LwTgIMh5+gofIc2XFMbgQka9A2x92G63AQ0oYh7lCi ik4TtNBpalIjyl6GdmkmxenDodFAhVR/wXQmzZGVVP9X2gqkCPRSqF1H1Seo78hTTtcS Sx4kpgEFtgjpY4R1+2q7nLu/BkyjWgzwwjOJ42ATrHxvZQeEA2SFwN2a94zEjfGH8e0/ wSJxduu8auOf330WbjBbbb34Uol2CyPCQKJyBrCttwsvHeDCF8oIwsjbndatwAYo08gM /ghA== X-Gm-Message-State: APf1xPDi1Ry3tt7V+Kvw8XaWzHW3b/8oVWWk8rcGr5QOd0994QMNeGUY KeCvgK31f3QCQorz2Y3GMAUkxMoFv3U= X-Google-Smtp-Source: AH8x225V9i277PsEl+22bZI+RMxJerPhOTuY6kZZLbynY4nQ9/0v7tXFOiwN41ufuWI0jLqlPIa5bQ== X-Received: by 10.36.68.206 with SMTP id o197mr10556224ita.97.1518048669665; Wed, 07 Feb 2018 16:11:09 -0800 (PST) Received: from ebiggers-linuxstation.kir.corp.google.com ([2620:15c:17:3:dc28:5c82:b905:e8a8]) by smtp.gmail.com with ESMTPSA id f7sm2620433ioe.81.2018.02.07.16.11.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Feb 2018 16:11:08 -0800 (PST) From: Eric Biggers To: linux-crypto@vger.kernel.org, Herbert Xu Cc: linux-fscrypt@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Ard Biesheuvel , Paul Crowley , Patrik Torstensson , Paul Lawrence , Michael Halcrow , Alex Cope , Greg Kroah-Hartman , Eric Biggers Subject: [PATCH 4/5] crypto: speck - add test vectors for Speck128-XTS Date: Wed, 7 Feb 2018 16:10:00 -0800 Message-Id: <20180208001001.19180-5-ebiggers@google.com> X-Mailer: git-send-email 2.16.0.rc1.238.g530d649a79-goog In-Reply-To: <20180208001001.19180-1-ebiggers@google.com> References: <20180208001001.19180-1-ebiggers@google.com> Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add test vectors for Speck128-XTS, generated in userspace using C code. The inputs were borrowed from the AES-XTS test vectors. Both xts(speck128-generic) and xts-speck128-neon pass these tests. Signed-off-by: Eric Biggers --- crypto/testmgr.c | 9 + crypto/testmgr.h | 687 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 696 insertions(+) diff --git a/crypto/testmgr.c b/crypto/testmgr.c index d5be42149e29..6583c11f0f0b 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c @@ -3575,6 +3575,15 @@ static const struct alg_test_desc alg_test_descs[] = { .dec = __VECS(serpent_xts_dec_tv_template) } } + }, { + .alg = "xts(speck128)", + .test = alg_test_skcipher, + .suite = { + .cipher = { + .enc = __VECS(speck128_xts_enc_tv_template), + .dec = __VECS(speck128_xts_dec_tv_template), + } + } }, { .alg = "xts(twofish)", .test = alg_test_skcipher, diff --git a/crypto/testmgr.h b/crypto/testmgr.h index 255de47f1d20..4c0fbf5cec75 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h @@ -14403,6 +14403,693 @@ static const struct cipher_testvec speck128_dec_tv_template[] = { }, }; +/* + * Speck128-XTS test vectors, taken from the AES-XTS test vectors with the + * result recomputed with Speck128 as the cipher + */ + +static const struct cipher_testvec speck128_xts_enc_tv_template[] = { + { + .key = "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .klen = 32, + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .input = "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .ilen = 32, + .result = "\x3b\x99\x4a\x64\x74\x77\xac\xed" + "\xbe\xa0\xe7\x03\xd7\xfe\xab\x62" + "\x51\xd9\xb6\x1d\xe0\x5e\xbc\x54" + "\xd8\xf4\xa6\xcf\xae\xb9\x07\x42", + .rlen = 32, + }, { + .key = "\x11\x11\x11\x11\x11\x11\x11\x11" + "\x11\x11\x11\x11\x11\x11\x11\x11" + "\x22\x22\x22\x22\x22\x22\x22\x22" + "\x22\x22\x22\x22\x22\x22\x22\x22", + .klen = 32, + .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .input = "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44", + .ilen = 32, + .result = "\x31\x9c\x54\x41\x95\xdd\x0b\x6d" + "\xa4\x68\xf7\x31\x49\x83\xd3\x9b" + "\x68\x83\x4e\x5f\x80\x78\x7f\x6f" + "\xd6\x93\xce\x6e\x0a\x9e\xfc\x85", + .rlen = 32, + }, { + .key = "\xff\xfe\xfd\xfc\xfb\xfa\xf9\xf8" + "\xf7\xf6\xf5\xf4\xf3\xf2\xf1\xf0" + "\x22\x22\x22\x22\x22\x22\x22\x22" + "\x22\x22\x22\x22\x22\x22\x22\x22", + .klen = 32, + .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .input = "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44", + .ilen = 32, + .result = "\x96\xbc\x98\xee\x4b\x3d\xb7\x55" + "\xfb\xe2\x0f\x52\x9e\x35\x5e\x3c" + "\xab\xd2\xaf\xe2\x0c\xc6\x46\x77" + "\x4f\x32\x6a\xa5\x10\x75\xc9\x12", + .rlen = 32, + }, { + .key = "\x27\x18\x28\x18\x28\x45\x90\x45" + "\x23\x53\x60\x28\x74\x71\x35\x26" + "\x31\x41\x59\x26\x53\x58\x97\x93" + "\x23\x84\x62\x64\x33\x83\x27\x95", + .klen = 32, + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + "\x10\x11\x12\x13\x14\x15\x16\x17" + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x21\x22\x23\x24\x25\x26\x27" + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" + "\x30\x31\x32\x33\x34\x35\x36\x37" + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" + "\x40\x41\x42\x43\x44\x45\x46\x47" + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" + "\x50\x51\x52\x53\x54\x55\x56\x57" + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" + "\x60\x61\x62\x63\x64\x65\x66\x67" + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" + "\x70\x71\x72\x73\x74\x75\x76\x77" + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" + "\x80\x81\x82\x83\x84\x85\x86\x87" + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" + "\x90\x91\x92\x93\x94\x95\x96\x97" + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" + "\x00\x01\x02\x03\x04\x05\x06\x07" + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + "\x10\x11\x12\x13\x14\x15\x16\x17" + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x21\x22\x23\x24\x25\x26\x27" + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" + "\x30\x31\x32\x33\x34\x35\x36\x37" + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" + "\x40\x41\x42\x43\x44\x45\x46\x47" + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" + "\x50\x51\x52\x53\x54\x55\x56\x57" + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" + "\x60\x61\x62\x63\x64\x65\x66\x67" + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" + "\x70\x71\x72\x73\x74\x75\x76\x77" + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" + "\x80\x81\x82\x83\x84\x85\x86\x87" + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" + "\x90\x91\x92\x93\x94\x95\x96\x97" + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", + .ilen = 512, + .result = "\x53\x43\x2f\x73\x46\x14\xe8\xa0" + "\xd4\xf2\x41\x65\x6d\x95\xb9\x1d" + "\x12\xb5\x92\xd0\x5e\x8b\x85\x6d" + "\x88\xba\xb8\x89\x0d\x2d\x81\x2b" + "\x1a\x21\x28\x58\x3d\xcc\xb1\x5e" + "\x53\x1c\xa1\x12\xe1\x03\xb7\x34" + "\x37\xb8\x60\x28\x90\xcb\x16\x43" + "\x9d\x47\x8a\xc4\x4f\x47\x74\xa4" + "\x84\x9e\xb3\x3e\x5d\x4d\x95\x9b" + "\x43\xcb\xf7\x03\xa9\xe9\x9b\xf4" + "\xc5\x13\x3a\xa9\x2b\x18\xd8\xb6" + "\x58\xbd\x2a\xb9\x79\x4a\x8e\x99" + "\x9b\x57\x1a\x2e\xf8\x3e\xd2\x8b" + "\x52\x31\x1c\x45\x73\xb6\x12\x8f" + "\xda\xf0\xa1\x8d\x9f\xf4\xaa\x7b" + "\xc1\x6b\xbc\xe3\x4b\xda\xd8\x91" + "\xe3\x48\x73\x06\x08\xf6\x01\xf1" + "\x41\xba\x46\x08\xbf\x22\x3d\x74" + "\x44\x12\xbc\x43\x34\x66\x94\x68" + "\xb2\xb7\x56\x26\xdc\x7f\x1e\xd2" + "\xb2\xfc\x52\x50\xbf\x4c\x02\xf8" + "\xb5\xca\x2f\xe9\x00\xab\x28\x6c" + "\xbe\x9e\x27\x10\x2f\xea\x76\x70" + "\xfa\x18\x6d\x56\x35\x37\xc5\xc1" + "\x20\xef\xf4\xcb\x85\x05\x0f\xe2" + "\xe9\x0a\xff\x1e\xad\x0f\xb2\x99" + "\xc6\x4c\x8d\xd9\x97\xc6\x9e\x7c" + "\xa0\x19\x29\x1e\xe7\x23\xda\x41" + "\xe7\x18\x00\x24\xec\x02\xef\x96" + "\xec\x51\xcc\xe9\x7c\xbc\x00\xa9" + "\x99\x53\x78\x1d\xe4\xac\x9e\x42" + "\xf2\x2f\xc4\x75\x17\x42\xa2\x7b" + "\x0e\xc9\xf0\xd7\x79\xd9\x89\x33" + "\x50\x4c\xaa\x5c\xc3\x65\xd0\x0b" + "\xba\xb9\x5f\x94\x91\x07\xa3\xd2" + "\x8c\xe3\xfc\xea\x9a\xad\xa4\xc2" + "\x5a\xd9\x34\x99\x67\xb4\xbe\x75" + "\x30\x55\x9f\x6a\x32\x1d\xb9\x00" + "\xd3\x31\xac\xe9\x64\x62\x4c\x53" + "\xd0\xcc\x4a\x06\xe5\x14\x76\x9e" + "\xa4\x6c\x27\x2f\x93\x74\xca\x33" + "\x5e\xf2\xfa\x1b\x6e\xc5\x06\x85" + "\x1b\x39\xac\x53\xb2\xdd\x2e\xe7" + "\x76\x3a\x92\xcf\x17\x0a\x22\xb6" + "\x2f\x99\x28\xff\x93\xca\xd0\x66" + "\x9b\xe9\x0c\xe2\x93\xd3\x59\x1e" + "\x62\x9e\x54\x4d\xeb\x67\x70\x2c" + "\x78\x44\x5c\x0a\xcc\x9b\xf9\xb5" + "\x33\xe6\x84\x99\xcd\x32\xa6\x0c" + "\x54\x38\x11\x55\xda\x05\x0b\xc2" + "\xdc\x0a\x9b\x1e\xcb\xa1\x4e\x8a" + "\x66\x38\x8f\x68\xc5\x21\x0f\x5e" + "\x9e\x60\x3c\x46\x5e\xbe\x1a\xc1" + "\x61\x45\xc0\x23\x69\x90\xab\xb9" + "\x82\x43\xd6\x36\x8d\x7b\x88\x63" + "\x39\x70\x09\x5b\x12\x63\xc3\x7a" + "\xb1\x3e\xbf\x14\xf9\x8b\x1d\xb0" + "\x39\xb7\x3a\xbb\x93\x59\xf4\x8b" + "\x06\xbe\x89\xfb\x7b\xb8\xba\xf3" + "\x9a\x40\xca\x17\x7c\x5d\x4f\xef" + "\x7d\x8e\x0a\x93\x93\x87\xdf\xec" + "\xdc\xa6\x42\x7b\x92\x7b\xdd\x9c" + "\xed\x6c\x16\xb2\xce\x12\x70\x2d" + "\x41\xee\x69\x24\xc2\x95\xa0\x18", + .rlen = 512, + }, { + .key = "\x27\x18\x28\x18\x28\x45\x90\x45" + "\x23\x53\x60\x28\x74\x71\x35\x26" + "\x62\x49\x77\x57\x24\x70\x93\x69" + "\x99\x59\x57\x49\x66\x96\x76\x27" + "\x31\x41\x59\x26\x53\x58\x97\x93" + "\x23\x84\x62\x64\x33\x83\x27\x95" + "\x02\x88\x41\x97\x16\x93\x99\x37" + "\x51\x05\x82\x09\x74\x94\x45\x92", + .klen = 64, + .iv = "\xff\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .input = "\x00\x01\x02\x03\x04\x05\x06\x07" + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + "\x10\x11\x12\x13\x14\x15\x16\x17" + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x21\x22\x23\x24\x25\x26\x27" + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" + "\x30\x31\x32\x33\x34\x35\x36\x37" + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" + "\x40\x41\x42\x43\x44\x45\x46\x47" + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" + "\x50\x51\x52\x53\x54\x55\x56\x57" + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" + "\x60\x61\x62\x63\x64\x65\x66\x67" + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" + "\x70\x71\x72\x73\x74\x75\x76\x77" + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" + "\x80\x81\x82\x83\x84\x85\x86\x87" + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" + "\x90\x91\x92\x93\x94\x95\x96\x97" + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" + "\x00\x01\x02\x03\x04\x05\x06\x07" + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + "\x10\x11\x12\x13\x14\x15\x16\x17" + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x21\x22\x23\x24\x25\x26\x27" + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" + "\x30\x31\x32\x33\x34\x35\x36\x37" + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" + "\x40\x41\x42\x43\x44\x45\x46\x47" + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" + "\x50\x51\x52\x53\x54\x55\x56\x57" + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" + "\x60\x61\x62\x63\x64\x65\x66\x67" + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" + "\x70\x71\x72\x73\x74\x75\x76\x77" + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" + "\x80\x81\x82\x83\x84\x85\x86\x87" + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" + "\x90\x91\x92\x93\x94\x95\x96\x97" + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", + .ilen = 512, + .result = "\x15\xfb\x91\x93\xc1\x29\x04\xaf" + "\x1b\xaf\x23\x4e\x5b\xfd\x81\x86" + "\x76\xef\x3a\xef\xd7\x77\x36\x44" + "\xda\xcb\xbb\x2e\xa9\x59\x56\xba" + "\x31\x0c\x76\x3c\x2a\xe7\x6b\xba" + "\xb4\xbd\x03\xe0\xd9\xe2\x3f\xea" + "\xa0\x10\xf2\xa6\x0f\x1b\xf6\x75" + "\x45\x90\x58\xbb\xce\xd6\xdf\x82" + "\x96\x85\x64\x59\x00\x45\x19\x88" + "\x81\xa1\x83\xa5\x05\x2b\x22\x91" + "\xeb\x25\x24\xca\x9e\x15\x79\xff" + "\x66\xb5\xa2\xef\x22\x4a\xbd\xd5" + "\x80\x0d\x1e\x04\xd3\xb6\xd6\x79" + "\x17\x31\xfb\xe7\x48\xc7\x57\x56" + "\x03\x8f\x32\x5f\x8a\x08\x12\xbd" + "\xd5\xcb\xba\x48\x2c\x49\xa5\xcc" + "\xbb\xb6\x13\x1a\x43\x63\x57\x7c" + "\xa5\xfc\xc1\x4c\x87\xfe\xab\x4a" + "\x5e\x73\x42\x7c\x08\x04\x57\xf5" + "\x56\xe0\x4f\xe6\x1d\xe2\xcc\x51" + "\xdd\xb0\xc0\x3b\x23\xf3\x9e\x67" + "\x27\x7d\x4b\x18\x4f\xdd\x71\xe7" + "\x86\x6b\x71\x4f\xb1\xc4\x24\x44" + "\x3e\x8b\x7e\xac\xdf\x01\x7d\xf7" + "\x35\x01\xaf\x79\xfa\xeb\xd6\xae" + "\x50\x47\xe9\x7f\x3d\xdf\x3f\x46" + "\x99\x0d\xd0\x50\x1d\x5e\x4b\x6b" + "\x2c\xd8\xe1\x59\xb2\xb9\x53\x9c" + "\xa7\xc7\xba\xa9\xcf\xd6\xd5\xbe" + "\xd9\x70\xd5\x88\x4f\x05\x89\x76" + "\x5f\x95\x21\x12\x3f\x34\xe8\x4b" + "\x5a\xba\xcf\xd4\x7d\x61\x1c\x59" + "\xd9\xd2\xe8\x52\xb3\xa1\x64\x14" + "\x0b\x88\xf3\x96\x0d\xc0\x6a\xca" + "\xd0\xe4\x43\xe5\x1b\x1d\x35\xef" + "\xac\x4c\x09\x09\xf4\x2a\x4b\x85" + "\xd6\xf4\xb0\x4e\xbe\x49\x69\xf8" + "\x9b\xc9\xc4\x7f\xac\x9f\x11\x62" + "\xed\x6c\x93\x2c\x17\xc7\x13\xd0" + "\x8c\xfd\xdd\x89\x73\xcf\x27\x4f" + "\x19\x33\xf8\x72\xb7\x45\x91\x60" + "\xbe\x30\x7d\x06\x43\x70\x98\xcb" + "\x62\x12\x1d\x5a\x3d\xf2\x75\xe2" + "\x3f\x3c\x26\xb6\xea\x6d\xf8\xe9" + "\x1e\xad\x69\xae\x50\x50\xf6\x71" + "\xda\x33\xc0\x21\x30\x42\xf9\xcd" + "\x59\xb3\x5f\xde\xd5\xaa\x63\xe4" + "\xee\x53\xc4\xce\xcf\xc3\x23\xcd" + "\xd7\xf4\x40\x64\x35\x7e\x3a\x84" + "\x76\xca\x52\x3c\x27\xdd\xd3\xa4" + "\x1e\x9f\x80\x46\x37\xf6\x31\x29" + "\x6d\xe9\x51\x87\xe6\x7c\xf6\xda" + "\x98\x87\x61\x4c\x26\xc0\xdf\xd8" + "\xe1\xf4\x42\x6e\xbb\x30\xe1\xe8" + "\x48\x9d\x86\x0f\xea\x8f\x35\x74" + "\xaa\x49\x99\x81\xd4\x4b\xe8\x77" + "\x09\x27\xd2\x47\xae\xe7\x8e\x5e" + "\xbe\x57\x53\xf7\x61\x15\x89\xf9" + "\xe9\xcc\x51\xbc\x3e\x1a\x4c\x1b" + "\x4d\xbb\x62\xba\xb3\x1a\xd0\xdf" + "\x1c\xaa\x5c\x9f\x5b\x0f\x7b\xda" + "\x69\x67\x2f\x23\xf0\x91\xd8\x09" + "\x3f\xce\x51\x68\x6a\x20\x7c\x79" + "\x59\x9d\x0d\x9f\xac\xac\x98\xc0", + .rlen = 512, + .also_non_np = 1, + .np = 3, + .tap = { 512 - 20, 4, 16 }, + } +}; + +static const struct cipher_testvec speck128_xts_dec_tv_template[] = { + { + .key = "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .klen = 32, + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .input = "\x3b\x99\x4a\x64\x74\x77\xac\xed" + "\xbe\xa0\xe7\x03\xd7\xfe\xab\x62" + "\x51\xd9\xb6\x1d\xe0\x5e\xbc\x54" + "\xd8\xf4\xa6\xcf\xae\xb9\x07\x42", + .ilen = 32, + .result = "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .rlen = 32, + }, { + .key = "\x11\x11\x11\x11\x11\x11\x11\x11" + "\x11\x11\x11\x11\x11\x11\x11\x11" + "\x22\x22\x22\x22\x22\x22\x22\x22" + "\x22\x22\x22\x22\x22\x22\x22\x22", + .klen = 32, + .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .input = "\x31\x9c\x54\x41\x95\xdd\x0b\x6d" + "\xa4\x68\xf7\x31\x49\x83\xd3\x9b" + "\x68\x83\x4e\x5f\x80\x78\x7f\x6f" + "\xd6\x93\xce\x6e\x0a\x9e\xfc\x85", + .ilen = 32, + .result = "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44", + .rlen = 32, + }, { + .key = "\xff\xfe\xfd\xfc\xfb\xfa\xf9\xf8" + "\xf7\xf6\xf5\xf4\xf3\xf2\xf1\xf0" + "\x22\x22\x22\x22\x22\x22\x22\x22" + "\x22\x22\x22\x22\x22\x22\x22\x22", + .klen = 32, + .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .input = "\x96\xbc\x98\xee\x4b\x3d\xb7\x55" + "\xfb\xe2\x0f\x52\x9e\x35\x5e\x3c" + "\xab\xd2\xaf\xe2\x0c\xc6\x46\x77" + "\x4f\x32\x6a\xa5\x10\x75\xc9\x12", + .ilen = 32, + .result = "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44" + "\x44\x44\x44\x44\x44\x44\x44\x44", + .rlen = 32, + }, { + .key = "\x27\x18\x28\x18\x28\x45\x90\x45" + "\x23\x53\x60\x28\x74\x71\x35\x26" + "\x31\x41\x59\x26\x53\x58\x97\x93" + "\x23\x84\x62\x64\x33\x83\x27\x95", + .klen = 32, + .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .input = "\x53\x43\x2f\x73\x46\x14\xe8\xa0" + "\xd4\xf2\x41\x65\x6d\x95\xb9\x1d" + "\x12\xb5\x92\xd0\x5e\x8b\x85\x6d" + "\x88\xba\xb8\x89\x0d\x2d\x81\x2b" + "\x1a\x21\x28\x58\x3d\xcc\xb1\x5e" + "\x53\x1c\xa1\x12\xe1\x03\xb7\x34" + "\x37\xb8\x60\x28\x90\xcb\x16\x43" + "\x9d\x47\x8a\xc4\x4f\x47\x74\xa4" + "\x84\x9e\xb3\x3e\x5d\x4d\x95\x9b" + "\x43\xcb\xf7\x03\xa9\xe9\x9b\xf4" + "\xc5\x13\x3a\xa9\x2b\x18\xd8\xb6" + "\x58\xbd\x2a\xb9\x79\x4a\x8e\x99" + "\x9b\x57\x1a\x2e\xf8\x3e\xd2\x8b" + "\x52\x31\x1c\x45\x73\xb6\x12\x8f" + "\xda\xf0\xa1\x8d\x9f\xf4\xaa\x7b" + "\xc1\x6b\xbc\xe3\x4b\xda\xd8\x91" + "\xe3\x48\x73\x06\x08\xf6\x01\xf1" + "\x41\xba\x46\x08\xbf\x22\x3d\x74" + "\x44\x12\xbc\x43\x34\x66\x94\x68" + "\xb2\xb7\x56\x26\xdc\x7f\x1e\xd2" + "\xb2\xfc\x52\x50\xbf\x4c\x02\xf8" + "\xb5\xca\x2f\xe9\x00\xab\x28\x6c" + "\xbe\x9e\x27\x10\x2f\xea\x76\x70" + "\xfa\x18\x6d\x56\x35\x37\xc5\xc1" + "\x20\xef\xf4\xcb\x85\x05\x0f\xe2" + "\xe9\x0a\xff\x1e\xad\x0f\xb2\x99" + "\xc6\x4c\x8d\xd9\x97\xc6\x9e\x7c" + "\xa0\x19\x29\x1e\xe7\x23\xda\x41" + "\xe7\x18\x00\x24\xec\x02\xef\x96" + "\xec\x51\xcc\xe9\x7c\xbc\x00\xa9" + "\x99\x53\x78\x1d\xe4\xac\x9e\x42" + "\xf2\x2f\xc4\x75\x17\x42\xa2\x7b" + "\x0e\xc9\xf0\xd7\x79\xd9\x89\x33" + "\x50\x4c\xaa\x5c\xc3\x65\xd0\x0b" + "\xba\xb9\x5f\x94\x91\x07\xa3\xd2" + "\x8c\xe3\xfc\xea\x9a\xad\xa4\xc2" + "\x5a\xd9\x34\x99\x67\xb4\xbe\x75" + "\x30\x55\x9f\x6a\x32\x1d\xb9\x00" + "\xd3\x31\xac\xe9\x64\x62\x4c\x53" + "\xd0\xcc\x4a\x06\xe5\x14\x76\x9e" + "\xa4\x6c\x27\x2f\x93\x74\xca\x33" + "\x5e\xf2\xfa\x1b\x6e\xc5\x06\x85" + "\x1b\x39\xac\x53\xb2\xdd\x2e\xe7" + "\x76\x3a\x92\xcf\x17\x0a\x22\xb6" + "\x2f\x99\x28\xff\x93\xca\xd0\x66" + "\x9b\xe9\x0c\xe2\x93\xd3\x59\x1e" + "\x62\x9e\x54\x4d\xeb\x67\x70\x2c" + "\x78\x44\x5c\x0a\xcc\x9b\xf9\xb5" + "\x33\xe6\x84\x99\xcd\x32\xa6\x0c" + "\x54\x38\x11\x55\xda\x05\x0b\xc2" + "\xdc\x0a\x9b\x1e\xcb\xa1\x4e\x8a" + "\x66\x38\x8f\x68\xc5\x21\x0f\x5e" + "\x9e\x60\x3c\x46\x5e\xbe\x1a\xc1" + "\x61\x45\xc0\x23\x69\x90\xab\xb9" + "\x82\x43\xd6\x36\x8d\x7b\x88\x63" + "\x39\x70\x09\x5b\x12\x63\xc3\x7a" + "\xb1\x3e\xbf\x14\xf9\x8b\x1d\xb0" + "\x39\xb7\x3a\xbb\x93\x59\xf4\x8b" + "\x06\xbe\x89\xfb\x7b\xb8\xba\xf3" + "\x9a\x40\xca\x17\x7c\x5d\x4f\xef" + "\x7d\x8e\x0a\x93\x93\x87\xdf\xec" + "\xdc\xa6\x42\x7b\x92\x7b\xdd\x9c" + "\xed\x6c\x16\xb2\xce\x12\x70\x2d" + "\x41\xee\x69\x24\xc2\x95\xa0\x18", + .ilen = 512, + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + "\x10\x11\x12\x13\x14\x15\x16\x17" + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x21\x22\x23\x24\x25\x26\x27" + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" + "\x30\x31\x32\x33\x34\x35\x36\x37" + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" + "\x40\x41\x42\x43\x44\x45\x46\x47" + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" + "\x50\x51\x52\x53\x54\x55\x56\x57" + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" + "\x60\x61\x62\x63\x64\x65\x66\x67" + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" + "\x70\x71\x72\x73\x74\x75\x76\x77" + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" + "\x80\x81\x82\x83\x84\x85\x86\x87" + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" + "\x90\x91\x92\x93\x94\x95\x96\x97" + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" + "\x00\x01\x02\x03\x04\x05\x06\x07" + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + "\x10\x11\x12\x13\x14\x15\x16\x17" + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x21\x22\x23\x24\x25\x26\x27" + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" + "\x30\x31\x32\x33\x34\x35\x36\x37" + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" + "\x40\x41\x42\x43\x44\x45\x46\x47" + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" + "\x50\x51\x52\x53\x54\x55\x56\x57" + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" + "\x60\x61\x62\x63\x64\x65\x66\x67" + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" + "\x70\x71\x72\x73\x74\x75\x76\x77" + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" + "\x80\x81\x82\x83\x84\x85\x86\x87" + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" + "\x90\x91\x92\x93\x94\x95\x96\x97" + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", + .rlen = 512, + }, { + .key = "\x27\x18\x28\x18\x28\x45\x90\x45" + "\x23\x53\x60\x28\x74\x71\x35\x26" + "\x62\x49\x77\x57\x24\x70\x93\x69" + "\x99\x59\x57\x49\x66\x96\x76\x27" + "\x31\x41\x59\x26\x53\x58\x97\x93" + "\x23\x84\x62\x64\x33\x83\x27\x95" + "\x02\x88\x41\x97\x16\x93\x99\x37" + "\x51\x05\x82\x09\x74\x94\x45\x92", + .klen = 64, + .iv = "\xff\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00", + .input = "\x15\xfb\x91\x93\xc1\x29\x04\xaf" + "\x1b\xaf\x23\x4e\x5b\xfd\x81\x86" + "\x76\xef\x3a\xef\xd7\x77\x36\x44" + "\xda\xcb\xbb\x2e\xa9\x59\x56\xba" + "\x31\x0c\x76\x3c\x2a\xe7\x6b\xba" + "\xb4\xbd\x03\xe0\xd9\xe2\x3f\xea" + "\xa0\x10\xf2\xa6\x0f\x1b\xf6\x75" + "\x45\x90\x58\xbb\xce\xd6\xdf\x82" + "\x96\x85\x64\x59\x00\x45\x19\x88" + "\x81\xa1\x83\xa5\x05\x2b\x22\x91" + "\xeb\x25\x24\xca\x9e\x15\x79\xff" + "\x66\xb5\xa2\xef\x22\x4a\xbd\xd5" + "\x80\x0d\x1e\x04\xd3\xb6\xd6\x79" + "\x17\x31\xfb\xe7\x48\xc7\x57\x56" + "\x03\x8f\x32\x5f\x8a\x08\x12\xbd" + "\xd5\xcb\xba\x48\x2c\x49\xa5\xcc" + "\xbb\xb6\x13\x1a\x43\x63\x57\x7c" + "\xa5\xfc\xc1\x4c\x87\xfe\xab\x4a" + "\x5e\x73\x42\x7c\x08\x04\x57\xf5" + "\x56\xe0\x4f\xe6\x1d\xe2\xcc\x51" + "\xdd\xb0\xc0\x3b\x23\xf3\x9e\x67" + "\x27\x7d\x4b\x18\x4f\xdd\x71\xe7" + "\x86\x6b\x71\x4f\xb1\xc4\x24\x44" + "\x3e\x8b\x7e\xac\xdf\x01\x7d\xf7" + "\x35\x01\xaf\x79\xfa\xeb\xd6\xae" + "\x50\x47\xe9\x7f\x3d\xdf\x3f\x46" + "\x99\x0d\xd0\x50\x1d\x5e\x4b\x6b" + "\x2c\xd8\xe1\x59\xb2\xb9\x53\x9c" + "\xa7\xc7\xba\xa9\xcf\xd6\xd5\xbe" + "\xd9\x70\xd5\x88\x4f\x05\x89\x76" + "\x5f\x95\x21\x12\x3f\x34\xe8\x4b" + "\x5a\xba\xcf\xd4\x7d\x61\x1c\x59" + "\xd9\xd2\xe8\x52\xb3\xa1\x64\x14" + "\x0b\x88\xf3\x96\x0d\xc0\x6a\xca" + "\xd0\xe4\x43\xe5\x1b\x1d\x35\xef" + "\xac\x4c\x09\x09\xf4\x2a\x4b\x85" + "\xd6\xf4\xb0\x4e\xbe\x49\x69\xf8" + "\x9b\xc9\xc4\x7f\xac\x9f\x11\x62" + "\xed\x6c\x93\x2c\x17\xc7\x13\xd0" + "\x8c\xfd\xdd\x89\x73\xcf\x27\x4f" + "\x19\x33\xf8\x72\xb7\x45\x91\x60" + "\xbe\x30\x7d\x06\x43\x70\x98\xcb" + "\x62\x12\x1d\x5a\x3d\xf2\x75\xe2" + "\x3f\x3c\x26\xb6\xea\x6d\xf8\xe9" + "\x1e\xad\x69\xae\x50\x50\xf6\x71" + "\xda\x33\xc0\x21\x30\x42\xf9\xcd" + "\x59\xb3\x5f\xde\xd5\xaa\x63\xe4" + "\xee\x53\xc4\xce\xcf\xc3\x23\xcd" + "\xd7\xf4\x40\x64\x35\x7e\x3a\x84" + "\x76\xca\x52\x3c\x27\xdd\xd3\xa4" + "\x1e\x9f\x80\x46\x37\xf6\x31\x29" + "\x6d\xe9\x51\x87\xe6\x7c\xf6\xda" + "\x98\x87\x61\x4c\x26\xc0\xdf\xd8" + "\xe1\xf4\x42\x6e\xbb\x30\xe1\xe8" + "\x48\x9d\x86\x0f\xea\x8f\x35\x74" + "\xaa\x49\x99\x81\xd4\x4b\xe8\x77" + "\x09\x27\xd2\x47\xae\xe7\x8e\x5e" + "\xbe\x57\x53\xf7\x61\x15\x89\xf9" + "\xe9\xcc\x51\xbc\x3e\x1a\x4c\x1b" + "\x4d\xbb\x62\xba\xb3\x1a\xd0\xdf" + "\x1c\xaa\x5c\x9f\x5b\x0f\x7b\xda" + "\x69\x67\x2f\x23\xf0\x91\xd8\x09" + "\x3f\xce\x51\x68\x6a\x20\x7c\x79" + "\x59\x9d\x0d\x9f\xac\xac\x98\xc0", + .ilen = 512, + .result = "\x00\x01\x02\x03\x04\x05\x06\x07" + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + "\x10\x11\x12\x13\x14\x15\x16\x17" + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x21\x22\x23\x24\x25\x26\x27" + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" + "\x30\x31\x32\x33\x34\x35\x36\x37" + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" + "\x40\x41\x42\x43\x44\x45\x46\x47" + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" + "\x50\x51\x52\x53\x54\x55\x56\x57" + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" + "\x60\x61\x62\x63\x64\x65\x66\x67" + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" + "\x70\x71\x72\x73\x74\x75\x76\x77" + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" + "\x80\x81\x82\x83\x84\x85\x86\x87" + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" + "\x90\x91\x92\x93\x94\x95\x96\x97" + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" + "\x00\x01\x02\x03\x04\x05\x06\x07" + "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + "\x10\x11\x12\x13\x14\x15\x16\x17" + "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x21\x22\x23\x24\x25\x26\x27" + "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" + "\x30\x31\x32\x33\x34\x35\x36\x37" + "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" + "\x40\x41\x42\x43\x44\x45\x46\x47" + "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" + "\x50\x51\x52\x53\x54\x55\x56\x57" + "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" + "\x60\x61\x62\x63\x64\x65\x66\x67" + "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" + "\x70\x71\x72\x73\x74\x75\x76\x77" + "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" + "\x80\x81\x82\x83\x84\x85\x86\x87" + "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" + "\x90\x91\x92\x93\x94\x95\x96\x97" + "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" + "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" + "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" + "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" + "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" + "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" + "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" + "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" + "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" + "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" + "\xe8\xe9\xea\xeb\xec\xed\xee\xef" + "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" + "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", + .rlen = 512, + .also_non_np = 1, + .np = 3, + .tap = { 512 - 20, 4, 16 }, + } +}; + static const struct cipher_testvec speck64_enc_tv_template[] = { { /* Speck64/96 */ .key = "\x10\x11\x12\x13\x08\x09\x0a\x0b"