diff options
Diffstat (limited to 'lib/crypto')
| -rw-r--r-- | lib/crypto/Kconfig | 130 | ||||
| -rw-r--r-- | lib/crypto/Makefile | 42 | ||||
| -rw-r--r-- | lib/crypto/blake2s-generic.c | 111 | ||||
| -rw-r--r-- | lib/crypto/blake2s-selftest.c | 622 | ||||
| -rw-r--r-- | lib/crypto/blake2s.c | 126 | ||||
| -rw-r--r-- | lib/crypto/chacha.c | 115 | ||||
| -rw-r--r-- | lib/crypto/chacha20poly1305-selftest.c | 7393 | ||||
| -rw-r--r-- | lib/crypto/chacha20poly1305.c | 369 | ||||
| -rw-r--r-- | lib/crypto/curve25519-fiat32.c | 864 | ||||
| -rw-r--r-- | lib/crypto/curve25519-hacl64.c | 788 | ||||
| -rw-r--r-- | lib/crypto/curve25519.c | 25 | ||||
| -rw-r--r-- | lib/crypto/libchacha.c | 35 | ||||
| -rw-r--r-- | lib/crypto/poly1305.c | 232 | 
13 files changed, 10844 insertions, 8 deletions
| diff --git a/lib/crypto/Kconfig b/lib/crypto/Kconfig new file mode 100644 index 000000000000..0b2c4fce26d9 --- /dev/null +++ b/lib/crypto/Kconfig @@ -0,0 +1,130 @@ +# SPDX-License-Identifier: GPL-2.0 + +comment "Crypto library routines" + +config CRYPTO_LIB_AES +	tristate + +config CRYPTO_LIB_ARC4 +	tristate + +config CRYPTO_ARCH_HAVE_LIB_BLAKE2S +	tristate +	help +	  Declares whether the architecture provides an arch-specific +	  accelerated implementation of the Blake2s library interface, +	  either builtin or as a module. + +config CRYPTO_LIB_BLAKE2S_GENERIC +	tristate +	help +	  This symbol can be depended upon by arch implementations of the +	  Blake2s library interface that require the generic code as a +	  fallback, e.g., for SIMD implementations. If no arch specific +	  implementation is enabled, this implementation serves the users +	  of CRYPTO_LIB_BLAKE2S. + +config CRYPTO_LIB_BLAKE2S +	tristate "BLAKE2s hash function library" +	depends on CRYPTO_ARCH_HAVE_LIB_BLAKE2S || !CRYPTO_ARCH_HAVE_LIB_BLAKE2S +	select CRYPTO_LIB_BLAKE2S_GENERIC if CRYPTO_ARCH_HAVE_LIB_BLAKE2S=n +	help +	  Enable the Blake2s library interface. This interface may be fulfilled +	  by either the generic implementation or an arch-specific one, if one +	  is available and enabled. + +config CRYPTO_ARCH_HAVE_LIB_CHACHA +	tristate +	help +	  Declares whether the architecture provides an arch-specific +	  accelerated implementation of the ChaCha library interface, +	  either builtin or as a module. + +config CRYPTO_LIB_CHACHA_GENERIC +	tristate +	select CRYPTO_ALGAPI +	help +	  This symbol can be depended upon by arch implementations of the +	  ChaCha library interface that require the generic code as a +	  fallback, e.g., for SIMD implementations. If no arch specific +	  implementation is enabled, this implementation serves the users +	  of CRYPTO_LIB_CHACHA. + +config CRYPTO_LIB_CHACHA +	tristate "ChaCha library interface" +	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA +	select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n +	help +	  Enable the ChaCha library interface. This interface may be fulfilled +	  by either the generic implementation or an arch-specific one, if one +	  is available and enabled. + +config CRYPTO_ARCH_HAVE_LIB_CURVE25519 +	tristate +	help +	  Declares whether the architecture provides an arch-specific +	  accelerated implementation of the Curve25519 library interface, +	  either builtin or as a module. + +config CRYPTO_LIB_CURVE25519_GENERIC +	tristate +	help +	  This symbol can be depended upon by arch implementations of the +	  Curve25519 library interface that require the generic code as a +	  fallback, e.g., for SIMD implementations. If no arch specific +	  implementation is enabled, this implementation serves the users +	  of CRYPTO_LIB_CURVE25519. + +config CRYPTO_LIB_CURVE25519 +	tristate "Curve25519 scalar multiplication library" +	depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519 +	select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n +	help +	  Enable the Curve25519 library interface. This interface may be +	  fulfilled by either the generic implementation or an arch-specific +	  one, if one is available and enabled. + +config CRYPTO_LIB_DES +	tristate + +config CRYPTO_LIB_POLY1305_RSIZE +	int +	default 2 if MIPS +	default 4 if X86_64 +	default 9 if ARM || ARM64 +	default 1 + +config CRYPTO_ARCH_HAVE_LIB_POLY1305 +	tristate +	help +	  Declares whether the architecture provides an arch-specific +	  accelerated implementation of the Poly1305 library interface, +	  either builtin or as a module. + +config CRYPTO_LIB_POLY1305_GENERIC +	tristate +	help +	  This symbol can be depended upon by arch implementations of the +	  Poly1305 library interface that require the generic code as a +	  fallback, e.g., for SIMD implementations. If no arch specific +	  implementation is enabled, this implementation serves the users +	  of CRYPTO_LIB_POLY1305. + +config CRYPTO_LIB_POLY1305 +	tristate "Poly1305 library interface" +	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305 +	select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n +	help +	  Enable the Poly1305 library interface. This interface may be fulfilled +	  by either the generic implementation or an arch-specific one, if one +	  is available and enabled. + +config CRYPTO_LIB_CHACHA20POLY1305 +	tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)" +	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA +	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305 +	select CRYPTO_LIB_CHACHA +	select CRYPTO_LIB_POLY1305 + +config CRYPTO_LIB_SHA256 +	tristate diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile index cbe0b6a6450d..34a701ab8b92 100644 --- a/lib/crypto/Makefile +++ b/lib/crypto/Makefile @@ -1,13 +1,39 @@  # SPDX-License-Identifier: GPL-2.0 -obj-$(CONFIG_CRYPTO_LIB_AES) += libaes.o -libaes-y := aes.o +# chacha is used by the /dev/random driver which is always builtin +obj-y						+= chacha.o +obj-$(CONFIG_CRYPTO_LIB_CHACHA_GENERIC)		+= libchacha.o -obj-$(CONFIG_CRYPTO_LIB_ARC4) += libarc4.o -libarc4-y := arc4.o +obj-$(CONFIG_CRYPTO_LIB_AES)			+= libaes.o +libaes-y					:= aes.o -obj-$(CONFIG_CRYPTO_LIB_DES) += libdes.o -libdes-y := des.o +obj-$(CONFIG_CRYPTO_LIB_ARC4)			+= libarc4.o +libarc4-y					:= arc4.o -obj-$(CONFIG_CRYPTO_LIB_SHA256) += libsha256.o -libsha256-y := sha256.o +obj-$(CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC)	+= libblake2s-generic.o +libblake2s-generic-y				+= blake2s-generic.o + +obj-$(CONFIG_CRYPTO_LIB_BLAKE2S)		+= libblake2s.o +libblake2s-y					+= blake2s.o + +obj-$(CONFIG_CRYPTO_LIB_CHACHA20POLY1305)	+= libchacha20poly1305.o +libchacha20poly1305-y				+= chacha20poly1305.o + +obj-$(CONFIG_CRYPTO_LIB_CURVE25519_GENERIC)	+= libcurve25519.o +libcurve25519-y					:= curve25519-fiat32.o +libcurve25519-$(CONFIG_ARCH_SUPPORTS_INT128)	:= curve25519-hacl64.o +libcurve25519-y					+= curve25519.o + +obj-$(CONFIG_CRYPTO_LIB_DES)			+= libdes.o +libdes-y					:= des.o + +obj-$(CONFIG_CRYPTO_LIB_POLY1305_GENERIC)	+= libpoly1305.o +libpoly1305-y					:= poly1305.o + +obj-$(CONFIG_CRYPTO_LIB_SHA256)			+= libsha256.o +libsha256-y					:= sha256.o + +ifneq ($(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS),y) +libblake2s-y					+= blake2s-selftest.o +libchacha20poly1305-y				+= chacha20poly1305-selftest.o +endif diff --git a/lib/crypto/blake2s-generic.c b/lib/crypto/blake2s-generic.c new file mode 100644 index 000000000000..04ff8df24513 --- /dev/null +++ b/lib/crypto/blake2s-generic.c @@ -0,0 +1,111 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/* + * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + * + * This is an implementation of the BLAKE2s hash and PRF functions. + * + * Information: https://blake2.net/ + * + */ + +#include <crypto/internal/blake2s.h> +#include <linux/types.h> +#include <linux/string.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/init.h> +#include <linux/bug.h> +#include <asm/unaligned.h> + +static const u8 blake2s_sigma[10][16] = { +	{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, +	{ 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }, +	{ 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 }, +	{ 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 }, +	{ 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 }, +	{ 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 }, +	{ 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 }, +	{ 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 }, +	{ 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 }, +	{ 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0 }, +}; + +static inline void blake2s_increment_counter(struct blake2s_state *state, +					     const u32 inc) +{ +	state->t[0] += inc; +	state->t[1] += (state->t[0] < inc); +} + +void blake2s_compress_generic(struct blake2s_state *state,const u8 *block, +			      size_t nblocks, const u32 inc) +{ +	u32 m[16]; +	u32 v[16]; +	int i; + +	WARN_ON(IS_ENABLED(DEBUG) && +		(nblocks > 1 && inc != BLAKE2S_BLOCK_SIZE)); + +	while (nblocks > 0) { +		blake2s_increment_counter(state, inc); +		memcpy(m, block, BLAKE2S_BLOCK_SIZE); +		le32_to_cpu_array(m, ARRAY_SIZE(m)); +		memcpy(v, state->h, 32); +		v[ 8] = BLAKE2S_IV0; +		v[ 9] = BLAKE2S_IV1; +		v[10] = BLAKE2S_IV2; +		v[11] = BLAKE2S_IV3; +		v[12] = BLAKE2S_IV4 ^ state->t[0]; +		v[13] = BLAKE2S_IV5 ^ state->t[1]; +		v[14] = BLAKE2S_IV6 ^ state->f[0]; +		v[15] = BLAKE2S_IV7 ^ state->f[1]; + +#define G(r, i, a, b, c, d) do { \ +	a += b + m[blake2s_sigma[r][2 * i + 0]]; \ +	d = ror32(d ^ a, 16); \ +	c += d; \ +	b = ror32(b ^ c, 12); \ +	a += b + m[blake2s_sigma[r][2 * i + 1]]; \ +	d = ror32(d ^ a, 8); \ +	c += d; \ +	b = ror32(b ^ c, 7); \ +} while (0) + +#define ROUND(r) do { \ +	G(r, 0, v[0], v[ 4], v[ 8], v[12]); \ +	G(r, 1, v[1], v[ 5], v[ 9], v[13]); \ +	G(r, 2, v[2], v[ 6], v[10], v[14]); \ +	G(r, 3, v[3], v[ 7], v[11], v[15]); \ +	G(r, 4, v[0], v[ 5], v[10], v[15]); \ +	G(r, 5, v[1], v[ 6], v[11], v[12]); \ +	G(r, 6, v[2], v[ 7], v[ 8], v[13]); \ +	G(r, 7, v[3], v[ 4], v[ 9], v[14]); \ +} while (0) +		ROUND(0); +		ROUND(1); +		ROUND(2); +		ROUND(3); +		ROUND(4); +		ROUND(5); +		ROUND(6); +		ROUND(7); +		ROUND(8); +		ROUND(9); + +#undef G +#undef ROUND + +		for (i = 0; i < 8; ++i) +			state->h[i] ^= v[i] ^ v[i + 8]; + +		block += BLAKE2S_BLOCK_SIZE; +		--nblocks; +	} +} + +EXPORT_SYMBOL(blake2s_compress_generic); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("BLAKE2s hash function"); +MODULE_AUTHOR("Jason A. Donenfeld <Jason@zx2c4.com>"); diff --git a/lib/crypto/blake2s-selftest.c b/lib/crypto/blake2s-selftest.c new file mode 100644 index 000000000000..79ef404a990d --- /dev/null +++ b/lib/crypto/blake2s-selftest.c @@ -0,0 +1,622 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/* + * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + */ + +#include <crypto/blake2s.h> +#include <linux/string.h> + +/* + * blake2s_testvecs[] generated with the program below (using libb2-dev and + * libssl-dev [OpenSSL]) + * + * #include <blake2.h> + * #include <stdint.h> + * #include <stdio.h> + * + * #include <openssl/evp.h> + * #include <openssl/hmac.h> + * + * #define BLAKE2S_TESTVEC_COUNT	256 + * + * static void print_vec(const uint8_t vec[], int len) + * { + *	int i; + * + *	printf("  { "); + *	for (i = 0; i < len; i++) { + *		if (i && (i % 12) == 0) + *			printf("\n    "); + *		printf("0x%02x, ", vec[i]); + *	} + *	printf("},\n"); + * } + * + * int main(void) + * { + *	uint8_t key[BLAKE2S_KEYBYTES]; + *	uint8_t buf[BLAKE2S_TESTVEC_COUNT]; + *	uint8_t hash[BLAKE2S_OUTBYTES]; + *	int i, j; + * + *	key[0] = key[1] = 1; + *	for (i = 2; i < BLAKE2S_KEYBYTES; ++i) + *		key[i] = key[i - 2] + key[i - 1]; + * + *	for (i = 0; i < BLAKE2S_TESTVEC_COUNT; ++i) + *		buf[i] = (uint8_t)i; + * + *	printf("static const u8 blake2s_testvecs[][BLAKE2S_HASH_SIZE] __initconst = {\n"); + * + *	for (i = 0; i < BLAKE2S_TESTVEC_COUNT; ++i) { + *		int outlen = 1 + i % BLAKE2S_OUTBYTES; + *		int keylen = (13 * i) % (BLAKE2S_KEYBYTES + 1); + * + *		blake2s(hash, buf, key + BLAKE2S_KEYBYTES - keylen, outlen, i, + *			keylen); + *		print_vec(hash, outlen); + *	} + *	printf("};\n\n"); + * + *	printf("static const u8 blake2s_hmac_testvecs[][BLAKE2S_HASH_SIZE] __initconst = {\n"); + * + *	HMAC(EVP_blake2s256(), key, sizeof(key), buf, sizeof(buf), hash, NULL); + *	print_vec(hash, BLAKE2S_OUTBYTES); + * + *	HMAC(EVP_blake2s256(), buf, sizeof(buf), key, sizeof(key), hash, NULL); + *	print_vec(hash, BLAKE2S_OUTBYTES); + * + *	printf("};\n"); + * + *	return 0; + *} + */ +static const u8 blake2s_testvecs[][BLAKE2S_HASH_SIZE] __initconst = { +  { 0xa1, }, +  { 0x7c, 0x89, }, +  { 0x74, 0x0e, 0xd4, }, +  { 0x47, 0x0c, 0x21, 0x15, }, +  { 0x18, 0xd6, 0x9c, 0xa6, 0xc4, }, +  { 0x13, 0x5d, 0x16, 0x63, 0x2e, 0xf9, }, +  { 0x2c, 0xb5, 0x04, 0xb7, 0x99, 0xe2, 0x73, }, +  { 0x9a, 0x0f, 0xd2, 0x39, 0xd6, 0x68, 0x1b, 0x92, }, +  { 0xc8, 0xde, 0x7a, 0xea, 0x2f, 0xf4, 0xd2, 0xe3, 0x2b, }, +  { 0x5b, 0xf9, 0x43, 0x52, 0x0c, 0x12, 0xba, 0xb5, 0x93, 0x9f, }, +  { 0xc6, 0x2c, 0x4e, 0x80, 0xfc, 0x32, 0x5b, 0x33, 0xb8, 0xb8, 0x0a, }, +  { 0xa7, 0x5c, 0xfd, 0x3a, 0xcc, 0xbf, 0x90, 0xca, 0xb7, 0x97, 0xde, 0xd8, }, +  { 0x66, 0xca, 0x3c, 0xc4, 0x19, 0xef, 0x92, 0x66, 0x3f, 0x21, 0x8f, 0xda, +    0xb7, }, +  { 0xba, 0xe5, 0xbb, 0x30, 0x25, 0x94, 0x6d, 0xc3, 0x89, 0x09, 0xc4, 0x25, +    0x52, 0x3e, }, +  { 0xa2, 0xef, 0x0e, 0x52, 0x0b, 0x5f, 0xa2, 0x01, 0x6d, 0x0a, 0x25, 0xbc, +    0x57, 0xe2, 0x27, }, +  { 0x4f, 0xe0, 0xf9, 0x52, 0x12, 0xda, 0x84, 0xb7, 0xab, 0xae, 0xb0, 0xa6, +    0x47, 0x2a, 0xc7, 0xf5, }, +  { 0x56, 0xe7, 0xa8, 0x1c, 0x4c, 0xca, 0xed, 0x90, 0x31, 0xec, 0x87, 0x43, +    0xe7, 0x72, 0x08, 0xec, 0xbe, }, +  { 0x7e, 0xdf, 0x80, 0x1c, 0x93, 0x33, 0xfd, 0x53, 0x44, 0xba, 0xfd, 0x96, +    0xe1, 0xbb, 0xb5, 0x65, 0xa5, 0x00, }, +  { 0xec, 0x6b, 0xed, 0xf7, 0x7b, 0x62, 0x1d, 0x7d, 0xf4, 0x82, 0xf3, 0x1e, +    0x18, 0xff, 0x2b, 0xc4, 0x06, 0x20, 0x2a, }, +  { 0x74, 0x98, 0xd7, 0x68, 0x63, 0xed, 0x87, 0xe4, 0x5d, 0x8d, 0x9e, 0x1d, +    0xfd, 0x2a, 0xbb, 0x86, 0xac, 0xe9, 0x2a, 0x89, }, +  { 0x89, 0xc3, 0x88, 0xce, 0x2b, 0x33, 0x1e, 0x10, 0xd1, 0x37, 0x20, 0x86, +    0x28, 0x43, 0x70, 0xd9, 0xfb, 0x96, 0xd9, 0xb5, 0xd3, }, +  { 0xcb, 0x56, 0x74, 0x41, 0x8d, 0x80, 0x01, 0x9a, 0x6b, 0x38, 0xe1, 0x41, +    0xad, 0x9c, 0x62, 0x74, 0xce, 0x35, 0xd5, 0x6c, 0x89, 0x6e, }, +  { 0x79, 0xaf, 0x94, 0x59, 0x99, 0x26, 0xe1, 0xc9, 0x34, 0xfe, 0x7c, 0x22, +    0xf7, 0x43, 0xd7, 0x65, 0xd4, 0x48, 0x18, 0xac, 0x3d, 0xfd, 0x93, }, +  { 0x85, 0x0d, 0xff, 0xb8, 0x3e, 0x87, 0x41, 0xb0, 0x95, 0xd3, 0x3d, 0x00, +    0x47, 0x55, 0x9e, 0xd2, 0x69, 0xea, 0xbf, 0xe9, 0x7a, 0x2d, 0x61, 0x45, }, +  { 0x03, 0xe0, 0x85, 0xec, 0x54, 0xb5, 0x16, 0x53, 0xa8, 0xc4, 0x71, 0xe9, +    0x6a, 0xe7, 0xcb, 0xc4, 0x15, 0x02, 0xfc, 0x34, 0xa4, 0xa4, 0x28, 0x13, +    0xd1, }, +  { 0xe3, 0x34, 0x4b, 0xe1, 0xd0, 0x4b, 0x55, 0x61, 0x8f, 0xc0, 0x24, 0x05, +    0xe6, 0xe0, 0x3d, 0x70, 0x24, 0x4d, 0xda, 0xb8, 0x91, 0x05, 0x29, 0x07, +    0x01, 0x3e, }, +  { 0x61, 0xff, 0x01, 0x72, 0xb1, 0x4d, 0xf6, 0xfe, 0xd1, 0xd1, 0x08, 0x74, +    0xe6, 0x91, 0x44, 0xeb, 0x61, 0xda, 0x40, 0xaf, 0xfc, 0x8c, 0x91, 0x6b, +    0xec, 0x13, 0xed, }, +  { 0xd4, 0x40, 0xd2, 0xa0, 0x7f, 0xc1, 0x58, 0x0c, 0x85, 0xa0, 0x86, 0xc7, +    0x86, 0xb9, 0x61, 0xc9, 0xea, 0x19, 0x86, 0x1f, 0xab, 0x07, 0xce, 0x37, +    0x72, 0x67, 0x09, 0xfc, }, +  { 0x9e, 0xf8, 0x18, 0x67, 0x93, 0x10, 0x9b, 0x39, 0x75, 0xe8, 0x8b, 0x38, +    0x82, 0x7d, 0xb8, 0xb7, 0xa5, 0xaf, 0xe6, 0x6a, 0x22, 0x5e, 0x1f, 0x9c, +    0x95, 0x29, 0x19, 0xf2, 0x4b, }, +  { 0xc8, 0x62, 0x25, 0xf5, 0x98, 0xc9, 0xea, 0xe5, 0x29, 0x3a, 0xd3, 0x22, +    0xeb, 0xeb, 0x07, 0x7c, 0x15, 0x07, 0xee, 0x15, 0x61, 0xbb, 0x05, 0x30, +    0x99, 0x7f, 0x11, 0xf6, 0x0a, 0x1d, }, +  { 0x68, 0x70, 0xf7, 0x90, 0xa1, 0x8b, 0x1f, 0x0f, 0xbb, 0xce, 0xd2, 0x0e, +    0x33, 0x1f, 0x7f, 0xa9, 0x78, 0xa8, 0xa6, 0x81, 0x66, 0xab, 0x8d, 0xcd, +    0x58, 0x55, 0x3a, 0x0b, 0x7a, 0xdb, 0xb5, }, +  { 0xdd, 0x35, 0xd2, 0xb4, 0xf6, 0xc7, 0xea, 0xab, 0x64, 0x24, 0x4e, 0xfe, +    0xe5, 0x3d, 0x4e, 0x95, 0x8b, 0x6d, 0x6c, 0xbc, 0xb0, 0xf8, 0x88, 0x61, +    0x09, 0xb7, 0x78, 0xa3, 0x31, 0xfe, 0xd9, 0x2f, }, +  { 0x0a, }, +  { 0x6e, 0xd4, }, +  { 0x64, 0xe9, 0xd1, }, +  { 0x30, 0xdd, 0x71, 0xef, }, +  { 0x11, 0xb5, 0x0c, 0x87, 0xc9, }, +  { 0x06, 0x1c, 0x6d, 0x04, 0x82, 0xd0, }, +  { 0x5c, 0x42, 0x0b, 0xee, 0xc5, 0x9c, 0xb2, }, +  { 0xe8, 0x29, 0xd6, 0xb4, 0x5d, 0xf7, 0x2b, 0x93, }, +  { 0x18, 0xca, 0x27, 0x72, 0x43, 0x39, 0x16, 0xbc, 0x6a, }, +  { 0x39, 0x8f, 0xfd, 0x64, 0xf5, 0x57, 0x23, 0xb0, 0x45, 0xf8, }, +  { 0xbb, 0x3a, 0x78, 0x6b, 0x02, 0x1d, 0x0b, 0x16, 0xe3, 0xb2, 0x9a, }, +  { 0xb8, 0xb4, 0x0b, 0xe5, 0xd4, 0x1d, 0x0d, 0x85, 0x49, 0x91, 0x35, 0xfa, }, +  { 0x6d, 0x48, 0x2a, 0x0c, 0x42, 0x08, 0xbd, 0xa9, 0x78, 0x6f, 0x18, 0xaf, +    0xe2, }, +  { 0x10, 0x45, 0xd4, 0x58, 0x88, 0xec, 0x4e, 0x1e, 0xf6, 0x14, 0x92, 0x64, +    0x7e, 0xb0, }, +  { 0x8b, 0x0b, 0x95, 0xee, 0x92, 0xc6, 0x3b, 0x91, 0xf1, 0x1e, 0xeb, 0x51, +    0x98, 0x0a, 0x8d, }, +  { 0xa3, 0x50, 0x4d, 0xa5, 0x1d, 0x03, 0x68, 0xe9, 0x57, 0x78, 0xd6, 0x04, +    0xf1, 0xc3, 0x94, 0xd8, }, +  { 0xb8, 0x66, 0x6e, 0xdd, 0x46, 0x15, 0xae, 0x3d, 0x83, 0x7e, 0xcf, 0xe7, +    0x2c, 0xe8, 0x8f, 0xc7, 0x34, }, +  { 0x2e, 0xc0, 0x1f, 0x29, 0xea, 0xf6, 0xb9, 0xe2, 0xc2, 0x93, 0xeb, 0x41, +    0x0d, 0xf0, 0x0a, 0x13, 0x0e, 0xa2, }, +  { 0x71, 0xb8, 0x33, 0xa9, 0x1b, 0xac, 0xf1, 0xb5, 0x42, 0x8f, 0x5e, 0x81, +    0x34, 0x43, 0xb7, 0xa4, 0x18, 0x5c, 0x47, }, +  { 0xda, 0x45, 0xb8, 0x2e, 0x82, 0x1e, 0xc0, 0x59, 0x77, 0x9d, 0xfa, 0xb4, +    0x1c, 0x5e, 0xa0, 0x2b, 0x33, 0x96, 0x5a, 0x58, }, +  { 0xe3, 0x09, 0x05, 0xa9, 0xeb, 0x48, 0x13, 0xad, 0x71, 0x88, 0x81, 0x9a, +    0x3e, 0x2c, 0xe1, 0x23, 0x99, 0x13, 0x35, 0x9f, 0xb5, }, +  { 0xb7, 0x86, 0x2d, 0x16, 0xe1, 0x04, 0x00, 0x47, 0x47, 0x61, 0x31, 0xfb, +    0x14, 0xac, 0xd8, 0xe9, 0xe3, 0x49, 0xbd, 0xf7, 0x9c, 0x3f, }, +  { 0x7f, 0xd9, 0x95, 0xa8, 0xa7, 0xa0, 0xcc, 0xba, 0xef, 0xb1, 0x0a, 0xa9, +    0x21, 0x62, 0x08, 0x0f, 0x1b, 0xff, 0x7b, 0x9d, 0xae, 0xb2, 0x95, }, +  { 0x85, 0x99, 0xea, 0x33, 0xe0, 0x56, 0xff, 0x13, 0xc6, 0x61, 0x8c, 0xf9, +    0x57, 0x05, 0x03, 0x11, 0xf9, 0xfb, 0x3a, 0xf7, 0xce, 0xbb, 0x52, 0x30, }, +  { 0xb2, 0x72, 0x9c, 0xf8, 0x77, 0x4e, 0x8f, 0x6b, 0x01, 0x6c, 0xff, 0x4e, +    0x4f, 0x02, 0xd2, 0xbc, 0xeb, 0x51, 0x28, 0x99, 0x50, 0xab, 0xc4, 0x42, +    0xe3, }, +  { 0x8b, 0x0a, 0xb5, 0x90, 0x8f, 0xf5, 0x7b, 0xdd, 0xba, 0x47, 0x37, 0xc9, +    0x2a, 0xd5, 0x4b, 0x25, 0x08, 0x8b, 0x02, 0x17, 0xa7, 0x9e, 0x6b, 0x6e, +    0xe3, 0x90, }, +  { 0x90, 0xdd, 0xf7, 0x75, 0xa7, 0xa3, 0x99, 0x5e, 0x5b, 0x7d, 0x75, 0xc3, +    0x39, 0x6b, 0xa0, 0xe2, 0x44, 0x53, 0xb1, 0x9e, 0xc8, 0xf1, 0x77, 0x10, +    0x58, 0x06, 0x9a, }, +  { 0x99, 0x52, 0xf0, 0x49, 0xa8, 0x8c, 0xec, 0xa6, 0x97, 0x32, 0x13, 0xb5, +    0xf7, 0xa3, 0x8e, 0xfb, 0x4b, 0x59, 0x31, 0x3d, 0x01, 0x59, 0x98, 0x5d, +    0x53, 0x03, 0x1a, 0x39, }, +  { 0x9f, 0xe0, 0xc2, 0xe5, 0x5d, 0x93, 0xd6, 0x9b, 0x47, 0x8f, 0x9b, 0xe0, +    0x26, 0x35, 0x84, 0x20, 0x1d, 0xc5, 0x53, 0x10, 0x0f, 0x22, 0xb9, 0xb5, +    0xd4, 0x36, 0xb1, 0xac, 0x73, }, +  { 0x30, 0x32, 0x20, 0x3b, 0x10, 0x28, 0xec, 0x1f, 0x4f, 0x9b, 0x47, 0x59, +    0xeb, 0x7b, 0xee, 0x45, 0xfb, 0x0c, 0x49, 0xd8, 0x3d, 0x69, 0xbd, 0x90, +    0x2c, 0xf0, 0x9e, 0x8d, 0xbf, 0xd5, }, +  { 0x2a, 0x37, 0x73, 0x7f, 0xf9, 0x96, 0x19, 0xaa, 0x25, 0xd8, 0x13, 0x28, +    0x01, 0x29, 0x89, 0xdf, 0x6e, 0x0c, 0x9b, 0x43, 0x44, 0x51, 0xe9, 0x75, +    0x26, 0x0c, 0xb7, 0x87, 0x66, 0x0b, 0x5f, }, +  { 0x23, 0xdf, 0x96, 0x68, 0x91, 0x86, 0xd0, 0x93, 0x55, 0x33, 0x24, 0xf6, +    0xba, 0x08, 0x75, 0x5b, 0x59, 0x11, 0x69, 0xb8, 0xb9, 0xe5, 0x2c, 0x77, +    0x02, 0xf6, 0x47, 0xee, 0x81, 0xdd, 0xb9, 0x06, }, +  { 0x9d, }, +  { 0x9d, 0x7d, }, +  { 0xfd, 0xc3, 0xda, }, +  { 0xe8, 0x82, 0xcd, 0x21, }, +  { 0xc3, 0x1d, 0x42, 0x4c, 0x74, }, +  { 0xe9, 0xda, 0xf1, 0xa2, 0xe5, 0x7c, }, +  { 0x52, 0xb8, 0x6f, 0x81, 0x5c, 0x3a, 0x4c, }, +  { 0x5b, 0x39, 0x26, 0xfc, 0x92, 0x5e, 0xe0, 0x49, }, +  { 0x59, 0xe4, 0x7c, 0x93, 0x1c, 0xf9, 0x28, 0x93, 0xde, }, +  { 0xde, 0xdf, 0xb2, 0x43, 0x61, 0x0b, 0x86, 0x16, 0x4c, 0x2e, }, +  { 0x14, 0x8f, 0x75, 0x51, 0xaf, 0xb9, 0xee, 0x51, 0x5a, 0xae, 0x23, }, +  { 0x43, 0x5f, 0x50, 0xd5, 0x70, 0xb0, 0x5b, 0x87, 0xf5, 0xd9, 0xb3, 0x6d, }, +  { 0x66, 0x0a, 0x64, 0x93, 0x79, 0x71, 0x94, 0x40, 0xb7, 0x68, 0x2d, 0xd3, +    0x63, }, +  { 0x15, 0x00, 0xc4, 0x0c, 0x7d, 0x1b, 0x10, 0xa9, 0x73, 0x1b, 0x90, 0x6f, +    0xe6, 0xa9, }, +  { 0x34, 0x75, 0xf3, 0x86, 0x8f, 0x56, 0xcf, 0x2a, 0x0a, 0xf2, 0x62, 0x0a, +    0xf6, 0x0e, 0x20, }, +  { 0xb1, 0xde, 0xc9, 0xf5, 0xdb, 0xf3, 0x2f, 0x4c, 0xd6, 0x41, 0x7d, 0x39, +    0x18, 0x3e, 0xc7, 0xc3, }, +  { 0xc5, 0x89, 0xb2, 0xf8, 0xb8, 0xc0, 0xa3, 0xb9, 0x3b, 0x10, 0x6d, 0x7c, +    0x92, 0xfc, 0x7f, 0x34, 0x41, }, +  { 0xc4, 0xd8, 0xef, 0xba, 0xef, 0xd2, 0xaa, 0xc5, 0x6c, 0x8e, 0x3e, 0xbb, +    0x12, 0xfc, 0x0f, 0x72, 0xbf, 0x0f, }, +  { 0xdd, 0x91, 0xd1, 0x15, 0x9e, 0x7d, 0xf8, 0xc1, 0xb9, 0x14, 0x63, 0x96, +    0xb5, 0xcb, 0x83, 0x1d, 0x35, 0x1c, 0xec, }, +  { 0xa9, 0xf8, 0x52, 0xc9, 0x67, 0x76, 0x2b, 0xad, 0xfb, 0xd8, 0x3a, 0xa6, +    0x74, 0x02, 0xae, 0xb8, 0x25, 0x2c, 0x63, 0x49, }, +  { 0x77, 0x1f, 0x66, 0x70, 0xfd, 0x50, 0x29, 0xaa, 0xeb, 0xdc, 0xee, 0xba, +    0x75, 0x98, 0xdc, 0x93, 0x12, 0x3f, 0xdc, 0x7c, 0x38, }, +  { 0xe2, 0xe1, 0x89, 0x5c, 0x37, 0x38, 0x6a, 0xa3, 0x40, 0xac, 0x3f, 0xb0, +    0xca, 0xfc, 0xa7, 0xf3, 0xea, 0xf9, 0x0f, 0x5d, 0x8e, 0x39, }, +  { 0x0f, 0x67, 0xc8, 0x38, 0x01, 0xb1, 0xb7, 0xb8, 0xa2, 0xe7, 0x0a, 0x6d, +    0xd2, 0x63, 0x69, 0x9e, 0xcc, 0xf0, 0xf2, 0xbe, 0x9b, 0x98, 0xdd, }, +  { 0x13, 0xe1, 0x36, 0x30, 0xfe, 0xc6, 0x01, 0x8a, 0xa1, 0x63, 0x96, 0x59, +    0xc2, 0xa9, 0x68, 0x3f, 0x58, 0xd4, 0x19, 0x0c, 0x40, 0xf3, 0xde, 0x02, }, +  { 0xa3, 0x9e, 0xce, 0xda, 0x42, 0xee, 0x8c, 0x6c, 0x5a, 0x7d, 0xdc, 0x89, +    0x02, 0x77, 0xdd, 0xe7, 0x95, 0xbb, 0xff, 0x0d, 0xa4, 0xb5, 0x38, 0x1e, +    0xaf, }, +  { 0x9a, 0xf6, 0xb5, 0x9a, 0x4f, 0xa9, 0x4f, 0x2c, 0x35, 0x3c, 0x24, 0xdc, +    0x97, 0x6f, 0xd9, 0xa1, 0x7d, 0x1a, 0x85, 0x0b, 0xf5, 0xda, 0x2e, 0xe7, +    0xb1, 0x1d, }, +  { 0x84, 0x1e, 0x8e, 0x3d, 0x45, 0xa5, 0xf2, 0x27, 0xf3, 0x31, 0xfe, 0xb9, +    0xfb, 0xc5, 0x45, 0x99, 0x99, 0xdd, 0x93, 0x43, 0x02, 0xee, 0x58, 0xaf, +    0xee, 0x6a, 0xbe, }, +  { 0x07, 0x2f, 0xc0, 0xa2, 0x04, 0xc4, 0xab, 0x7c, 0x26, 0xbb, 0xa8, 0xd8, +    0xe3, 0x1c, 0x75, 0x15, 0x64, 0x5d, 0x02, 0x6a, 0xf0, 0x86, 0xe9, 0xcd, +    0x5c, 0xef, 0xa3, 0x25, }, +  { 0x2f, 0x3b, 0x1f, 0xb5, 0x91, 0x8f, 0x86, 0xe0, 0xdc, 0x31, 0x48, 0xb6, +    0xa1, 0x8c, 0xfd, 0x75, 0xbb, 0x7d, 0x3d, 0xc1, 0xf0, 0x10, 0x9a, 0xd8, +    0x4b, 0x0e, 0xe3, 0x94, 0x9f, }, +  { 0x29, 0xbb, 0x8f, 0x6c, 0xd1, 0xf2, 0xb6, 0xaf, 0xe5, 0xe3, 0x2d, 0xdc, +    0x6f, 0xa4, 0x53, 0x88, 0xd8, 0xcf, 0x4d, 0x45, 0x42, 0x62, 0xdb, 0xdf, +    0xf8, 0x45, 0xc2, 0x13, 0xec, 0x35, }, +  { 0x06, 0x3c, 0xe3, 0x2c, 0x15, 0xc6, 0x43, 0x03, 0x81, 0xfb, 0x08, 0x76, +    0x33, 0xcb, 0x02, 0xc1, 0xba, 0x33, 0xe5, 0xe0, 0xd1, 0x92, 0xa8, 0x46, +    0x28, 0x3f, 0x3e, 0x9d, 0x2c, 0x44, 0x54, }, +  { 0xea, 0xbb, 0x96, 0xf8, 0xd1, 0x8b, 0x04, 0x11, 0x40, 0x78, 0x42, 0x02, +    0x19, 0xd1, 0xbc, 0x65, 0x92, 0xd3, 0xc3, 0xd6, 0xd9, 0x19, 0xe7, 0xc3, +    0x40, 0x97, 0xbd, 0xd4, 0xed, 0xfa, 0x5e, 0x28, }, +  { 0x02, }, +  { 0x52, 0xa8, }, +  { 0x38, 0x25, 0x0d, }, +  { 0xe3, 0x04, 0xd4, 0x92, }, +  { 0x97, 0xdb, 0xf7, 0x81, 0xca, }, +  { 0x8a, 0x56, 0x9d, 0x62, 0x56, 0xcc, }, +  { 0xa1, 0x8e, 0x3c, 0x72, 0x8f, 0x63, 0x03, }, +  { 0xf7, 0xf3, 0x39, 0x09, 0x0a, 0xa1, 0xbb, 0x23, }, +  { 0x6b, 0x03, 0xc0, 0xe9, 0xd9, 0x83, 0x05, 0x22, 0x01, }, +  { 0x1b, 0x4b, 0xf5, 0xd6, 0x4f, 0x05, 0x75, 0x91, 0x4c, 0x7f, }, +  { 0x4c, 0x8c, 0x25, 0x20, 0x21, 0xcb, 0xc2, 0x4b, 0x3a, 0x5b, 0x8d, }, +  { 0x56, 0xe2, 0x77, 0xa0, 0xb6, 0x9f, 0x81, 0xec, 0x83, 0x75, 0xc4, 0xf9, }, +  { 0x71, 0x70, 0x0f, 0xad, 0x4d, 0x35, 0x81, 0x9d, 0x88, 0x69, 0xf9, 0xaa, +    0xd3, }, +  { 0x50, 0x6e, 0x86, 0x6e, 0x43, 0xc0, 0xc2, 0x44, 0xc2, 0xe2, 0xa0, 0x1c, +    0xb7, 0x9a, }, +  { 0xe4, 0x7e, 0x72, 0xc6, 0x12, 0x8e, 0x7c, 0xfc, 0xbd, 0xe2, 0x08, 0x31, +    0x3d, 0x47, 0x3d, }, +  { 0x08, 0x97, 0x5b, 0x80, 0xae, 0xc4, 0x1d, 0x50, 0x77, 0xdf, 0x1f, 0xd0, +    0x24, 0xf0, 0x17, 0xc0, }, +  { 0x01, 0xb6, 0x29, 0xf4, 0xaf, 0x78, 0x5f, 0xb6, 0x91, 0xdd, 0x76, 0x76, +    0xd2, 0xfd, 0x0c, 0x47, 0x40, }, +  { 0xa1, 0xd8, 0x09, 0x97, 0x7a, 0xa6, 0xc8, 0x94, 0xf6, 0x91, 0x7b, 0xae, +    0x2b, 0x9f, 0x0d, 0x83, 0x48, 0xf7, }, +  { 0x12, 0xd5, 0x53, 0x7d, 0x9a, 0xb0, 0xbe, 0xd9, 0xed, 0xe9, 0x9e, 0xee, +    0x61, 0x5b, 0x42, 0xf2, 0xc0, 0x73, 0xc0, }, +  { 0xd5, 0x77, 0xd6, 0x5c, 0x6e, 0xa5, 0x69, 0x2b, 0x3b, 0x8c, 0xd6, 0x7d, +    0x1d, 0xbe, 0x2c, 0xa1, 0x02, 0x21, 0xcd, 0x29, }, +  { 0xa4, 0x98, 0x80, 0xca, 0x22, 0xcf, 0x6a, 0xab, 0x5e, 0x40, 0x0d, 0x61, +    0x08, 0x21, 0xef, 0xc0, 0x6c, 0x52, 0xb4, 0xb0, 0x53, }, +  { 0xbf, 0xaf, 0x8f, 0x3b, 0x7a, 0x97, 0x33, 0xe5, 0xca, 0x07, 0x37, 0xfd, +    0x15, 0xdf, 0xce, 0x26, 0x2a, 0xb1, 0xa7, 0x0b, 0xb3, 0xac, }, +  { 0x16, 0x22, 0xe1, 0xbc, 0x99, 0x4e, 0x01, 0xf0, 0xfa, 0xff, 0x8f, 0xa5, +    0x0c, 0x61, 0xb0, 0xad, 0xcc, 0xb1, 0xe1, 0x21, 0x46, 0xfa, 0x2e, }, +  { 0x11, 0x5b, 0x0b, 0x2b, 0xe6, 0x14, 0xc1, 0xd5, 0x4d, 0x71, 0x5e, 0x17, +    0xea, 0x23, 0xdd, 0x6c, 0xbd, 0x1d, 0xbe, 0x12, 0x1b, 0xee, 0x4c, 0x1a, }, +  { 0x40, 0x88, 0x22, 0xf3, 0x20, 0x6c, 0xed, 0xe1, 0x36, 0x34, 0x62, 0x2c, +    0x98, 0x83, 0x52, 0xe2, 0x25, 0xee, 0xe9, 0xf5, 0xe1, 0x17, 0xf0, 0x5c, +    0xae, }, +  { 0xc3, 0x76, 0x37, 0xde, 0x95, 0x8c, 0xca, 0x2b, 0x0c, 0x23, 0xe7, 0xb5, +    0x38, 0x70, 0x61, 0xcc, 0xff, 0xd3, 0x95, 0x7b, 0xf3, 0xff, 0x1f, 0x9d, +    0x59, 0x00, }, +  { 0x0c, 0x19, 0x52, 0x05, 0x22, 0x53, 0xcb, 0x48, 0xd7, 0x10, 0x0e, 0x7e, +    0x14, 0x69, 0xb5, 0xa2, 0x92, 0x43, 0xa3, 0x9e, 0x4b, 0x8f, 0x51, 0x2c, +    0x5a, 0x2c, 0x3b, }, +  { 0xe1, 0x9d, 0x70, 0x70, 0x28, 0xec, 0x86, 0x40, 0x55, 0x33, 0x56, 0xda, +    0x88, 0xca, 0xee, 0xc8, 0x6a, 0x20, 0xb1, 0xe5, 0x3d, 0x57, 0xf8, 0x3c, +    0x10, 0x07, 0x2a, 0xc4, }, +  { 0x0b, 0xae, 0xf1, 0xc4, 0x79, 0xee, 0x1b, 0x3d, 0x27, 0x35, 0x8d, 0x14, +    0xd6, 0xae, 0x4e, 0x3c, 0xe9, 0x53, 0x50, 0xb5, 0xcc, 0x0c, 0xf7, 0xdf, +    0xee, 0xa1, 0x74, 0xd6, 0x71, }, +  { 0xe6, 0xa4, 0xf4, 0x99, 0x98, 0xb9, 0x80, 0xea, 0x96, 0x7f, 0x4f, 0x33, +    0xcf, 0x74, 0x25, 0x6f, 0x17, 0x6c, 0xbf, 0xf5, 0x5c, 0x38, 0xd0, 0xff, +    0x96, 0xcb, 0x13, 0xf9, 0xdf, 0xfd, }, +  { 0xbe, 0x92, 0xeb, 0xba, 0x44, 0x2c, 0x24, 0x74, 0xd4, 0x03, 0x27, 0x3c, +    0x5d, 0x5b, 0x03, 0x30, 0x87, 0x63, 0x69, 0xe0, 0xb8, 0x94, 0xf4, 0x44, +    0x7e, 0xad, 0xcd, 0x20, 0x12, 0x16, 0x79, }, +  { 0x30, 0xf1, 0xc4, 0x8e, 0x05, 0x90, 0x2a, 0x97, 0x63, 0x94, 0x46, 0xff, +    0xce, 0xd8, 0x67, 0xa7, 0xac, 0x33, 0x8c, 0x95, 0xb7, 0xcd, 0xa3, 0x23, +    0x98, 0x9d, 0x76, 0x6c, 0x9d, 0xa8, 0xd6, 0x8a, }, +  { 0xbe, }, +  { 0x17, 0x6c, }, +  { 0x1a, 0x42, 0x4f, }, +  { 0xba, 0xaf, 0xb7, 0x65, }, +  { 0xc2, 0x63, 0x43, 0x6a, 0xea, }, +  { 0xe4, 0x4d, 0xad, 0xf2, 0x0b, 0x02, }, +  { 0x04, 0xc7, 0xc4, 0x7f, 0xa9, 0x2b, 0xce, }, +  { 0x66, 0xf6, 0x67, 0xcb, 0x03, 0x53, 0xc8, 0xf1, }, +  { 0x56, 0xa3, 0x60, 0x78, 0xc9, 0x5f, 0x70, 0x1b, 0x5e, }, +  { 0x99, 0xff, 0x81, 0x7c, 0x13, 0x3c, 0x29, 0x79, 0x4b, 0x65, }, +  { 0x51, 0x10, 0x50, 0x93, 0x01, 0x93, 0xb7, 0x01, 0xc9, 0x18, 0xb7, }, +  { 0x8e, 0x3c, 0x42, 0x1e, 0x5e, 0x7d, 0xc1, 0x50, 0x70, 0x1f, 0x00, 0x98, }, +  { 0x5f, 0xd9, 0x9b, 0xc8, 0xd7, 0xb2, 0x72, 0x62, 0x1a, 0x1e, 0xba, 0x92, +    0xe9, }, +  { 0x70, 0x2b, 0xba, 0xfe, 0xad, 0x5d, 0x96, 0x3f, 0x27, 0xc2, 0x41, 0x6d, +    0xc4, 0xb3, }, +  { 0xae, 0xe0, 0xd5, 0xd4, 0xc7, 0xae, 0x15, 0x5e, 0xdc, 0xdd, 0x33, 0x60, +    0xd7, 0xd3, 0x5e, }, +  { 0x79, 0x8e, 0xbc, 0x9e, 0x20, 0xb9, 0x19, 0x4b, 0x63, 0x80, 0xf3, 0x16, +    0xaf, 0x39, 0xbd, 0x92, }, +  { 0xc2, 0x0e, 0x85, 0xa0, 0x0b, 0x9a, 0xb0, 0xec, 0xde, 0x38, 0xd3, 0x10, +    0xd9, 0xa7, 0x66, 0x27, 0xcf, }, +  { 0x0e, 0x3b, 0x75, 0x80, 0x67, 0x14, 0x0c, 0x02, 0x90, 0xd6, 0xb3, 0x02, +    0x81, 0xf6, 0xa6, 0x87, 0xce, 0x58, }, +  { 0x79, 0xb5, 0xe9, 0x5d, 0x52, 0x4d, 0xf7, 0x59, 0xf4, 0x2e, 0x27, 0xdd, +    0xb3, 0xed, 0x57, 0x5b, 0x82, 0xea, 0x6f, }, +  { 0xa2, 0x97, 0xf5, 0x80, 0x02, 0x3d, 0xde, 0xa3, 0xf9, 0xf6, 0xab, 0xe3, +    0x57, 0x63, 0x7b, 0x9b, 0x10, 0x42, 0x6f, 0xf2, }, +  { 0x12, 0x7a, 0xfc, 0xb7, 0x67, 0x06, 0x0c, 0x78, 0x1a, 0xfe, 0x88, 0x4f, +    0xc6, 0xac, 0x52, 0x96, 0x64, 0x28, 0x97, 0x84, 0x06, }, +  { 0xc5, 0x04, 0x44, 0x6b, 0xb2, 0xa5, 0xa4, 0x66, 0xe1, 0x76, 0xa2, 0x51, +    0xf9, 0x59, 0x69, 0x97, 0x56, 0x0b, 0xbf, 0x50, 0xb3, 0x34, }, +  { 0x21, 0x32, 0x6b, 0x42, 0xb5, 0xed, 0x71, 0x8d, 0xf7, 0x5a, 0x35, 0xe3, +    0x90, 0xe2, 0xee, 0xaa, 0x89, 0xf6, 0xc9, 0x9c, 0x4d, 0x73, 0xf4, }, +  { 0x4c, 0xa6, 0x09, 0xf4, 0x48, 0xe7, 0x46, 0xbc, 0x49, 0xfc, 0xe5, 0xda, +    0xd1, 0x87, 0x13, 0x17, 0x4c, 0x59, 0x71, 0x26, 0x5b, 0x2c, 0x42, 0xb7, }, +  { 0x13, 0x63, 0xf3, 0x40, 0x02, 0xe5, 0xa3, 0x3a, 0x5e, 0x8e, 0xf8, 0xb6, +    0x8a, 0x49, 0x60, 0x76, 0x34, 0x72, 0x94, 0x73, 0xf6, 0xd9, 0x21, 0x6a, +    0x26, }, +  { 0xdf, 0x75, 0x16, 0x10, 0x1b, 0x5e, 0x81, 0xc3, 0xc8, 0xde, 0x34, 0x24, +    0xb0, 0x98, 0xeb, 0x1b, 0x8f, 0xa1, 0x9b, 0x05, 0xee, 0xa5, 0xe9, 0x35, +    0xf4, 0x1d, }, +  { 0xcd, 0x21, 0x93, 0x6e, 0x5b, 0xa0, 0x26, 0x2b, 0x21, 0x0e, 0xa0, 0xb9, +    0x1c, 0xb5, 0xbb, 0xb8, 0xf8, 0x1e, 0xff, 0x5c, 0xa8, 0xf9, 0x39, 0x46, +    0x4e, 0x29, 0x26, }, +  { 0x73, 0x7f, 0x0e, 0x3b, 0x0b, 0x5c, 0xf9, 0x60, 0xaa, 0x88, 0xa1, 0x09, +    0xb1, 0x5d, 0x38, 0x7b, 0x86, 0x8f, 0x13, 0x7a, 0x8d, 0x72, 0x7a, 0x98, +    0x1a, 0x5b, 0xff, 0xc9, }, +  { 0xd3, 0x3c, 0x61, 0x71, 0x44, 0x7e, 0x31, 0x74, 0x98, 0x9d, 0x9a, 0xd2, +    0x27, 0xf3, 0x46, 0x43, 0x42, 0x51, 0xd0, 0x5f, 0xe9, 0x1c, 0x5c, 0x69, +    0xbf, 0xf6, 0xbe, 0x3c, 0x40, }, +  { 0x31, 0x99, 0x31, 0x9f, 0xaa, 0x43, 0x2e, 0x77, 0x3e, 0x74, 0x26, 0x31, +    0x5e, 0x61, 0xf1, 0x87, 0xe2, 0xeb, 0x9b, 0xcd, 0xd0, 0x3a, 0xee, 0x20, +    0x7e, 0x10, 0x0a, 0x0b, 0x7e, 0xfa, }, +  { 0xa4, 0x27, 0x80, 0x67, 0x81, 0x2a, 0xa7, 0x62, 0xf7, 0x6e, 0xda, 0xd4, +    0x5c, 0x39, 0x74, 0xad, 0x7e, 0xbe, 0xad, 0xa5, 0x84, 0x7f, 0xa9, 0x30, +    0x5d, 0xdb, 0xe2, 0x05, 0x43, 0xf7, 0x1b, }, +  { 0x0b, 0x37, 0xd8, 0x02, 0xe1, 0x83, 0xd6, 0x80, 0xf2, 0x35, 0xc2, 0xb0, +    0x37, 0xef, 0xef, 0x5e, 0x43, 0x93, 0xf0, 0x49, 0x45, 0x0a, 0xef, 0xb5, +    0x76, 0x70, 0x12, 0x44, 0xc4, 0xdb, 0xf5, 0x7a, }, +  { 0x1f, }, +  { 0x82, 0x60, }, +  { 0xcc, 0xe3, 0x08, }, +  { 0x56, 0x17, 0xe4, 0x59, }, +  { 0xe2, 0xd7, 0x9e, 0xc4, 0x4c, }, +  { 0xb2, 0xad, 0xd3, 0x78, 0x58, 0x5a, }, +  { 0xce, 0x43, 0xb4, 0x02, 0x96, 0xab, 0x3c, }, +  { 0xe6, 0x05, 0x1a, 0x73, 0x22, 0x32, 0xbb, 0x77, }, +  { 0x23, 0xe7, 0xda, 0xfe, 0x2c, 0xef, 0x8c, 0x22, 0xec, }, +  { 0xe9, 0x8e, 0x55, 0x38, 0xd1, 0xd7, 0x35, 0x23, 0x98, 0xc7, }, +  { 0xb5, 0x81, 0x1a, 0xe5, 0xb5, 0xa5, 0xd9, 0x4d, 0xca, 0x41, 0xe7, }, +  { 0x41, 0x16, 0x16, 0x95, 0x8d, 0x9e, 0x0c, 0xea, 0x8c, 0x71, 0x9a, 0xc1, }, +  { 0x7c, 0x33, 0xc0, 0xa4, 0x00, 0x62, 0xea, 0x60, 0x67, 0xe4, 0x20, 0xbc, +    0x5b, }, +  { 0xdb, 0xb1, 0xdc, 0xfd, 0x08, 0xc0, 0xde, 0x82, 0xd1, 0xde, 0x38, 0xc0, +    0x90, 0x48, }, +  { 0x37, 0x18, 0x2e, 0x0d, 0x61, 0xaa, 0x61, 0xd7, 0x86, 0x20, 0x16, 0x60, +    0x04, 0xd9, 0xd5, }, +  { 0xb0, 0xcf, 0x2c, 0x4c, 0x5e, 0x5b, 0x4f, 0x2a, 0x23, 0x25, 0x58, 0x47, +    0xe5, 0x31, 0x06, 0x70, }, +  { 0x91, 0xa0, 0xa3, 0x86, 0x4e, 0xe0, 0x72, 0x38, 0x06, 0x67, 0x59, 0x5c, +    0x70, 0x25, 0xdb, 0x33, 0x27, }, +  { 0x44, 0x58, 0x66, 0xb8, 0x58, 0xc7, 0x13, 0xed, 0x4c, 0xc0, 0xf4, 0x9a, +    0x1e, 0x67, 0x75, 0x33, 0xb6, 0xb8, }, +  { 0x7f, 0x98, 0x4a, 0x8e, 0x50, 0xa2, 0x5c, 0xcd, 0x59, 0xde, 0x72, 0xb3, +    0x9d, 0xc3, 0x09, 0x8a, 0xab, 0x56, 0xf1, }, +  { 0x80, 0x96, 0x49, 0x1a, 0x59, 0xa2, 0xc5, 0xd5, 0xa7, 0x20, 0x8a, 0xb7, +    0x27, 0x62, 0x84, 0x43, 0xc6, 0xe1, 0x1b, 0x5d, }, +  { 0x6b, 0xb7, 0x2b, 0x26, 0x62, 0x14, 0x70, 0x19, 0x3d, 0x4d, 0xac, 0xac, +    0x63, 0x58, 0x5e, 0x94, 0xb5, 0xb7, 0xe8, 0xe8, 0xa2, }, +  { 0x20, 0xa8, 0xc0, 0xfd, 0x63, 0x3d, 0x6e, 0x98, 0xcf, 0x0c, 0x49, 0x98, +    0xe4, 0x5a, 0xfe, 0x8c, 0xaa, 0x70, 0x82, 0x1c, 0x7b, 0x74, }, +  { 0xc8, 0xe8, 0xdd, 0xdf, 0x69, 0x30, 0x01, 0xc2, 0x0f, 0x7e, 0x2f, 0x11, +    0xcc, 0x3e, 0x17, 0xa5, 0x69, 0x40, 0x3f, 0x0e, 0x79, 0x7f, 0xcf, }, +  { 0xdb, 0x61, 0xc0, 0xe2, 0x2e, 0x49, 0x07, 0x31, 0x1d, 0x91, 0x42, 0x8a, +    0xfc, 0x5e, 0xd3, 0xf8, 0x56, 0x1f, 0x2b, 0x73, 0xfd, 0x9f, 0xb2, 0x8e, }, +  { 0x0c, 0x89, 0x55, 0x0c, 0x1f, 0x59, 0x2c, 0x9d, 0x1b, 0x29, 0x1d, 0x41, +    0x1d, 0xe6, 0x47, 0x8f, 0x8c, 0x2b, 0xea, 0x8f, 0xf0, 0xff, 0x21, 0x70, +    0x88, }, +  { 0x12, 0x18, 0x95, 0xa6, 0x59, 0xb1, 0x31, 0x24, 0x45, 0x67, 0x55, 0xa4, +    0x1a, 0x2d, 0x48, 0x67, 0x1b, 0x43, 0x88, 0x2d, 0x8e, 0xa0, 0x70, 0xb3, +    0xc6, 0xbb, }, +  { 0xe7, 0xb1, 0x1d, 0xb2, 0x76, 0x4d, 0x68, 0x68, 0x68, 0x23, 0x02, 0x55, +    0x3a, 0xe2, 0xe5, 0xd5, 0x4b, 0x43, 0xf9, 0x34, 0x77, 0x5c, 0xa1, 0xf5, +    0x55, 0xfd, 0x4f, }, +  { 0x8c, 0x87, 0x5a, 0x08, 0x3a, 0x73, 0xad, 0x61, 0xe1, 0xe7, 0x99, 0x7e, +    0xf0, 0x5d, 0xe9, 0x5d, 0x16, 0x43, 0x80, 0x2f, 0xd0, 0x66, 0x34, 0xe2, +    0x42, 0x64, 0x3b, 0x1a, }, +  { 0x39, 0xc1, 0x99, 0xcf, 0x22, 0xbf, 0x16, 0x8f, 0x9f, 0x80, 0x7f, 0x95, +    0x0a, 0x05, 0x67, 0x27, 0xe7, 0x15, 0xdf, 0x9d, 0xb2, 0xfe, 0x1c, 0xb5, +    0x1d, 0x60, 0x8f, 0x8a, 0x1d, }, +  { 0x9b, 0x6e, 0x08, 0x09, 0x06, 0x73, 0xab, 0x68, 0x02, 0x62, 0x1a, 0xe4, +    0xd4, 0xdf, 0xc7, 0x02, 0x4c, 0x6a, 0x5f, 0xfd, 0x23, 0xac, 0xae, 0x6d, +    0x43, 0xa4, 0x7a, 0x50, 0x60, 0x3c, }, +  { 0x1d, 0xb4, 0xc6, 0xe1, 0xb1, 0x4b, 0xe3, 0xf2, 0xe2, 0x1a, 0x73, 0x1b, +    0xa0, 0x92, 0xa7, 0xf5, 0xff, 0x8f, 0x8b, 0x5d, 0xdf, 0xa8, 0x04, 0xb3, +    0xb0, 0xf7, 0xcc, 0x12, 0xfa, 0x35, 0x46, }, +  { 0x49, 0x45, 0x97, 0x11, 0x0f, 0x1c, 0x60, 0x8e, 0xe8, 0x47, 0x30, 0xcf, +    0x60, 0xa8, 0x71, 0xc5, 0x1b, 0xe9, 0x39, 0x4d, 0x49, 0xb6, 0x12, 0x1f, +    0x24, 0xab, 0x37, 0xff, 0x83, 0xc2, 0xe1, 0x3a, }, +  { 0x60, }, +  { 0x24, 0x26, }, +  { 0x47, 0xeb, 0xc9, }, +  { 0x4a, 0xd0, 0xbc, 0xf0, }, +  { 0x8e, 0x2b, 0xc9, 0x85, 0x3c, }, +  { 0xa2, 0x07, 0x15, 0xb8, 0x12, 0x74, }, +  { 0x0f, 0xdb, 0x5b, 0x33, 0x69, 0xfe, 0x4b, }, +  { 0xa2, 0x86, 0x54, 0xf4, 0xfd, 0xb2, 0xd4, 0xe6, }, +  { 0xbb, 0x84, 0x78, 0x49, 0x27, 0x8e, 0x61, 0xda, 0x60, }, +  { 0x04, 0xc3, 0xcd, 0xaa, 0x8f, 0xa7, 0x03, 0xc9, 0xf9, 0xb6, }, +  { 0xf8, 0x27, 0x1d, 0x61, 0xdc, 0x21, 0x42, 0xdd, 0xad, 0x92, 0x40, }, +  { 0x12, 0x87, 0xdf, 0xc2, 0x41, 0x45, 0x5a, 0x36, 0x48, 0x5b, 0x51, 0x2b, }, +  { 0xbb, 0x37, 0x5d, 0x1f, 0xf1, 0x68, 0x7a, 0xc4, 0xa5, 0xd2, 0xa4, 0x91, +    0x8d, }, +  { 0x5b, 0x27, 0xd1, 0x04, 0x54, 0x52, 0x9f, 0xa3, 0x47, 0x86, 0x33, 0x33, +    0xbf, 0xa0, }, +  { 0xcf, 0x04, 0xea, 0xf8, 0x03, 0x2a, 0x43, 0xff, 0xa6, 0x68, 0x21, 0x4c, +    0xd5, 0x4b, 0xed, }, +  { 0xaf, 0xb8, 0xbc, 0x63, 0x0f, 0x18, 0x4d, 0xe2, 0x7a, 0xdd, 0x46, 0x44, +    0xc8, 0x24, 0x0a, 0xb7, }, +  { 0x3e, 0xdc, 0x36, 0xe4, 0x89, 0xb1, 0xfa, 0xc6, 0x40, 0x93, 0x2e, 0x75, +    0xb2, 0x15, 0xd1, 0xb1, 0x10, }, +  { 0x6c, 0xd8, 0x20, 0x3b, 0x82, 0x79, 0xf9, 0xc8, 0xbc, 0x9d, 0xe0, 0x35, +    0xbe, 0x1b, 0x49, 0x1a, 0xbc, 0x3a, }, +  { 0x78, 0x65, 0x2c, 0xbe, 0x35, 0x67, 0xdc, 0x78, 0xd4, 0x41, 0xf6, 0xc9, +    0xde, 0xde, 0x1f, 0x18, 0x13, 0x31, 0x11, }, +  { 0x8a, 0x7f, 0xb1, 0x33, 0x8f, 0x0c, 0x3c, 0x0a, 0x06, 0x61, 0xf0, 0x47, +    0x29, 0x1b, 0x29, 0xbc, 0x1c, 0x47, 0xef, 0x7a, }, +  { 0x65, 0x91, 0xf1, 0xe6, 0xb3, 0x96, 0xd3, 0x8c, 0xc2, 0x4a, 0x59, 0x35, +    0x72, 0x8e, 0x0b, 0x9a, 0x87, 0xca, 0x34, 0x7b, 0x63, }, +  { 0x5f, 0x08, 0x87, 0x80, 0x56, 0x25, 0x89, 0x77, 0x61, 0x8c, 0x64, 0xa1, +    0x59, 0x6d, 0x59, 0x62, 0xe8, 0x4a, 0xc8, 0x58, 0x99, 0xd1, }, +  { 0x23, 0x87, 0x1d, 0xed, 0x6f, 0xf2, 0x91, 0x90, 0xe2, 0xfe, 0x43, 0x21, +    0xaf, 0x97, 0xc6, 0xbc, 0xd7, 0x15, 0xc7, 0x2d, 0x08, 0x77, 0x91, }, +  { 0x90, 0x47, 0x9a, 0x9e, 0x3a, 0xdf, 0xf3, 0xc9, 0x4c, 0x1e, 0xa7, 0xd4, +    0x6a, 0x32, 0x90, 0xfe, 0xb7, 0xb6, 0x7b, 0xfa, 0x96, 0x61, 0xfb, 0xa4, }, +  { 0xb1, 0x67, 0x60, 0x45, 0xb0, 0x96, 0xc5, 0x15, 0x9f, 0x4d, 0x26, 0xd7, +    0x9d, 0xf1, 0xf5, 0x6d, 0x21, 0x00, 0x94, 0x31, 0x64, 0x94, 0xd3, 0xa7, +    0xd3, }, +  { 0x02, 0x3e, 0xaf, 0xf3, 0x79, 0x73, 0xa5, 0xf5, 0xcc, 0x7a, 0x7f, 0xfb, +    0x79, 0x2b, 0x85, 0x8c, 0x88, 0x72, 0x06, 0xbe, 0xfe, 0xaf, 0xc1, 0x16, +    0xa6, 0xd6, }, +  { 0x2a, 0xb0, 0x1a, 0xe5, 0xaa, 0x6e, 0xb3, 0xae, 0x53, 0x85, 0x33, 0x80, +    0x75, 0xae, 0x30, 0xe6, 0xb8, 0x72, 0x42, 0xf6, 0x25, 0x4f, 0x38, 0x88, +    0x55, 0xd1, 0xa9, }, +  { 0x90, 0xd8, 0x0c, 0xc0, 0x93, 0x4b, 0x4f, 0x9e, 0x65, 0x6c, 0xa1, 0x54, +    0xa6, 0xf6, 0x6e, 0xca, 0xd2, 0xbb, 0x7e, 0x6a, 0x1c, 0xd3, 0xce, 0x46, +    0xef, 0xb0, 0x00, 0x8d, }, +  { 0xed, 0x9c, 0x49, 0xcd, 0xc2, 0xde, 0x38, 0x0e, 0xe9, 0x98, 0x6c, 0xc8, +    0x90, 0x9e, 0x3c, 0xd4, 0xd3, 0xeb, 0x88, 0x32, 0xc7, 0x28, 0xe3, 0x94, +    0x1c, 0x9f, 0x8b, 0xf3, 0xcb, }, +  { 0xac, 0xe7, 0x92, 0x16, 0xb4, 0x14, 0xa0, 0xe4, 0x04, 0x79, 0xa2, 0xf4, +    0x31, 0xe6, 0x0c, 0x26, 0xdc, 0xbf, 0x2f, 0x69, 0x1b, 0x55, 0x94, 0x67, +    0xda, 0x0c, 0xd7, 0x32, 0x1f, 0xef, }, +  { 0x68, 0x63, 0x85, 0x57, 0x95, 0x9e, 0x42, 0x27, 0x41, 0x43, 0x42, 0x02, +    0xa5, 0x78, 0xa7, 0xc6, 0x43, 0xc1, 0x6a, 0xba, 0x70, 0x80, 0xcd, 0x04, +    0xb6, 0x78, 0x76, 0x29, 0xf3, 0xe8, 0xa0, }, +  { 0xe6, 0xac, 0x8d, 0x9d, 0xf0, 0xc0, 0xf7, 0xf7, 0xe3, 0x3e, 0x4e, 0x28, +    0x0f, 0x59, 0xb2, 0x67, 0x9e, 0x84, 0x34, 0x42, 0x96, 0x30, 0x2b, 0xca, +    0x49, 0xb6, 0xc5, 0x9a, 0x84, 0x59, 0xa7, 0x81, }, +  { 0x7e, }, +  { 0x1e, 0x21, }, +  { 0x26, 0xd3, 0xdd, }, +  { 0x2c, 0xd4, 0xb3, 0x3d, }, +  { 0x86, 0x7b, 0x76, 0x3c, 0xf0, }, +  { 0x12, 0xc3, 0x70, 0x1d, 0x55, 0x18, }, +  { 0x96, 0xc2, 0xbd, 0x61, 0x55, 0xf4, 0x24, }, +  { 0x20, 0x51, 0xf7, 0x86, 0x58, 0x8f, 0x07, 0x2a, }, +  { 0x93, 0x15, 0xa8, 0x1d, 0xda, 0x97, 0xee, 0x0e, 0x6c, }, +  { 0x39, 0x93, 0xdf, 0xd5, 0x0e, 0xca, 0xdc, 0x7a, 0x92, 0xce, }, +  { 0x60, 0xd5, 0xfd, 0xf5, 0x1b, 0x26, 0x82, 0x26, 0x73, 0x02, 0xbc, }, +  { 0x98, 0xf2, 0x34, 0xe1, 0xf5, 0xfb, 0x00, 0xac, 0x10, 0x4a, 0x38, 0x9f, }, +  { 0xda, 0x3a, 0x92, 0x8a, 0xd0, 0xcd, 0x12, 0xcd, 0x15, 0xbb, 0xab, 0x77, +    0x66, }, +  { 0xa2, 0x92, 0x1a, 0xe5, 0xca, 0x0c, 0x30, 0x75, 0xeb, 0xaf, 0x00, 0x31, +    0x55, 0x66, }, +  { 0x06, 0xea, 0xfd, 0x3e, 0x86, 0x38, 0x62, 0x4e, 0xa9, 0x12, 0xa4, 0x12, +    0x43, 0xbf, 0xa1, }, +  { 0xe4, 0x71, 0x7b, 0x94, 0xdb, 0xa0, 0xd2, 0xff, 0x9b, 0xeb, 0xad, 0x8e, +    0x95, 0x8a, 0xc5, 0xed, }, +  { 0x25, 0x5a, 0x77, 0x71, 0x41, 0x0e, 0x7a, 0xe9, 0xed, 0x0c, 0x10, 0xef, +    0xf6, 0x2b, 0x3a, 0xba, 0x60, }, +  { 0xee, 0xe2, 0xa3, 0x67, 0x64, 0x1d, 0xc6, 0x04, 0xc4, 0xe1, 0x68, 0xd2, +    0x6e, 0xd2, 0x91, 0x75, 0x53, 0x07, }, +  { 0xe0, 0xf6, 0x4d, 0x8f, 0x68, 0xfc, 0x06, 0x7e, 0x18, 0x79, 0x7f, 0x2b, +    0x6d, 0xef, 0x46, 0x7f, 0xab, 0xb2, 0xad, }, +  { 0x3d, 0x35, 0x88, 0x9f, 0x2e, 0xcf, 0x96, 0x45, 0x07, 0x60, 0x71, 0x94, +    0x00, 0x8d, 0xbf, 0xf4, 0xef, 0x46, 0x2e, 0x3c, }, +  { 0x43, 0xcf, 0x98, 0xf7, 0x2d, 0xf4, 0x17, 0xe7, 0x8c, 0x05, 0x2d, 0x9b, +    0x24, 0xfb, 0x4d, 0xea, 0x4a, 0xec, 0x01, 0x25, 0x29, }, +  { 0x8e, 0x73, 0x9a, 0x78, 0x11, 0xfe, 0x48, 0xa0, 0x3b, 0x1a, 0x26, 0xdf, +    0x25, 0xe9, 0x59, 0x1c, 0x70, 0x07, 0x9f, 0xdc, 0xa0, 0xa6, }, +  { 0xe8, 0x47, 0x71, 0xc7, 0x3e, 0xdf, 0xb5, 0x13, 0xb9, 0x85, 0x13, 0xa8, +    0x54, 0x47, 0x6e, 0x59, 0x96, 0x09, 0x13, 0x5f, 0x82, 0x16, 0x0b, }, +  { 0xfb, 0xc0, 0x8c, 0x03, 0x21, 0xb3, 0xc4, 0xb5, 0x43, 0x32, 0x6c, 0xea, +    0x7f, 0xa8, 0x43, 0x91, 0xe8, 0x4e, 0x3f, 0xbf, 0x45, 0x58, 0x6a, 0xa3, }, +  { 0x55, 0xf8, 0xf3, 0x00, 0x76, 0x09, 0xef, 0x69, 0x5d, 0xd2, 0x8a, 0xf2, +    0x65, 0xc3, 0xcb, 0x9b, 0x43, 0xfd, 0xb1, 0x7e, 0x7f, 0xa1, 0x94, 0xb0, +    0xd7, }, +  { 0xaa, 0x13, 0xc1, 0x51, 0x40, 0x6d, 0x8d, 0x4c, 0x0a, 0x95, 0x64, 0x7b, +    0xd1, 0x96, 0xb6, 0x56, 0xb4, 0x5b, 0xcf, 0xd6, 0xd9, 0x15, 0x97, 0xdd, +    0xb6, 0xef, }, +  { 0xaf, 0xb7, 0x36, 0xb0, 0x04, 0xdb, 0xd7, 0x9c, 0x9a, 0x44, 0xc4, 0xf6, +    0x1f, 0x12, 0x21, 0x2d, 0x59, 0x30, 0x54, 0xab, 0x27, 0x61, 0xa3, 0x57, +    0xef, 0xf8, 0x53, }, +  { 0x97, 0x34, 0x45, 0x3e, 0xce, 0x7c, 0x35, 0xa2, 0xda, 0x9f, 0x4b, 0x46, +    0x6c, 0x11, 0x67, 0xff, 0x2f, 0x76, 0x58, 0x15, 0x71, 0xfa, 0x44, 0x89, +    0x89, 0xfd, 0xf7, 0x99, }, +  { 0x1f, 0xb1, 0x62, 0xeb, 0x83, 0xc5, 0x9c, 0x89, 0xf9, 0x2c, 0xd2, 0x03, +    0x61, 0xbc, 0xbb, 0xa5, 0x74, 0x0e, 0x9b, 0x7e, 0x82, 0x3e, 0x70, 0x0a, +    0xa9, 0x8f, 0x2b, 0x59, 0xfb, }, +  { 0xf8, 0xca, 0x5e, 0x3a, 0x4f, 0x9e, 0x10, 0x69, 0x10, 0xd5, 0x4c, 0xeb, +    0x1a, 0x0f, 0x3c, 0x6a, 0x98, 0xf5, 0xb0, 0x97, 0x5b, 0x37, 0x2f, 0x0d, +    0xbd, 0x42, 0x4b, 0x69, 0xa1, 0x82, }, +  { 0x12, 0x8c, 0x6d, 0x52, 0x08, 0xef, 0x74, 0xb2, 0xe6, 0xaa, 0xd3, 0xb0, +    0x26, 0xb0, 0xd9, 0x94, 0xb6, 0x11, 0x45, 0x0e, 0x36, 0x71, 0x14, 0x2d, +    0x41, 0x8c, 0x21, 0x53, 0x31, 0xe9, 0x68, }, +  { 0xee, 0xea, 0x0d, 0x89, 0x47, 0x7e, 0x72, 0xd1, 0xd8, 0xce, 0x58, 0x4c, +    0x94, 0x1f, 0x0d, 0x51, 0x08, 0xa3, 0xb6, 0x3d, 0xe7, 0x82, 0x46, 0x92, +    0xd6, 0x98, 0x6b, 0x07, 0x10, 0x65, 0x52, 0x65, }, +}; + +static const u8 blake2s_hmac_testvecs[][BLAKE2S_HASH_SIZE] __initconst = { +  { 0xce, 0xe1, 0x57, 0x69, 0x82, 0xdc, 0xbf, 0x43, 0xad, 0x56, 0x4c, 0x70, +    0xed, 0x68, 0x16, 0x96, 0xcf, 0xa4, 0x73, 0xe8, 0xe8, 0xfc, 0x32, 0x79, +    0x08, 0x0a, 0x75, 0x82, 0xda, 0x3f, 0x05, 0x11, }, +  { 0x77, 0x2f, 0x0c, 0x71, 0x41, 0xf4, 0x4b, 0x2b, 0xb3, 0xc6, 0xb6, 0xf9, +    0x60, 0xde, 0xe4, 0x52, 0x38, 0x66, 0xe8, 0xbf, 0x9b, 0x96, 0xc4, 0x9f, +    0x60, 0xd9, 0x24, 0x37, 0x99, 0xd6, 0xec, 0x31, }, +}; + +bool __init blake2s_selftest(void) +{ +	u8 key[BLAKE2S_KEY_SIZE]; +	u8 buf[ARRAY_SIZE(blake2s_testvecs)]; +	u8 hash[BLAKE2S_HASH_SIZE]; +	struct blake2s_state state; +	bool success = true; +	int i, l; + +	key[0] = key[1] = 1; +	for (i = 2; i < sizeof(key); ++i) +		key[i] = key[i - 2] + key[i - 1]; + +	for (i = 0; i < sizeof(buf); ++i) +		buf[i] = (u8)i; + +	for (i = l = 0; i < ARRAY_SIZE(blake2s_testvecs); l = (l + 37) % ++i) { +		int outlen = 1 + i % BLAKE2S_HASH_SIZE; +		int keylen = (13 * i) % (BLAKE2S_KEY_SIZE + 1); + +		blake2s(hash, buf, key + BLAKE2S_KEY_SIZE - keylen, outlen, i, +			keylen); +		if (memcmp(hash, blake2s_testvecs[i], outlen)) { +			pr_err("blake2s self-test %d: FAIL\n", i + 1); +			success = false; +		} + +		if (!keylen) +			blake2s_init(&state, outlen); +		else +			blake2s_init_key(&state, outlen, +					 key + BLAKE2S_KEY_SIZE - keylen, +					 keylen); + +		blake2s_update(&state, buf, l); +		blake2s_update(&state, buf + l, i - l); +		blake2s_final(&state, hash); +		if (memcmp(hash, blake2s_testvecs[i], outlen)) { +			pr_err("blake2s init/update/final self-test %d: FAIL\n", +			       i + 1); +			success = false; +		} +	} + +	if (success) { +		blake2s256_hmac(hash, buf, key, sizeof(buf), sizeof(key)); +		success &= !memcmp(hash, blake2s_hmac_testvecs[0], BLAKE2S_HASH_SIZE); + +		blake2s256_hmac(hash, key, buf, sizeof(key), sizeof(buf)); +		success &= !memcmp(hash, blake2s_hmac_testvecs[1], BLAKE2S_HASH_SIZE); + +		if (!success) +			pr_err("blake2s256_hmac self-test: FAIL\n"); +	} + +	return success; +} diff --git a/lib/crypto/blake2s.c b/lib/crypto/blake2s.c new file mode 100644 index 000000000000..41025a30c524 --- /dev/null +++ b/lib/crypto/blake2s.c @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/* + * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + * + * This is an implementation of the BLAKE2s hash and PRF functions. + * + * Information: https://blake2.net/ + * + */ + +#include <crypto/internal/blake2s.h> +#include <linux/types.h> +#include <linux/string.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/init.h> +#include <linux/bug.h> +#include <asm/unaligned.h> + +bool blake2s_selftest(void); + +void blake2s_update(struct blake2s_state *state, const u8 *in, size_t inlen) +{ +	const size_t fill = BLAKE2S_BLOCK_SIZE - state->buflen; + +	if (unlikely(!inlen)) +		return; +	if (inlen > fill) { +		memcpy(state->buf + state->buflen, in, fill); +		if (IS_ENABLED(CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S)) +			blake2s_compress_arch(state, state->buf, 1, +					      BLAKE2S_BLOCK_SIZE); +		else +			blake2s_compress_generic(state, state->buf, 1, +						 BLAKE2S_BLOCK_SIZE); +		state->buflen = 0; +		in += fill; +		inlen -= fill; +	} +	if (inlen > BLAKE2S_BLOCK_SIZE) { +		const size_t nblocks = DIV_ROUND_UP(inlen, BLAKE2S_BLOCK_SIZE); +		/* Hash one less (full) block than strictly possible */ +		if (IS_ENABLED(CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S)) +			blake2s_compress_arch(state, in, nblocks - 1, +					      BLAKE2S_BLOCK_SIZE); +		else +			blake2s_compress_generic(state, in, nblocks - 1, +						 BLAKE2S_BLOCK_SIZE); +		in += BLAKE2S_BLOCK_SIZE * (nblocks - 1); +		inlen -= BLAKE2S_BLOCK_SIZE * (nblocks - 1); +	} +	memcpy(state->buf + state->buflen, in, inlen); +	state->buflen += inlen; +} +EXPORT_SYMBOL(blake2s_update); + +void blake2s_final(struct blake2s_state *state, u8 *out) +{ +	WARN_ON(IS_ENABLED(DEBUG) && !out); +	blake2s_set_lastblock(state); +	memset(state->buf + state->buflen, 0, +	       BLAKE2S_BLOCK_SIZE - state->buflen); /* Padding */ +	if (IS_ENABLED(CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S)) +		blake2s_compress_arch(state, state->buf, 1, state->buflen); +	else +		blake2s_compress_generic(state, state->buf, 1, state->buflen); +	cpu_to_le32_array(state->h, ARRAY_SIZE(state->h)); +	memcpy(out, state->h, state->outlen); +	memzero_explicit(state, sizeof(*state)); +} +EXPORT_SYMBOL(blake2s_final); + +void blake2s256_hmac(u8 *out, const u8 *in, const u8 *key, const size_t inlen, +		     const size_t keylen) +{ +	struct blake2s_state state; +	u8 x_key[BLAKE2S_BLOCK_SIZE] __aligned(__alignof__(u32)) = { 0 }; +	u8 i_hash[BLAKE2S_HASH_SIZE] __aligned(__alignof__(u32)); +	int i; + +	if (keylen > BLAKE2S_BLOCK_SIZE) { +		blake2s_init(&state, BLAKE2S_HASH_SIZE); +		blake2s_update(&state, key, keylen); +		blake2s_final(&state, x_key); +	} else +		memcpy(x_key, key, keylen); + +	for (i = 0; i < BLAKE2S_BLOCK_SIZE; ++i) +		x_key[i] ^= 0x36; + +	blake2s_init(&state, BLAKE2S_HASH_SIZE); +	blake2s_update(&state, x_key, BLAKE2S_BLOCK_SIZE); +	blake2s_update(&state, in, inlen); +	blake2s_final(&state, i_hash); + +	for (i = 0; i < BLAKE2S_BLOCK_SIZE; ++i) +		x_key[i] ^= 0x5c ^ 0x36; + +	blake2s_init(&state, BLAKE2S_HASH_SIZE); +	blake2s_update(&state, x_key, BLAKE2S_BLOCK_SIZE); +	blake2s_update(&state, i_hash, BLAKE2S_HASH_SIZE); +	blake2s_final(&state, i_hash); + +	memcpy(out, i_hash, BLAKE2S_HASH_SIZE); +	memzero_explicit(x_key, BLAKE2S_BLOCK_SIZE); +	memzero_explicit(i_hash, BLAKE2S_HASH_SIZE); +} +EXPORT_SYMBOL(blake2s256_hmac); + +static int __init mod_init(void) +{ +	if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) && +	    WARN_ON(!blake2s_selftest())) +		return -ENODEV; +	return 0; +} + +static void __exit mod_exit(void) +{ +} + +module_init(mod_init); +module_exit(mod_exit); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("BLAKE2s hash function"); +MODULE_AUTHOR("Jason A. Donenfeld <Jason@zx2c4.com>"); diff --git a/lib/crypto/chacha.c b/lib/crypto/chacha.c new file mode 100644 index 000000000000..65ead6b0c7e0 --- /dev/null +++ b/lib/crypto/chacha.c @@ -0,0 +1,115 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * The "hash function" used as the core of the ChaCha stream cipher (RFC7539) + * + * Copyright (C) 2015 Martin Willi + */ + +#include <linux/bug.h> +#include <linux/kernel.h> +#include <linux/export.h> +#include <linux/bitops.h> +#include <linux/string.h> +#include <linux/cryptohash.h> +#include <asm/unaligned.h> +#include <crypto/chacha.h> + +static void chacha_permute(u32 *x, int nrounds) +{ +	int i; + +	/* whitelist the allowed round counts */ +	WARN_ON_ONCE(nrounds != 20 && nrounds != 12); + +	for (i = 0; i < nrounds; i += 2) { +		x[0]  += x[4];    x[12] = rol32(x[12] ^ x[0],  16); +		x[1]  += x[5];    x[13] = rol32(x[13] ^ x[1],  16); +		x[2]  += x[6];    x[14] = rol32(x[14] ^ x[2],  16); +		x[3]  += x[7];    x[15] = rol32(x[15] ^ x[3],  16); + +		x[8]  += x[12];   x[4]  = rol32(x[4]  ^ x[8],  12); +		x[9]  += x[13];   x[5]  = rol32(x[5]  ^ x[9],  12); +		x[10] += x[14];   x[6]  = rol32(x[6]  ^ x[10], 12); +		x[11] += x[15];   x[7]  = rol32(x[7]  ^ x[11], 12); + +		x[0]  += x[4];    x[12] = rol32(x[12] ^ x[0],   8); +		x[1]  += x[5];    x[13] = rol32(x[13] ^ x[1],   8); +		x[2]  += x[6];    x[14] = rol32(x[14] ^ x[2],   8); +		x[3]  += x[7];    x[15] = rol32(x[15] ^ x[3],   8); + +		x[8]  += x[12];   x[4]  = rol32(x[4]  ^ x[8],   7); +		x[9]  += x[13];   x[5]  = rol32(x[5]  ^ x[9],   7); +		x[10] += x[14];   x[6]  = rol32(x[6]  ^ x[10],  7); +		x[11] += x[15];   x[7]  = rol32(x[7]  ^ x[11],  7); + +		x[0]  += x[5];    x[15] = rol32(x[15] ^ x[0],  16); +		x[1]  += x[6];    x[12] = rol32(x[12] ^ x[1],  16); +		x[2]  += x[7];    x[13] = rol32(x[13] ^ x[2],  16); +		x[3]  += x[4];    x[14] = rol32(x[14] ^ x[3],  16); + +		x[10] += x[15];   x[5]  = rol32(x[5]  ^ x[10], 12); +		x[11] += x[12];   x[6]  = rol32(x[6]  ^ x[11], 12); +		x[8]  += x[13];   x[7]  = rol32(x[7]  ^ x[8],  12); +		x[9]  += x[14];   x[4]  = rol32(x[4]  ^ x[9],  12); + +		x[0]  += x[5];    x[15] = rol32(x[15] ^ x[0],   8); +		x[1]  += x[6];    x[12] = rol32(x[12] ^ x[1],   8); +		x[2]  += x[7];    x[13] = rol32(x[13] ^ x[2],   8); +		x[3]  += x[4];    x[14] = rol32(x[14] ^ x[3],   8); + +		x[10] += x[15];   x[5]  = rol32(x[5]  ^ x[10],  7); +		x[11] += x[12];   x[6]  = rol32(x[6]  ^ x[11],  7); +		x[8]  += x[13];   x[7]  = rol32(x[7]  ^ x[8],   7); +		x[9]  += x[14];   x[4]  = rol32(x[4]  ^ x[9],   7); +	} +} + +/** + * chacha_block - generate one keystream block and increment block counter + * @state: input state matrix (16 32-bit words) + * @stream: output keystream block (64 bytes) + * @nrounds: number of rounds (20 or 12; 20 is recommended) + * + * This is the ChaCha core, a function from 64-byte strings to 64-byte strings. + * The caller has already converted the endianness of the input.  This function + * also handles incrementing the block counter in the input matrix. + */ +void chacha_block_generic(u32 *state, u8 *stream, int nrounds) +{ +	u32 x[16]; +	int i; + +	memcpy(x, state, 64); + +	chacha_permute(x, nrounds); + +	for (i = 0; i < ARRAY_SIZE(x); i++) +		put_unaligned_le32(x[i] + state[i], &stream[i * sizeof(u32)]); + +	state[12]++; +} +EXPORT_SYMBOL(chacha_block_generic); + +/** + * hchacha_block_generic - abbreviated ChaCha core, for XChaCha + * @state: input state matrix (16 32-bit words) + * @out: output (8 32-bit words) + * @nrounds: number of rounds (20 or 12; 20 is recommended) + * + * HChaCha is the ChaCha equivalent of HSalsa and is an intermediate step + * towards XChaCha (see https://cr.yp.to/snuffle/xsalsa-20081128.pdf).  HChaCha + * skips the final addition of the initial state, and outputs only certain words + * of the state.  It should not be used for streaming directly. + */ +void hchacha_block_generic(const u32 *state, u32 *stream, int nrounds) +{ +	u32 x[16]; + +	memcpy(x, state, 64); + +	chacha_permute(x, nrounds); + +	memcpy(&stream[0], &x[0], 16); +	memcpy(&stream[4], &x[12], 16); +} +EXPORT_SYMBOL(hchacha_block_generic); diff --git a/lib/crypto/chacha20poly1305-selftest.c b/lib/crypto/chacha20poly1305-selftest.c new file mode 100644 index 000000000000..465de46dbdef --- /dev/null +++ b/lib/crypto/chacha20poly1305-selftest.c @@ -0,0 +1,7393 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/* + * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + */ + +#include <crypto/chacha20poly1305.h> +#include <crypto/poly1305.h> + +#include <asm/unaligned.h> +#include <linux/bug.h> +#include <linux/init.h> +#include <linux/mm.h> +#include <linux/kernel.h> +#include <linux/slab.h> + +struct chacha20poly1305_testvec { +	const u8 *input, *output, *assoc, *nonce, *key; +	size_t ilen, alen, nlen; +	bool failure; +}; + +/* The first of these are the ChaCha20-Poly1305 AEAD test vectors from RFC7539 + * 2.8.2. After they are generated by reference implementations. And the final + * marked ones are taken from wycheproof, but we only do these for the encrypt + * side, because mostly we're stressing the primitives rather than the actual + * chapoly construction. + */ + +static const u8 enc_input001[] __initconst = { +	0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, +	0x2d, 0x44, 0x72, 0x61, 0x66, 0x74, 0x73, 0x20, +	0x61, 0x72, 0x65, 0x20, 0x64, 0x72, 0x61, 0x66, +	0x74, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, +	0x6e, 0x74, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, +	0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, +	0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, +	0x6f, 0x66, 0x20, 0x73, 0x69, 0x78, 0x20, 0x6d, +	0x6f, 0x6e, 0x74, 0x68, 0x73, 0x20, 0x61, 0x6e, +	0x64, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, +	0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, +	0x2c, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, +	0x65, 0x64, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x6f, +	0x62, 0x73, 0x6f, 0x6c, 0x65, 0x74, 0x65, 0x64, +	0x20, 0x62, 0x79, 0x20, 0x6f, 0x74, 0x68, 0x65, +	0x72, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, +	0x6e, 0x74, 0x73, 0x20, 0x61, 0x74, 0x20, 0x61, +	0x6e, 0x79, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, +	0x20, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x69, +	0x6e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x70, 0x72, +	0x69, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, +	0x75, 0x73, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, +	0x72, 0x6e, 0x65, 0x74, 0x2d, 0x44, 0x72, 0x61, +	0x66, 0x74, 0x73, 0x20, 0x61, 0x73, 0x20, 0x72, +	0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, +	0x20, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, +	0x6c, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x20, +	0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, +	0x6d, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, +	0x74, 0x68, 0x61, 0x6e, 0x20, 0x61, 0x73, 0x20, +	0x2f, 0xe2, 0x80, 0x9c, 0x77, 0x6f, 0x72, 0x6b, +	0x20, 0x69, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x67, +	0x72, 0x65, 0x73, 0x73, 0x2e, 0x2f, 0xe2, 0x80, +	0x9d +}; +static const u8 enc_output001[] __initconst = { +	0x64, 0xa0, 0x86, 0x15, 0x75, 0x86, 0x1a, 0xf4, +	0x60, 0xf0, 0x62, 0xc7, 0x9b, 0xe6, 0x43, 0xbd, +	0x5e, 0x80, 0x5c, 0xfd, 0x34, 0x5c, 0xf3, 0x89, +	0xf1, 0x08, 0x67, 0x0a, 0xc7, 0x6c, 0x8c, 0xb2, +	0x4c, 0x6c, 0xfc, 0x18, 0x75, 0x5d, 0x43, 0xee, +	0xa0, 0x9e, 0xe9, 0x4e, 0x38, 0x2d, 0x26, 0xb0, +	0xbd, 0xb7, 0xb7, 0x3c, 0x32, 0x1b, 0x01, 0x00, +	0xd4, 0xf0, 0x3b, 0x7f, 0x35, 0x58, 0x94, 0xcf, +	0x33, 0x2f, 0x83, 0x0e, 0x71, 0x0b, 0x97, 0xce, +	0x98, 0xc8, 0xa8, 0x4a, 0xbd, 0x0b, 0x94, 0x81, +	0x14, 0xad, 0x17, 0x6e, 0x00, 0x8d, 0x33, 0xbd, +	0x60, 0xf9, 0x82, 0xb1, 0xff, 0x37, 0xc8, 0x55, +	0x97, 0x97, 0xa0, 0x6e, 0xf4, 0xf0, 0xef, 0x61, +	0xc1, 0x86, 0x32, 0x4e, 0x2b, 0x35, 0x06, 0x38, +	0x36, 0x06, 0x90, 0x7b, 0x6a, 0x7c, 0x02, 0xb0, +	0xf9, 0xf6, 0x15, 0x7b, 0x53, 0xc8, 0x67, 0xe4, +	0xb9, 0x16, 0x6c, 0x76, 0x7b, 0x80, 0x4d, 0x46, +	0xa5, 0x9b, 0x52, 0x16, 0xcd, 0xe7, 0xa4, 0xe9, +	0x90, 0x40, 0xc5, 0xa4, 0x04, 0x33, 0x22, 0x5e, +	0xe2, 0x82, 0xa1, 0xb0, 0xa0, 0x6c, 0x52, 0x3e, +	0xaf, 0x45, 0x34, 0xd7, 0xf8, 0x3f, 0xa1, 0x15, +	0x5b, 0x00, 0x47, 0x71, 0x8c, 0xbc, 0x54, 0x6a, +	0x0d, 0x07, 0x2b, 0x04, 0xb3, 0x56, 0x4e, 0xea, +	0x1b, 0x42, 0x22, 0x73, 0xf5, 0x48, 0x27, 0x1a, +	0x0b, 0xb2, 0x31, 0x60, 0x53, 0xfa, 0x76, 0x99, +	0x19, 0x55, 0xeb, 0xd6, 0x31, 0x59, 0x43, 0x4e, +	0xce, 0xbb, 0x4e, 0x46, 0x6d, 0xae, 0x5a, 0x10, +	0x73, 0xa6, 0x72, 0x76, 0x27, 0x09, 0x7a, 0x10, +	0x49, 0xe6, 0x17, 0xd9, 0x1d, 0x36, 0x10, 0x94, +	0xfa, 0x68, 0xf0, 0xff, 0x77, 0x98, 0x71, 0x30, +	0x30, 0x5b, 0xea, 0xba, 0x2e, 0xda, 0x04, 0xdf, +	0x99, 0x7b, 0x71, 0x4d, 0x6c, 0x6f, 0x2c, 0x29, +	0xa6, 0xad, 0x5c, 0xb4, 0x02, 0x2b, 0x02, 0x70, +	0x9b, 0xee, 0xad, 0x9d, 0x67, 0x89, 0x0c, 0xbb, +	0x22, 0x39, 0x23, 0x36, 0xfe, 0xa1, 0x85, 0x1f, +	0x38 +}; +static const u8 enc_assoc001[] __initconst = { +	0xf3, 0x33, 0x88, 0x86, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x4e, 0x91 +}; +static const u8 enc_nonce001[] __initconst = { +	0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 +}; +static const u8 enc_key001[] __initconst = { +	0x1c, 0x92, 0x40, 0xa5, 0xeb, 0x55, 0xd3, 0x8a, +	0xf3, 0x33, 0x88, 0x86, 0x04, 0xf6, 0xb5, 0xf0, +	0x47, 0x39, 0x17, 0xc1, 0x40, 0x2b, 0x80, 0x09, +	0x9d, 0xca, 0x5c, 0xbc, 0x20, 0x70, 0x75, 0xc0 +}; + +static const u8 enc_input002[] __initconst = { }; +static const u8 enc_output002[] __initconst = { +	0xea, 0xe0, 0x1e, 0x9e, 0x2c, 0x91, 0xaa, 0xe1, +	0xdb, 0x5d, 0x99, 0x3f, 0x8a, 0xf7, 0x69, 0x92 +}; +static const u8 enc_assoc002[] __initconst = { }; +static const u8 enc_nonce002[] __initconst = { +	0xca, 0xbf, 0x33, 0x71, 0x32, 0x45, 0x77, 0x8e +}; +static const u8 enc_key002[] __initconst = { +	0x4c, 0xf5, 0x96, 0x83, 0x38, 0xe6, 0xae, 0x7f, +	0x2d, 0x29, 0x25, 0x76, 0xd5, 0x75, 0x27, 0x86, +	0x91, 0x9a, 0x27, 0x7a, 0xfb, 0x46, 0xc5, 0xef, +	0x94, 0x81, 0x79, 0x57, 0x14, 0x59, 0x40, 0x68 +}; + +static const u8 enc_input003[] __initconst = { }; +static const u8 enc_output003[] __initconst = { +	0xdd, 0x6b, 0x3b, 0x82, 0xce, 0x5a, 0xbd, 0xd6, +	0xa9, 0x35, 0x83, 0xd8, 0x8c, 0x3d, 0x85, 0x77 +}; +static const u8 enc_assoc003[] __initconst = { +	0x33, 0x10, 0x41, 0x12, 0x1f, 0xf3, 0xd2, 0x6b +}; +static const u8 enc_nonce003[] __initconst = { +	0x3d, 0x86, 0xb5, 0x6b, 0xc8, 0xa3, 0x1f, 0x1d +}; +static const u8 enc_key003[] __initconst = { +	0x2d, 0xb0, 0x5d, 0x40, 0xc8, 0xed, 0x44, 0x88, +	0x34, 0xd1, 0x13, 0xaf, 0x57, 0xa1, 0xeb, 0x3a, +	0x2a, 0x80, 0x51, 0x36, 0xec, 0x5b, 0xbc, 0x08, +	0x93, 0x84, 0x21, 0xb5, 0x13, 0x88, 0x3c, 0x0d +}; + +static const u8 enc_input004[] __initconst = { +	0xa4 +}; +static const u8 enc_output004[] __initconst = { +	0xb7, 0x1b, 0xb0, 0x73, 0x59, 0xb0, 0x84, 0xb2, +	0x6d, 0x8e, 0xab, 0x94, 0x31, 0xa1, 0xae, 0xac, +	0x89 +}; +static const u8 enc_assoc004[] __initconst = { +	0x6a, 0xe2, 0xad, 0x3f, 0x88, 0x39, 0x5a, 0x40 +}; +static const u8 enc_nonce004[] __initconst = { +	0xd2, 0x32, 0x1f, 0x29, 0x28, 0xc6, 0xc4, 0xc4 +}; +static const u8 enc_key004[] __initconst = { +	0x4b, 0x28, 0x4b, 0xa3, 0x7b, 0xbe, 0xe9, 0xf8, +	0x31, 0x80, 0x82, 0xd7, 0xd8, 0xe8, 0xb5, 0xa1, +	0xe2, 0x18, 0x18, 0x8a, 0x9c, 0xfa, 0xa3, 0x3d, +	0x25, 0x71, 0x3e, 0x40, 0xbc, 0x54, 0x7a, 0x3e +}; + +static const u8 enc_input005[] __initconst = { +	0x2d +}; +static const u8 enc_output005[] __initconst = { +	0xbf, 0xe1, 0x5b, 0x0b, 0xdb, 0x6b, 0xf5, 0x5e, +	0x6c, 0x5d, 0x84, 0x44, 0x39, 0x81, 0xc1, 0x9c, +	0xac +}; +static const u8 enc_assoc005[] __initconst = { }; +static const u8 enc_nonce005[] __initconst = { +	0x20, 0x1c, 0xaa, 0x5f, 0x9c, 0xbf, 0x92, 0x30 +}; +static const u8 enc_key005[] __initconst = { +	0x66, 0xca, 0x9c, 0x23, 0x2a, 0x4b, 0x4b, 0x31, +	0x0e, 0x92, 0x89, 0x8b, 0xf4, 0x93, 0xc7, 0x87, +	0x98, 0xa3, 0xd8, 0x39, 0xf8, 0xf4, 0xa7, 0x01, +	0xc0, 0x2e, 0x0a, 0xa6, 0x7e, 0x5a, 0x78, 0x87 +}; + +static const u8 enc_input006[] __initconst = { +	0x33, 0x2f, 0x94, 0xc1, 0xa4, 0xef, 0xcc, 0x2a, +	0x5b, 0xa6, 0xe5, 0x8f, 0x1d, 0x40, 0xf0, 0x92, +	0x3c, 0xd9, 0x24, 0x11, 0xa9, 0x71, 0xf9, 0x37, +	0x14, 0x99, 0xfa, 0xbe, 0xe6, 0x80, 0xde, 0x50, +	0xc9, 0x96, 0xd4, 0xb0, 0xec, 0x9e, 0x17, 0xec, +	0xd2, 0x5e, 0x72, 0x99, 0xfc, 0x0a, 0xe1, 0xcb, +	0x48, 0xd2, 0x85, 0xdd, 0x2f, 0x90, 0xe0, 0x66, +	0x3b, 0xe6, 0x20, 0x74, 0xbe, 0x23, 0x8f, 0xcb, +	0xb4, 0xe4, 0xda, 0x48, 0x40, 0xa6, 0xd1, 0x1b, +	0xc7, 0x42, 0xce, 0x2f, 0x0c, 0xa6, 0x85, 0x6e, +	0x87, 0x37, 0x03, 0xb1, 0x7c, 0x25, 0x96, 0xa3, +	0x05, 0xd8, 0xb0, 0xf4, 0xed, 0xea, 0xc2, 0xf0, +	0x31, 0x98, 0x6c, 0xd1, 0x14, 0x25, 0xc0, 0xcb, +	0x01, 0x74, 0xd0, 0x82, 0xf4, 0x36, 0xf5, 0x41, +	0xd5, 0xdc, 0xca, 0xc5, 0xbb, 0x98, 0xfe, 0xfc, +	0x69, 0x21, 0x70, 0xd8, 0xa4, 0x4b, 0xc8, 0xde, +	0x8f +}; +static const u8 enc_output006[] __initconst = { +	0x8b, 0x06, 0xd3, 0x31, 0xb0, 0x93, 0x45, 0xb1, +	0x75, 0x6e, 0x26, 0xf9, 0x67, 0xbc, 0x90, 0x15, +	0x81, 0x2c, 0xb5, 0xf0, 0xc6, 0x2b, 0xc7, 0x8c, +	0x56, 0xd1, 0xbf, 0x69, 0x6c, 0x07, 0xa0, 0xda, +	0x65, 0x27, 0xc9, 0x90, 0x3d, 0xef, 0x4b, 0x11, +	0x0f, 0x19, 0x07, 0xfd, 0x29, 0x92, 0xd9, 0xc8, +	0xf7, 0x99, 0x2e, 0x4a, 0xd0, 0xb8, 0x2c, 0xdc, +	0x93, 0xf5, 0x9e, 0x33, 0x78, 0xd1, 0x37, 0xc3, +	0x66, 0xd7, 0x5e, 0xbc, 0x44, 0xbf, 0x53, 0xa5, +	0xbc, 0xc4, 0xcb, 0x7b, 0x3a, 0x8e, 0x7f, 0x02, +	0xbd, 0xbb, 0xe7, 0xca, 0xa6, 0x6c, 0x6b, 0x93, +	0x21, 0x93, 0x10, 0x61, 0xe7, 0x69, 0xd0, 0x78, +	0xf3, 0x07, 0x5a, 0x1a, 0x8f, 0x73, 0xaa, 0xb1, +	0x4e, 0xd3, 0xda, 0x4f, 0xf3, 0x32, 0xe1, 0x66, +	0x3e, 0x6c, 0xc6, 0x13, 0xba, 0x06, 0x5b, 0xfc, +	0x6a, 0xe5, 0x6f, 0x60, 0xfb, 0x07, 0x40, 0xb0, +	0x8c, 0x9d, 0x84, 0x43, 0x6b, 0xc1, 0xf7, 0x8d, +	0x8d, 0x31, 0xf7, 0x7a, 0x39, 0x4d, 0x8f, 0x9a, +	0xeb +}; +static const u8 enc_assoc006[] __initconst = { +	0x70, 0xd3, 0x33, 0xf3, 0x8b, 0x18, 0x0b +}; +static const u8 enc_nonce006[] __initconst = { +	0xdf, 0x51, 0x84, 0x82, 0x42, 0x0c, 0x75, 0x9c +}; +static const u8 enc_key006[] __initconst = { +	0x68, 0x7b, 0x8d, 0x8e, 0xe3, 0xc4, 0xdd, 0xae, +	0xdf, 0x72, 0x7f, 0x53, 0x72, 0x25, 0x1e, 0x78, +	0x91, 0xcb, 0x69, 0x76, 0x1f, 0x49, 0x93, 0xf9, +	0x6f, 0x21, 0xcc, 0x39, 0x9c, 0xad, 0xb1, 0x01 +}; + +static const u8 enc_input007[] __initconst = { +	0x9b, 0x18, 0xdb, 0xdd, 0x9a, 0x0f, 0x3e, 0xa5, +	0x15, 0x17, 0xde, 0xdf, 0x08, 0x9d, 0x65, 0x0a, +	0x67, 0x30, 0x12, 0xe2, 0x34, 0x77, 0x4b, 0xc1, +	0xd9, 0xc6, 0x1f, 0xab, 0xc6, 0x18, 0x50, 0x17, +	0xa7, 0x9d, 0x3c, 0xa6, 0xc5, 0x35, 0x8c, 0x1c, +	0xc0, 0xa1, 0x7c, 0x9f, 0x03, 0x89, 0xca, 0xe1, +	0xe6, 0xe9, 0xd4, 0xd3, 0x88, 0xdb, 0xb4, 0x51, +	0x9d, 0xec, 0xb4, 0xfc, 0x52, 0xee, 0x6d, 0xf1, +	0x75, 0x42, 0xc6, 0xfd, 0xbd, 0x7a, 0x8e, 0x86, +	0xfc, 0x44, 0xb3, 0x4f, 0xf3, 0xea, 0x67, 0x5a, +	0x41, 0x13, 0xba, 0xb0, 0xdc, 0xe1, 0xd3, 0x2a, +	0x7c, 0x22, 0xb3, 0xca, 0xac, 0x6a, 0x37, 0x98, +	0x3e, 0x1d, 0x40, 0x97, 0xf7, 0x9b, 0x1d, 0x36, +	0x6b, 0xb3, 0x28, 0xbd, 0x60, 0x82, 0x47, 0x34, +	0xaa, 0x2f, 0x7d, 0xe9, 0xa8, 0x70, 0x81, 0x57, +	0xd4, 0xb9, 0x77, 0x0a, 0x9d, 0x29, 0xa7, 0x84, +	0x52, 0x4f, 0xc2, 0x4a, 0x40, 0x3b, 0x3c, 0xd4, +	0xc9, 0x2a, 0xdb, 0x4a, 0x53, 0xc4, 0xbe, 0x80, +	0xe9, 0x51, 0x7f, 0x8f, 0xc7, 0xa2, 0xce, 0x82, +	0x5c, 0x91, 0x1e, 0x74, 0xd9, 0xd0, 0xbd, 0xd5, +	0xf3, 0xfd, 0xda, 0x4d, 0x25, 0xb4, 0xbb, 0x2d, +	0xac, 0x2f, 0x3d, 0x71, 0x85, 0x7b, 0xcf, 0x3c, +	0x7b, 0x3e, 0x0e, 0x22, 0x78, 0x0c, 0x29, 0xbf, +	0xe4, 0xf4, 0x57, 0xb3, 0xcb, 0x49, 0xa0, 0xfc, +	0x1e, 0x05, 0x4e, 0x16, 0xbc, 0xd5, 0xa8, 0xa3, +	0xee, 0x05, 0x35, 0xc6, 0x7c, 0xab, 0x60, 0x14, +	0x55, 0x1a, 0x8e, 0xc5, 0x88, 0x5d, 0xd5, 0x81, +	0xc2, 0x81, 0xa5, 0xc4, 0x60, 0xdb, 0xaf, 0x77, +	0x91, 0xe1, 0xce, 0xa2, 0x7e, 0x7f, 0x42, 0xe3, +	0xb0, 0x13, 0x1c, 0x1f, 0x25, 0x60, 0x21, 0xe2, +	0x40, 0x5f, 0x99, 0xb7, 0x73, 0xec, 0x9b, 0x2b, +	0xf0, 0x65, 0x11, 0xc8, 0xd0, 0x0a, 0x9f, 0xd3 +}; +static const u8 enc_output007[] __initconst = { +	0x85, 0x04, 0xc2, 0xed, 0x8d, 0xfd, 0x97, 0x5c, +	0xd2, 0xb7, 0xe2, 0xc1, 0x6b, 0xa3, 0xba, 0xf8, +	0xc9, 0x50, 0xc3, 0xc6, 0xa5, 0xe3, 0xa4, 0x7c, +	0xc3, 0x23, 0x49, 0x5e, 0xa9, 0xb9, 0x32, 0xeb, +	0x8a, 0x7c, 0xca, 0xe5, 0xec, 0xfb, 0x7c, 0xc0, +	0xcb, 0x7d, 0xdc, 0x2c, 0x9d, 0x92, 0x55, 0x21, +	0x0a, 0xc8, 0x43, 0x63, 0x59, 0x0a, 0x31, 0x70, +	0x82, 0x67, 0x41, 0x03, 0xf8, 0xdf, 0xf2, 0xac, +	0xa7, 0x02, 0xd4, 0xd5, 0x8a, 0x2d, 0xc8, 0x99, +	0x19, 0x66, 0xd0, 0xf6, 0x88, 0x2c, 0x77, 0xd9, +	0xd4, 0x0d, 0x6c, 0xbd, 0x98, 0xde, 0xe7, 0x7f, +	0xad, 0x7e, 0x8a, 0xfb, 0xe9, 0x4b, 0xe5, 0xf7, +	0xe5, 0x50, 0xa0, 0x90, 0x3f, 0xd6, 0x22, 0x53, +	0xe3, 0xfe, 0x1b, 0xcc, 0x79, 0x3b, 0xec, 0x12, +	0x47, 0x52, 0xa7, 0xd6, 0x04, 0xe3, 0x52, 0xe6, +	0x93, 0x90, 0x91, 0x32, 0x73, 0x79, 0xb8, 0xd0, +	0x31, 0xde, 0x1f, 0x9f, 0x2f, 0x05, 0x38, 0x54, +	0x2f, 0x35, 0x04, 0x39, 0xe0, 0xa7, 0xba, 0xc6, +	0x52, 0xf6, 0x37, 0x65, 0x4c, 0x07, 0xa9, 0x7e, +	0xb3, 0x21, 0x6f, 0x74, 0x8c, 0xc9, 0xde, 0xdb, +	0x65, 0x1b, 0x9b, 0xaa, 0x60, 0xb1, 0x03, 0x30, +	0x6b, 0xb2, 0x03, 0xc4, 0x1c, 0x04, 0xf8, 0x0f, +	0x64, 0xaf, 0x46, 0xe4, 0x65, 0x99, 0x49, 0xe2, +	0xea, 0xce, 0x78, 0x00, 0xd8, 0x8b, 0xd5, 0x2e, +	0xcf, 0xfc, 0x40, 0x49, 0xe8, 0x58, 0xdc, 0x34, +	0x9c, 0x8c, 0x61, 0xbf, 0x0a, 0x8e, 0xec, 0x39, +	0xa9, 0x30, 0x05, 0x5a, 0xd2, 0x56, 0x01, 0xc7, +	0xda, 0x8f, 0x4e, 0xbb, 0x43, 0xa3, 0x3a, 0xf9, +	0x15, 0x2a, 0xd0, 0xa0, 0x7a, 0x87, 0x34, 0x82, +	0xfe, 0x8a, 0xd1, 0x2d, 0x5e, 0xc7, 0xbf, 0x04, +	0x53, 0x5f, 0x3b, 0x36, 0xd4, 0x25, 0x5c, 0x34, +	0x7a, 0x8d, 0xd5, 0x05, 0xce, 0x72, 0xca, 0xef, +	0x7a, 0x4b, 0xbc, 0xb0, 0x10, 0x5c, 0x96, 0x42, +	0x3a, 0x00, 0x98, 0xcd, 0x15, 0xe8, 0xb7, 0x53 +}; +static const u8 enc_assoc007[] __initconst = { }; +static const u8 enc_nonce007[] __initconst = { +	0xde, 0x7b, 0xef, 0xc3, 0x65, 0x1b, 0x68, 0xb0 +}; +static const u8 enc_key007[] __initconst = { +	0x8d, 0xb8, 0x91, 0x48, 0xf0, 0xe7, 0x0a, 0xbd, +	0xf9, 0x3f, 0xcd, 0xd9, 0xa0, 0x1e, 0x42, 0x4c, +	0xe7, 0xde, 0x25, 0x3d, 0xa3, 0xd7, 0x05, 0x80, +	0x8d, 0xf2, 0x82, 0xac, 0x44, 0x16, 0x51, 0x01 +}; + +static const u8 enc_input008[] __initconst = { +	0xc3, 0x09, 0x94, 0x62, 0xe6, 0x46, 0x2e, 0x10, +	0xbe, 0x00, 0xe4, 0xfc, 0xf3, 0x40, 0xa3, 0xe2, +	0x0f, 0xc2, 0x8b, 0x28, 0xdc, 0xba, 0xb4, 0x3c, +	0xe4, 0x21, 0x58, 0x61, 0xcd, 0x8b, 0xcd, 0xfb, +	0xac, 0x94, 0xa1, 0x45, 0xf5, 0x1c, 0xe1, 0x12, +	0xe0, 0x3b, 0x67, 0x21, 0x54, 0x5e, 0x8c, 0xaa, +	0xcf, 0xdb, 0xb4, 0x51, 0xd4, 0x13, 0xda, 0xe6, +	0x83, 0x89, 0xb6, 0x92, 0xe9, 0x21, 0x76, 0xa4, +	0x93, 0x7d, 0x0e, 0xfd, 0x96, 0x36, 0x03, 0x91, +	0x43, 0x5c, 0x92, 0x49, 0x62, 0x61, 0x7b, 0xeb, +	0x43, 0x89, 0xb8, 0x12, 0x20, 0x43, 0xd4, 0x47, +	0x06, 0x84, 0xee, 0x47, 0xe9, 0x8a, 0x73, 0x15, +	0x0f, 0x72, 0xcf, 0xed, 0xce, 0x96, 0xb2, 0x7f, +	0x21, 0x45, 0x76, 0xeb, 0x26, 0x28, 0x83, 0x6a, +	0xad, 0xaa, 0xa6, 0x81, 0xd8, 0x55, 0xb1, 0xa3, +	0x85, 0xb3, 0x0c, 0xdf, 0xf1, 0x69, 0x2d, 0x97, +	0x05, 0x2a, 0xbc, 0x7c, 0x7b, 0x25, 0xf8, 0x80, +	0x9d, 0x39, 0x25, 0xf3, 0x62, 0xf0, 0x66, 0x5e, +	0xf4, 0xa0, 0xcf, 0xd8, 0xfd, 0x4f, 0xb1, 0x1f, +	0x60, 0x3a, 0x08, 0x47, 0xaf, 0xe1, 0xf6, 0x10, +	0x77, 0x09, 0xa7, 0x27, 0x8f, 0x9a, 0x97, 0x5a, +	0x26, 0xfa, 0xfe, 0x41, 0x32, 0x83, 0x10, 0xe0, +	0x1d, 0xbf, 0x64, 0x0d, 0xf4, 0x1c, 0x32, 0x35, +	0xe5, 0x1b, 0x36, 0xef, 0xd4, 0x4a, 0x93, 0x4d, +	0x00, 0x7c, 0xec, 0x02, 0x07, 0x8b, 0x5d, 0x7d, +	0x1b, 0x0e, 0xd1, 0xa6, 0xa5, 0x5d, 0x7d, 0x57, +	0x88, 0xa8, 0xcc, 0x81, 0xb4, 0x86, 0x4e, 0xb4, +	0x40, 0xe9, 0x1d, 0xc3, 0xb1, 0x24, 0x3e, 0x7f, +	0xcc, 0x8a, 0x24, 0x9b, 0xdf, 0x6d, 0xf0, 0x39, +	0x69, 0x3e, 0x4c, 0xc0, 0x96, 0xe4, 0x13, 0xda, +	0x90, 0xda, 0xf4, 0x95, 0x66, 0x8b, 0x17, 0x17, +	0xfe, 0x39, 0x43, 0x25, 0xaa, 0xda, 0xa0, 0x43, +	0x3c, 0xb1, 0x41, 0x02, 0xa3, 0xf0, 0xa7, 0x19, +	0x59, 0xbc, 0x1d, 0x7d, 0x6c, 0x6d, 0x91, 0x09, +	0x5c, 0xb7, 0x5b, 0x01, 0xd1, 0x6f, 0x17, 0x21, +	0x97, 0xbf, 0x89, 0x71, 0xa5, 0xb0, 0x6e, 0x07, +	0x45, 0xfd, 0x9d, 0xea, 0x07, 0xf6, 0x7a, 0x9f, +	0x10, 0x18, 0x22, 0x30, 0x73, 0xac, 0xd4, 0x6b, +	0x72, 0x44, 0xed, 0xd9, 0x19, 0x9b, 0x2d, 0x4a, +	0x41, 0xdd, 0xd1, 0x85, 0x5e, 0x37, 0x19, 0xed, +	0xd2, 0x15, 0x8f, 0x5e, 0x91, 0xdb, 0x33, 0xf2, +	0xe4, 0xdb, 0xff, 0x98, 0xfb, 0xa3, 0xb5, 0xca, +	0x21, 0x69, 0x08, 0xe7, 0x8a, 0xdf, 0x90, 0xff, +	0x3e, 0xe9, 0x20, 0x86, 0x3c, 0xe9, 0xfc, 0x0b, +	0xfe, 0x5c, 0x61, 0xaa, 0x13, 0x92, 0x7f, 0x7b, +	0xec, 0xe0, 0x6d, 0xa8, 0x23, 0x22, 0xf6, 0x6b, +	0x77, 0xc4, 0xfe, 0x40, 0x07, 0x3b, 0xb6, 0xf6, +	0x8e, 0x5f, 0xd4, 0xb9, 0xb7, 0x0f, 0x21, 0x04, +	0xef, 0x83, 0x63, 0x91, 0x69, 0x40, 0xa3, 0x48, +	0x5c, 0xd2, 0x60, 0xf9, 0x4f, 0x6c, 0x47, 0x8b, +	0x3b, 0xb1, 0x9f, 0x8e, 0xee, 0x16, 0x8a, 0x13, +	0xfc, 0x46, 0x17, 0xc3, 0xc3, 0x32, 0x56, 0xf8, +	0x3c, 0x85, 0x3a, 0xb6, 0x3e, 0xaa, 0x89, 0x4f, +	0xb3, 0xdf, 0x38, 0xfd, 0xf1, 0xe4, 0x3a, 0xc0, +	0xe6, 0x58, 0xb5, 0x8f, 0xc5, 0x29, 0xa2, 0x92, +	0x4a, 0xb6, 0xa0, 0x34, 0x7f, 0xab, 0xb5, 0x8a, +	0x90, 0xa1, 0xdb, 0x4d, 0xca, 0xb6, 0x2c, 0x41, +	0x3c, 0xf7, 0x2b, 0x21, 0xc3, 0xfd, 0xf4, 0x17, +	0x5c, 0xb5, 0x33, 0x17, 0x68, 0x2b, 0x08, 0x30, +	0xf3, 0xf7, 0x30, 0x3c, 0x96, 0xe6, 0x6a, 0x20, +	0x97, 0xe7, 0x4d, 0x10, 0x5f, 0x47, 0x5f, 0x49, +	0x96, 0x09, 0xf0, 0x27, 0x91, 0xc8, 0xf8, 0x5a, +	0x2e, 0x79, 0xb5, 0xe2, 0xb8, 0xe8, 0xb9, 0x7b, +	0xd5, 0x10, 0xcb, 0xff, 0x5d, 0x14, 0x73, 0xf3 +}; +static const u8 enc_output008[] __initconst = { +	0x14, 0xf6, 0x41, 0x37, 0xa6, 0xd4, 0x27, 0xcd, +	0xdb, 0x06, 0x3e, 0x9a, 0x4e, 0xab, 0xd5, 0xb1, +	0x1e, 0x6b, 0xd2, 0xbc, 0x11, 0xf4, 0x28, 0x93, +	0x63, 0x54, 0xef, 0xbb, 0x5e, 0x1d, 0x3a, 0x1d, +	0x37, 0x3c, 0x0a, 0x6c, 0x1e, 0xc2, 0xd1, 0x2c, +	0xb5, 0xa3, 0xb5, 0x7b, 0xb8, 0x8f, 0x25, 0xa6, +	0x1b, 0x61, 0x1c, 0xec, 0x28, 0x58, 0x26, 0xa4, +	0xa8, 0x33, 0x28, 0x25, 0x5c, 0x45, 0x05, 0xe5, +	0x6c, 0x99, 0xe5, 0x45, 0xc4, 0xa2, 0x03, 0x84, +	0x03, 0x73, 0x1e, 0x8c, 0x49, 0xac, 0x20, 0xdd, +	0x8d, 0xb3, 0xc4, 0xf5, 0xe7, 0x4f, 0xf1, 0xed, +	0xa1, 0x98, 0xde, 0xa4, 0x96, 0xdd, 0x2f, 0xab, +	0xab, 0x97, 0xcf, 0x3e, 0xd2, 0x9e, 0xb8, 0x13, +	0x07, 0x28, 0x29, 0x19, 0xaf, 0xfd, 0xf2, 0x49, +	0x43, 0xea, 0x49, 0x26, 0x91, 0xc1, 0x07, 0xd6, +	0xbb, 0x81, 0x75, 0x35, 0x0d, 0x24, 0x7f, 0xc8, +	0xda, 0xd4, 0xb7, 0xeb, 0xe8, 0x5c, 0x09, 0xa2, +	0x2f, 0xdc, 0x28, 0x7d, 0x3a, 0x03, 0xfa, 0x94, +	0xb5, 0x1d, 0x17, 0x99, 0x36, 0xc3, 0x1c, 0x18, +	0x34, 0xe3, 0x9f, 0xf5, 0x55, 0x7c, 0xb0, 0x60, +	0x9d, 0xff, 0xac, 0xd4, 0x61, 0xf2, 0xad, 0xf8, +	0xce, 0xc7, 0xbe, 0x5c, 0xd2, 0x95, 0xa8, 0x4b, +	0x77, 0x13, 0x19, 0x59, 0x26, 0xc9, 0xb7, 0x8f, +	0x6a, 0xcb, 0x2d, 0x37, 0x91, 0xea, 0x92, 0x9c, +	0x94, 0x5b, 0xda, 0x0b, 0xce, 0xfe, 0x30, 0x20, +	0xf8, 0x51, 0xad, 0xf2, 0xbe, 0xe7, 0xc7, 0xff, +	0xb3, 0x33, 0x91, 0x6a, 0xc9, 0x1a, 0x41, 0xc9, +	0x0f, 0xf3, 0x10, 0x0e, 0xfd, 0x53, 0xff, 0x6c, +	0x16, 0x52, 0xd9, 0xf3, 0xf7, 0x98, 0x2e, 0xc9, +	0x07, 0x31, 0x2c, 0x0c, 0x72, 0xd7, 0xc5, 0xc6, +	0x08, 0x2a, 0x7b, 0xda, 0xbd, 0x7e, 0x02, 0xea, +	0x1a, 0xbb, 0xf2, 0x04, 0x27, 0x61, 0x28, 0x8e, +	0xf5, 0x04, 0x03, 0x1f, 0x4c, 0x07, 0x55, 0x82, +	0xec, 0x1e, 0xd7, 0x8b, 0x2f, 0x65, 0x56, 0xd1, +	0xd9, 0x1e, 0x3c, 0xe9, 0x1f, 0x5e, 0x98, 0x70, +	0x38, 0x4a, 0x8c, 0x49, 0xc5, 0x43, 0xa0, 0xa1, +	0x8b, 0x74, 0x9d, 0x4c, 0x62, 0x0d, 0x10, 0x0c, +	0xf4, 0x6c, 0x8f, 0xe0, 0xaa, 0x9a, 0x8d, 0xb7, +	0xe0, 0xbe, 0x4c, 0x87, 0xf1, 0x98, 0x2f, 0xcc, +	0xed, 0xc0, 0x52, 0x29, 0xdc, 0x83, 0xf8, 0xfc, +	0x2c, 0x0e, 0xa8, 0x51, 0x4d, 0x80, 0x0d, 0xa3, +	0xfe, 0xd8, 0x37, 0xe7, 0x41, 0x24, 0xfc, 0xfb, +	0x75, 0xe3, 0x71, 0x7b, 0x57, 0x45, 0xf5, 0x97, +	0x73, 0x65, 0x63, 0x14, 0x74, 0xb8, 0x82, 0x9f, +	0xf8, 0x60, 0x2f, 0x8a, 0xf2, 0x4e, 0xf1, 0x39, +	0xda, 0x33, 0x91, 0xf8, 0x36, 0xe0, 0x8d, 0x3f, +	0x1f, 0x3b, 0x56, 0xdc, 0xa0, 0x8f, 0x3c, 0x9d, +	0x71, 0x52, 0xa7, 0xb8, 0xc0, 0xa5, 0xc6, 0xa2, +	0x73, 0xda, 0xf4, 0x4b, 0x74, 0x5b, 0x00, 0x3d, +	0x99, 0xd7, 0x96, 0xba, 0xe6, 0xe1, 0xa6, 0x96, +	0x38, 0xad, 0xb3, 0xc0, 0xd2, 0xba, 0x91, 0x6b, +	0xf9, 0x19, 0xdd, 0x3b, 0xbe, 0xbe, 0x9c, 0x20, +	0x50, 0xba, 0xa1, 0xd0, 0xce, 0x11, 0xbd, 0x95, +	0xd8, 0xd1, 0xdd, 0x33, 0x85, 0x74, 0xdc, 0xdb, +	0x66, 0x76, 0x44, 0xdc, 0x03, 0x74, 0x48, 0x35, +	0x98, 0xb1, 0x18, 0x47, 0x94, 0x7d, 0xff, 0x62, +	0xe4, 0x58, 0x78, 0xab, 0xed, 0x95, 0x36, 0xd9, +	0x84, 0x91, 0x82, 0x64, 0x41, 0xbb, 0x58, 0xe6, +	0x1c, 0x20, 0x6d, 0x15, 0x6b, 0x13, 0x96, 0xe8, +	0x35, 0x7f, 0xdc, 0x40, 0x2c, 0xe9, 0xbc, 0x8a, +	0x4f, 0x92, 0xec, 0x06, 0x2d, 0x50, 0xdf, 0x93, +	0x5d, 0x65, 0x5a, 0xa8, 0xfc, 0x20, 0x50, 0x14, +	0xa9, 0x8a, 0x7e, 0x1d, 0x08, 0x1f, 0xe2, 0x99, +	0xd0, 0xbe, 0xfb, 0x3a, 0x21, 0x9d, 0xad, 0x86, +	0x54, 0xfd, 0x0d, 0x98, 0x1c, 0x5a, 0x6f, 0x1f, +	0x9a, 0x40, 0xcd, 0xa2, 0xff, 0x6a, 0xf1, 0x54 +}; +static const u8 enc_assoc008[] __initconst = { }; +static const u8 enc_nonce008[] __initconst = { +	0x0e, 0x0d, 0x57, 0xbb, 0x7b, 0x40, 0x54, 0x02 +}; +static const u8 enc_key008[] __initconst = { +	0xf2, 0xaa, 0x4f, 0x99, 0xfd, 0x3e, 0xa8, 0x53, +	0xc1, 0x44, 0xe9, 0x81, 0x18, 0xdc, 0xf5, 0xf0, +	0x3e, 0x44, 0x15, 0x59, 0xe0, 0xc5, 0x44, 0x86, +	0xc3, 0x91, 0xa8, 0x75, 0xc0, 0x12, 0x46, 0xba +}; + +static const u8 enc_input009[] __initconst = { +	0xe6, 0xc3, 0xdb, 0x63, 0x55, 0x15, 0xe3, 0x5b, +	0xb7, 0x4b, 0x27, 0x8b, 0x5a, 0xdd, 0xc2, 0xe8, +	0x3a, 0x6b, 0xd7, 0x81, 0x96, 0x35, 0x97, 0xca, +	0xd7, 0x68, 0xe8, 0xef, 0xce, 0xab, 0xda, 0x09, +	0x6e, 0xd6, 0x8e, 0xcb, 0x55, 0xb5, 0xe1, 0xe5, +	0x57, 0xfd, 0xc4, 0xe3, 0xe0, 0x18, 0x4f, 0x85, +	0xf5, 0x3f, 0x7e, 0x4b, 0x88, 0xc9, 0x52, 0x44, +	0x0f, 0xea, 0xaf, 0x1f, 0x71, 0x48, 0x9f, 0x97, +	0x6d, 0xb9, 0x6f, 0x00, 0xa6, 0xde, 0x2b, 0x77, +	0x8b, 0x15, 0xad, 0x10, 0xa0, 0x2b, 0x7b, 0x41, +	0x90, 0x03, 0x2d, 0x69, 0xae, 0xcc, 0x77, 0x7c, +	0xa5, 0x9d, 0x29, 0x22, 0xc2, 0xea, 0xb4, 0x00, +	0x1a, 0xd2, 0x7a, 0x98, 0x8a, 0xf9, 0xf7, 0x82, +	0xb0, 0xab, 0xd8, 0xa6, 0x94, 0x8d, 0x58, 0x2f, +	0x01, 0x9e, 0x00, 0x20, 0xfc, 0x49, 0xdc, 0x0e, +	0x03, 0xe8, 0x45, 0x10, 0xd6, 0xa8, 0xda, 0x55, +	0x10, 0x9a, 0xdf, 0x67, 0x22, 0x8b, 0x43, 0xab, +	0x00, 0xbb, 0x02, 0xc8, 0xdd, 0x7b, 0x97, 0x17, +	0xd7, 0x1d, 0x9e, 0x02, 0x5e, 0x48, 0xde, 0x8e, +	0xcf, 0x99, 0x07, 0x95, 0x92, 0x3c, 0x5f, 0x9f, +	0xc5, 0x8a, 0xc0, 0x23, 0xaa, 0xd5, 0x8c, 0x82, +	0x6e, 0x16, 0x92, 0xb1, 0x12, 0x17, 0x07, 0xc3, +	0xfb, 0x36, 0xf5, 0x6c, 0x35, 0xd6, 0x06, 0x1f, +	0x9f, 0xa7, 0x94, 0xa2, 0x38, 0x63, 0x9c, 0xb0, +	0x71, 0xb3, 0xa5, 0xd2, 0xd8, 0xba, 0x9f, 0x08, +	0x01, 0xb3, 0xff, 0x04, 0x97, 0x73, 0x45, 0x1b, +	0xd5, 0xa9, 0x9c, 0x80, 0xaf, 0x04, 0x9a, 0x85, +	0xdb, 0x32, 0x5b, 0x5d, 0x1a, 0xc1, 0x36, 0x28, +	0x10, 0x79, 0xf1, 0x3c, 0xbf, 0x1a, 0x41, 0x5c, +	0x4e, 0xdf, 0xb2, 0x7c, 0x79, 0x3b, 0x7a, 0x62, +	0x3d, 0x4b, 0xc9, 0x9b, 0x2a, 0x2e, 0x7c, 0xa2, +	0xb1, 0x11, 0x98, 0xa7, 0x34, 0x1a, 0x00, 0xf3, +	0xd1, 0xbc, 0x18, 0x22, 0xba, 0x02, 0x56, 0x62, +	0x31, 0x10, 0x11, 0x6d, 0xe0, 0x54, 0x9d, 0x40, +	0x1f, 0x26, 0x80, 0x41, 0xca, 0x3f, 0x68, 0x0f, +	0x32, 0x1d, 0x0a, 0x8e, 0x79, 0xd8, 0xa4, 0x1b, +	0x29, 0x1c, 0x90, 0x8e, 0xc5, 0xe3, 0xb4, 0x91, +	0x37, 0x9a, 0x97, 0x86, 0x99, 0xd5, 0x09, 0xc5, +	0xbb, 0xa3, 0x3f, 0x21, 0x29, 0x82, 0x14, 0x5c, +	0xab, 0x25, 0xfb, 0xf2, 0x4f, 0x58, 0x26, 0xd4, +	0x83, 0xaa, 0x66, 0x89, 0x67, 0x7e, 0xc0, 0x49, +	0xe1, 0x11, 0x10, 0x7f, 0x7a, 0xda, 0x29, 0x04, +	0xff, 0xf0, 0xcb, 0x09, 0x7c, 0x9d, 0xfa, 0x03, +	0x6f, 0x81, 0x09, 0x31, 0x60, 0xfb, 0x08, 0xfa, +	0x74, 0xd3, 0x64, 0x44, 0x7c, 0x55, 0x85, 0xec, +	0x9c, 0x6e, 0x25, 0xb7, 0x6c, 0xc5, 0x37, 0xb6, +	0x83, 0x87, 0x72, 0x95, 0x8b, 0x9d, 0xe1, 0x69, +	0x5c, 0x31, 0x95, 0x42, 0xa6, 0x2c, 0xd1, 0x36, +	0x47, 0x1f, 0xec, 0x54, 0xab, 0xa2, 0x1c, 0xd8, +	0x00, 0xcc, 0xbc, 0x0d, 0x65, 0xe2, 0x67, 0xbf, +	0xbc, 0xea, 0xee, 0x9e, 0xe4, 0x36, 0x95, 0xbe, +	0x73, 0xd9, 0xa6, 0xd9, 0x0f, 0xa0, 0xcc, 0x82, +	0x76, 0x26, 0xad, 0x5b, 0x58, 0x6c, 0x4e, 0xab, +	0x29, 0x64, 0xd3, 0xd9, 0xa9, 0x08, 0x8c, 0x1d, +	0xa1, 0x4f, 0x80, 0xd8, 0x3f, 0x94, 0xfb, 0xd3, +	0x7b, 0xfc, 0xd1, 0x2b, 0xc3, 0x21, 0xeb, 0xe5, +	0x1c, 0x84, 0x23, 0x7f, 0x4b, 0xfa, 0xdb, 0x34, +	0x18, 0xa2, 0xc2, 0xe5, 0x13, 0xfe, 0x6c, 0x49, +	0x81, 0xd2, 0x73, 0xe7, 0xe2, 0xd7, 0xe4, 0x4f, +	0x4b, 0x08, 0x6e, 0xb1, 0x12, 0x22, 0x10, 0x9d, +	0xac, 0x51, 0x1e, 0x17, 0xd9, 0x8a, 0x0b, 0x42, +	0x88, 0x16, 0x81, 0x37, 0x7c, 0x6a, 0xf7, 0xef, +	0x2d, 0xe3, 0xd9, 0xf8, 0x5f, 0xe0, 0x53, 0x27, +	0x74, 0xb9, 0xe2, 0xd6, 0x1c, 0x80, 0x2c, 0x52, +	0x65 +}; +static const u8 enc_output009[] __initconst = { +	0xfd, 0x81, 0x8d, 0xd0, 0x3d, 0xb4, 0xd5, 0xdf, +	0xd3, 0x42, 0x47, 0x5a, 0x6d, 0x19, 0x27, 0x66, +	0x4b, 0x2e, 0x0c, 0x27, 0x9c, 0x96, 0x4c, 0x72, +	0x02, 0xa3, 0x65, 0xc3, 0xb3, 0x6f, 0x2e, 0xbd, +	0x63, 0x8a, 0x4a, 0x5d, 0x29, 0xa2, 0xd0, 0x28, +	0x48, 0xc5, 0x3d, 0x98, 0xa3, 0xbc, 0xe0, 0xbe, +	0x3b, 0x3f, 0xe6, 0x8a, 0xa4, 0x7f, 0x53, 0x06, +	0xfa, 0x7f, 0x27, 0x76, 0x72, 0x31, 0xa1, 0xf5, +	0xd6, 0x0c, 0x52, 0x47, 0xba, 0xcd, 0x4f, 0xd7, +	0xeb, 0x05, 0x48, 0x0d, 0x7c, 0x35, 0x4a, 0x09, +	0xc9, 0x76, 0x71, 0x02, 0xa3, 0xfb, 0xb7, 0x1a, +	0x65, 0xb7, 0xed, 0x98, 0xc6, 0x30, 0x8a, 0x00, +	0xae, 0xa1, 0x31, 0xe5, 0xb5, 0x9e, 0x6d, 0x62, +	0xda, 0xda, 0x07, 0x0f, 0x38, 0x38, 0xd3, 0xcb, +	0xc1, 0xb0, 0xad, 0xec, 0x72, 0xec, 0xb1, 0xa2, +	0x7b, 0x59, 0xf3, 0x3d, 0x2b, 0xef, 0xcd, 0x28, +	0x5b, 0x83, 0xcc, 0x18, 0x91, 0x88, 0xb0, 0x2e, +	0xf9, 0x29, 0x31, 0x18, 0xf9, 0x4e, 0xe9, 0x0a, +	0x91, 0x92, 0x9f, 0xae, 0x2d, 0xad, 0xf4, 0xe6, +	0x1a, 0xe2, 0xa4, 0xee, 0x47, 0x15, 0xbf, 0x83, +	0x6e, 0xd7, 0x72, 0x12, 0x3b, 0x2d, 0x24, 0xe9, +	0xb2, 0x55, 0xcb, 0x3c, 0x10, 0xf0, 0x24, 0x8a, +	0x4a, 0x02, 0xea, 0x90, 0x25, 0xf0, 0xb4, 0x79, +	0x3a, 0xef, 0x6e, 0xf5, 0x52, 0xdf, 0xb0, 0x0a, +	0xcd, 0x24, 0x1c, 0xd3, 0x2e, 0x22, 0x74, 0xea, +	0x21, 0x6f, 0xe9, 0xbd, 0xc8, 0x3e, 0x36, 0x5b, +	0x19, 0xf1, 0xca, 0x99, 0x0a, 0xb4, 0xa7, 0x52, +	0x1a, 0x4e, 0xf2, 0xad, 0x8d, 0x56, 0x85, 0xbb, +	0x64, 0x89, 0xba, 0x26, 0xf9, 0xc7, 0xe1, 0x89, +	0x19, 0x22, 0x77, 0xc3, 0xa8, 0xfc, 0xff, 0xad, +	0xfe, 0xb9, 0x48, 0xae, 0x12, 0x30, 0x9f, 0x19, +	0xfb, 0x1b, 0xef, 0x14, 0x87, 0x8a, 0x78, 0x71, +	0xf3, 0xf4, 0xb7, 0x00, 0x9c, 0x1d, 0xb5, 0x3d, +	0x49, 0x00, 0x0c, 0x06, 0xd4, 0x50, 0xf9, 0x54, +	0x45, 0xb2, 0x5b, 0x43, 0xdb, 0x6d, 0xcf, 0x1a, +	0xe9, 0x7a, 0x7a, 0xcf, 0xfc, 0x8a, 0x4e, 0x4d, +	0x0b, 0x07, 0x63, 0x28, 0xd8, 0xe7, 0x08, 0x95, +	0xdf, 0xa6, 0x72, 0x93, 0x2e, 0xbb, 0xa0, 0x42, +	0x89, 0x16, 0xf1, 0xd9, 0x0c, 0xf9, 0xa1, 0x16, +	0xfd, 0xd9, 0x03, 0xb4, 0x3b, 0x8a, 0xf5, 0xf6, +	0xe7, 0x6b, 0x2e, 0x8e, 0x4c, 0x3d, 0xe2, 0xaf, +	0x08, 0x45, 0x03, 0xff, 0x09, 0xb6, 0xeb, 0x2d, +	0xc6, 0x1b, 0x88, 0x94, 0xac, 0x3e, 0xf1, 0x9f, +	0x0e, 0x0e, 0x2b, 0xd5, 0x00, 0x4d, 0x3f, 0x3b, +	0x53, 0xae, 0xaf, 0x1c, 0x33, 0x5f, 0x55, 0x6e, +	0x8d, 0xaf, 0x05, 0x7a, 0x10, 0x34, 0xc9, 0xf4, +	0x66, 0xcb, 0x62, 0x12, 0xa6, 0xee, 0xe8, 0x1c, +	0x5d, 0x12, 0x86, 0xdb, 0x6f, 0x1c, 0x33, 0xc4, +	0x1c, 0xda, 0x82, 0x2d, 0x3b, 0x59, 0xfe, 0xb1, +	0xa4, 0x59, 0x41, 0x86, 0xd0, 0xef, 0xae, 0xfb, +	0xda, 0x6d, 0x11, 0xb8, 0xca, 0xe9, 0x6e, 0xff, +	0xf7, 0xa9, 0xd9, 0x70, 0x30, 0xfc, 0x53, 0xe2, +	0xd7, 0xa2, 0x4e, 0xc7, 0x91, 0xd9, 0x07, 0x06, +	0xaa, 0xdd, 0xb0, 0x59, 0x28, 0x1d, 0x00, 0x66, +	0xc5, 0x54, 0xc2, 0xfc, 0x06, 0xda, 0x05, 0x90, +	0x52, 0x1d, 0x37, 0x66, 0xee, 0xf0, 0xb2, 0x55, +	0x8a, 0x5d, 0xd2, 0x38, 0x86, 0x94, 0x9b, 0xfc, +	0x10, 0x4c, 0xa1, 0xb9, 0x64, 0x3e, 0x44, 0xb8, +	0x5f, 0xb0, 0x0c, 0xec, 0xe0, 0xc9, 0xe5, 0x62, +	0x75, 0x3f, 0x09, 0xd5, 0xf5, 0xd9, 0x26, 0xba, +	0x9e, 0xd2, 0xf4, 0xb9, 0x48, 0x0a, 0xbc, 0xa2, +	0xd6, 0x7c, 0x36, 0x11, 0x7d, 0x26, 0x81, 0x89, +	0xcf, 0xa4, 0xad, 0x73, 0x0e, 0xee, 0xcc, 0x06, +	0xa9, 0xdb, 0xb1, 0xfd, 0xfb, 0x09, 0x7f, 0x90, +	0x42, 0x37, 0x2f, 0xe1, 0x9c, 0x0f, 0x6f, 0xcf, +	0x43, 0xb5, 0xd9, 0x90, 0xe1, 0x85, 0xf5, 0xa8, +	0xae +}; +static const u8 enc_assoc009[] __initconst = { +	0x5a, 0x27, 0xff, 0xeb, 0xdf, 0x84, 0xb2, 0x9e, +	0xef +}; +static const u8 enc_nonce009[] __initconst = { +	0xef, 0x2d, 0x63, 0xee, 0x6b, 0x80, 0x8b, 0x78 +}; +static const u8 enc_key009[] __initconst = { +	0xea, 0xbc, 0x56, 0x99, 0xe3, 0x50, 0xff, 0xc5, +	0xcc, 0x1a, 0xd7, 0xc1, 0x57, 0x72, 0xea, 0x86, +	0x5b, 0x89, 0x88, 0x61, 0x3d, 0x2f, 0x9b, 0xb2, +	0xe7, 0x9c, 0xec, 0x74, 0x6e, 0x3e, 0xf4, 0x3b +}; + +static const u8 enc_input010[] __initconst = { +	0x42, 0x93, 0xe4, 0xeb, 0x97, 0xb0, 0x57, 0xbf, +	0x1a, 0x8b, 0x1f, 0xe4, 0x5f, 0x36, 0x20, 0x3c, +	0xef, 0x0a, 0xa9, 0x48, 0x5f, 0x5f, 0x37, 0x22, +	0x3a, 0xde, 0xe3, 0xae, 0xbe, 0xad, 0x07, 0xcc, +	0xb1, 0xf6, 0xf5, 0xf9, 0x56, 0xdd, 0xe7, 0x16, +	0x1e, 0x7f, 0xdf, 0x7a, 0x9e, 0x75, 0xb7, 0xc7, +	0xbe, 0xbe, 0x8a, 0x36, 0x04, 0xc0, 0x10, 0xf4, +	0x95, 0x20, 0x03, 0xec, 0xdc, 0x05, 0xa1, 0x7d, +	0xc4, 0xa9, 0x2c, 0x82, 0xd0, 0xbc, 0x8b, 0xc5, +	0xc7, 0x45, 0x50, 0xf6, 0xa2, 0x1a, 0xb5, 0x46, +	0x3b, 0x73, 0x02, 0xa6, 0x83, 0x4b, 0x73, 0x82, +	0x58, 0x5e, 0x3b, 0x65, 0x2f, 0x0e, 0xfd, 0x2b, +	0x59, 0x16, 0xce, 0xa1, 0x60, 0x9c, 0xe8, 0x3a, +	0x99, 0xed, 0x8d, 0x5a, 0xcf, 0xf6, 0x83, 0xaf, +	0xba, 0xd7, 0x73, 0x73, 0x40, 0x97, 0x3d, 0xca, +	0xef, 0x07, 0x57, 0xe6, 0xd9, 0x70, 0x0e, 0x95, +	0xae, 0xa6, 0x8d, 0x04, 0xcc, 0xee, 0xf7, 0x09, +	0x31, 0x77, 0x12, 0xa3, 0x23, 0x97, 0x62, 0xb3, +	0x7b, 0x32, 0xfb, 0x80, 0x14, 0x48, 0x81, 0xc3, +	0xe5, 0xea, 0x91, 0x39, 0x52, 0x81, 0xa2, 0x4f, +	0xe4, 0xb3, 0x09, 0xff, 0xde, 0x5e, 0xe9, 0x58, +	0x84, 0x6e, 0xf9, 0x3d, 0xdf, 0x25, 0xea, 0xad, +	0xae, 0xe6, 0x9a, 0xd1, 0x89, 0x55, 0xd3, 0xde, +	0x6c, 0x52, 0xdb, 0x70, 0xfe, 0x37, 0xce, 0x44, +	0x0a, 0xa8, 0x25, 0x5f, 0x92, 0xc1, 0x33, 0x4a, +	0x4f, 0x9b, 0x62, 0x35, 0xff, 0xce, 0xc0, 0xa9, +	0x60, 0xce, 0x52, 0x00, 0x97, 0x51, 0x35, 0x26, +	0x2e, 0xb9, 0x36, 0xa9, 0x87, 0x6e, 0x1e, 0xcc, +	0x91, 0x78, 0x53, 0x98, 0x86, 0x5b, 0x9c, 0x74, +	0x7d, 0x88, 0x33, 0xe1, 0xdf, 0x37, 0x69, 0x2b, +	0xbb, 0xf1, 0x4d, 0xf4, 0xd1, 0xf1, 0x39, 0x93, +	0x17, 0x51, 0x19, 0xe3, 0x19, 0x1e, 0x76, 0x37, +	0x25, 0xfb, 0x09, 0x27, 0x6a, 0xab, 0x67, 0x6f, +	0x14, 0x12, 0x64, 0xe7, 0xc4, 0x07, 0xdf, 0x4d, +	0x17, 0xbb, 0x6d, 0xe0, 0xe9, 0xb9, 0xab, 0xca, +	0x10, 0x68, 0xaf, 0x7e, 0xb7, 0x33, 0x54, 0x73, +	0x07, 0x6e, 0xf7, 0x81, 0x97, 0x9c, 0x05, 0x6f, +	0x84, 0x5f, 0xd2, 0x42, 0xfb, 0x38, 0xcf, 0xd1, +	0x2f, 0x14, 0x30, 0x88, 0x98, 0x4d, 0x5a, 0xa9, +	0x76, 0xd5, 0x4f, 0x3e, 0x70, 0x6c, 0x85, 0x76, +	0xd7, 0x01, 0xa0, 0x1a, 0xc8, 0x4e, 0xaa, 0xac, +	0x78, 0xfe, 0x46, 0xde, 0x6a, 0x05, 0x46, 0xa7, +	0x43, 0x0c, 0xb9, 0xde, 0xb9, 0x68, 0xfb, 0xce, +	0x42, 0x99, 0x07, 0x4d, 0x0b, 0x3b, 0x5a, 0x30, +	0x35, 0xa8, 0xf9, 0x3a, 0x73, 0xef, 0x0f, 0xdb, +	0x1e, 0x16, 0x42, 0xc4, 0xba, 0xae, 0x58, 0xaa, +	0xf8, 0xe5, 0x75, 0x2f, 0x1b, 0x15, 0x5c, 0xfd, +	0x0a, 0x97, 0xd0, 0xe4, 0x37, 0x83, 0x61, 0x5f, +	0x43, 0xa6, 0xc7, 0x3f, 0x38, 0x59, 0xe6, 0xeb, +	0xa3, 0x90, 0xc3, 0xaa, 0xaa, 0x5a, 0xd3, 0x34, +	0xd4, 0x17, 0xc8, 0x65, 0x3e, 0x57, 0xbc, 0x5e, +	0xdd, 0x9e, 0xb7, 0xf0, 0x2e, 0x5b, 0xb2, 0x1f, +	0x8a, 0x08, 0x0d, 0x45, 0x91, 0x0b, 0x29, 0x53, +	0x4f, 0x4c, 0x5a, 0x73, 0x56, 0xfe, 0xaf, 0x41, +	0x01, 0x39, 0x0a, 0x24, 0x3c, 0x7e, 0xbe, 0x4e, +	0x53, 0xf3, 0xeb, 0x06, 0x66, 0x51, 0x28, 0x1d, +	0xbd, 0x41, 0x0a, 0x01, 0xab, 0x16, 0x47, 0x27, +	0x47, 0x47, 0xf7, 0xcb, 0x46, 0x0a, 0x70, 0x9e, +	0x01, 0x9c, 0x09, 0xe1, 0x2a, 0x00, 0x1a, 0xd8, +	0xd4, 0x79, 0x9d, 0x80, 0x15, 0x8e, 0x53, 0x2a, +	0x65, 0x83, 0x78, 0x3e, 0x03, 0x00, 0x07, 0x12, +	0x1f, 0x33, 0x3e, 0x7b, 0x13, 0x37, 0xf1, 0xc3, +	0xef, 0xb7, 0xc1, 0x20, 0x3c, 0x3e, 0x67, 0x66, +	0x5d, 0x88, 0xa7, 0x7d, 0x33, 0x50, 0x77, 0xb0, +	0x28, 0x8e, 0xe7, 0x2c, 0x2e, 0x7a, 0xf4, 0x3c, +	0x8d, 0x74, 0x83, 0xaf, 0x8e, 0x87, 0x0f, 0xe4, +	0x50, 0xff, 0x84, 0x5c, 0x47, 0x0c, 0x6a, 0x49, +	0xbf, 0x42, 0x86, 0x77, 0x15, 0x48, 0xa5, 0x90, +	0x5d, 0x93, 0xd6, 0x2a, 0x11, 0xd5, 0xd5, 0x11, +	0xaa, 0xce, 0xe7, 0x6f, 0xa5, 0xb0, 0x09, 0x2c, +	0x8d, 0xd3, 0x92, 0xf0, 0x5a, 0x2a, 0xda, 0x5b, +	0x1e, 0xd5, 0x9a, 0xc4, 0xc4, 0xf3, 0x49, 0x74, +	0x41, 0xca, 0xe8, 0xc1, 0xf8, 0x44, 0xd6, 0x3c, +	0xae, 0x6c, 0x1d, 0x9a, 0x30, 0x04, 0x4d, 0x27, +	0x0e, 0xb1, 0x5f, 0x59, 0xa2, 0x24, 0xe8, 0xe1, +	0x98, 0xc5, 0x6a, 0x4c, 0xfe, 0x41, 0xd2, 0x27, +	0x42, 0x52, 0xe1, 0xe9, 0x7d, 0x62, 0xe4, 0x88, +	0x0f, 0xad, 0xb2, 0x70, 0xcb, 0x9d, 0x4c, 0x27, +	0x2e, 0x76, 0x1e, 0x1a, 0x63, 0x65, 0xf5, 0x3b, +	0xf8, 0x57, 0x69, 0xeb, 0x5b, 0x38, 0x26, 0x39, +	0x33, 0x25, 0x45, 0x3e, 0x91, 0xb8, 0xd8, 0xc7, +	0xd5, 0x42, 0xc0, 0x22, 0x31, 0x74, 0xf4, 0xbc, +	0x0c, 0x23, 0xf1, 0xca, 0xc1, 0x8d, 0xd7, 0xbe, +	0xc9, 0x62, 0xe4, 0x08, 0x1a, 0xcf, 0x36, 0xd5, +	0xfe, 0x55, 0x21, 0x59, 0x91, 0x87, 0x87, 0xdf, +	0x06, 0xdb, 0xdf, 0x96, 0x45, 0x58, 0xda, 0x05, +	0xcd, 0x50, 0x4d, 0xd2, 0x7d, 0x05, 0x18, 0x73, +	0x6a, 0x8d, 0x11, 0x85, 0xa6, 0x88, 0xe8, 0xda, +	0xe6, 0x30, 0x33, 0xa4, 0x89, 0x31, 0x75, 0xbe, +	0x69, 0x43, 0x84, 0x43, 0x50, 0x87, 0xdd, 0x71, +	0x36, 0x83, 0xc3, 0x78, 0x74, 0x24, 0x0a, 0xed, +	0x7b, 0xdb, 0xa4, 0x24, 0x0b, 0xb9, 0x7e, 0x5d, +	0xff, 0xde, 0xb1, 0xef, 0x61, 0x5a, 0x45, 0x33, +	0xf6, 0x17, 0x07, 0x08, 0x98, 0x83, 0x92, 0x0f, +	0x23, 0x6d, 0xe6, 0xaa, 0x17, 0x54, 0xad, 0x6a, +	0xc8, 0xdb, 0x26, 0xbe, 0xb8, 0xb6, 0x08, 0xfa, +	0x68, 0xf1, 0xd7, 0x79, 0x6f, 0x18, 0xb4, 0x9e, +	0x2d, 0x3f, 0x1b, 0x64, 0xaf, 0x8d, 0x06, 0x0e, +	0x49, 0x28, 0xe0, 0x5d, 0x45, 0x68, 0x13, 0x87, +	0xfa, 0xde, 0x40, 0x7b, 0xd2, 0xc3, 0x94, 0xd5, +	0xe1, 0xd9, 0xc2, 0xaf, 0x55, 0x89, 0xeb, 0xb4, +	0x12, 0x59, 0xa8, 0xd4, 0xc5, 0x29, 0x66, 0x38, +	0xe6, 0xac, 0x22, 0x22, 0xd9, 0x64, 0x9b, 0x34, +	0x0a, 0x32, 0x9f, 0xc2, 0xbf, 0x17, 0x6c, 0x3f, +	0x71, 0x7a, 0x38, 0x6b, 0x98, 0xfb, 0x49, 0x36, +	0x89, 0xc9, 0xe2, 0xd6, 0xc7, 0x5d, 0xd0, 0x69, +	0x5f, 0x23, 0x35, 0xc9, 0x30, 0xe2, 0xfd, 0x44, +	0x58, 0x39, 0xd7, 0x97, 0xfb, 0x5c, 0x00, 0xd5, +	0x4f, 0x7a, 0x1a, 0x95, 0x8b, 0x62, 0x4b, 0xce, +	0xe5, 0x91, 0x21, 0x7b, 0x30, 0x00, 0xd6, 0xdd, +	0x6d, 0x02, 0x86, 0x49, 0x0f, 0x3c, 0x1a, 0x27, +	0x3c, 0xd3, 0x0e, 0x71, 0xf2, 0xff, 0xf5, 0x2f, +	0x87, 0xac, 0x67, 0x59, 0x81, 0xa3, 0xf7, 0xf8, +	0xd6, 0x11, 0x0c, 0x84, 0xa9, 0x03, 0xee, 0x2a, +	0xc4, 0xf3, 0x22, 0xab, 0x7c, 0xe2, 0x25, 0xf5, +	0x67, 0xa3, 0xe4, 0x11, 0xe0, 0x59, 0xb3, 0xca, +	0x87, 0xa0, 0xae, 0xc9, 0xa6, 0x62, 0x1b, 0x6e, +	0x4d, 0x02, 0x6b, 0x07, 0x9d, 0xfd, 0xd0, 0x92, +	0x06, 0xe1, 0xb2, 0x9a, 0x4a, 0x1f, 0x1f, 0x13, +	0x49, 0x99, 0x97, 0x08, 0xde, 0x7f, 0x98, 0xaf, +	0x51, 0x98, 0xee, 0x2c, 0xcb, 0xf0, 0x0b, 0xc6, +	0xb6, 0xb7, 0x2d, 0x9a, 0xb1, 0xac, 0xa6, 0xe3, +	0x15, 0x77, 0x9d, 0x6b, 0x1a, 0xe4, 0xfc, 0x8b, +	0xf2, 0x17, 0x59, 0x08, 0x04, 0x58, 0x81, 0x9d, +	0x1b, 0x1b, 0x69, 0x55, 0xc2, 0xb4, 0x3c, 0x1f, +	0x50, 0xf1, 0x7f, 0x77, 0x90, 0x4c, 0x66, 0x40, +	0x5a, 0xc0, 0x33, 0x1f, 0xcb, 0x05, 0x6d, 0x5c, +	0x06, 0x87, 0x52, 0xa2, 0x8f, 0x26, 0xd5, 0x4f +}; +static const u8 enc_output010[] __initconst = { +	0xe5, 0x26, 0xa4, 0x3d, 0xbd, 0x33, 0xd0, 0x4b, +	0x6f, 0x05, 0xa7, 0x6e, 0x12, 0x7a, 0xd2, 0x74, +	0xa6, 0xdd, 0xbd, 0x95, 0xeb, 0xf9, 0xa4, 0xf1, +	0x59, 0x93, 0x91, 0x70, 0xd9, 0xfe, 0x9a, 0xcd, +	0x53, 0x1f, 0x3a, 0xab, 0xa6, 0x7c, 0x9f, 0xa6, +	0x9e, 0xbd, 0x99, 0xd9, 0xb5, 0x97, 0x44, 0xd5, +	0x14, 0x48, 0x4d, 0x9d, 0xc0, 0xd0, 0x05, 0x96, +	0xeb, 0x4c, 0x78, 0x55, 0x09, 0x08, 0x01, 0x02, +	0x30, 0x90, 0x7b, 0x96, 0x7a, 0x7b, 0x5f, 0x30, +	0x41, 0x24, 0xce, 0x68, 0x61, 0x49, 0x86, 0x57, +	0x82, 0xdd, 0x53, 0x1c, 0x51, 0x28, 0x2b, 0x53, +	0x6e, 0x2d, 0xc2, 0x20, 0x4c, 0xdd, 0x8f, 0x65, +	0x10, 0x20, 0x50, 0xdd, 0x9d, 0x50, 0xe5, 0x71, +	0x40, 0x53, 0x69, 0xfc, 0x77, 0x48, 0x11, 0xb9, +	0xde, 0xa4, 0x8d, 0x58, 0xe4, 0xa6, 0x1a, 0x18, +	0x47, 0x81, 0x7e, 0xfc, 0xdd, 0xf6, 0xef, 0xce, +	0x2f, 0x43, 0x68, 0xd6, 0x06, 0xe2, 0x74, 0x6a, +	0xad, 0x90, 0xf5, 0x37, 0xf3, 0x3d, 0x82, 0x69, +	0x40, 0xe9, 0x6b, 0xa7, 0x3d, 0xa8, 0x1e, 0xd2, +	0x02, 0x7c, 0xb7, 0x9b, 0xe4, 0xda, 0x8f, 0x95, +	0x06, 0xc5, 0xdf, 0x73, 0xa3, 0x20, 0x9a, 0x49, +	0xde, 0x9c, 0xbc, 0xee, 0x14, 0x3f, 0x81, 0x5e, +	0xf8, 0x3b, 0x59, 0x3c, 0xe1, 0x68, 0x12, 0x5a, +	0x3a, 0x76, 0x3a, 0x3f, 0xf7, 0x87, 0x33, 0x0a, +	0x01, 0xb8, 0xd4, 0xed, 0xb6, 0xbe, 0x94, 0x5e, +	0x70, 0x40, 0x56, 0x67, 0x1f, 0x50, 0x44, 0x19, +	0xce, 0x82, 0x70, 0x10, 0x87, 0x13, 0x20, 0x0b, +	0x4c, 0x5a, 0xb6, 0xf6, 0xa7, 0xae, 0x81, 0x75, +	0x01, 0x81, 0xe6, 0x4b, 0x57, 0x7c, 0xdd, 0x6d, +	0xf8, 0x1c, 0x29, 0x32, 0xf7, 0xda, 0x3c, 0x2d, +	0xf8, 0x9b, 0x25, 0x6e, 0x00, 0xb4, 0xf7, 0x2f, +	0xf7, 0x04, 0xf7, 0xa1, 0x56, 0xac, 0x4f, 0x1a, +	0x64, 0xb8, 0x47, 0x55, 0x18, 0x7b, 0x07, 0x4d, +	0xbd, 0x47, 0x24, 0x80, 0x5d, 0xa2, 0x70, 0xc5, +	0xdd, 0x8e, 0x82, 0xd4, 0xeb, 0xec, 0xb2, 0x0c, +	0x39, 0xd2, 0x97, 0xc1, 0xcb, 0xeb, 0xf4, 0x77, +	0x59, 0xb4, 0x87, 0xef, 0xcb, 0x43, 0x2d, 0x46, +	0x54, 0xd1, 0xa7, 0xd7, 0x15, 0x99, 0x0a, 0x43, +	0xa1, 0xe0, 0x99, 0x33, 0x71, 0xc1, 0xed, 0xfe, +	0x72, 0x46, 0x33, 0x8e, 0x91, 0x08, 0x9f, 0xc8, +	0x2e, 0xca, 0xfa, 0xdc, 0x59, 0xd5, 0xc3, 0x76, +	0x84, 0x9f, 0xa3, 0x37, 0x68, 0xc3, 0xf0, 0x47, +	0x2c, 0x68, 0xdb, 0x5e, 0xc3, 0x49, 0x4c, 0xe8, +	0x92, 0x85, 0xe2, 0x23, 0xd3, 0x3f, 0xad, 0x32, +	0xe5, 0x2b, 0x82, 0xd7, 0x8f, 0x99, 0x0a, 0x59, +	0x5c, 0x45, 0xd9, 0xb4, 0x51, 0x52, 0xc2, 0xae, +	0xbf, 0x80, 0xcf, 0xc9, 0xc9, 0x51, 0x24, 0x2a, +	0x3b, 0x3a, 0x4d, 0xae, 0xeb, 0xbd, 0x22, 0xc3, +	0x0e, 0x0f, 0x59, 0x25, 0x92, 0x17, 0xe9, 0x74, +	0xc7, 0x8b, 0x70, 0x70, 0x36, 0x55, 0x95, 0x75, +	0x4b, 0xad, 0x61, 0x2b, 0x09, 0xbc, 0x82, 0xf2, +	0x6e, 0x94, 0x43, 0xae, 0xc3, 0xd5, 0xcd, 0x8e, +	0xfe, 0x5b, 0x9a, 0x88, 0x43, 0x01, 0x75, 0xb2, +	0x23, 0x09, 0xf7, 0x89, 0x83, 0xe7, 0xfa, 0xf9, +	0xb4, 0x9b, 0xf8, 0xef, 0xbd, 0x1c, 0x92, 0xc1, +	0xda, 0x7e, 0xfe, 0x05, 0xba, 0x5a, 0xcd, 0x07, +	0x6a, 0x78, 0x9e, 0x5d, 0xfb, 0x11, 0x2f, 0x79, +	0x38, 0xb6, 0xc2, 0x5b, 0x6b, 0x51, 0xb4, 0x71, +	0xdd, 0xf7, 0x2a, 0xe4, 0xf4, 0x72, 0x76, 0xad, +	0xc2, 0xdd, 0x64, 0x5d, 0x79, 0xb6, 0xf5, 0x7a, +	0x77, 0x20, 0x05, 0x3d, 0x30, 0x06, 0xd4, 0x4c, +	0x0a, 0x2c, 0x98, 0x5a, 0xb9, 0xd4, 0x98, 0xa9, +	0x3f, 0xc6, 0x12, 0xea, 0x3b, 0x4b, 0xc5, 0x79, +	0x64, 0x63, 0x6b, 0x09, 0x54, 0x3b, 0x14, 0x27, +	0xba, 0x99, 0x80, 0xc8, 0x72, 0xa8, 0x12, 0x90, +	0x29, 0xba, 0x40, 0x54, 0x97, 0x2b, 0x7b, 0xfe, +	0xeb, 0xcd, 0x01, 0x05, 0x44, 0x72, 0xdb, 0x99, +	0xe4, 0x61, 0xc9, 0x69, 0xd6, 0xb9, 0x28, 0xd1, +	0x05, 0x3e, 0xf9, 0x0b, 0x49, 0x0a, 0x49, 0xe9, +	0x8d, 0x0e, 0xa7, 0x4a, 0x0f, 0xaf, 0x32, 0xd0, +	0xe0, 0xb2, 0x3a, 0x55, 0x58, 0xfe, 0x5c, 0x28, +	0x70, 0x51, 0x23, 0xb0, 0x7b, 0x6a, 0x5f, 0x1e, +	0xb8, 0x17, 0xd7, 0x94, 0x15, 0x8f, 0xee, 0x20, +	0xc7, 0x42, 0x25, 0x3e, 0x9a, 0x14, 0xd7, 0x60, +	0x72, 0x39, 0x47, 0x48, 0xa9, 0xfe, 0xdd, 0x47, +	0x0a, 0xb1, 0xe6, 0x60, 0x28, 0x8c, 0x11, 0x68, +	0xe1, 0xff, 0xd7, 0xce, 0xc8, 0xbe, 0xb3, 0xfe, +	0x27, 0x30, 0x09, 0x70, 0xd7, 0xfa, 0x02, 0x33, +	0x3a, 0x61, 0x2e, 0xc7, 0xff, 0xa4, 0x2a, 0xa8, +	0x6e, 0xb4, 0x79, 0x35, 0x6d, 0x4c, 0x1e, 0x38, +	0xf8, 0xee, 0xd4, 0x84, 0x4e, 0x6e, 0x28, 0xa7, +	0xce, 0xc8, 0xc1, 0xcf, 0x80, 0x05, 0xf3, 0x04, +	0xef, 0xc8, 0x18, 0x28, 0x2e, 0x8d, 0x5e, 0x0c, +	0xdf, 0xb8, 0x5f, 0x96, 0xe8, 0xc6, 0x9c, 0x2f, +	0xe5, 0xa6, 0x44, 0xd7, 0xe7, 0x99, 0x44, 0x0c, +	0xec, 0xd7, 0x05, 0x60, 0x97, 0xbb, 0x74, 0x77, +	0x58, 0xd5, 0xbb, 0x48, 0xde, 0x5a, 0xb2, 0x54, +	0x7f, 0x0e, 0x46, 0x70, 0x6a, 0x6f, 0x78, 0xa5, +	0x08, 0x89, 0x05, 0x4e, 0x7e, 0xa0, 0x69, 0xb4, +	0x40, 0x60, 0x55, 0x77, 0x75, 0x9b, 0x19, 0xf2, +	0xd5, 0x13, 0x80, 0x77, 0xf9, 0x4b, 0x3f, 0x1e, +	0xee, 0xe6, 0x76, 0x84, 0x7b, 0x8c, 0xe5, 0x27, +	0xa8, 0x0a, 0x91, 0x01, 0x68, 0x71, 0x8a, 0x3f, +	0x06, 0xab, 0xf6, 0xa9, 0xa5, 0xe6, 0x72, 0x92, +	0xe4, 0x67, 0xe2, 0xa2, 0x46, 0x35, 0x84, 0x55, +	0x7d, 0xca, 0xa8, 0x85, 0xd0, 0xf1, 0x3f, 0xbe, +	0xd7, 0x34, 0x64, 0xfc, 0xae, 0xe3, 0xe4, 0x04, +	0x9f, 0x66, 0x02, 0xb9, 0x88, 0x10, 0xd9, 0xc4, +	0x4c, 0x31, 0x43, 0x7a, 0x93, 0xe2, 0x9b, 0x56, +	0x43, 0x84, 0xdc, 0xdc, 0xde, 0x1d, 0xa4, 0x02, +	0x0e, 0xc2, 0xef, 0xc3, 0xf8, 0x78, 0xd1, 0xb2, +	0x6b, 0x63, 0x18, 0xc9, 0xa9, 0xe5, 0x72, 0xd8, +	0xf3, 0xb9, 0xd1, 0x8a, 0xc7, 0x1a, 0x02, 0x27, +	0x20, 0x77, 0x10, 0xe5, 0xc8, 0xd4, 0x4a, 0x47, +	0xe5, 0xdf, 0x5f, 0x01, 0xaa, 0xb0, 0xd4, 0x10, +	0xbb, 0x69, 0xe3, 0x36, 0xc8, 0xe1, 0x3d, 0x43, +	0xfb, 0x86, 0xcd, 0xcc, 0xbf, 0xf4, 0x88, 0xe0, +	0x20, 0xca, 0xb7, 0x1b, 0xf1, 0x2f, 0x5c, 0xee, +	0xd4, 0xd3, 0xa3, 0xcc, 0xa4, 0x1e, 0x1c, 0x47, +	0xfb, 0xbf, 0xfc, 0xa2, 0x41, 0x55, 0x9d, 0xf6, +	0x5a, 0x5e, 0x65, 0x32, 0x34, 0x7b, 0x52, 0x8d, +	0xd5, 0xd0, 0x20, 0x60, 0x03, 0xab, 0x3f, 0x8c, +	0xd4, 0x21, 0xea, 0x2a, 0xd9, 0xc4, 0xd0, 0xd3, +	0x65, 0xd8, 0x7a, 0x13, 0x28, 0x62, 0x32, 0x4b, +	0x2c, 0x87, 0x93, 0xa8, 0xb4, 0x52, 0x45, 0x09, +	0x44, 0xec, 0xec, 0xc3, 0x17, 0xdb, 0x9a, 0x4d, +	0x5c, 0xa9, 0x11, 0xd4, 0x7d, 0xaf, 0x9e, 0xf1, +	0x2d, 0xb2, 0x66, 0xc5, 0x1d, 0xed, 0xb7, 0xcd, +	0x0b, 0x25, 0x5e, 0x30, 0x47, 0x3f, 0x40, 0xf4, +	0xa1, 0xa0, 0x00, 0x94, 0x10, 0xc5, 0x6a, 0x63, +	0x1a, 0xd5, 0x88, 0x92, 0x8e, 0x82, 0x39, 0x87, +	0x3c, 0x78, 0x65, 0x58, 0x42, 0x75, 0x5b, 0xdd, +	0x77, 0x3e, 0x09, 0x4e, 0x76, 0x5b, 0xe6, 0x0e, +	0x4d, 0x38, 0xb2, 0xc0, 0xb8, 0x95, 0x01, 0x7a, +	0x10, 0xe0, 0xfb, 0x07, 0xf2, 0xab, 0x2d, 0x8c, +	0x32, 0xed, 0x2b, 0xc0, 0x46, 0xc2, 0xf5, 0x38, +	0x83, 0xf0, 0x17, 0xec, 0xc1, 0x20, 0x6a, 0x9a, +	0x0b, 0x00, 0xa0, 0x98, 0x22, 0x50, 0x23, 0xd5, +	0x80, 0x6b, 0xf6, 0x1f, 0xc3, 0xcc, 0x97, 0xc9, +	0x24, 0x9f, 0xf3, 0xaf, 0x43, 0x14, 0xd5, 0xa0 +}; +static const u8 enc_assoc010[] __initconst = { +	0xd2, 0xa1, 0x70, 0xdb, 0x7a, 0xf8, 0xfa, 0x27, +	0xba, 0x73, 0x0f, 0xbf, 0x3d, 0x1e, 0x82, 0xb2 +}; +static const u8 enc_nonce010[] __initconst = { +	0xdb, 0x92, 0x0f, 0x7f, 0x17, 0x54, 0x0c, 0x30 +}; +static const u8 enc_key010[] __initconst = { +	0x47, 0x11, 0xeb, 0x86, 0x2b, 0x2c, 0xab, 0x44, +	0x34, 0xda, 0x7f, 0x57, 0x03, 0x39, 0x0c, 0xaf, +	0x2c, 0x14, 0xfd, 0x65, 0x23, 0xe9, 0x8e, 0x74, +	0xd5, 0x08, 0x68, 0x08, 0xe7, 0xb4, 0x72, 0xd7 +}; + +static const u8 enc_input011[] __initconst = { +	0x7a, 0x57, 0xf2, 0xc7, 0x06, 0x3f, 0x50, 0x7b, +	0x36, 0x1a, 0x66, 0x5c, 0xb9, 0x0e, 0x5e, 0x3b, +	0x45, 0x60, 0xbe, 0x9a, 0x31, 0x9f, 0xff, 0x5d, +	0x66, 0x34, 0xb4, 0xdc, 0xfb, 0x9d, 0x8e, 0xee, +	0x6a, 0x33, 0xa4, 0x07, 0x3c, 0xf9, 0x4c, 0x30, +	0xa1, 0x24, 0x52, 0xf9, 0x50, 0x46, 0x88, 0x20, +	0x02, 0x32, 0x3a, 0x0e, 0x99, 0x63, 0xaf, 0x1f, +	0x15, 0x28, 0x2a, 0x05, 0xff, 0x57, 0x59, 0x5e, +	0x18, 0xa1, 0x1f, 0xd0, 0x92, 0x5c, 0x88, 0x66, +	0x1b, 0x00, 0x64, 0xa5, 0x93, 0x8d, 0x06, 0x46, +	0xb0, 0x64, 0x8b, 0x8b, 0xef, 0x99, 0x05, 0x35, +	0x85, 0xb3, 0xf3, 0x33, 0xbb, 0xec, 0x66, 0xb6, +	0x3d, 0x57, 0x42, 0xe3, 0xb4, 0xc6, 0xaa, 0xb0, +	0x41, 0x2a, 0xb9, 0x59, 0xa9, 0xf6, 0x3e, 0x15, +	0x26, 0x12, 0x03, 0x21, 0x4c, 0x74, 0x43, 0x13, +	0x2a, 0x03, 0x27, 0x09, 0xb4, 0xfb, 0xe7, 0xb7, +	0x40, 0xff, 0x5e, 0xce, 0x48, 0x9a, 0x60, 0xe3, +	0x8b, 0x80, 0x8c, 0x38, 0x2d, 0xcb, 0x93, 0x37, +	0x74, 0x05, 0x52, 0x6f, 0x73, 0x3e, 0xc3, 0xbc, +	0xca, 0x72, 0x0a, 0xeb, 0xf1, 0x3b, 0xa0, 0x95, +	0xdc, 0x8a, 0xc4, 0xa9, 0xdc, 0xca, 0x44, 0xd8, +	0x08, 0x63, 0x6a, 0x36, 0xd3, 0x3c, 0xb8, 0xac, +	0x46, 0x7d, 0xfd, 0xaa, 0xeb, 0x3e, 0x0f, 0x45, +	0x8f, 0x49, 0xda, 0x2b, 0xf2, 0x12, 0xbd, 0xaf, +	0x67, 0x8a, 0x63, 0x48, 0x4b, 0x55, 0x5f, 0x6d, +	0x8c, 0xb9, 0x76, 0x34, 0x84, 0xae, 0xc2, 0xfc, +	0x52, 0x64, 0x82, 0xf7, 0xb0, 0x06, 0xf0, 0x45, +	0x73, 0x12, 0x50, 0x30, 0x72, 0xea, 0x78, 0x9a, +	0xa8, 0xaf, 0xb5, 0xe3, 0xbb, 0x77, 0x52, 0xec, +	0x59, 0x84, 0xbf, 0x6b, 0x8f, 0xce, 0x86, 0x5e, +	0x1f, 0x23, 0xe9, 0xfb, 0x08, 0x86, 0xf7, 0x10, +	0xb9, 0xf2, 0x44, 0x96, 0x44, 0x63, 0xa9, 0xa8, +	0x78, 0x00, 0x23, 0xd6, 0xc7, 0xe7, 0x6e, 0x66, +	0x4f, 0xcc, 0xee, 0x15, 0xb3, 0xbd, 0x1d, 0xa0, +	0xe5, 0x9c, 0x1b, 0x24, 0x2c, 0x4d, 0x3c, 0x62, +	0x35, 0x9c, 0x88, 0x59, 0x09, 0xdd, 0x82, 0x1b, +	0xcf, 0x0a, 0x83, 0x6b, 0x3f, 0xae, 0x03, 0xc4, +	0xb4, 0xdd, 0x7e, 0x5b, 0x28, 0x76, 0x25, 0x96, +	0xd9, 0xc9, 0x9d, 0x5f, 0x86, 0xfa, 0xf6, 0xd7, +	0xd2, 0xe6, 0x76, 0x1d, 0x0f, 0xa1, 0xdc, 0x74, +	0x05, 0x1b, 0x1d, 0xe0, 0xcd, 0x16, 0xb0, 0xa8, +	0x8a, 0x34, 0x7b, 0x15, 0x11, 0x77, 0xe5, 0x7b, +	0x7e, 0x20, 0xf7, 0xda, 0x38, 0xda, 0xce, 0x70, +	0xe9, 0xf5, 0x6c, 0xd9, 0xbe, 0x0c, 0x4c, 0x95, +	0x4c, 0xc2, 0x9b, 0x34, 0x55, 0x55, 0xe1, 0xf3, +	0x46, 0x8e, 0x48, 0x74, 0x14, 0x4f, 0x9d, 0xc9, +	0xf5, 0xe8, 0x1a, 0xf0, 0x11, 0x4a, 0xc1, 0x8d, +	0xe0, 0x93, 0xa0, 0xbe, 0x09, 0x1c, 0x2b, 0x4e, +	0x0f, 0xb2, 0x87, 0x8b, 0x84, 0xfe, 0x92, 0x32, +	0x14, 0xd7, 0x93, 0xdf, 0xe7, 0x44, 0xbc, 0xc5, +	0xae, 0x53, 0x69, 0xd8, 0xb3, 0x79, 0x37, 0x80, +	0xe3, 0x17, 0x5c, 0xec, 0x53, 0x00, 0x9a, 0xe3, +	0x8e, 0xdc, 0x38, 0xb8, 0x66, 0xf0, 0xd3, 0xad, +	0x1d, 0x02, 0x96, 0x86, 0x3e, 0x9d, 0x3b, 0x5d, +	0xa5, 0x7f, 0x21, 0x10, 0xf1, 0x1f, 0x13, 0x20, +	0xf9, 0x57, 0x87, 0x20, 0xf5, 0x5f, 0xf1, 0x17, +	0x48, 0x0a, 0x51, 0x5a, 0xcd, 0x19, 0x03, 0xa6, +	0x5a, 0xd1, 0x12, 0x97, 0xe9, 0x48, 0xe2, 0x1d, +	0x83, 0x75, 0x50, 0xd9, 0x75, 0x7d, 0x6a, 0x82, +	0xa1, 0xf9, 0x4e, 0x54, 0x87, 0x89, 0xc9, 0x0c, +	0xb7, 0x5b, 0x6a, 0x91, 0xc1, 0x9c, 0xb2, 0xa9, +	0xdc, 0x9a, 0xa4, 0x49, 0x0a, 0x6d, 0x0d, 0xbb, +	0xde, 0x86, 0x44, 0xdd, 0x5d, 0x89, 0x2b, 0x96, +	0x0f, 0x23, 0x95, 0xad, 0xcc, 0xa2, 0xb3, 0xb9, +	0x7e, 0x74, 0x38, 0xba, 0x9f, 0x73, 0xae, 0x5f, +	0xf8, 0x68, 0xa2, 0xe0, 0xa9, 0xce, 0xbd, 0x40, +	0xd4, 0x4c, 0x6b, 0xd2, 0x56, 0x62, 0xb0, 0xcc, +	0x63, 0x7e, 0x5b, 0xd3, 0xae, 0xd1, 0x75, 0xce, +	0xbb, 0xb4, 0x5b, 0xa8, 0xf8, 0xb4, 0xac, 0x71, +	0x75, 0xaa, 0xc9, 0x9f, 0xbb, 0x6c, 0xad, 0x0f, +	0x55, 0x5d, 0xe8, 0x85, 0x7d, 0xf9, 0x21, 0x35, +	0xea, 0x92, 0x85, 0x2b, 0x00, 0xec, 0x84, 0x90, +	0x0a, 0x63, 0x96, 0xe4, 0x6b, 0xa9, 0x77, 0xb8, +	0x91, 0xf8, 0x46, 0x15, 0x72, 0x63, 0x70, 0x01, +	0x40, 0xa3, 0xa5, 0x76, 0x62, 0x2b, 0xbf, 0xf1, +	0xe5, 0x8d, 0x9f, 0xa3, 0xfa, 0x9b, 0x03, 0xbe, +	0xfe, 0x65, 0x6f, 0xa2, 0x29, 0x0d, 0x54, 0xb4, +	0x71, 0xce, 0xa9, 0xd6, 0x3d, 0x88, 0xf9, 0xaf, +	0x6b, 0xa8, 0x9e, 0xf4, 0x16, 0x96, 0x36, 0xb9, +	0x00, 0xdc, 0x10, 0xab, 0xb5, 0x08, 0x31, 0x1f, +	0x00, 0xb1, 0x3c, 0xd9, 0x38, 0x3e, 0xc6, 0x04, +	0xa7, 0x4e, 0xe8, 0xae, 0xed, 0x98, 0xc2, 0xf7, +	0xb9, 0x00, 0x5f, 0x8c, 0x60, 0xd1, 0xe5, 0x15, +	0xf7, 0xae, 0x1e, 0x84, 0x88, 0xd1, 0xf6, 0xbc, +	0x3a, 0x89, 0x35, 0x22, 0x83, 0x7c, 0xca, 0xf0, +	0x33, 0x82, 0x4c, 0x79, 0x3c, 0xfd, 0xb1, 0xae, +	0x52, 0x62, 0x55, 0xd2, 0x41, 0x60, 0xc6, 0xbb, +	0xfa, 0x0e, 0x59, 0xd6, 0xa8, 0xfe, 0x5d, 0xed, +	0x47, 0x3d, 0xe0, 0xea, 0x1f, 0x6e, 0x43, 0x51, +	0xec, 0x10, 0x52, 0x56, 0x77, 0x42, 0x6b, 0x52, +	0x87, 0xd8, 0xec, 0xe0, 0xaa, 0x76, 0xa5, 0x84, +	0x2a, 0x22, 0x24, 0xfd, 0x92, 0x40, 0x88, 0xd5, +	0x85, 0x1c, 0x1f, 0x6b, 0x47, 0xa0, 0xc4, 0xe4, +	0xef, 0xf4, 0xea, 0xd7, 0x59, 0xac, 0x2a, 0x9e, +	0x8c, 0xfa, 0x1f, 0x42, 0x08, 0xfe, 0x4f, 0x74, +	0xa0, 0x26, 0xf5, 0xb3, 0x84, 0xf6, 0x58, 0x5f, +	0x26, 0x66, 0x3e, 0xd7, 0xe4, 0x22, 0x91, 0x13, +	0xc8, 0xac, 0x25, 0x96, 0x23, 0xd8, 0x09, 0xea, +	0x45, 0x75, 0x23, 0xb8, 0x5f, 0xc2, 0x90, 0x8b, +	0x09, 0xc4, 0xfc, 0x47, 0x6c, 0x6d, 0x0a, 0xef, +	0x69, 0xa4, 0x38, 0x19, 0xcf, 0x7d, 0xf9, 0x09, +	0x73, 0x9b, 0x60, 0x5a, 0xf7, 0x37, 0xb5, 0xfe, +	0x9f, 0xe3, 0x2b, 0x4c, 0x0d, 0x6e, 0x19, 0xf1, +	0xd6, 0xc0, 0x70, 0xf3, 0x9d, 0x22, 0x3c, 0xf9, +	0x49, 0xce, 0x30, 0x8e, 0x44, 0xb5, 0x76, 0x15, +	0x8f, 0x52, 0xfd, 0xa5, 0x04, 0xb8, 0x55, 0x6a, +	0x36, 0x59, 0x7c, 0xc4, 0x48, 0xb8, 0xd7, 0xab, +	0x05, 0x66, 0xe9, 0x5e, 0x21, 0x6f, 0x6b, 0x36, +	0x29, 0xbb, 0xe9, 0xe3, 0xa2, 0x9a, 0xa8, 0xcd, +	0x55, 0x25, 0x11, 0xba, 0x5a, 0x58, 0xa0, 0xde, +	0xae, 0x19, 0x2a, 0x48, 0x5a, 0xff, 0x36, 0xcd, +	0x6d, 0x16, 0x7a, 0x73, 0x38, 0x46, 0xe5, 0x47, +	0x59, 0xc8, 0xa2, 0xf6, 0xe2, 0x6c, 0x83, 0xc5, +	0x36, 0x2c, 0x83, 0x7d, 0xb4, 0x01, 0x05, 0x69, +	0xe7, 0xaf, 0x5c, 0xc4, 0x64, 0x82, 0x12, 0x21, +	0xef, 0xf7, 0xd1, 0x7d, 0xb8, 0x8d, 0x8c, 0x98, +	0x7c, 0x5f, 0x7d, 0x92, 0x88, 0xb9, 0x94, 0x07, +	0x9c, 0xd8, 0xe9, 0x9c, 0x17, 0x38, 0xe3, 0x57, +	0x6c, 0xe0, 0xdc, 0xa5, 0x92, 0x42, 0xb3, 0xbd, +	0x50, 0xa2, 0x7e, 0xb5, 0xb1, 0x52, 0x72, 0x03, +	0x97, 0xd8, 0xaa, 0x9a, 0x1e, 0x75, 0x41, 0x11, +	0xa3, 0x4f, 0xcc, 0xd4, 0xe3, 0x73, 0xad, 0x96, +	0xdc, 0x47, 0x41, 0x9f, 0xb0, 0xbe, 0x79, 0x91, +	0xf5, 0xb6, 0x18, 0xfe, 0xc2, 0x83, 0x18, 0x7d, +	0x73, 0xd9, 0x4f, 0x83, 0x84, 0x03, 0xb3, 0xf0, +	0x77, 0x66, 0x3d, 0x83, 0x63, 0x2e, 0x2c, 0xf9, +	0xdd, 0xa6, 0x1f, 0x89, 0x82, 0xb8, 0x23, 0x42, +	0xeb, 0xe2, 0xca, 0x70, 0x82, 0x61, 0x41, 0x0a, +	0x6d, 0x5f, 0x75, 0xc5, 0xe2, 0xc4, 0x91, 0x18, +	0x44, 0x22, 0xfa, 0x34, 0x10, 0xf5, 0x20, 0xdc, +	0xb7, 0xdd, 0x2a, 0x20, 0x77, 0xf5, 0xf9, 0xce, +	0xdb, 0xa0, 0x0a, 0x52, 0x2a, 0x4e, 0xdd, 0xcc, +	0x97, 0xdf, 0x05, 0xe4, 0x5e, 0xb7, 0xaa, 0xf0, +	0xe2, 0x80, 0xff, 0xba, 0x1a, 0x0f, 0xac, 0xdf, +	0x02, 0x32, 0xe6, 0xf7, 0xc7, 0x17, 0x13, 0xb7, +	0xfc, 0x98, 0x48, 0x8c, 0x0d, 0x82, 0xc9, 0x80, +	0x7a, 0xe2, 0x0a, 0xc5, 0xb4, 0xde, 0x7c, 0x3c, +	0x79, 0x81, 0x0e, 0x28, 0x65, 0x79, 0x67, 0x82, +	0x69, 0x44, 0x66, 0x09, 0xf7, 0x16, 0x1a, 0xf9, +	0x7d, 0x80, 0xa1, 0x79, 0x14, 0xa9, 0xc8, 0x20, +	0xfb, 0xa2, 0x46, 0xbe, 0x08, 0x35, 0x17, 0x58, +	0xc1, 0x1a, 0xda, 0x2a, 0x6b, 0x2e, 0x1e, 0xe6, +	0x27, 0x55, 0x7b, 0x19, 0xe2, 0xfb, 0x64, 0xfc, +	0x5e, 0x15, 0x54, 0x3c, 0xe7, 0xc2, 0x11, 0x50, +	0x30, 0xb8, 0x72, 0x03, 0x0b, 0x1a, 0x9f, 0x86, +	0x27, 0x11, 0x5c, 0x06, 0x2b, 0xbd, 0x75, 0x1a, +	0x0a, 0xda, 0x01, 0xfa, 0x5c, 0x4a, 0xc1, 0x80, +	0x3a, 0x6e, 0x30, 0xc8, 0x2c, 0xeb, 0x56, 0xec, +	0x89, 0xfa, 0x35, 0x7b, 0xb2, 0xf0, 0x97, 0x08, +	0x86, 0x53, 0xbe, 0xbd, 0x40, 0x41, 0x38, 0x1c, +	0xb4, 0x8b, 0x79, 0x2e, 0x18, 0x96, 0x94, 0xde, +	0xe8, 0xca, 0xe5, 0x9f, 0x92, 0x9f, 0x15, 0x5d, +	0x56, 0x60, 0x5c, 0x09, 0xf9, 0x16, 0xf4, 0x17, +	0x0f, 0xf6, 0x4c, 0xda, 0xe6, 0x67, 0x89, 0x9f, +	0xca, 0x6c, 0xe7, 0x9b, 0x04, 0x62, 0x0e, 0x26, +	0xa6, 0x52, 0xbd, 0x29, 0xff, 0xc7, 0xa4, 0x96, +	0xe6, 0x6a, 0x02, 0xa5, 0x2e, 0x7b, 0xfe, 0x97, +	0x68, 0x3e, 0x2e, 0x5f, 0x3b, 0x0f, 0x36, 0xd6, +	0x98, 0x19, 0x59, 0x48, 0xd2, 0xc6, 0xe1, 0x55, +	0x1a, 0x6e, 0xd6, 0xed, 0x2c, 0xba, 0xc3, 0x9e, +	0x64, 0xc9, 0x95, 0x86, 0x35, 0x5e, 0x3e, 0x88, +	0x69, 0x99, 0x4b, 0xee, 0xbe, 0x9a, 0x99, 0xb5, +	0x6e, 0x58, 0xae, 0xdd, 0x22, 0xdb, 0xdd, 0x6b, +	0xfc, 0xaf, 0x90, 0xa3, 0x3d, 0xa4, 0xc1, 0x15, +	0x92, 0x18, 0x8d, 0xd2, 0x4b, 0x7b, 0x06, 0xd1, +	0x37, 0xb5, 0xe2, 0x7c, 0x2c, 0xf0, 0x25, 0xe4, +	0x94, 0x2a, 0xbd, 0xe3, 0x82, 0x70, 0x78, 0xa3, +	0x82, 0x10, 0x5a, 0x90, 0xd7, 0xa4, 0xfa, 0xaf, +	0x1a, 0x88, 0x59, 0xdc, 0x74, 0x12, 0xb4, 0x8e, +	0xd7, 0x19, 0x46, 0xf4, 0x84, 0x69, 0x9f, 0xbb, +	0x70, 0xa8, 0x4c, 0x52, 0x81, 0xa9, 0xff, 0x76, +	0x1c, 0xae, 0xd8, 0x11, 0x3d, 0x7f, 0x7d, 0xc5, +	0x12, 0x59, 0x28, 0x18, 0xc2, 0xa2, 0xb7, 0x1c, +	0x88, 0xf8, 0xd6, 0x1b, 0xa6, 0x7d, 0x9e, 0xde, +	0x29, 0xf8, 0xed, 0xff, 0xeb, 0x92, 0x24, 0x4f, +	0x05, 0xaa, 0xd9, 0x49, 0xba, 0x87, 0x59, 0x51, +	0xc9, 0x20, 0x5c, 0x9b, 0x74, 0xcf, 0x03, 0xd9, +	0x2d, 0x34, 0xc7, 0x5b, 0xa5, 0x40, 0xb2, 0x99, +	0xf5, 0xcb, 0xb4, 0xf6, 0xb7, 0x72, 0x4a, 0xd6, +	0xbd, 0xb0, 0xf3, 0x93, 0xe0, 0x1b, 0xa8, 0x04, +	0x1e, 0x35, 0xd4, 0x80, 0x20, 0xf4, 0x9c, 0x31, +	0x6b, 0x45, 0xb9, 0x15, 0xb0, 0x5e, 0xdd, 0x0a, +	0x33, 0x9c, 0x83, 0xcd, 0x58, 0x89, 0x50, 0x56, +	0xbb, 0x81, 0x00, 0x91, 0x32, 0xf3, 0x1b, 0x3e, +	0xcf, 0x45, 0xe1, 0xf9, 0xe1, 0x2c, 0x26, 0x78, +	0x93, 0x9a, 0x60, 0x46, 0xc9, 0xb5, 0x5e, 0x6a, +	0x28, 0x92, 0x87, 0x3f, 0x63, 0x7b, 0xdb, 0xf7, +	0xd0, 0x13, 0x9d, 0x32, 0x40, 0x5e, 0xcf, 0xfb, +	0x79, 0x68, 0x47, 0x4c, 0xfd, 0x01, 0x17, 0xe6, +	0x97, 0x93, 0x78, 0xbb, 0xa6, 0x27, 0xa3, 0xe8, +	0x1a, 0xe8, 0x94, 0x55, 0x7d, 0x08, 0xe5, 0xdc, +	0x66, 0xa3, 0x69, 0xc8, 0xca, 0xc5, 0xa1, 0x84, +	0x55, 0xde, 0x08, 0x91, 0x16, 0x3a, 0x0c, 0x86, +	0xab, 0x27, 0x2b, 0x64, 0x34, 0x02, 0x6c, 0x76, +	0x8b, 0xc6, 0xaf, 0xcc, 0xe1, 0xd6, 0x8c, 0x2a, +	0x18, 0x3d, 0xa6, 0x1b, 0x37, 0x75, 0x45, 0x73, +	0xc2, 0x75, 0xd7, 0x53, 0x78, 0x3a, 0xd6, 0xe8, +	0x29, 0xd2, 0x4a, 0xa8, 0x1e, 0x82, 0xf6, 0xb6, +	0x81, 0xde, 0x21, 0xed, 0x2b, 0x56, 0xbb, 0xf2, +	0xd0, 0x57, 0xc1, 0x7c, 0xd2, 0x6a, 0xd2, 0x56, +	0xf5, 0x13, 0x5f, 0x1c, 0x6a, 0x0b, 0x74, 0xfb, +	0xe9, 0xfe, 0x9e, 0xea, 0x95, 0xb2, 0x46, 0xab, +	0x0a, 0xfc, 0xfd, 0xf3, 0xbb, 0x04, 0x2b, 0x76, +	0x1b, 0xa4, 0x74, 0xb0, 0xc1, 0x78, 0xc3, 0x69, +	0xe2, 0xb0, 0x01, 0xe1, 0xde, 0x32, 0x4c, 0x8d, +	0x1a, 0xb3, 0x38, 0x08, 0xd5, 0xfc, 0x1f, 0xdc, +	0x0e, 0x2c, 0x9c, 0xb1, 0xa1, 0x63, 0x17, 0x22, +	0xf5, 0x6c, 0x93, 0x70, 0x74, 0x00, 0xf8, 0x39, +	0x01, 0x94, 0xd1, 0x32, 0x23, 0x56, 0x5d, 0xa6, +	0x02, 0x76, 0x76, 0x93, 0xce, 0x2f, 0x19, 0xe9, +	0x17, 0x52, 0xae, 0x6e, 0x2c, 0x6d, 0x61, 0x7f, +	0x3b, 0xaa, 0xe0, 0x52, 0x85, 0xc5, 0x65, 0xc1, +	0xbb, 0x8e, 0x5b, 0x21, 0xd5, 0xc9, 0x78, 0x83, +	0x07, 0x97, 0x4c, 0x62, 0x61, 0x41, 0xd4, 0xfc, +	0xc9, 0x39, 0xe3, 0x9b, 0xd0, 0xcc, 0x75, 0xc4, +	0x97, 0xe6, 0xdd, 0x2a, 0x5f, 0xa6, 0xe8, 0x59, +	0x6c, 0x98, 0xb9, 0x02, 0xe2, 0xa2, 0xd6, 0x68, +	0xee, 0x3b, 0x1d, 0xe3, 0x4d, 0x5b, 0x30, 0xef, +	0x03, 0xf2, 0xeb, 0x18, 0x57, 0x36, 0xe8, 0xa1, +	0xf4, 0x47, 0xfb, 0xcb, 0x8f, 0xcb, 0xc8, 0xf3, +	0x4f, 0x74, 0x9d, 0x9d, 0xb1, 0x8d, 0x14, 0x44, +	0xd9, 0x19, 0xb4, 0x54, 0x4f, 0x75, 0x19, 0x09, +	0xa0, 0x75, 0xbc, 0x3b, 0x82, 0xc6, 0x3f, 0xb8, +	0x83, 0x19, 0x6e, 0xd6, 0x37, 0xfe, 0x6e, 0x8a, +	0x4e, 0xe0, 0x4a, 0xab, 0x7b, 0xc8, 0xb4, 0x1d, +	0xf4, 0xed, 0x27, 0x03, 0x65, 0xa2, 0xa1, 0xae, +	0x11, 0xe7, 0x98, 0x78, 0x48, 0x91, 0xd2, 0xd2, +	0xd4, 0x23, 0x78, 0x50, 0xb1, 0x5b, 0x85, 0x10, +	0x8d, 0xca, 0x5f, 0x0f, 0x71, 0xae, 0x72, 0x9a, +	0xf6, 0x25, 0x19, 0x60, 0x06, 0xf7, 0x10, 0x34, +	0x18, 0x0d, 0xc9, 0x9f, 0x7b, 0x0c, 0x9b, 0x8f, +	0x91, 0x1b, 0x9f, 0xcd, 0x10, 0xee, 0x75, 0xf9, +	0x97, 0x66, 0xfc, 0x4d, 0x33, 0x6e, 0x28, 0x2b, +	0x92, 0x85, 0x4f, 0xab, 0x43, 0x8d, 0x8f, 0x7d, +	0x86, 0xa7, 0xc7, 0xd8, 0xd3, 0x0b, 0x8b, 0x57, +	0xb6, 0x1d, 0x95, 0x0d, 0xe9, 0xbc, 0xd9, 0x03, +	0xd9, 0x10, 0x19, 0xc3, 0x46, 0x63, 0x55, 0x87, +	0x61, 0x79, 0x6c, 0x95, 0x0e, 0x9c, 0xdd, 0xca, +	0xc3, 0xf3, 0x64, 0xf0, 0x7d, 0x76, 0xb7, 0x53, +	0x67, 0x2b, 0x1e, 0x44, 0x56, 0x81, 0xea, 0x8f, +	0x5c, 0x42, 0x16, 0xb8, 0x28, 0xeb, 0x1b, 0x61, +	0x10, 0x1e, 0xbf, 0xec, 0xa8 +}; +static const u8 enc_output011[] __initconst = { +	0x6a, 0xfc, 0x4b, 0x25, 0xdf, 0xc0, 0xe4, 0xe8, +	0x17, 0x4d, 0x4c, 0xc9, 0x7e, 0xde, 0x3a, 0xcc, +	0x3c, 0xba, 0x6a, 0x77, 0x47, 0xdb, 0xe3, 0x74, +	0x7a, 0x4d, 0x5f, 0x8d, 0x37, 0x55, 0x80, 0x73, +	0x90, 0x66, 0x5d, 0x3a, 0x7d, 0x5d, 0x86, 0x5e, +	0x8d, 0xfd, 0x83, 0xff, 0x4e, 0x74, 0x6f, 0xf9, +	0xe6, 0x70, 0x17, 0x70, 0x3e, 0x96, 0xa7, 0x7e, +	0xcb, 0xab, 0x8f, 0x58, 0x24, 0x9b, 0x01, 0xfd, +	0xcb, 0xe6, 0x4d, 0x9b, 0xf0, 0x88, 0x94, 0x57, +	0x66, 0xef, 0x72, 0x4c, 0x42, 0x6e, 0x16, 0x19, +	0x15, 0xea, 0x70, 0x5b, 0xac, 0x13, 0xdb, 0x9f, +	0x18, 0xe2, 0x3c, 0x26, 0x97, 0xbc, 0xdc, 0x45, +	0x8c, 0x6c, 0x24, 0x69, 0x9c, 0xf7, 0x65, 0x1e, +	0x18, 0x59, 0x31, 0x7c, 0xe4, 0x73, 0xbc, 0x39, +	0x62, 0xc6, 0x5c, 0x9f, 0xbf, 0xfa, 0x90, 0x03, +	0xc9, 0x72, 0x26, 0xb6, 0x1b, 0xc2, 0xb7, 0x3f, +	0xf2, 0x13, 0x77, 0xf2, 0x8d, 0xb9, 0x47, 0xd0, +	0x53, 0xdd, 0xc8, 0x91, 0x83, 0x8b, 0xb1, 0xce, +	0xa3, 0xfe, 0xcd, 0xd9, 0xdd, 0x92, 0x7b, 0xdb, +	0xb8, 0xfb, 0xc9, 0x2d, 0x01, 0x59, 0x39, 0x52, +	0xad, 0x1b, 0xec, 0xcf, 0xd7, 0x70, 0x13, 0x21, +	0xf5, 0x47, 0xaa, 0x18, 0x21, 0x5c, 0xc9, 0x9a, +	0xd2, 0x6b, 0x05, 0x9c, 0x01, 0xa1, 0xda, 0x35, +	0x5d, 0xb3, 0x70, 0xe6, 0xa9, 0x80, 0x8b, 0x91, +	0xb7, 0xb3, 0x5f, 0x24, 0x9a, 0xb7, 0xd1, 0x6b, +	0xa1, 0x1c, 0x50, 0xba, 0x49, 0xe0, 0xee, 0x2e, +	0x75, 0xac, 0x69, 0xc0, 0xeb, 0x03, 0xdd, 0x19, +	0xe5, 0xf6, 0x06, 0xdd, 0xc3, 0xd7, 0x2b, 0x07, +	0x07, 0x30, 0xa7, 0x19, 0x0c, 0xbf, 0xe6, 0x18, +	0xcc, 0xb1, 0x01, 0x11, 0x85, 0x77, 0x1d, 0x96, +	0xa7, 0xa3, 0x00, 0x84, 0x02, 0xa2, 0x83, 0x68, +	0xda, 0x17, 0x27, 0xc8, 0x7f, 0x23, 0xb7, 0xf4, +	0x13, 0x85, 0xcf, 0xdd, 0x7a, 0x7d, 0x24, 0x57, +	0xfe, 0x05, 0x93, 0xf5, 0x74, 0xce, 0xed, 0x0c, +	0x20, 0x98, 0x8d, 0x92, 0x30, 0xa1, 0x29, 0x23, +	0x1a, 0xa0, 0x4f, 0x69, 0x56, 0x4c, 0xe1, 0xc8, +	0xce, 0xf6, 0x9a, 0x0c, 0xa4, 0xfa, 0x04, 0xf6, +	0x62, 0x95, 0xf2, 0xfa, 0xc7, 0x40, 0x68, 0x40, +	0x8f, 0x41, 0xda, 0xb4, 0x26, 0x6f, 0x70, 0xab, +	0x40, 0x61, 0xa4, 0x0e, 0x75, 0xfb, 0x86, 0xeb, +	0x9d, 0x9a, 0x1f, 0xec, 0x76, 0x99, 0xe7, 0xea, +	0xaa, 0x1e, 0x2d, 0xb5, 0xd4, 0xa6, 0x1a, 0xb8, +	0x61, 0x0a, 0x1d, 0x16, 0x5b, 0x98, 0xc2, 0x31, +	0x40, 0xe7, 0x23, 0x1d, 0x66, 0x99, 0xc8, 0xc0, +	0xd7, 0xce, 0xf3, 0x57, 0x40, 0x04, 0x3f, 0xfc, +	0xea, 0xb3, 0xfc, 0xd2, 0xd3, 0x99, 0xa4, 0x94, +	0x69, 0xa0, 0xef, 0xd1, 0x85, 0xb3, 0xa6, 0xb1, +	0x28, 0xbf, 0x94, 0x67, 0x22, 0xc3, 0x36, 0x46, +	0xf8, 0xd2, 0x0f, 0x5f, 0xf4, 0x59, 0x80, 0xe6, +	0x2d, 0x43, 0x08, 0x7d, 0x19, 0x09, 0x97, 0xa7, +	0x4c, 0x3d, 0x8d, 0xba, 0x65, 0x62, 0xa3, 0x71, +	0x33, 0x29, 0x62, 0xdb, 0xc1, 0x33, 0x34, 0x1a, +	0x63, 0x33, 0x16, 0xb6, 0x64, 0x7e, 0xab, 0x33, +	0xf0, 0xe6, 0x26, 0x68, 0xba, 0x1d, 0x2e, 0x38, +	0x08, 0xe6, 0x02, 0xd3, 0x25, 0x2c, 0x47, 0x23, +	0x58, 0x34, 0x0f, 0x9d, 0x63, 0x4f, 0x63, 0xbb, +	0x7f, 0x3b, 0x34, 0x38, 0xa7, 0xb5, 0x8d, 0x65, +	0xd9, 0x9f, 0x79, 0x55, 0x3e, 0x4d, 0xe7, 0x73, +	0xd8, 0xf6, 0x98, 0x97, 0x84, 0x60, 0x9c, 0xc8, +	0xa9, 0x3c, 0xf6, 0xdc, 0x12, 0x5c, 0xe1, 0xbb, +	0x0b, 0x8b, 0x98, 0x9c, 0x9d, 0x26, 0x7c, 0x4a, +	0xe6, 0x46, 0x36, 0x58, 0x21, 0x4a, 0xee, 0xca, +	0xd7, 0x3b, 0xc2, 0x6c, 0x49, 0x2f, 0xe5, 0xd5, +	0x03, 0x59, 0x84, 0x53, 0xcb, 0xfe, 0x92, 0x71, +	0x2e, 0x7c, 0x21, 0xcc, 0x99, 0x85, 0x7f, 0xb8, +	0x74, 0x90, 0x13, 0x42, 0x3f, 0xe0, 0x6b, 0x1d, +	0xf2, 0x4d, 0x54, 0xd4, 0xfc, 0x3a, 0x05, 0xe6, +	0x74, 0xaf, 0xa6, 0xa0, 0x2a, 0x20, 0x23, 0x5d, +	0x34, 0x5c, 0xd9, 0x3e, 0x4e, 0xfa, 0x93, 0xe7, +	0xaa, 0xe9, 0x6f, 0x08, 0x43, 0x67, 0x41, 0xc5, +	0xad, 0xfb, 0x31, 0x95, 0x82, 0x73, 0x32, 0xd8, +	0xa6, 0xa3, 0xed, 0x0e, 0x2d, 0xf6, 0x5f, 0xfd, +	0x80, 0xa6, 0x7a, 0xe0, 0xdf, 0x78, 0x15, 0x29, +	0x74, 0x33, 0xd0, 0x9e, 0x83, 0x86, 0x72, 0x22, +	0x57, 0x29, 0xb9, 0x9e, 0x5d, 0xd3, 0x1a, 0xb5, +	0x96, 0x72, 0x41, 0x3d, 0xf1, 0x64, 0x43, 0x67, +	0xee, 0xaa, 0x5c, 0xd3, 0x9a, 0x96, 0x13, 0x11, +	0x5d, 0xf3, 0x0c, 0x87, 0x82, 0x1e, 0x41, 0x9e, +	0xd0, 0x27, 0xd7, 0x54, 0x3b, 0x67, 0x73, 0x09, +	0x91, 0xe9, 0xd5, 0x36, 0xa7, 0xb5, 0x55, 0xe4, +	0xf3, 0x21, 0x51, 0x49, 0x22, 0x07, 0x55, 0x4f, +	0x44, 0x4b, 0xd2, 0x15, 0x93, 0x17, 0x2a, 0xfa, +	0x4d, 0x4a, 0x57, 0xdb, 0x4c, 0xa6, 0xeb, 0xec, +	0x53, 0x25, 0x6c, 0x21, 0xed, 0x00, 0x4c, 0x3b, +	0xca, 0x14, 0x57, 0xa9, 0xd6, 0x6a, 0xcd, 0x8d, +	0x5e, 0x74, 0xac, 0x72, 0xc1, 0x97, 0xe5, 0x1b, +	0x45, 0x4e, 0xda, 0xfc, 0xcc, 0x40, 0xe8, 0x48, +	0x88, 0x0b, 0xa3, 0xe3, 0x8d, 0x83, 0x42, 0xc3, +	0x23, 0xfd, 0x68, 0xb5, 0x8e, 0xf1, 0x9d, 0x63, +	0x77, 0xe9, 0xa3, 0x8e, 0x8c, 0x26, 0x6b, 0xbd, +	0x72, 0x73, 0x35, 0x0c, 0x03, 0xf8, 0x43, 0x78, +	0x52, 0x71, 0x15, 0x1f, 0x71, 0x5d, 0x6e, 0xed, +	0xb9, 0xcc, 0x86, 0x30, 0xdb, 0x2b, 0xd3, 0x82, +	0x88, 0x23, 0x71, 0x90, 0x53, 0x5c, 0xa9, 0x2f, +	0x76, 0x01, 0xb7, 0x9a, 0xfe, 0x43, 0x55, 0xa3, +	0x04, 0x9b, 0x0e, 0xe4, 0x59, 0xdf, 0xc9, 0xe9, +	0xb1, 0xea, 0x29, 0x28, 0x3c, 0x5c, 0xae, 0x72, +	0x84, 0xb6, 0xc6, 0xeb, 0x0c, 0x27, 0x07, 0x74, +	0x90, 0x0d, 0x31, 0xb0, 0x00, 0x77, 0xe9, 0x40, +	0x70, 0x6f, 0x68, 0xa7, 0xfd, 0x06, 0xec, 0x4b, +	0xc0, 0xb7, 0xac, 0xbc, 0x33, 0xb7, 0x6d, 0x0a, +	0xbd, 0x12, 0x1b, 0x59, 0xcb, 0xdd, 0x32, 0xf5, +	0x1d, 0x94, 0x57, 0x76, 0x9e, 0x0c, 0x18, 0x98, +	0x71, 0xd7, 0x2a, 0xdb, 0x0b, 0x7b, 0xa7, 0x71, +	0xb7, 0x67, 0x81, 0x23, 0x96, 0xae, 0xb9, 0x7e, +	0x32, 0x43, 0x92, 0x8a, 0x19, 0xa0, 0xc4, 0xd4, +	0x3b, 0x57, 0xf9, 0x4a, 0x2c, 0xfb, 0x51, 0x46, +	0xbb, 0xcb, 0x5d, 0xb3, 0xef, 0x13, 0x93, 0x6e, +	0x68, 0x42, 0x54, 0x57, 0xd3, 0x6a, 0x3a, 0x8f, +	0x9d, 0x66, 0xbf, 0xbd, 0x36, 0x23, 0xf5, 0x93, +	0x83, 0x7b, 0x9c, 0xc0, 0xdd, 0xc5, 0x49, 0xc0, +	0x64, 0xed, 0x07, 0x12, 0xb3, 0xe6, 0xe4, 0xe5, +	0x38, 0x95, 0x23, 0xb1, 0xa0, 0x3b, 0x1a, 0x61, +	0xda, 0x17, 0xac, 0xc3, 0x58, 0xdd, 0x74, 0x64, +	0x22, 0x11, 0xe8, 0x32, 0x1d, 0x16, 0x93, 0x85, +	0x99, 0xa5, 0x9c, 0x34, 0x55, 0xb1, 0xe9, 0x20, +	0x72, 0xc9, 0x28, 0x7b, 0x79, 0x00, 0xa1, 0xa6, +	0xa3, 0x27, 0x40, 0x18, 0x8a, 0x54, 0xe0, 0xcc, +	0xe8, 0x4e, 0x8e, 0x43, 0x96, 0xe7, 0x3f, 0xc8, +	0xe9, 0xb2, 0xf9, 0xc9, 0xda, 0x04, 0x71, 0x50, +	0x47, 0xe4, 0xaa, 0xce, 0xa2, 0x30, 0xc8, 0xe4, +	0xac, 0xc7, 0x0d, 0x06, 0x2e, 0xe6, 0xe8, 0x80, +	0x36, 0x29, 0x9e, 0x01, 0xb8, 0xc3, 0xf0, 0xa0, +	0x5d, 0x7a, 0xca, 0x4d, 0xa0, 0x57, 0xbd, 0x2a, +	0x45, 0xa7, 0x7f, 0x9c, 0x93, 0x07, 0x8f, 0x35, +	0x67, 0x92, 0xe3, 0xe9, 0x7f, 0xa8, 0x61, 0x43, +	0x9e, 0x25, 0x4f, 0x33, 0x76, 0x13, 0x6e, 0x12, +	0xb9, 0xdd, 0xa4, 0x7c, 0x08, 0x9f, 0x7c, 0xe7, +	0x0a, 0x8d, 0x84, 0x06, 0xa4, 0x33, 0x17, 0x34, +	0x5e, 0x10, 0x7c, 0xc0, 0xa8, 0x3d, 0x1f, 0x42, +	0x20, 0x51, 0x65, 0x5d, 0x09, 0xc3, 0xaa, 0xc0, +	0xc8, 0x0d, 0xf0, 0x79, 0xbc, 0x20, 0x1b, 0x95, +	0xe7, 0x06, 0x7d, 0x47, 0x20, 0x03, 0x1a, 0x74, +	0xdd, 0xe2, 0xd4, 0xae, 0x38, 0x71, 0x9b, 0xf5, +	0x80, 0xec, 0x08, 0x4e, 0x56, 0xba, 0x76, 0x12, +	0x1a, 0xdf, 0x48, 0xf3, 0xae, 0xb3, 0xe6, 0xe6, +	0xbe, 0xc0, 0x91, 0x2e, 0x01, 0xb3, 0x01, 0x86, +	0xa2, 0xb9, 0x52, 0xd1, 0x21, 0xae, 0xd4, 0x97, +	0x1d, 0xef, 0x41, 0x12, 0x95, 0x3d, 0x48, 0x45, +	0x1c, 0x56, 0x32, 0x8f, 0xb8, 0x43, 0xbb, 0x19, +	0xf3, 0xca, 0xe9, 0xeb, 0x6d, 0x84, 0xbe, 0x86, +	0x06, 0xe2, 0x36, 0xb2, 0x62, 0x9d, 0xd3, 0x4c, +	0x48, 0x18, 0x54, 0x13, 0x4e, 0xcf, 0xfd, 0xba, +	0x84, 0xb9, 0x30, 0x53, 0xcf, 0xfb, 0xb9, 0x29, +	0x8f, 0xdc, 0x9f, 0xef, 0x60, 0x0b, 0x64, 0xf6, +	0x8b, 0xee, 0xa6, 0x91, 0xc2, 0x41, 0x6c, 0xf6, +	0xfa, 0x79, 0x67, 0x4b, 0xc1, 0x3f, 0xaf, 0x09, +	0x81, 0xd4, 0x5d, 0xcb, 0x09, 0xdf, 0x36, 0x31, +	0xc0, 0x14, 0x3c, 0x7c, 0x0e, 0x65, 0x95, 0x99, +	0x6d, 0xa3, 0xf4, 0xd7, 0x38, 0xee, 0x1a, 0x2b, +	0x37, 0xe2, 0xa4, 0x3b, 0x4b, 0xd0, 0x65, 0xca, +	0xf8, 0xc3, 0xe8, 0x15, 0x20, 0xef, 0xf2, 0x00, +	0xfd, 0x01, 0x09, 0xc5, 0xc8, 0x17, 0x04, 0x93, +	0xd0, 0x93, 0x03, 0x55, 0xc5, 0xfe, 0x32, 0xa3, +	0x3e, 0x28, 0x2d, 0x3b, 0x93, 0x8a, 0xcc, 0x07, +	0x72, 0x80, 0x8b, 0x74, 0x16, 0x24, 0xbb, 0xda, +	0x94, 0x39, 0x30, 0x8f, 0xb1, 0xcd, 0x4a, 0x90, +	0x92, 0x7c, 0x14, 0x8f, 0x95, 0x4e, 0xac, 0x9b, +	0xd8, 0x8f, 0x1a, 0x87, 0xa4, 0x32, 0x27, 0x8a, +	0xba, 0xf7, 0x41, 0xcf, 0x84, 0x37, 0x19, 0xe6, +	0x06, 0xf5, 0x0e, 0xcf, 0x36, 0xf5, 0x9e, 0x6c, +	0xde, 0xbc, 0xff, 0x64, 0x7e, 0x4e, 0x59, 0x57, +	0x48, 0xfe, 0x14, 0xf7, 0x9c, 0x93, 0x5d, 0x15, +	0xad, 0xcc, 0x11, 0xb1, 0x17, 0x18, 0xb2, 0x7e, +	0xcc, 0xab, 0xe9, 0xce, 0x7d, 0x77, 0x5b, 0x51, +	0x1b, 0x1e, 0x20, 0xa8, 0x32, 0x06, 0x0e, 0x75, +	0x93, 0xac, 0xdb, 0x35, 0x37, 0x1f, 0xe9, 0x19, +	0x1d, 0xb4, 0x71, 0x97, 0xd6, 0x4e, 0x2c, 0x08, +	0xa5, 0x13, 0xf9, 0x0e, 0x7e, 0x78, 0x6e, 0x14, +	0xe0, 0xa9, 0xb9, 0x96, 0x4c, 0x80, 0x82, 0xba, +	0x17, 0xb3, 0x9d, 0x69, 0xb0, 0x84, 0x46, 0xff, +	0xf9, 0x52, 0x79, 0x94, 0x58, 0x3a, 0x62, 0x90, +	0x15, 0x35, 0x71, 0x10, 0x37, 0xed, 0xa1, 0x8e, +	0x53, 0x6e, 0xf4, 0x26, 0x57, 0x93, 0x15, 0x93, +	0xf6, 0x81, 0x2c, 0x5a, 0x10, 0xda, 0x92, 0xad, +	0x2f, 0xdb, 0x28, 0x31, 0x2d, 0x55, 0x04, 0xd2, +	0x06, 0x28, 0x8c, 0x1e, 0xdc, 0xea, 0x54, 0xac, +	0xff, 0xb7, 0x6c, 0x30, 0x15, 0xd4, 0xb4, 0x0d, +	0x00, 0x93, 0x57, 0xdd, 0xd2, 0x07, 0x07, 0x06, +	0xd9, 0x43, 0x9b, 0xcd, 0x3a, 0xf4, 0x7d, 0x4c, +	0x36, 0x5d, 0x23, 0xa2, 0xcc, 0x57, 0x40, 0x91, +	0xe9, 0x2c, 0x2f, 0x2c, 0xd5, 0x30, 0x9b, 0x17, +	0xb0, 0xc9, 0xf7, 0xa7, 0x2f, 0xd1, 0x93, 0x20, +	0x6b, 0xc6, 0xc1, 0xe4, 0x6f, 0xcb, 0xd1, 0xe7, +	0x09, 0x0f, 0x9e, 0xdc, 0xaa, 0x9f, 0x2f, 0xdf, +	0x56, 0x9f, 0xd4, 0x33, 0x04, 0xaf, 0xd3, 0x6c, +	0x58, 0x61, 0xf0, 0x30, 0xec, 0xf2, 0x7f, 0xf2, +	0x9c, 0xdf, 0x39, 0xbb, 0x6f, 0xa2, 0x8c, 0x7e, +	0xc4, 0x22, 0x51, 0x71, 0xc0, 0x4d, 0x14, 0x1a, +	0xc4, 0xcd, 0x04, 0xd9, 0x87, 0x08, 0x50, 0x05, +	0xcc, 0xaf, 0xf6, 0xf0, 0x8f, 0x92, 0x54, 0x58, +	0xc2, 0xc7, 0x09, 0x7a, 0x59, 0x02, 0x05, 0xe8, +	0xb0, 0x86, 0xd9, 0xbf, 0x7b, 0x35, 0x51, 0x4d, +	0xaf, 0x08, 0x97, 0x2c, 0x65, 0xda, 0x2a, 0x71, +	0x3a, 0xa8, 0x51, 0xcc, 0xf2, 0x73, 0x27, 0xc3, +	0xfd, 0x62, 0xcf, 0xe3, 0xb2, 0xca, 0xcb, 0xbe, +	0x1a, 0x0a, 0xa1, 0x34, 0x7b, 0x77, 0xc4, 0x62, +	0x68, 0x78, 0x5f, 0x94, 0x07, 0x04, 0x65, 0x16, +	0x4b, 0x61, 0xcb, 0xff, 0x75, 0x26, 0x50, 0x66, +	0x1f, 0x6e, 0x93, 0xf8, 0xc5, 0x51, 0xeb, 0xa4, +	0x4a, 0x48, 0x68, 0x6b, 0xe2, 0x5e, 0x44, 0xb2, +	0x50, 0x2c, 0x6c, 0xae, 0x79, 0x4e, 0x66, 0x35, +	0x81, 0x50, 0xac, 0xbc, 0x3f, 0xb1, 0x0c, 0xf3, +	0x05, 0x3c, 0x4a, 0xa3, 0x6c, 0x2a, 0x79, 0xb4, +	0xb7, 0xab, 0xca, 0xc7, 0x9b, 0x8e, 0xcd, 0x5f, +	0x11, 0x03, 0xcb, 0x30, 0xa3, 0xab, 0xda, 0xfe, +	0x64, 0xb9, 0xbb, 0xd8, 0x5e, 0x3a, 0x1a, 0x56, +	0xe5, 0x05, 0x48, 0x90, 0x1e, 0x61, 0x69, 0x1b, +	0x22, 0xe6, 0x1a, 0x3c, 0x75, 0xad, 0x1f, 0x37, +	0x28, 0xdc, 0xe4, 0x6d, 0xbd, 0x42, 0xdc, 0xd3, +	0xc8, 0xb6, 0x1c, 0x48, 0xfe, 0x94, 0x77, 0x7f, +	0xbd, 0x62, 0xac, 0xa3, 0x47, 0x27, 0xcf, 0x5f, +	0xd9, 0xdb, 0xaf, 0xec, 0xf7, 0x5e, 0xc1, 0xb0, +	0x9d, 0x01, 0x26, 0x99, 0x7e, 0x8f, 0x03, 0x70, +	0xb5, 0x42, 0xbe, 0x67, 0x28, 0x1b, 0x7c, 0xbd, +	0x61, 0x21, 0x97, 0xcc, 0x5c, 0xe1, 0x97, 0x8f, +	0x8d, 0xde, 0x2b, 0xaa, 0xa7, 0x71, 0x1d, 0x1e, +	0x02, 0x73, 0x70, 0x58, 0x32, 0x5b, 0x1d, 0x67, +	0x3d, 0xe0, 0x74, 0x4f, 0x03, 0xf2, 0x70, 0x51, +	0x79, 0xf1, 0x61, 0x70, 0x15, 0x74, 0x9d, 0x23, +	0x89, 0xde, 0xac, 0xfd, 0xde, 0xd0, 0x1f, 0xc3, +	0x87, 0x44, 0x35, 0x4b, 0xe5, 0xb0, 0x60, 0xc5, +	0x22, 0xe4, 0x9e, 0xca, 0xeb, 0xd5, 0x3a, 0x09, +	0x45, 0xa4, 0xdb, 0xfa, 0x3f, 0xeb, 0x1b, 0xc7, +	0xc8, 0x14, 0x99, 0x51, 0x92, 0x10, 0xed, 0xed, +	0x28, 0xe0, 0xa1, 0xf8, 0x26, 0xcf, 0xcd, 0xcb, +	0x63, 0xa1, 0x3b, 0xe3, 0xdf, 0x7e, 0xfe, 0xa6, +	0xf0, 0x81, 0x9a, 0xbf, 0x55, 0xde, 0x54, 0xd5, +	0x56, 0x60, 0x98, 0x10, 0x68, 0xf4, 0x38, 0x96, +	0x8e, 0x6f, 0x1d, 0x44, 0x7f, 0xd6, 0x2f, 0xfe, +	0x55, 0xfb, 0x0c, 0x7e, 0x67, 0xe2, 0x61, 0x44, +	0xed, 0xf2, 0x35, 0x30, 0x5d, 0xe9, 0xc7, 0xd6, +	0x6d, 0xe0, 0xa0, 0xed, 0xf3, 0xfc, 0xd8, 0x3e, +	0x0a, 0x7b, 0xcd, 0xaf, 0x65, 0x68, 0x18, 0xc0, +	0xec, 0x04, 0x1c, 0x74, 0x6d, 0xe2, 0x6e, 0x79, +	0xd4, 0x11, 0x2b, 0x62, 0xd5, 0x27, 0xad, 0x4f, +	0x01, 0x59, 0x73, 0xcc, 0x6a, 0x53, 0xfb, 0x2d, +	0xd5, 0x4e, 0x99, 0x21, 0x65, 0x4d, 0xf5, 0x82, +	0xf7, 0xd8, 0x42, 0xce, 0x6f, 0x3d, 0x36, 0x47, +	0xf1, 0x05, 0x16, 0xe8, 0x1b, 0x6a, 0x8f, 0x93, +	0xf2, 0x8f, 0x37, 0x40, 0x12, 0x28, 0xa3, 0xe6, +	0xb9, 0x17, 0x4a, 0x1f, 0xb1, 0xd1, 0x66, 0x69, +	0x86, 0xc4, 0xfc, 0x97, 0xae, 0x3f, 0x8f, 0x1e, +	0x2b, 0xdf, 0xcd, 0xf9, 0x3c +}; +static const u8 enc_assoc011[] __initconst = { +	0xd6, 0x31, 0xda, 0x5d, 0x42, 0x5e, 0xd7 +}; +static const u8 enc_nonce011[] __initconst = { +	0xfd, 0x87, 0xd4, 0xd8, 0x62, 0xfd, 0xec, 0xaa +}; +static const u8 enc_key011[] __initconst = { +	0x35, 0x4e, 0xb5, 0x70, 0x50, 0x42, 0x8a, 0x85, +	0xf2, 0xfb, 0xed, 0x7b, 0xd0, 0x9e, 0x97, 0xca, +	0xfa, 0x98, 0x66, 0x63, 0xee, 0x37, 0xcc, 0x52, +	0xfe, 0xd1, 0xdf, 0x95, 0x15, 0x34, 0x29, 0x38 +}; + +static const u8 enc_input012[] __initconst = { +	0x74, 0xa6, 0x3e, 0xe4, 0xb1, 0xcb, 0xaf, 0xb0, +	0x40, 0xe5, 0x0f, 0x9e, 0xf1, 0xf2, 0x89, 0xb5, +	0x42, 0x34, 0x8a, 0xa1, 0x03, 0xb7, 0xe9, 0x57, +	0x46, 0xbe, 0x20, 0xe4, 0x6e, 0xb0, 0xeb, 0xff, +	0xea, 0x07, 0x7e, 0xef, 0xe2, 0x55, 0x9f, 0xe5, +	0x78, 0x3a, 0xb7, 0x83, 0xc2, 0x18, 0x40, 0x7b, +	0xeb, 0xcd, 0x81, 0xfb, 0x90, 0x12, 0x9e, 0x46, +	0xa9, 0xd6, 0x4a, 0xba, 0xb0, 0x62, 0xdb, 0x6b, +	0x99, 0xc4, 0xdb, 0x54, 0x4b, 0xb8, 0xa5, 0x71, +	0xcb, 0xcd, 0x63, 0x32, 0x55, 0xfb, 0x31, 0xf0, +	0x38, 0xf5, 0xbe, 0x78, 0xe4, 0x45, 0xce, 0x1b, +	0x6a, 0x5b, 0x0e, 0xf4, 0x16, 0xe4, 0xb1, 0x3d, +	0xf6, 0x63, 0x7b, 0xa7, 0x0c, 0xde, 0x6f, 0x8f, +	0x74, 0xdf, 0xe0, 0x1e, 0x9d, 0xce, 0x8f, 0x24, +	0xef, 0x23, 0x35, 0x33, 0x7b, 0x83, 0x34, 0x23, +	0x58, 0x74, 0x14, 0x77, 0x1f, 0xc2, 0x4f, 0x4e, +	0xc6, 0x89, 0xf9, 0x52, 0x09, 0x37, 0x64, 0x14, +	0xc4, 0x01, 0x6b, 0x9d, 0x77, 0xe8, 0x90, 0x5d, +	0xa8, 0x4a, 0x2a, 0xef, 0x5c, 0x7f, 0xeb, 0xbb, +	0xb2, 0xc6, 0x93, 0x99, 0x66, 0xdc, 0x7f, 0xd4, +	0x9e, 0x2a, 0xca, 0x8d, 0xdb, 0xe7, 0x20, 0xcf, +	0xe4, 0x73, 0xae, 0x49, 0x7d, 0x64, 0x0f, 0x0e, +	0x28, 0x46, 0xa9, 0xa8, 0x32, 0xe4, 0x0e, 0xf6, +	0x51, 0x53, 0xb8, 0x3c, 0xb1, 0xff, 0xa3, 0x33, +	0x41, 0x75, 0xff, 0xf1, 0x6f, 0xf1, 0xfb, 0xbb, +	0x83, 0x7f, 0x06, 0x9b, 0xe7, 0x1b, 0x0a, 0xe0, +	0x5c, 0x33, 0x60, 0x5b, 0xdb, 0x5b, 0xed, 0xfe, +	0xa5, 0x16, 0x19, 0x72, 0xa3, 0x64, 0x23, 0x00, +	0x02, 0xc7, 0xf3, 0x6a, 0x81, 0x3e, 0x44, 0x1d, +	0x79, 0x15, 0x5f, 0x9a, 0xde, 0xe2, 0xfd, 0x1b, +	0x73, 0xc1, 0xbc, 0x23, 0xba, 0x31, 0xd2, 0x50, +	0xd5, 0xad, 0x7f, 0x74, 0xa7, 0xc9, 0xf8, 0x3e, +	0x2b, 0x26, 0x10, 0xf6, 0x03, 0x36, 0x74, 0xe4, +	0x0e, 0x6a, 0x72, 0xb7, 0x73, 0x0a, 0x42, 0x28, +	0xc2, 0xad, 0x5e, 0x03, 0xbe, 0xb8, 0x0b, 0xa8, +	0x5b, 0xd4, 0xb8, 0xba, 0x52, 0x89, 0xb1, 0x9b, +	0xc1, 0xc3, 0x65, 0x87, 0xed, 0xa5, 0xf4, 0x86, +	0xfd, 0x41, 0x80, 0x91, 0x27, 0x59, 0x53, 0x67, +	0x15, 0x78, 0x54, 0x8b, 0x2d, 0x3d, 0xc7, 0xff, +	0x02, 0x92, 0x07, 0x5f, 0x7a, 0x4b, 0x60, 0x59, +	0x3c, 0x6f, 0x5c, 0xd8, 0xec, 0x95, 0xd2, 0xfe, +	0xa0, 0x3b, 0xd8, 0x3f, 0xd1, 0x69, 0xa6, 0xd6, +	0x41, 0xb2, 0xf4, 0x4d, 0x12, 0xf4, 0x58, 0x3e, +	0x66, 0x64, 0x80, 0x31, 0x9b, 0xa8, 0x4c, 0x8b, +	0x07, 0xb2, 0xec, 0x66, 0x94, 0x66, 0x47, 0x50, +	0x50, 0x5f, 0x18, 0x0b, 0x0e, 0xd6, 0xc0, 0x39, +	0x21, 0x13, 0x9e, 0x33, 0xbc, 0x79, 0x36, 0x02, +	0x96, 0x70, 0xf0, 0x48, 0x67, 0x2f, 0x26, 0xe9, +	0x6d, 0x10, 0xbb, 0xd6, 0x3f, 0xd1, 0x64, 0x7a, +	0x2e, 0xbe, 0x0c, 0x61, 0xf0, 0x75, 0x42, 0x38, +	0x23, 0xb1, 0x9e, 0x9f, 0x7c, 0x67, 0x66, 0xd9, +	0x58, 0x9a, 0xf1, 0xbb, 0x41, 0x2a, 0x8d, 0x65, +	0x84, 0x94, 0xfc, 0xdc, 0x6a, 0x50, 0x64, 0xdb, +	0x56, 0x33, 0x76, 0x00, 0x10, 0xed, 0xbe, 0xd2, +	0x12, 0xf6, 0xf6, 0x1b, 0xa2, 0x16, 0xde, 0xae, +	0x31, 0x95, 0xdd, 0xb1, 0x08, 0x7e, 0x4e, 0xee, +	0xe7, 0xf9, 0xa5, 0xfb, 0x5b, 0x61, 0x43, 0x00, +	0x40, 0xf6, 0x7e, 0x02, 0x04, 0x32, 0x4e, 0x0c, +	0xe2, 0x66, 0x0d, 0xd7, 0x07, 0x98, 0x0e, 0xf8, +	0x72, 0x34, 0x6d, 0x95, 0x86, 0xd7, 0xcb, 0x31, +	0x54, 0x47, 0xd0, 0x38, 0x29, 0x9c, 0x5a, 0x68, +	0xd4, 0x87, 0x76, 0xc9, 0xe7, 0x7e, 0xe3, 0xf4, +	0x81, 0x6d, 0x18, 0xcb, 0xc9, 0x05, 0xaf, 0xa0, +	0xfb, 0x66, 0xf7, 0xf1, 0x1c, 0xc6, 0x14, 0x11, +	0x4f, 0x2b, 0x79, 0x42, 0x8b, 0xbc, 0xac, 0xe7, +	0x6c, 0xfe, 0x0f, 0x58, 0xe7, 0x7c, 0x78, 0x39, +	0x30, 0xb0, 0x66, 0x2c, 0x9b, 0x6d, 0x3a, 0xe1, +	0xcf, 0xc9, 0xa4, 0x0e, 0x6d, 0x6d, 0x8a, 0xa1, +	0x3a, 0xe7, 0x28, 0xd4, 0x78, 0x4c, 0xa6, 0xa2, +	0x2a, 0xa6, 0x03, 0x30, 0xd7, 0xa8, 0x25, 0x66, +	0x87, 0x2f, 0x69, 0x5c, 0x4e, 0xdd, 0xa5, 0x49, +	0x5d, 0x37, 0x4a, 0x59, 0xc4, 0xaf, 0x1f, 0xa2, +	0xe4, 0xf8, 0xa6, 0x12, 0x97, 0xd5, 0x79, 0xf5, +	0xe2, 0x4a, 0x2b, 0x5f, 0x61, 0xe4, 0x9e, 0xe3, +	0xee, 0xb8, 0xa7, 0x5b, 0x2f, 0xf4, 0x9e, 0x6c, +	0xfb, 0xd1, 0xc6, 0x56, 0x77, 0xba, 0x75, 0xaa, +	0x3d, 0x1a, 0xa8, 0x0b, 0xb3, 0x68, 0x24, 0x00, +	0x10, 0x7f, 0xfd, 0xd7, 0xa1, 0x8d, 0x83, 0x54, +	0x4f, 0x1f, 0xd8, 0x2a, 0xbe, 0x8a, 0x0c, 0x87, +	0xab, 0xa2, 0xde, 0xc3, 0x39, 0xbf, 0x09, 0x03, +	0xa5, 0xf3, 0x05, 0x28, 0xe1, 0xe1, 0xee, 0x39, +	0x70, 0x9c, 0xd8, 0x81, 0x12, 0x1e, 0x02, 0x40, +	0xd2, 0x6e, 0xf0, 0xeb, 0x1b, 0x3d, 0x22, 0xc6, +	0xe5, 0xe3, 0xb4, 0x5a, 0x98, 0xbb, 0xf0, 0x22, +	0x28, 0x8d, 0xe5, 0xd3, 0x16, 0x48, 0x24, 0xa5, +	0xe6, 0x66, 0x0c, 0xf9, 0x08, 0xf9, 0x7e, 0x1e, +	0xe1, 0x28, 0x26, 0x22, 0xc7, 0xc7, 0x0a, 0x32, +	0x47, 0xfa, 0xa3, 0xbe, 0x3c, 0xc4, 0xc5, 0x53, +	0x0a, 0xd5, 0x94, 0x4a, 0xd7, 0x93, 0xd8, 0x42, +	0x99, 0xb9, 0x0a, 0xdb, 0x56, 0xf7, 0xb9, 0x1c, +	0x53, 0x4f, 0xfa, 0xd3, 0x74, 0xad, 0xd9, 0x68, +	0xf1, 0x1b, 0xdf, 0x61, 0xc6, 0x5e, 0xa8, 0x48, +	0xfc, 0xd4, 0x4a, 0x4c, 0x3c, 0x32, 0xf7, 0x1c, +	0x96, 0x21, 0x9b, 0xf9, 0xa3, 0xcc, 0x5a, 0xce, +	0xd5, 0xd7, 0x08, 0x24, 0xf6, 0x1c, 0xfd, 0xdd, +	0x38, 0xc2, 0x32, 0xe9, 0xb8, 0xe7, 0xb6, 0xfa, +	0x9d, 0x45, 0x13, 0x2c, 0x83, 0xfd, 0x4a, 0x69, +	0x82, 0xcd, 0xdc, 0xb3, 0x76, 0x0c, 0x9e, 0xd8, +	0xf4, 0x1b, 0x45, 0x15, 0xb4, 0x97, 0xe7, 0x58, +	0x34, 0xe2, 0x03, 0x29, 0x5a, 0xbf, 0xb6, 0xe0, +	0x5d, 0x13, 0xd9, 0x2b, 0xb4, 0x80, 0xb2, 0x45, +	0x81, 0x6a, 0x2e, 0x6c, 0x89, 0x7d, 0xee, 0xbb, +	0x52, 0xdd, 0x1f, 0x18, 0xe7, 0x13, 0x6b, 0x33, +	0x0e, 0xea, 0x36, 0x92, 0x77, 0x7b, 0x6d, 0x9c, +	0x5a, 0x5f, 0x45, 0x7b, 0x7b, 0x35, 0x62, 0x23, +	0xd1, 0xbf, 0x0f, 0xd0, 0x08, 0x1b, 0x2b, 0x80, +	0x6b, 0x7e, 0xf1, 0x21, 0x47, 0xb0, 0x57, 0xd1, +	0x98, 0x72, 0x90, 0x34, 0x1c, 0x20, 0x04, 0xff, +	0x3d, 0x5c, 0xee, 0x0e, 0x57, 0x5f, 0x6f, 0x24, +	0x4e, 0x3c, 0xea, 0xfc, 0xa5, 0xa9, 0x83, 0xc9, +	0x61, 0xb4, 0x51, 0x24, 0xf8, 0x27, 0x5e, 0x46, +	0x8c, 0xb1, 0x53, 0x02, 0x96, 0x35, 0xba, 0xb8, +	0x4c, 0x71, 0xd3, 0x15, 0x59, 0x35, 0x22, 0x20, +	0xad, 0x03, 0x9f, 0x66, 0x44, 0x3b, 0x9c, 0x35, +	0x37, 0x1f, 0x9b, 0xbb, 0xf3, 0xdb, 0x35, 0x63, +	0x30, 0x64, 0xaa, 0xa2, 0x06, 0xa8, 0x5d, 0xbb, +	0xe1, 0x9f, 0x70, 0xec, 0x82, 0x11, 0x06, 0x36, +	0xec, 0x8b, 0x69, 0x66, 0x24, 0x44, 0xc9, 0x4a, +	0x57, 0xbb, 0x9b, 0x78, 0x13, 0xce, 0x9c, 0x0c, +	0xba, 0x92, 0x93, 0x63, 0xb8, 0xe2, 0x95, 0x0f, +	0x0f, 0x16, 0x39, 0x52, 0xfd, 0x3a, 0x6d, 0x02, +	0x4b, 0xdf, 0x13, 0xd3, 0x2a, 0x22, 0xb4, 0x03, +	0x7c, 0x54, 0x49, 0x96, 0x68, 0x54, 0x10, 0xfa, +	0xef, 0xaa, 0x6c, 0xe8, 0x22, 0xdc, 0x71, 0x16, +	0x13, 0x1a, 0xf6, 0x28, 0xe5, 0x6d, 0x77, 0x3d, +	0xcd, 0x30, 0x63, 0xb1, 0x70, 0x52, 0xa1, 0xc5, +	0x94, 0x5f, 0xcf, 0xe8, 0xb8, 0x26, 0x98, 0xf7, +	0x06, 0xa0, 0x0a, 0x70, 0xfa, 0x03, 0x80, 0xac, +	0xc1, 0xec, 0xd6, 0x4c, 0x54, 0xd7, 0xfe, 0x47, +	0xb6, 0x88, 0x4a, 0xf7, 0x71, 0x24, 0xee, 0xf3, +	0xd2, 0xc2, 0x4a, 0x7f, 0xfe, 0x61, 0xc7, 0x35, +	0xc9, 0x37, 0x67, 0xcb, 0x24, 0x35, 0xda, 0x7e, +	0xca, 0x5f, 0xf3, 0x8d, 0xd4, 0x13, 0x8e, 0xd6, +	0xcb, 0x4d, 0x53, 0x8f, 0x53, 0x1f, 0xc0, 0x74, +	0xf7, 0x53, 0xb9, 0x5e, 0x23, 0x37, 0xba, 0x6e, +	0xe3, 0x9d, 0x07, 0x55, 0x25, 0x7b, 0xe6, 0x2a, +	0x64, 0xd1, 0x32, 0xdd, 0x54, 0x1b, 0x4b, 0xc0, +	0xe1, 0xd7, 0x69, 0x58, 0xf8, 0x93, 0x29, 0xc4, +	0xdd, 0x23, 0x2f, 0xa5, 0xfc, 0x9d, 0x7e, 0xf8, +	0xd4, 0x90, 0xcd, 0x82, 0x55, 0xdc, 0x16, 0x16, +	0x9f, 0x07, 0x52, 0x9b, 0x9d, 0x25, 0xed, 0x32, +	0xc5, 0x7b, 0xdf, 0xf6, 0x83, 0x46, 0x3d, 0x65, +	0xb7, 0xef, 0x87, 0x7a, 0x12, 0x69, 0x8f, 0x06, +	0x7c, 0x51, 0x15, 0x4a, 0x08, 0xe8, 0xac, 0x9a, +	0x0c, 0x24, 0xa7, 0x27, 0xd8, 0x46, 0x2f, 0xe7, +	0x01, 0x0e, 0x1c, 0xc6, 0x91, 0xb0, 0x6e, 0x85, +	0x65, 0xf0, 0x29, 0x0d, 0x2e, 0x6b, 0x3b, 0xfb, +	0x4b, 0xdf, 0xe4, 0x80, 0x93, 0x03, 0x66, 0x46, +	0x3e, 0x8a, 0x6e, 0xf3, 0x5e, 0x4d, 0x62, 0x0e, +	0x49, 0x05, 0xaf, 0xd4, 0xf8, 0x21, 0x20, 0x61, +	0x1d, 0x39, 0x17, 0xf4, 0x61, 0x47, 0x95, 0xfb, +	0x15, 0x2e, 0xb3, 0x4f, 0xd0, 0x5d, 0xf5, 0x7d, +	0x40, 0xda, 0x90, 0x3c, 0x6b, 0xcb, 0x17, 0x00, +	0x13, 0x3b, 0x64, 0x34, 0x1b, 0xf0, 0xf2, 0xe5, +	0x3b, 0xb2, 0xc7, 0xd3, 0x5f, 0x3a, 0x44, 0xa6, +	0x9b, 0xb7, 0x78, 0x0e, 0x42, 0x5d, 0x4c, 0xc1, +	0xe9, 0xd2, 0xcb, 0xb7, 0x78, 0xd1, 0xfe, 0x9a, +	0xb5, 0x07, 0xe9, 0xe0, 0xbe, 0xe2, 0x8a, 0xa7, +	0x01, 0x83, 0x00, 0x8c, 0x5c, 0x08, 0xe6, 0x63, +	0x12, 0x92, 0xb7, 0xb7, 0xa6, 0x19, 0x7d, 0x38, +	0x13, 0x38, 0x92, 0x87, 0x24, 0xf9, 0x48, 0xb3, +	0x5e, 0x87, 0x6a, 0x40, 0x39, 0x5c, 0x3f, 0xed, +	0x8f, 0xee, 0xdb, 0x15, 0x82, 0x06, 0xda, 0x49, +	0x21, 0x2b, 0xb5, 0xbf, 0x32, 0x7c, 0x9f, 0x42, +	0x28, 0x63, 0xcf, 0xaf, 0x1e, 0xf8, 0xc6, 0xa0, +	0xd1, 0x02, 0x43, 0x57, 0x62, 0xec, 0x9b, 0x0f, +	0x01, 0x9e, 0x71, 0xd8, 0x87, 0x9d, 0x01, 0xc1, +	0x58, 0x77, 0xd9, 0xaf, 0xb1, 0x10, 0x7e, 0xdd, +	0xa6, 0x50, 0x96, 0xe5, 0xf0, 0x72, 0x00, 0x6d, +	0x4b, 0xf8, 0x2a, 0x8f, 0x19, 0xf3, 0x22, 0x88, +	0x11, 0x4a, 0x8b, 0x7c, 0xfd, 0xb7, 0xed, 0xe1, +	0xf6, 0x40, 0x39, 0xe0, 0xe9, 0xf6, 0x3d, 0x25, +	0xe6, 0x74, 0x3c, 0x58, 0x57, 0x7f, 0xe1, 0x22, +	0x96, 0x47, 0x31, 0x91, 0xba, 0x70, 0x85, 0x28, +	0x6b, 0x9f, 0x6e, 0x25, 0xac, 0x23, 0x66, 0x2f, +	0x29, 0x88, 0x28, 0xce, 0x8c, 0x5c, 0x88, 0x53, +	0xd1, 0x3b, 0xcc, 0x6a, 0x51, 0xb2, 0xe1, 0x28, +	0x3f, 0x91, 0xb4, 0x0d, 0x00, 0x3a, 0xe3, 0xf8, +	0xc3, 0x8f, 0xd7, 0x96, 0x62, 0x0e, 0x2e, 0xfc, +	0xc8, 0x6c, 0x77, 0xa6, 0x1d, 0x22, 0xc1, 0xb8, +	0xe6, 0x61, 0xd7, 0x67, 0x36, 0x13, 0x7b, 0xbb, +	0x9b, 0x59, 0x09, 0xa6, 0xdf, 0xf7, 0x6b, 0xa3, +	0x40, 0x1a, 0xf5, 0x4f, 0xb4, 0xda, 0xd3, 0xf3, +	0x81, 0x93, 0xc6, 0x18, 0xd9, 0x26, 0xee, 0xac, +	0xf0, 0xaa, 0xdf, 0xc5, 0x9c, 0xca, 0xc2, 0xa2, +	0xcc, 0x7b, 0x5c, 0x24, 0xb0, 0xbc, 0xd0, 0x6a, +	0x4d, 0x89, 0x09, 0xb8, 0x07, 0xfe, 0x87, 0xad, +	0x0a, 0xea, 0xb8, 0x42, 0xf9, 0x5e, 0xb3, 0x3e, +	0x36, 0x4c, 0xaf, 0x75, 0x9e, 0x1c, 0xeb, 0xbd, +	0xbc, 0xbb, 0x80, 0x40, 0xa7, 0x3a, 0x30, 0xbf, +	0xa8, 0x44, 0xf4, 0xeb, 0x38, 0xad, 0x29, 0xba, +	0x23, 0xed, 0x41, 0x0c, 0xea, 0xd2, 0xbb, 0x41, +	0x18, 0xd6, 0xb9, 0xba, 0x65, 0x2b, 0xa3, 0x91, +	0x6d, 0x1f, 0xa9, 0xf4, 0xd1, 0x25, 0x8d, 0x4d, +	0x38, 0xff, 0x64, 0xa0, 0xec, 0xde, 0xa6, 0xb6, +	0x79, 0xab, 0x8e, 0x33, 0x6c, 0x47, 0xde, 0xaf, +	0x94, 0xa4, 0xa5, 0x86, 0x77, 0x55, 0x09, 0x92, +	0x81, 0x31, 0x76, 0xc7, 0x34, 0x22, 0x89, 0x8e, +	0x3d, 0x26, 0x26, 0xd7, 0xfc, 0x1e, 0x16, 0x72, +	0x13, 0x33, 0x63, 0xd5, 0x22, 0xbe, 0xb8, 0x04, +	0x34, 0x84, 0x41, 0xbb, 0x80, 0xd0, 0x9f, 0x46, +	0x48, 0x07, 0xa7, 0xfc, 0x2b, 0x3a, 0x75, 0x55, +	0x8c, 0xc7, 0x6a, 0xbd, 0x7e, 0x46, 0x08, 0x84, +	0x0f, 0xd5, 0x74, 0xc0, 0x82, 0x8e, 0xaa, 0x61, +	0x05, 0x01, 0xb2, 0x47, 0x6e, 0x20, 0x6a, 0x2d, +	0x58, 0x70, 0x48, 0x32, 0xa7, 0x37, 0xd2, 0xb8, +	0x82, 0x1a, 0x51, 0xb9, 0x61, 0xdd, 0xfd, 0x9d, +	0x6b, 0x0e, 0x18, 0x97, 0xf8, 0x45, 0x5f, 0x87, +	0x10, 0xcf, 0x34, 0x72, 0x45, 0x26, 0x49, 0x70, +	0xe7, 0xa3, 0x78, 0xe0, 0x52, 0x89, 0x84, 0x94, +	0x83, 0x82, 0xc2, 0x69, 0x8f, 0xe3, 0xe1, 0x3f, +	0x60, 0x74, 0x88, 0xc4, 0xf7, 0x75, 0x2c, 0xfb, +	0xbd, 0xb6, 0xc4, 0x7e, 0x10, 0x0a, 0x6c, 0x90, +	0x04, 0x9e, 0xc3, 0x3f, 0x59, 0x7c, 0xce, 0x31, +	0x18, 0x60, 0x57, 0x73, 0x46, 0x94, 0x7d, 0x06, +	0xa0, 0x6d, 0x44, 0xec, 0xa2, 0x0a, 0x9e, 0x05, +	0x15, 0xef, 0xca, 0x5c, 0xbf, 0x00, 0xeb, 0xf7, +	0x3d, 0x32, 0xd4, 0xa5, 0xef, 0x49, 0x89, 0x5e, +	0x46, 0xb0, 0xa6, 0x63, 0x5b, 0x8a, 0x73, 0xae, +	0x6f, 0xd5, 0x9d, 0xf8, 0x4f, 0x40, 0xb5, 0xb2, +	0x6e, 0xd3, 0xb6, 0x01, 0xa9, 0x26, 0xa2, 0x21, +	0xcf, 0x33, 0x7a, 0x3a, 0xa4, 0x23, 0x13, 0xb0, +	0x69, 0x6a, 0xee, 0xce, 0xd8, 0x9d, 0x01, 0x1d, +	0x50, 0xc1, 0x30, 0x6c, 0xb1, 0xcd, 0xa0, 0xf0, +	0xf0, 0xa2, 0x64, 0x6f, 0xbb, 0xbf, 0x5e, 0xe6, +	0xab, 0x87, 0xb4, 0x0f, 0x4f, 0x15, 0xaf, 0xb5, +	0x25, 0xa1, 0xb2, 0xd0, 0x80, 0x2c, 0xfb, 0xf9, +	0xfe, 0xd2, 0x33, 0xbb, 0x76, 0xfe, 0x7c, 0xa8, +	0x66, 0xf7, 0xe7, 0x85, 0x9f, 0x1f, 0x85, 0x57, +	0x88, 0xe1, 0xe9, 0x63, 0xe4, 0xd8, 0x1c, 0xa1, +	0xfb, 0xda, 0x44, 0x05, 0x2e, 0x1d, 0x3a, 0x1c, +	0xff, 0xc8, 0x3b, 0xc0, 0xfe, 0xda, 0x22, 0x0b, +	0x43, 0xd6, 0x88, 0x39, 0x4c, 0x4a, 0xa6, 0x69, +	0x18, 0x93, 0x42, 0x4e, 0xb5, 0xcc, 0x66, 0x0d, +	0x09, 0xf8, 0x1e, 0x7c, 0xd3, 0x3c, 0x99, 0x0d, +	0x50, 0x1d, 0x62, 0xe9, 0x57, 0x06, 0xbf, 0x19, +	0x88, 0xdd, 0xad, 0x7b, 0x4f, 0xf9, 0xc7, 0x82, +	0x6d, 0x8d, 0xc8, 0xc4, 0xc5, 0x78, 0x17, 0x20, +	0x15, 0xc5, 0x52, 0x41, 0xcf, 0x5b, 0xd6, 0x7f, +	0x94, 0x02, 0x41, 0xe0, 0x40, 0x22, 0x03, 0x5e, +	0xd1, 0x53, 0xd4, 0x86, 0xd3, 0x2c, 0x9f, 0x0f, +	0x96, 0xe3, 0x6b, 0x9a, 0x76, 0x32, 0x06, 0x47, +	0x4b, 0x11, 0xb3, 0xdd, 0x03, 0x65, 0xbd, 0x9b, +	0x01, 0xda, 0x9c, 0xb9, 0x7e, 0x3f, 0x6a, 0xc4, +	0x7b, 0xea, 0xd4, 0x3c, 0xb9, 0xfb, 0x5c, 0x6b, +	0x64, 0x33, 0x52, 0xba, 0x64, 0x78, 0x8f, 0xa4, +	0xaf, 0x7a, 0x61, 0x8d, 0xbc, 0xc5, 0x73, 0xe9, +	0x6b, 0x58, 0x97, 0x4b, 0xbf, 0x63, 0x22, 0xd3, +	0x37, 0x02, 0x54, 0xc5, 0xb9, 0x16, 0x4a, 0xf0, +	0x19, 0xd8, 0x94, 0x57, 0xb8, 0x8a, 0xb3, 0x16, +	0x3b, 0xd0, 0x84, 0x8e, 0x67, 0xa6, 0xa3, 0x7d, +	0x78, 0xec, 0x00 +}; +static const u8 enc_output012[] __initconst = { +	0x52, 0x34, 0xb3, 0x65, 0x3b, 0xb7, 0xe5, 0xd3, +	0xab, 0x49, 0x17, 0x60, 0xd2, 0x52, 0x56, 0xdf, +	0xdf, 0x34, 0x56, 0x82, 0xe2, 0xbe, 0xe5, 0xe1, +	0x28, 0xd1, 0x4e, 0x5f, 0x4f, 0x01, 0x7d, 0x3f, +	0x99, 0x6b, 0x30, 0x6e, 0x1a, 0x7c, 0x4c, 0x8e, +	0x62, 0x81, 0xae, 0x86, 0x3f, 0x6b, 0xd0, 0xb5, +	0xa9, 0xcf, 0x50, 0xf1, 0x02, 0x12, 0xa0, 0x0b, +	0x24, 0xe9, 0xe6, 0x72, 0x89, 0x2c, 0x52, 0x1b, +	0x34, 0x38, 0xf8, 0x75, 0x5f, 0xa0, 0x74, 0xe2, +	0x99, 0xdd, 0xa6, 0x4b, 0x14, 0x50, 0x4e, 0xf1, +	0xbe, 0xd6, 0x9e, 0xdb, 0xb2, 0x24, 0x27, 0x74, +	0x12, 0x4a, 0x78, 0x78, 0x17, 0xa5, 0x58, 0x8e, +	0x2f, 0xf9, 0xf4, 0x8d, 0xee, 0x03, 0x88, 0xae, +	0xb8, 0x29, 0xa1, 0x2f, 0x4b, 0xee, 0x92, 0xbd, +	0x87, 0xb3, 0xce, 0x34, 0x21, 0x57, 0x46, 0x04, +	0x49, 0x0c, 0x80, 0xf2, 0x01, 0x13, 0xa1, 0x55, +	0xb3, 0xff, 0x44, 0x30, 0x3c, 0x1c, 0xd0, 0xef, +	0xbc, 0x18, 0x74, 0x26, 0xad, 0x41, 0x5b, 0x5b, +	0x3e, 0x9a, 0x7a, 0x46, 0x4f, 0x16, 0xd6, 0x74, +	0x5a, 0xb7, 0x3a, 0x28, 0x31, 0xd8, 0xae, 0x26, +	0xac, 0x50, 0x53, 0x86, 0xf2, 0x56, 0xd7, 0x3f, +	0x29, 0xbc, 0x45, 0x68, 0x8e, 0xcb, 0x98, 0x64, +	0xdd, 0xc9, 0xba, 0xb8, 0x4b, 0x7b, 0x82, 0xdd, +	0x14, 0xa7, 0xcb, 0x71, 0x72, 0x00, 0x5c, 0xad, +	0x7b, 0x6a, 0x89, 0xa4, 0x3d, 0xbf, 0xb5, 0x4b, +	0x3e, 0x7c, 0x5a, 0xcf, 0xb8, 0xa1, 0xc5, 0x6e, +	0xc8, 0xb6, 0x31, 0x57, 0x7b, 0xdf, 0xa5, 0x7e, +	0xb1, 0xd6, 0x42, 0x2a, 0x31, 0x36, 0xd1, 0xd0, +	0x3f, 0x7a, 0xe5, 0x94, 0xd6, 0x36, 0xa0, 0x6f, +	0xb7, 0x40, 0x7d, 0x37, 0xc6, 0x55, 0x7c, 0x50, +	0x40, 0x6d, 0x29, 0x89, 0xe3, 0x5a, 0xae, 0x97, +	0xe7, 0x44, 0x49, 0x6e, 0xbd, 0x81, 0x3d, 0x03, +	0x93, 0x06, 0x12, 0x06, 0xe2, 0x41, 0x12, 0x4a, +	0xf1, 0x6a, 0xa4, 0x58, 0xa2, 0xfb, 0xd2, 0x15, +	0xba, 0xc9, 0x79, 0xc9, 0xce, 0x5e, 0x13, 0xbb, +	0xf1, 0x09, 0x04, 0xcc, 0xfd, 0xe8, 0x51, 0x34, +	0x6a, 0xe8, 0x61, 0x88, 0xda, 0xed, 0x01, 0x47, +	0x84, 0xf5, 0x73, 0x25, 0xf9, 0x1c, 0x42, 0x86, +	0x07, 0xf3, 0x5b, 0x1a, 0x01, 0xb3, 0xeb, 0x24, +	0x32, 0x8d, 0xf6, 0xed, 0x7c, 0x4b, 0xeb, 0x3c, +	0x36, 0x42, 0x28, 0xdf, 0xdf, 0xb6, 0xbe, 0xd9, +	0x8c, 0x52, 0xd3, 0x2b, 0x08, 0x90, 0x8c, 0xe7, +	0x98, 0x31, 0xe2, 0x32, 0x8e, 0xfc, 0x11, 0x48, +	0x00, 0xa8, 0x6a, 0x42, 0x4a, 0x02, 0xc6, 0x4b, +	0x09, 0xf1, 0xe3, 0x49, 0xf3, 0x45, 0x1f, 0x0e, +	0xbc, 0x56, 0xe2, 0xe4, 0xdf, 0xfb, 0xeb, 0x61, +	0xfa, 0x24, 0xc1, 0x63, 0x75, 0xbb, 0x47, 0x75, +	0xaf, 0xe1, 0x53, 0x16, 0x96, 0x21, 0x85, 0x26, +	0x11, 0xb3, 0x76, 0xe3, 0x23, 0xa1, 0x6b, 0x74, +	0x37, 0xd0, 0xde, 0x06, 0x90, 0x71, 0x5d, 0x43, +	0x88, 0x9b, 0x00, 0x54, 0xa6, 0x75, 0x2f, 0xa1, +	0xc2, 0x0b, 0x73, 0x20, 0x1d, 0xb6, 0x21, 0x79, +	0x57, 0x3f, 0xfa, 0x09, 0xbe, 0x8a, 0x33, 0xc3, +	0x52, 0xf0, 0x1d, 0x82, 0x31, 0xd1, 0x55, 0xb5, +	0x6c, 0x99, 0x25, 0xcf, 0x5c, 0x32, 0xce, 0xe9, +	0x0d, 0xfa, 0x69, 0x2c, 0xd5, 0x0d, 0xc5, 0x6d, +	0x86, 0xd0, 0x0c, 0x3b, 0x06, 0x50, 0x79, 0xe8, +	0xc3, 0xae, 0x04, 0xe6, 0xcd, 0x51, 0xe4, 0x26, +	0x9b, 0x4f, 0x7e, 0xa6, 0x0f, 0xab, 0xd8, 0xe5, +	0xde, 0xa9, 0x00, 0x95, 0xbe, 0xa3, 0x9d, 0x5d, +	0xb2, 0x09, 0x70, 0x18, 0x1c, 0xf0, 0xac, 0x29, +	0x23, 0x02, 0x29, 0x28, 0xd2, 0x74, 0x35, 0x57, +	0x62, 0x0f, 0x24, 0xea, 0x5e, 0x33, 0xc2, 0x92, +	0xf3, 0x78, 0x4d, 0x30, 0x1e, 0xa1, 0x99, 0xa9, +	0x82, 0xb0, 0x42, 0x31, 0x8d, 0xad, 0x8a, 0xbc, +	0xfc, 0xd4, 0x57, 0x47, 0x3e, 0xb4, 0x50, 0xdd, +	0x6e, 0x2c, 0x80, 0x4d, 0x22, 0xf1, 0xfb, 0x57, +	0xc4, 0xdd, 0x17, 0xe1, 0x8a, 0x36, 0x4a, 0xb3, +	0x37, 0xca, 0xc9, 0x4e, 0xab, 0xd5, 0x69, 0xc4, +	0xf4, 0xbc, 0x0b, 0x3b, 0x44, 0x4b, 0x29, 0x9c, +	0xee, 0xd4, 0x35, 0x22, 0x21, 0xb0, 0x1f, 0x27, +	0x64, 0xa8, 0x51, 0x1b, 0xf0, 0x9f, 0x19, 0x5c, +	0xfb, 0x5a, 0x64, 0x74, 0x70, 0x45, 0x09, 0xf5, +	0x64, 0xfe, 0x1a, 0x2d, 0xc9, 0x14, 0x04, 0x14, +	0xcf, 0xd5, 0x7d, 0x60, 0xaf, 0x94, 0x39, 0x94, +	0xe2, 0x7d, 0x79, 0x82, 0xd0, 0x65, 0x3b, 0x6b, +	0x9c, 0x19, 0x84, 0xb4, 0x6d, 0xb3, 0x0c, 0x99, +	0xc0, 0x56, 0xa8, 0xbd, 0x73, 0xce, 0x05, 0x84, +	0x3e, 0x30, 0xaa, 0xc4, 0x9b, 0x1b, 0x04, 0x2a, +	0x9f, 0xd7, 0x43, 0x2b, 0x23, 0xdf, 0xbf, 0xaa, +	0xd5, 0xc2, 0x43, 0x2d, 0x70, 0xab, 0xdc, 0x75, +	0xad, 0xac, 0xf7, 0xc0, 0xbe, 0x67, 0xb2, 0x74, +	0xed, 0x67, 0x10, 0x4a, 0x92, 0x60, 0xc1, 0x40, +	0x50, 0x19, 0x8a, 0x8a, 0x8c, 0x09, 0x0e, 0x72, +	0xe1, 0x73, 0x5e, 0xe8, 0x41, 0x85, 0x63, 0x9f, +	0x3f, 0xd7, 0x7d, 0xc4, 0xfb, 0x22, 0x5d, 0x92, +	0x6c, 0xb3, 0x1e, 0xe2, 0x50, 0x2f, 0x82, 0xa8, +	0x28, 0xc0, 0xb5, 0xd7, 0x5f, 0x68, 0x0d, 0x2c, +	0x2d, 0xaf, 0x7e, 0xfa, 0x2e, 0x08, 0x0f, 0x1f, +	0x70, 0x9f, 0xe9, 0x19, 0x72, 0x55, 0xf8, 0xfb, +	0x51, 0xd2, 0x33, 0x5d, 0xa0, 0xd3, 0x2b, 0x0a, +	0x6c, 0xbc, 0x4e, 0xcf, 0x36, 0x4d, 0xdc, 0x3b, +	0xe9, 0x3e, 0x81, 0x7c, 0x61, 0xdb, 0x20, 0x2d, +	0x3a, 0xc3, 0xb3, 0x0c, 0x1e, 0x00, 0xb9, 0x7c, +	0xf5, 0xca, 0x10, 0x5f, 0x3a, 0x71, 0xb3, 0xe4, +	0x20, 0xdb, 0x0c, 0x2a, 0x98, 0x63, 0x45, 0x00, +	0x58, 0xf6, 0x68, 0xe4, 0x0b, 0xda, 0x13, 0x3b, +	0x60, 0x5c, 0x76, 0xdb, 0xb9, 0x97, 0x71, 0xe4, +	0xd9, 0xb7, 0xdb, 0xbd, 0x68, 0xc7, 0x84, 0x84, +	0xaa, 0x7c, 0x68, 0x62, 0x5e, 0x16, 0xfc, 0xba, +	0x72, 0xaa, 0x9a, 0xa9, 0xeb, 0x7c, 0x75, 0x47, +	0x97, 0x7e, 0xad, 0xe2, 0xd9, 0x91, 0xe8, 0xe4, +	0xa5, 0x31, 0xd7, 0x01, 0x8e, 0xa2, 0x11, 0x88, +	0x95, 0xb9, 0xf2, 0x9b, 0xd3, 0x7f, 0x1b, 0x81, +	0x22, 0xf7, 0x98, 0x60, 0x0a, 0x64, 0xa6, 0xc1, +	0xf6, 0x49, 0xc7, 0xe3, 0x07, 0x4d, 0x94, 0x7a, +	0xcf, 0x6e, 0x68, 0x0c, 0x1b, 0x3f, 0x6e, 0x2e, +	0xee, 0x92, 0xfa, 0x52, 0xb3, 0x59, 0xf8, 0xf1, +	0x8f, 0x6a, 0x66, 0xa3, 0x82, 0x76, 0x4a, 0x07, +	0x1a, 0xc7, 0xdd, 0xf5, 0xda, 0x9c, 0x3c, 0x24, +	0xbf, 0xfd, 0x42, 0xa1, 0x10, 0x64, 0x6a, 0x0f, +	0x89, 0xee, 0x36, 0xa5, 0xce, 0x99, 0x48, 0x6a, +	0xf0, 0x9f, 0x9e, 0x69, 0xa4, 0x40, 0x20, 0xe9, +	0x16, 0x15, 0xf7, 0xdb, 0x75, 0x02, 0xcb, 0xe9, +	0x73, 0x8b, 0x3b, 0x49, 0x2f, 0xf0, 0xaf, 0x51, +	0x06, 0x5c, 0xdf, 0x27, 0x27, 0x49, 0x6a, 0xd1, +	0xcc, 0xc7, 0xb5, 0x63, 0xb5, 0xfc, 0xb8, 0x5c, +	0x87, 0x7f, 0x84, 0xb4, 0xcc, 0x14, 0xa9, 0x53, +	0xda, 0xa4, 0x56, 0xf8, 0xb6, 0x1b, 0xcc, 0x40, +	0x27, 0x52, 0x06, 0x5a, 0x13, 0x81, 0xd7, 0x3a, +	0xd4, 0x3b, 0xfb, 0x49, 0x65, 0x31, 0x33, 0xb2, +	0xfa, 0xcd, 0xad, 0x58, 0x4e, 0x2b, 0xae, 0xd2, +	0x20, 0xfb, 0x1a, 0x48, 0xb4, 0x3f, 0x9a, 0xd8, +	0x7a, 0x35, 0x4a, 0xc8, 0xee, 0x88, 0x5e, 0x07, +	0x66, 0x54, 0xb9, 0xec, 0x9f, 0xa3, 0xe3, 0xb9, +	0x37, 0xaa, 0x49, 0x76, 0x31, 0xda, 0x74, 0x2d, +	0x3c, 0xa4, 0x65, 0x10, 0x32, 0x38, 0xf0, 0xde, +	0xd3, 0x99, 0x17, 0xaa, 0x71, 0xaa, 0x8f, 0x0f, +	0x8c, 0xaf, 0xa2, 0xf8, 0x5d, 0x64, 0xba, 0x1d, +	0xa3, 0xef, 0x96, 0x73, 0xe8, 0xa1, 0x02, 0x8d, +	0x0c, 0x6d, 0xb8, 0x06, 0x90, 0xb8, 0x08, 0x56, +	0x2c, 0xa7, 0x06, 0xc9, 0xc2, 0x38, 0xdb, 0x7c, +	0x63, 0xb1, 0x57, 0x8e, 0xea, 0x7c, 0x79, 0xf3, +	0x49, 0x1d, 0xfe, 0x9f, 0xf3, 0x6e, 0xb1, 0x1d, +	0xba, 0x19, 0x80, 0x1a, 0x0a, 0xd3, 0xb0, 0x26, +	0x21, 0x40, 0xb1, 0x7c, 0xf9, 0x4d, 0x8d, 0x10, +	0xc1, 0x7e, 0xf4, 0xf6, 0x3c, 0xa8, 0xfd, 0x7c, +	0xa3, 0x92, 0xb2, 0x0f, 0xaa, 0xcc, 0xa6, 0x11, +	0xfe, 0x04, 0xe3, 0xd1, 0x7a, 0x32, 0x89, 0xdf, +	0x0d, 0xc4, 0x8f, 0x79, 0x6b, 0xca, 0x16, 0x7c, +	0x6e, 0xf9, 0xad, 0x0f, 0xf6, 0xfe, 0x27, 0xdb, +	0xc4, 0x13, 0x70, 0xf1, 0x62, 0x1a, 0x4f, 0x79, +	0x40, 0xc9, 0x9b, 0x8b, 0x21, 0xea, 0x84, 0xfa, +	0xf5, 0xf1, 0x89, 0xce, 0xb7, 0x55, 0x0a, 0x80, +	0x39, 0x2f, 0x55, 0x36, 0x16, 0x9c, 0x7b, 0x08, +	0xbd, 0x87, 0x0d, 0xa5, 0x32, 0xf1, 0x52, 0x7c, +	0xe8, 0x55, 0x60, 0x5b, 0xd7, 0x69, 0xe4, 0xfc, +	0xfa, 0x12, 0x85, 0x96, 0xea, 0x50, 0x28, 0xab, +	0x8a, 0xf7, 0xbb, 0x0e, 0x53, 0x74, 0xca, 0xa6, +	0x27, 0x09, 0xc2, 0xb5, 0xde, 0x18, 0x14, 0xd9, +	0xea, 0xe5, 0x29, 0x1c, 0x40, 0x56, 0xcf, 0xd7, +	0xae, 0x05, 0x3f, 0x65, 0xaf, 0x05, 0x73, 0xe2, +	0x35, 0x96, 0x27, 0x07, 0x14, 0xc0, 0xad, 0x33, +	0xf1, 0xdc, 0x44, 0x7a, 0x89, 0x17, 0x77, 0xd2, +	0x9c, 0x58, 0x60, 0xf0, 0x3f, 0x7b, 0x2d, 0x2e, +	0x57, 0x95, 0x54, 0x87, 0xed, 0xf2, 0xc7, 0x4c, +	0xf0, 0xae, 0x56, 0x29, 0x19, 0x7d, 0x66, 0x4b, +	0x9b, 0x83, 0x84, 0x42, 0x3b, 0x01, 0x25, 0x66, +	0x8e, 0x02, 0xde, 0xb9, 0x83, 0x54, 0x19, 0xf6, +	0x9f, 0x79, 0x0d, 0x67, 0xc5, 0x1d, 0x7a, 0x44, +	0x02, 0x98, 0xa7, 0x16, 0x1c, 0x29, 0x0d, 0x74, +	0xff, 0x85, 0x40, 0x06, 0xef, 0x2c, 0xa9, 0xc6, +	0xf5, 0x53, 0x07, 0x06, 0xae, 0xe4, 0xfa, 0x5f, +	0xd8, 0x39, 0x4d, 0xf1, 0x9b, 0x6b, 0xd9, 0x24, +	0x84, 0xfe, 0x03, 0x4c, 0xb2, 0x3f, 0xdf, 0xa1, +	0x05, 0x9e, 0x50, 0x14, 0x5a, 0xd9, 0x1a, 0xa2, +	0xa7, 0xfa, 0xfa, 0x17, 0xf7, 0x78, 0xd6, 0xb5, +	0x92, 0x61, 0x91, 0xac, 0x36, 0xfa, 0x56, 0x0d, +	0x38, 0x32, 0x18, 0x85, 0x08, 0x58, 0x37, 0xf0, +	0x4b, 0xdb, 0x59, 0xe7, 0xa4, 0x34, 0xc0, 0x1b, +	0x01, 0xaf, 0x2d, 0xde, 0xa1, 0xaa, 0x5d, 0xd3, +	0xec, 0xe1, 0xd4, 0xf7, 0xe6, 0x54, 0x68, 0xf0, +	0x51, 0x97, 0xa7, 0x89, 0xea, 0x24, 0xad, 0xd3, +	0x6e, 0x47, 0x93, 0x8b, 0x4b, 0xb4, 0xf7, 0x1c, +	0x42, 0x06, 0x67, 0xe8, 0x99, 0xf6, 0xf5, 0x7b, +	0x85, 0xb5, 0x65, 0xb5, 0xb5, 0xd2, 0x37, 0xf5, +	0xf3, 0x02, 0xa6, 0x4d, 0x11, 0xa7, 0xdc, 0x51, +	0x09, 0x7f, 0xa0, 0xd8, 0x88, 0x1c, 0x13, 0x71, +	0xae, 0x9c, 0xb7, 0x7b, 0x34, 0xd6, 0x4e, 0x68, +	0x26, 0x83, 0x51, 0xaf, 0x1d, 0xee, 0x8b, 0xbb, +	0x69, 0x43, 0x2b, 0x9e, 0x8a, 0xbc, 0x02, 0x0e, +	0xa0, 0x1b, 0xe0, 0xa8, 0x5f, 0x6f, 0xaf, 0x1b, +	0x8f, 0xe7, 0x64, 0x71, 0x74, 0x11, 0x7e, 0xa8, +	0xd8, 0xf9, 0x97, 0x06, 0xc3, 0xb6, 0xfb, 0xfb, +	0xb7, 0x3d, 0x35, 0x9d, 0x3b, 0x52, 0xed, 0x54, +	0xca, 0xf4, 0x81, 0x01, 0x2d, 0x1b, 0xc3, 0xa7, +	0x00, 0x3d, 0x1a, 0x39, 0x54, 0xe1, 0xf6, 0xff, +	0xed, 0x6f, 0x0b, 0x5a, 0x68, 0xda, 0x58, 0xdd, +	0xa9, 0xcf, 0x5c, 0x4a, 0xe5, 0x09, 0x4e, 0xde, +	0x9d, 0xbc, 0x3e, 0xee, 0x5a, 0x00, 0x3b, 0x2c, +	0x87, 0x10, 0x65, 0x60, 0xdd, 0xd7, 0x56, 0xd1, +	0x4c, 0x64, 0x45, 0xe4, 0x21, 0xec, 0x78, 0xf8, +	0x25, 0x7a, 0x3e, 0x16, 0x5d, 0x09, 0x53, 0x14, +	0xbe, 0x4f, 0xae, 0x87, 0xd8, 0xd1, 0xaa, 0x3c, +	0xf6, 0x3e, 0xa4, 0x70, 0x8c, 0x5e, 0x70, 0xa4, +	0xb3, 0x6b, 0x66, 0x73, 0xd3, 0xbf, 0x31, 0x06, +	0x19, 0x62, 0x93, 0x15, 0xf2, 0x86, 0xe4, 0x52, +	0x7e, 0x53, 0x4c, 0x12, 0x38, 0xcc, 0x34, 0x7d, +	0x57, 0xf6, 0x42, 0x93, 0x8a, 0xc4, 0xee, 0x5c, +	0x8a, 0xe1, 0x52, 0x8f, 0x56, 0x64, 0xf6, 0xa6, +	0xd1, 0x91, 0x57, 0x70, 0xcd, 0x11, 0x76, 0xf5, +	0x59, 0x60, 0x60, 0x3c, 0xc1, 0xc3, 0x0b, 0x7f, +	0x58, 0x1a, 0x50, 0x91, 0xf1, 0x68, 0x8f, 0x6e, +	0x74, 0x74, 0xa8, 0x51, 0x0b, 0xf7, 0x7a, 0x98, +	0x37, 0xf2, 0x0a, 0x0e, 0xa4, 0x97, 0x04, 0xb8, +	0x9b, 0xfd, 0xa0, 0xea, 0xf7, 0x0d, 0xe1, 0xdb, +	0x03, 0xf0, 0x31, 0x29, 0xf8, 0xdd, 0x6b, 0x8b, +	0x5d, 0xd8, 0x59, 0xa9, 0x29, 0xcf, 0x9a, 0x79, +	0x89, 0x19, 0x63, 0x46, 0x09, 0x79, 0x6a, 0x11, +	0xda, 0x63, 0x68, 0x48, 0x77, 0x23, 0xfb, 0x7d, +	0x3a, 0x43, 0xcb, 0x02, 0x3b, 0x7a, 0x6d, 0x10, +	0x2a, 0x9e, 0xac, 0xf1, 0xd4, 0x19, 0xf8, 0x23, +	0x64, 0x1d, 0x2c, 0x5f, 0xf2, 0xb0, 0x5c, 0x23, +	0x27, 0xf7, 0x27, 0x30, 0x16, 0x37, 0xb1, 0x90, +	0xab, 0x38, 0xfb, 0x55, 0xcd, 0x78, 0x58, 0xd4, +	0x7d, 0x43, 0xf6, 0x45, 0x5e, 0x55, 0x8d, 0xb1, +	0x02, 0x65, 0x58, 0xb4, 0x13, 0x4b, 0x36, 0xf7, +	0xcc, 0xfe, 0x3d, 0x0b, 0x82, 0xe2, 0x12, 0x11, +	0xbb, 0xe6, 0xb8, 0x3a, 0x48, 0x71, 0xc7, 0x50, +	0x06, 0x16, 0x3a, 0xe6, 0x7c, 0x05, 0xc7, 0xc8, +	0x4d, 0x2f, 0x08, 0x6a, 0x17, 0x9a, 0x95, 0x97, +	0x50, 0x68, 0xdc, 0x28, 0x18, 0xc4, 0x61, 0x38, +	0xb9, 0xe0, 0x3e, 0x78, 0xdb, 0x29, 0xe0, 0x9f, +	0x52, 0xdd, 0xf8, 0x4f, 0x91, 0xc1, 0xd0, 0x33, +	0xa1, 0x7a, 0x8e, 0x30, 0x13, 0x82, 0x07, 0x9f, +	0xd3, 0x31, 0x0f, 0x23, 0xbe, 0x32, 0x5a, 0x75, +	0xcf, 0x96, 0xb2, 0xec, 0xb5, 0x32, 0xac, 0x21, +	0xd1, 0x82, 0x33, 0xd3, 0x15, 0x74, 0xbd, 0x90, +	0xf1, 0x2c, 0xe6, 0x5f, 0x8d, 0xe3, 0x02, 0xe8, +	0xe9, 0xc4, 0xca, 0x96, 0xeb, 0x0e, 0xbc, 0x91, +	0xf4, 0xb9, 0xea, 0xd9, 0x1b, 0x75, 0xbd, 0xe1, +	0xac, 0x2a, 0x05, 0x37, 0x52, 0x9b, 0x1b, 0x3f, +	0x5a, 0xdc, 0x21, 0xc3, 0x98, 0xbb, 0xaf, 0xa3, +	0xf2, 0x00, 0xbf, 0x0d, 0x30, 0x89, 0x05, 0xcc, +	0xa5, 0x76, 0xf5, 0x06, 0xf0, 0xc6, 0x54, 0x8a, +	0x5d, 0xd4, 0x1e, 0xc1, 0xf2, 0xce, 0xb0, 0x62, +	0xc8, 0xfc, 0x59, 0x42, 0x9a, 0x90, 0x60, 0x55, +	0xfe, 0x88, 0xa5, 0x8b, 0xb8, 0x33, 0x0c, 0x23, +	0x24, 0x0d, 0x15, 0x70, 0x37, 0x1e, 0x3d, 0xf6, +	0xd2, 0xea, 0x92, 0x10, 0xb2, 0xc4, 0x51, 0xac, +	0xf2, 0xac, 0xf3, 0x6b, 0x6c, 0xaa, 0xcf, 0x12, +	0xc5, 0x6c, 0x90, 0x50, 0xb5, 0x0c, 0xfc, 0x1a, +	0x15, 0x52, 0xe9, 0x26, 0xc6, 0x52, 0xa4, 0xe7, +	0x81, 0x69, 0xe1, 0xe7, 0x9e, 0x30, 0x01, 0xec, +	0x84, 0x89, 0xb2, 0x0d, 0x66, 0xdd, 0xce, 0x28, +	0x5c, 0xec, 0x98, 0x46, 0x68, 0x21, 0x9f, 0x88, +	0x3f, 0x1f, 0x42, 0x77, 0xce, 0xd0, 0x61, 0xd4, +	0x20, 0xa7, 0xff, 0x53, 0xad, 0x37, 0xd0, 0x17, +	0x35, 0xc9, 0xfc, 0xba, 0x0a, 0x78, 0x3f, 0xf2, +	0xcc, 0x86, 0x89, 0xe8, 0x4b, 0x3c, 0x48, 0x33, +	0x09, 0x7f, 0xc6, 0xc0, 0xdd, 0xb8, 0xfd, 0x7a, +	0x66, 0x66, 0x65, 0xeb, 0x47, 0xa7, 0x04, 0x28, +	0xa3, 0x19, 0x8e, 0xa9, 0xb1, 0x13, 0x67, 0x62, +	0x70, 0xcf, 0xd6 +}; +static const u8 enc_assoc012[] __initconst = { +	0xb1, 0x69, 0x83, 0x87, 0x30, 0xaa, 0x5d, 0xb8, +	0x77, 0xe8, 0x21, 0xff, 0x06, 0x59, 0x35, 0xce, +	0x75, 0xfe, 0x38, 0xef, 0xb8, 0x91, 0x43, 0x8c, +	0xcf, 0x70, 0xdd, 0x0a, 0x68, 0xbf, 0xd4, 0xbc, +	0x16, 0x76, 0x99, 0x36, 0x1e, 0x58, 0x79, 0x5e, +	0xd4, 0x29, 0xf7, 0x33, 0x93, 0x48, 0xdb, 0x5f, +	0x01, 0xae, 0x9c, 0xb6, 0xe4, 0x88, 0x6d, 0x2b, +	0x76, 0x75, 0xe0, 0xf3, 0x74, 0xe2, 0xc9 +}; +static const u8 enc_nonce012[] __initconst = { +	0x05, 0xa3, 0x93, 0xed, 0x30, 0xc5, 0xa2, 0x06 +}; +static const u8 enc_key012[] __initconst = { +	0xb3, 0x35, 0x50, 0x03, 0x54, 0x2e, 0x40, 0x5e, +	0x8f, 0x59, 0x8e, 0xc5, 0x90, 0xd5, 0x27, 0x2d, +	0xba, 0x29, 0x2e, 0xcb, 0x1b, 0x70, 0x44, 0x1e, +	0x65, 0x91, 0x6e, 0x2a, 0x79, 0x22, 0xda, 0x64 +}; + +/* wycheproof - misc */ +static const u8 enc_input053[] __initconst = { +	0x25, 0x6d, 0x40, 0x88, 0x80, 0x94, 0x17, 0x83, +	0x55, 0xd3, 0x04, 0x84, 0x64, 0x43, 0xfe, 0xe8, +	0xdf, 0x99, 0x47, 0x03, 0x03, 0xfb, 0x3b, 0x7b, +	0x80, 0xe0, 0x30, 0xbe, 0xeb, 0xd3, 0x29, 0xbe +}; +static const u8 enc_output053[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0xe6, 0xd3, 0xd7, 0x32, 0x4a, 0x1c, 0xbb, 0xa7, +	0x77, 0xbb, 0xb0, 0xec, 0xdd, 0xa3, 0x78, 0x07 +}; +static const u8 enc_assoc053[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +static const u8 enc_nonce053[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key053[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input054[] __initconst = { +	0x25, 0x6d, 0x40, 0x88, 0x80, 0x94, 0x17, 0x83, +	0x55, 0xd3, 0x04, 0x84, 0x64, 0x43, 0xfe, 0xe8, +	0xdf, 0x99, 0x47, 0x03, 0x03, 0xfb, 0x3b, 0x7b, +	0x80, 0xe0, 0x30, 0xbe, 0xeb, 0xd3, 0x29, 0xbe, +	0xe3, 0xbc, 0xdb, 0x5b, 0x1e, 0xde, 0xfc, 0xfe, +	0x8b, 0xcd, 0xa1, 0xb6, 0xa1, 0x5c, 0x8c, 0x2b, +	0x08, 0x69, 0xff, 0xd2, 0xec, 0x5e, 0x26, 0xe5, +	0x53, 0xb7, 0xb2, 0x27, 0xfe, 0x87, 0xfd, 0xbd +}; +static const u8 enc_output054[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x06, 0x2d, 0xe6, 0x79, 0x5f, 0x27, 0x4f, 0xd2, +	0xa3, 0x05, 0xd7, 0x69, 0x80, 0xbc, 0x9c, 0xce +}; +static const u8 enc_assoc054[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +static const u8 enc_nonce054[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key054[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input055[] __initconst = { +	0x25, 0x6d, 0x40, 0x88, 0x80, 0x94, 0x17, 0x83, +	0x55, 0xd3, 0x04, 0x84, 0x64, 0x43, 0xfe, 0xe8, +	0xdf, 0x99, 0x47, 0x03, 0x03, 0xfb, 0x3b, 0x7b, +	0x80, 0xe0, 0x30, 0xbe, 0xeb, 0xd3, 0x29, 0xbe, +	0xe3, 0xbc, 0xdb, 0x5b, 0x1e, 0xde, 0xfc, 0xfe, +	0x8b, 0xcd, 0xa1, 0xb6, 0xa1, 0x5c, 0x8c, 0x2b, +	0x08, 0x69, 0xff, 0xd2, 0xec, 0x5e, 0x26, 0xe5, +	0x53, 0xb7, 0xb2, 0x27, 0xfe, 0x87, 0xfd, 0xbd, +	0x7a, 0xda, 0x44, 0x42, 0x42, 0x69, 0xbf, 0xfa, +	0x55, 0x27, 0xf2, 0x70, 0xac, 0xf6, 0x85, 0x02, +	0xb7, 0x4c, 0x5a, 0xe2, 0xe6, 0x0c, 0x05, 0x80, +	0x98, 0x1a, 0x49, 0x38, 0x45, 0x93, 0x92, 0xc4, +	0x9b, 0xb2, 0xf2, 0x84, 0xb6, 0x46, 0xef, 0xc7, +	0xf3, 0xf0, 0xb1, 0x36, 0x1d, 0xc3, 0x48, 0xed, +	0x77, 0xd3, 0x0b, 0xc5, 0x76, 0x92, 0xed, 0x38, +	0xfb, 0xac, 0x01, 0x88, 0x38, 0x04, 0x88, 0xc7 +}; +static const u8 enc_output055[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0xd8, 0xb4, 0x79, 0x02, 0xba, 0xae, 0xaf, 0xb3, +	0x42, 0x03, 0x05, 0x15, 0x29, 0xaf, 0x28, 0x2e +}; +static const u8 enc_assoc055[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +static const u8 enc_nonce055[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key055[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input056[] __initconst = { +	0xda, 0x92, 0xbf, 0x77, 0x7f, 0x6b, 0xe8, 0x7c, +	0xaa, 0x2c, 0xfb, 0x7b, 0x9b, 0xbc, 0x01, 0x17, +	0x20, 0x66, 0xb8, 0xfc, 0xfc, 0x04, 0xc4, 0x84, +	0x7f, 0x1f, 0xcf, 0x41, 0x14, 0x2c, 0xd6, 0x41 +}; +static const u8 enc_output056[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xb3, 0x89, 0x1c, 0x84, 0x9c, 0xb5, 0x2c, 0x27, +	0x74, 0x7e, 0xdf, 0xcf, 0x31, 0x21, 0x3b, 0xb6 +}; +static const u8 enc_assoc056[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce056[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key056[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input057[] __initconst = { +	0xda, 0x92, 0xbf, 0x77, 0x7f, 0x6b, 0xe8, 0x7c, +	0xaa, 0x2c, 0xfb, 0x7b, 0x9b, 0xbc, 0x01, 0x17, +	0x20, 0x66, 0xb8, 0xfc, 0xfc, 0x04, 0xc4, 0x84, +	0x7f, 0x1f, 0xcf, 0x41, 0x14, 0x2c, 0xd6, 0x41, +	0x1c, 0x43, 0x24, 0xa4, 0xe1, 0x21, 0x03, 0x01, +	0x74, 0x32, 0x5e, 0x49, 0x5e, 0xa3, 0x73, 0xd4, +	0xf7, 0x96, 0x00, 0x2d, 0x13, 0xa1, 0xd9, 0x1a, +	0xac, 0x48, 0x4d, 0xd8, 0x01, 0x78, 0x02, 0x42 +}; +static const u8 enc_output057[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xf0, 0xc1, 0x2d, 0x26, 0xef, 0x03, 0x02, 0x9b, +	0x62, 0xc0, 0x08, 0xda, 0x27, 0xc5, 0xdc, 0x68 +}; +static const u8 enc_assoc057[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce057[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key057[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input058[] __initconst = { +	0xda, 0x92, 0xbf, 0x77, 0x7f, 0x6b, 0xe8, 0x7c, +	0xaa, 0x2c, 0xfb, 0x7b, 0x9b, 0xbc, 0x01, 0x17, +	0x20, 0x66, 0xb8, 0xfc, 0xfc, 0x04, 0xc4, 0x84, +	0x7f, 0x1f, 0xcf, 0x41, 0x14, 0x2c, 0xd6, 0x41, +	0x1c, 0x43, 0x24, 0xa4, 0xe1, 0x21, 0x03, 0x01, +	0x74, 0x32, 0x5e, 0x49, 0x5e, 0xa3, 0x73, 0xd4, +	0xf7, 0x96, 0x00, 0x2d, 0x13, 0xa1, 0xd9, 0x1a, +	0xac, 0x48, 0x4d, 0xd8, 0x01, 0x78, 0x02, 0x42, +	0x85, 0x25, 0xbb, 0xbd, 0xbd, 0x96, 0x40, 0x05, +	0xaa, 0xd8, 0x0d, 0x8f, 0x53, 0x09, 0x7a, 0xfd, +	0x48, 0xb3, 0xa5, 0x1d, 0x19, 0xf3, 0xfa, 0x7f, +	0x67, 0xe5, 0xb6, 0xc7, 0xba, 0x6c, 0x6d, 0x3b, +	0x64, 0x4d, 0x0d, 0x7b, 0x49, 0xb9, 0x10, 0x38, +	0x0c, 0x0f, 0x4e, 0xc9, 0xe2, 0x3c, 0xb7, 0x12, +	0x88, 0x2c, 0xf4, 0x3a, 0x89, 0x6d, 0x12, 0xc7, +	0x04, 0x53, 0xfe, 0x77, 0xc7, 0xfb, 0x77, 0x38 +}; +static const u8 enc_output058[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xee, 0x65, 0x78, 0x30, 0x01, 0xc2, 0x56, 0x91, +	0xfa, 0x28, 0xd0, 0xf5, 0xf1, 0xc1, 0xd7, 0x62 +}; +static const u8 enc_assoc058[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce058[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key058[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input059[] __initconst = { +	0x25, 0x6d, 0x40, 0x08, 0x80, 0x94, 0x17, 0x03, +	0x55, 0xd3, 0x04, 0x04, 0x64, 0x43, 0xfe, 0x68, +	0xdf, 0x99, 0x47, 0x83, 0x03, 0xfb, 0x3b, 0xfb, +	0x80, 0xe0, 0x30, 0x3e, 0xeb, 0xd3, 0x29, 0x3e +}; +static const u8 enc_output059[] __initconst = { +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x79, 0xba, 0x7a, 0x29, 0xf5, 0xa7, 0xbb, 0x75, +	0x79, 0x7a, 0xf8, 0x7a, 0x61, 0x01, 0x29, 0xa4 +}; +static const u8 enc_assoc059[] __initconst = { +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80 +}; +static const u8 enc_nonce059[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key059[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input060[] __initconst = { +	0x25, 0x6d, 0x40, 0x08, 0x80, 0x94, 0x17, 0x03, +	0x55, 0xd3, 0x04, 0x04, 0x64, 0x43, 0xfe, 0x68, +	0xdf, 0x99, 0x47, 0x83, 0x03, 0xfb, 0x3b, 0xfb, +	0x80, 0xe0, 0x30, 0x3e, 0xeb, 0xd3, 0x29, 0x3e, +	0xe3, 0xbc, 0xdb, 0xdb, 0x1e, 0xde, 0xfc, 0x7e, +	0x8b, 0xcd, 0xa1, 0x36, 0xa1, 0x5c, 0x8c, 0xab, +	0x08, 0x69, 0xff, 0x52, 0xec, 0x5e, 0x26, 0x65, +	0x53, 0xb7, 0xb2, 0xa7, 0xfe, 0x87, 0xfd, 0x3d +}; +static const u8 enc_output060[] __initconst = { +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x36, 0xb1, 0x74, 0x38, 0x19, 0xe1, 0xb9, 0xba, +	0x15, 0x51, 0xe8, 0xed, 0x92, 0x2a, 0x95, 0x9a +}; +static const u8 enc_assoc060[] __initconst = { +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80 +}; +static const u8 enc_nonce060[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key060[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input061[] __initconst = { +	0x25, 0x6d, 0x40, 0x08, 0x80, 0x94, 0x17, 0x03, +	0x55, 0xd3, 0x04, 0x04, 0x64, 0x43, 0xfe, 0x68, +	0xdf, 0x99, 0x47, 0x83, 0x03, 0xfb, 0x3b, 0xfb, +	0x80, 0xe0, 0x30, 0x3e, 0xeb, 0xd3, 0x29, 0x3e, +	0xe3, 0xbc, 0xdb, 0xdb, 0x1e, 0xde, 0xfc, 0x7e, +	0x8b, 0xcd, 0xa1, 0x36, 0xa1, 0x5c, 0x8c, 0xab, +	0x08, 0x69, 0xff, 0x52, 0xec, 0x5e, 0x26, 0x65, +	0x53, 0xb7, 0xb2, 0xa7, 0xfe, 0x87, 0xfd, 0x3d, +	0x7a, 0xda, 0x44, 0xc2, 0x42, 0x69, 0xbf, 0x7a, +	0x55, 0x27, 0xf2, 0xf0, 0xac, 0xf6, 0x85, 0x82, +	0xb7, 0x4c, 0x5a, 0x62, 0xe6, 0x0c, 0x05, 0x00, +	0x98, 0x1a, 0x49, 0xb8, 0x45, 0x93, 0x92, 0x44, +	0x9b, 0xb2, 0xf2, 0x04, 0xb6, 0x46, 0xef, 0x47, +	0xf3, 0xf0, 0xb1, 0xb6, 0x1d, 0xc3, 0x48, 0x6d, +	0x77, 0xd3, 0x0b, 0x45, 0x76, 0x92, 0xed, 0xb8, +	0xfb, 0xac, 0x01, 0x08, 0x38, 0x04, 0x88, 0x47 +}; +static const u8 enc_output061[] __initconst = { +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0xfe, 0xac, 0x49, 0x55, 0x55, 0x4e, 0x80, 0x6f, +	0x3a, 0x19, 0x02, 0xe2, 0x44, 0x32, 0xc0, 0x8a +}; +static const u8 enc_assoc061[] __initconst = { +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, +	0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80 +}; +static const u8 enc_nonce061[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key061[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input062[] __initconst = { +	0xda, 0x92, 0xbf, 0xf7, 0x7f, 0x6b, 0xe8, 0xfc, +	0xaa, 0x2c, 0xfb, 0xfb, 0x9b, 0xbc, 0x01, 0x97, +	0x20, 0x66, 0xb8, 0x7c, 0xfc, 0x04, 0xc4, 0x04, +	0x7f, 0x1f, 0xcf, 0xc1, 0x14, 0x2c, 0xd6, 0xc1 +}; +static const u8 enc_output062[] __initconst = { +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0x20, 0xa3, 0x79, 0x8d, 0xf1, 0x29, 0x2c, 0x59, +	0x72, 0xbf, 0x97, 0x41, 0xae, 0xc3, 0x8a, 0x19 +}; +static const u8 enc_assoc062[] __initconst = { +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f +}; +static const u8 enc_nonce062[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key062[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input063[] __initconst = { +	0xda, 0x92, 0xbf, 0xf7, 0x7f, 0x6b, 0xe8, 0xfc, +	0xaa, 0x2c, 0xfb, 0xfb, 0x9b, 0xbc, 0x01, 0x97, +	0x20, 0x66, 0xb8, 0x7c, 0xfc, 0x04, 0xc4, 0x04, +	0x7f, 0x1f, 0xcf, 0xc1, 0x14, 0x2c, 0xd6, 0xc1, +	0x1c, 0x43, 0x24, 0x24, 0xe1, 0x21, 0x03, 0x81, +	0x74, 0x32, 0x5e, 0xc9, 0x5e, 0xa3, 0x73, 0x54, +	0xf7, 0x96, 0x00, 0xad, 0x13, 0xa1, 0xd9, 0x9a, +	0xac, 0x48, 0x4d, 0x58, 0x01, 0x78, 0x02, 0xc2 +}; +static const u8 enc_output063[] __initconst = { +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xc0, 0x3d, 0x9f, 0x67, 0x35, 0x4a, 0x97, 0xb2, +	0xf0, 0x74, 0xf7, 0x55, 0x15, 0x57, 0xe4, 0x9c +}; +static const u8 enc_assoc063[] __initconst = { +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f +}; +static const u8 enc_nonce063[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key063[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input064[] __initconst = { +	0xda, 0x92, 0xbf, 0xf7, 0x7f, 0x6b, 0xe8, 0xfc, +	0xaa, 0x2c, 0xfb, 0xfb, 0x9b, 0xbc, 0x01, 0x97, +	0x20, 0x66, 0xb8, 0x7c, 0xfc, 0x04, 0xc4, 0x04, +	0x7f, 0x1f, 0xcf, 0xc1, 0x14, 0x2c, 0xd6, 0xc1, +	0x1c, 0x43, 0x24, 0x24, 0xe1, 0x21, 0x03, 0x81, +	0x74, 0x32, 0x5e, 0xc9, 0x5e, 0xa3, 0x73, 0x54, +	0xf7, 0x96, 0x00, 0xad, 0x13, 0xa1, 0xd9, 0x9a, +	0xac, 0x48, 0x4d, 0x58, 0x01, 0x78, 0x02, 0xc2, +	0x85, 0x25, 0xbb, 0x3d, 0xbd, 0x96, 0x40, 0x85, +	0xaa, 0xd8, 0x0d, 0x0f, 0x53, 0x09, 0x7a, 0x7d, +	0x48, 0xb3, 0xa5, 0x9d, 0x19, 0xf3, 0xfa, 0xff, +	0x67, 0xe5, 0xb6, 0x47, 0xba, 0x6c, 0x6d, 0xbb, +	0x64, 0x4d, 0x0d, 0xfb, 0x49, 0xb9, 0x10, 0xb8, +	0x0c, 0x0f, 0x4e, 0x49, 0xe2, 0x3c, 0xb7, 0x92, +	0x88, 0x2c, 0xf4, 0xba, 0x89, 0x6d, 0x12, 0x47, +	0x04, 0x53, 0xfe, 0xf7, 0xc7, 0xfb, 0x77, 0xb8 +}; +static const u8 enc_output064[] __initconst = { +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xc8, 0x6d, 0xa8, 0xdd, 0x65, 0x22, 0x86, 0xd5, +	0x02, 0x13, 0xd3, 0x28, 0xd6, 0x3e, 0x40, 0x06 +}; +static const u8 enc_assoc064[] __initconst = { +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, +	0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f +}; +static const u8 enc_nonce064[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key064[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input065[] __initconst = { +	0x5a, 0x92, 0xbf, 0x77, 0xff, 0x6b, 0xe8, 0x7c, +	0x2a, 0x2c, 0xfb, 0x7b, 0x1b, 0xbc, 0x01, 0x17, +	0xa0, 0x66, 0xb8, 0xfc, 0x7c, 0x04, 0xc4, 0x84, +	0xff, 0x1f, 0xcf, 0x41, 0x94, 0x2c, 0xd6, 0x41 +}; +static const u8 enc_output065[] __initconst = { +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0xbe, 0xde, 0x90, 0x83, 0xce, 0xb3, 0x6d, 0xdf, +	0xe5, 0xfa, 0x81, 0x1f, 0x95, 0x47, 0x1c, 0x67 +}; +static const u8 enc_assoc065[] __initconst = { +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce065[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key065[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input066[] __initconst = { +	0x5a, 0x92, 0xbf, 0x77, 0xff, 0x6b, 0xe8, 0x7c, +	0x2a, 0x2c, 0xfb, 0x7b, 0x1b, 0xbc, 0x01, 0x17, +	0xa0, 0x66, 0xb8, 0xfc, 0x7c, 0x04, 0xc4, 0x84, +	0xff, 0x1f, 0xcf, 0x41, 0x94, 0x2c, 0xd6, 0x41, +	0x9c, 0x43, 0x24, 0xa4, 0x61, 0x21, 0x03, 0x01, +	0xf4, 0x32, 0x5e, 0x49, 0xde, 0xa3, 0x73, 0xd4, +	0x77, 0x96, 0x00, 0x2d, 0x93, 0xa1, 0xd9, 0x1a, +	0x2c, 0x48, 0x4d, 0xd8, 0x81, 0x78, 0x02, 0x42 +}; +static const u8 enc_output066[] __initconst = { +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x30, 0x08, 0x74, 0xbb, 0x06, 0x92, 0xb6, 0x89, +	0xde, 0xad, 0x9a, 0xe1, 0x5b, 0x06, 0x73, 0x90 +}; +static const u8 enc_assoc066[] __initconst = { +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce066[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key066[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input067[] __initconst = { +	0x5a, 0x92, 0xbf, 0x77, 0xff, 0x6b, 0xe8, 0x7c, +	0x2a, 0x2c, 0xfb, 0x7b, 0x1b, 0xbc, 0x01, 0x17, +	0xa0, 0x66, 0xb8, 0xfc, 0x7c, 0x04, 0xc4, 0x84, +	0xff, 0x1f, 0xcf, 0x41, 0x94, 0x2c, 0xd6, 0x41, +	0x9c, 0x43, 0x24, 0xa4, 0x61, 0x21, 0x03, 0x01, +	0xf4, 0x32, 0x5e, 0x49, 0xde, 0xa3, 0x73, 0xd4, +	0x77, 0x96, 0x00, 0x2d, 0x93, 0xa1, 0xd9, 0x1a, +	0x2c, 0x48, 0x4d, 0xd8, 0x81, 0x78, 0x02, 0x42, +	0x05, 0x25, 0xbb, 0xbd, 0x3d, 0x96, 0x40, 0x05, +	0x2a, 0xd8, 0x0d, 0x8f, 0xd3, 0x09, 0x7a, 0xfd, +	0xc8, 0xb3, 0xa5, 0x1d, 0x99, 0xf3, 0xfa, 0x7f, +	0xe7, 0xe5, 0xb6, 0xc7, 0x3a, 0x6c, 0x6d, 0x3b, +	0xe4, 0x4d, 0x0d, 0x7b, 0xc9, 0xb9, 0x10, 0x38, +	0x8c, 0x0f, 0x4e, 0xc9, 0x62, 0x3c, 0xb7, 0x12, +	0x08, 0x2c, 0xf4, 0x3a, 0x09, 0x6d, 0x12, 0xc7, +	0x84, 0x53, 0xfe, 0x77, 0x47, 0xfb, 0x77, 0x38 +}; +static const u8 enc_output067[] __initconst = { +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x99, 0xca, 0xd8, 0x5f, 0x45, 0xca, 0x40, 0x94, +	0x2d, 0x0d, 0x4d, 0x5e, 0x95, 0x0a, 0xde, 0x22 +}; +static const u8 enc_assoc067[] __initconst = { +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, +	0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce067[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key067[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input068[] __initconst = { +	0x25, 0x6d, 0x40, 0x88, 0x7f, 0x6b, 0xe8, 0x7c, +	0x55, 0xd3, 0x04, 0x84, 0x9b, 0xbc, 0x01, 0x17, +	0xdf, 0x99, 0x47, 0x03, 0xfc, 0x04, 0xc4, 0x84, +	0x80, 0xe0, 0x30, 0xbe, 0x14, 0x2c, 0xd6, 0x41 +}; +static const u8 enc_output068[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x8b, 0xbe, 0x14, 0x52, 0x72, 0xe7, 0xc2, 0xd9, +	0xa1, 0x89, 0x1a, 0x3a, 0xb0, 0x98, 0x3d, 0x9d +}; +static const u8 enc_assoc068[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce068[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key068[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input069[] __initconst = { +	0x25, 0x6d, 0x40, 0x88, 0x7f, 0x6b, 0xe8, 0x7c, +	0x55, 0xd3, 0x04, 0x84, 0x9b, 0xbc, 0x01, 0x17, +	0xdf, 0x99, 0x47, 0x03, 0xfc, 0x04, 0xc4, 0x84, +	0x80, 0xe0, 0x30, 0xbe, 0x14, 0x2c, 0xd6, 0x41, +	0xe3, 0xbc, 0xdb, 0x5b, 0xe1, 0x21, 0x03, 0x01, +	0x8b, 0xcd, 0xa1, 0xb6, 0x5e, 0xa3, 0x73, 0xd4, +	0x08, 0x69, 0xff, 0xd2, 0x13, 0xa1, 0xd9, 0x1a, +	0x53, 0xb7, 0xb2, 0x27, 0x01, 0x78, 0x02, 0x42 +}; +static const u8 enc_output069[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x3b, 0x41, 0x86, 0x19, 0x13, 0xa8, 0xf6, 0xde, +	0x7f, 0x61, 0xe2, 0x25, 0x63, 0x1b, 0xc3, 0x82 +}; +static const u8 enc_assoc069[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce069[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key069[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input070[] __initconst = { +	0x25, 0x6d, 0x40, 0x88, 0x7f, 0x6b, 0xe8, 0x7c, +	0x55, 0xd3, 0x04, 0x84, 0x9b, 0xbc, 0x01, 0x17, +	0xdf, 0x99, 0x47, 0x03, 0xfc, 0x04, 0xc4, 0x84, +	0x80, 0xe0, 0x30, 0xbe, 0x14, 0x2c, 0xd6, 0x41, +	0xe3, 0xbc, 0xdb, 0x5b, 0xe1, 0x21, 0x03, 0x01, +	0x8b, 0xcd, 0xa1, 0xb6, 0x5e, 0xa3, 0x73, 0xd4, +	0x08, 0x69, 0xff, 0xd2, 0x13, 0xa1, 0xd9, 0x1a, +	0x53, 0xb7, 0xb2, 0x27, 0x01, 0x78, 0x02, 0x42, +	0x7a, 0xda, 0x44, 0x42, 0xbd, 0x96, 0x40, 0x05, +	0x55, 0x27, 0xf2, 0x70, 0x53, 0x09, 0x7a, 0xfd, +	0xb7, 0x4c, 0x5a, 0xe2, 0x19, 0xf3, 0xfa, 0x7f, +	0x98, 0x1a, 0x49, 0x38, 0xba, 0x6c, 0x6d, 0x3b, +	0x9b, 0xb2, 0xf2, 0x84, 0x49, 0xb9, 0x10, 0x38, +	0xf3, 0xf0, 0xb1, 0x36, 0xe2, 0x3c, 0xb7, 0x12, +	0x77, 0xd3, 0x0b, 0xc5, 0x89, 0x6d, 0x12, 0xc7, +	0xfb, 0xac, 0x01, 0x88, 0xc7, 0xfb, 0x77, 0x38 +}; +static const u8 enc_output070[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x84, 0x28, 0xbc, 0xf0, 0x23, 0xec, 0x6b, 0xf3, +	0x1f, 0xd9, 0xef, 0xb2, 0x03, 0xff, 0x08, 0x71 +}; +static const u8 enc_assoc070[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce070[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key070[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input071[] __initconst = { +	0xda, 0x92, 0xbf, 0x77, 0x80, 0x94, 0x17, 0x83, +	0xaa, 0x2c, 0xfb, 0x7b, 0x64, 0x43, 0xfe, 0xe8, +	0x20, 0x66, 0xb8, 0xfc, 0x03, 0xfb, 0x3b, 0x7b, +	0x7f, 0x1f, 0xcf, 0x41, 0xeb, 0xd3, 0x29, 0xbe +}; +static const u8 enc_output071[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0x13, 0x9f, 0xdf, 0x64, 0x74, 0xea, 0x24, 0xf5, +	0x49, 0xb0, 0x75, 0x82, 0x5f, 0x2c, 0x76, 0x20 +}; +static const u8 enc_assoc071[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 +}; +static const u8 enc_nonce071[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key071[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input072[] __initconst = { +	0xda, 0x92, 0xbf, 0x77, 0x80, 0x94, 0x17, 0x83, +	0xaa, 0x2c, 0xfb, 0x7b, 0x64, 0x43, 0xfe, 0xe8, +	0x20, 0x66, 0xb8, 0xfc, 0x03, 0xfb, 0x3b, 0x7b, +	0x7f, 0x1f, 0xcf, 0x41, 0xeb, 0xd3, 0x29, 0xbe, +	0x1c, 0x43, 0x24, 0xa4, 0x1e, 0xde, 0xfc, 0xfe, +	0x74, 0x32, 0x5e, 0x49, 0xa1, 0x5c, 0x8c, 0x2b, +	0xf7, 0x96, 0x00, 0x2d, 0xec, 0x5e, 0x26, 0xe5, +	0xac, 0x48, 0x4d, 0xd8, 0xfe, 0x87, 0xfd, 0xbd +}; +static const u8 enc_output072[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xbb, 0xad, 0x8d, 0x86, 0x3b, 0x83, 0x5a, 0x8e, +	0x86, 0x64, 0xfd, 0x1d, 0x45, 0x66, 0xb6, 0xb4 +}; +static const u8 enc_assoc072[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 +}; +static const u8 enc_nonce072[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key072[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - misc */ +static const u8 enc_input073[] __initconst = { +	0xda, 0x92, 0xbf, 0x77, 0x80, 0x94, 0x17, 0x83, +	0xaa, 0x2c, 0xfb, 0x7b, 0x64, 0x43, 0xfe, 0xe8, +	0x20, 0x66, 0xb8, 0xfc, 0x03, 0xfb, 0x3b, 0x7b, +	0x7f, 0x1f, 0xcf, 0x41, 0xeb, 0xd3, 0x29, 0xbe, +	0x1c, 0x43, 0x24, 0xa4, 0x1e, 0xde, 0xfc, 0xfe, +	0x74, 0x32, 0x5e, 0x49, 0xa1, 0x5c, 0x8c, 0x2b, +	0xf7, 0x96, 0x00, 0x2d, 0xec, 0x5e, 0x26, 0xe5, +	0xac, 0x48, 0x4d, 0xd8, 0xfe, 0x87, 0xfd, 0xbd, +	0x85, 0x25, 0xbb, 0xbd, 0x42, 0x69, 0xbf, 0xfa, +	0xaa, 0xd8, 0x0d, 0x8f, 0xac, 0xf6, 0x85, 0x02, +	0x48, 0xb3, 0xa5, 0x1d, 0xe6, 0x0c, 0x05, 0x80, +	0x67, 0xe5, 0xb6, 0xc7, 0x45, 0x93, 0x92, 0xc4, +	0x64, 0x4d, 0x0d, 0x7b, 0xb6, 0x46, 0xef, 0xc7, +	0x0c, 0x0f, 0x4e, 0xc9, 0x1d, 0xc3, 0x48, 0xed, +	0x88, 0x2c, 0xf4, 0x3a, 0x76, 0x92, 0xed, 0x38, +	0x04, 0x53, 0xfe, 0x77, 0x38, 0x04, 0x88, 0xc7 +}; +static const u8 enc_output073[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0x42, 0xf2, 0x35, 0x42, 0x97, 0x84, 0x9a, 0x51, +	0x1d, 0x53, 0xe5, 0x57, 0x17, 0x72, 0xf7, 0x1f +}; +static const u8 enc_assoc073[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +	0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 +}; +static const u8 enc_nonce073[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x32, 0x00 +}; +static const u8 enc_key073[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - checking for int overflows */ +static const u8 enc_input076[] __initconst = { +	0x1b, 0x99, 0x6f, 0x9a, 0x3c, 0xcc, 0x67, 0x85, +	0xde, 0x22, 0xff, 0x5b, 0x8a, 0xdd, 0x95, 0x02, +	0xce, 0x03, 0xa0, 0xfa, 0xf5, 0x99, 0x2a, 0x09, +	0x52, 0x2c, 0xdd, 0x12, 0x06, 0xd2, 0x20, 0xb8, +	0xf8, 0xbd, 0x07, 0xd1, 0xf1, 0xf5, 0xa1, 0xbd, +	0x9a, 0x71, 0xd1, 0x1c, 0x7f, 0x57, 0x9b, 0x85, +	0x58, 0x18, 0xc0, 0x8d, 0x4d, 0xe0, 0x36, 0x39, +	0x31, 0x83, 0xb7, 0xf5, 0x90, 0xb3, 0x35, 0xae, +	0xd8, 0xde, 0x5b, 0x57, 0xb1, 0x3c, 0x5f, 0xed, +	0xe2, 0x44, 0x1c, 0x3e, 0x18, 0x4a, 0xa9, 0xd4, +	0x6e, 0x61, 0x59, 0x85, 0x06, 0xb3, 0xe1, 0x1c, +	0x43, 0xc6, 0x2c, 0xbc, 0xac, 0xec, 0xed, 0x33, +	0x19, 0x08, 0x75, 0xb0, 0x12, 0x21, 0x8b, 0x19, +	0x30, 0xfb, 0x7c, 0x38, 0xec, 0x45, 0xac, 0x11, +	0xc3, 0x53, 0xd0, 0xcf, 0x93, 0x8d, 0xcc, 0xb9, +	0xef, 0xad, 0x8f, 0xed, 0xbe, 0x46, 0xda, 0xa5 +}; +static const u8 enc_output076[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x4b, 0x0b, 0xda, 0x8a, 0xd0, 0x43, 0x83, 0x0d, +	0x83, 0x19, 0xab, 0x82, 0xc5, 0x0c, 0x76, 0x63 +}; +static const u8 enc_assoc076[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce076[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xb4, 0xf0 +}; +static const u8 enc_key076[] __initconst = { +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 +}; + +/* wycheproof - checking for int overflows */ +static const u8 enc_input077[] __initconst = { +	0x86, 0xcb, 0xac, 0xae, 0x4d, 0x3f, 0x74, 0xae, +	0x01, 0x21, 0x3e, 0x05, 0x51, 0xcc, 0x15, 0x16, +	0x0e, 0xa1, 0xbe, 0x84, 0x08, 0xe3, 0xd5, 0xd7, +	0x4f, 0x01, 0x46, 0x49, 0x95, 0xa6, 0x9e, 0x61, +	0x76, 0xcb, 0x9e, 0x02, 0xb2, 0x24, 0x7e, 0xd2, +	0x99, 0x89, 0x2f, 0x91, 0x82, 0xa4, 0x5c, 0xaf, +	0x4c, 0x69, 0x40, 0x56, 0x11, 0x76, 0x6e, 0xdf, +	0xaf, 0xdc, 0x28, 0x55, 0x19, 0xea, 0x30, 0x48, +	0x0c, 0x44, 0xf0, 0x5e, 0x78, 0x1e, 0xac, 0xf8, +	0xfc, 0xec, 0xc7, 0x09, 0x0a, 0xbb, 0x28, 0xfa, +	0x5f, 0xd5, 0x85, 0xac, 0x8c, 0xda, 0x7e, 0x87, +	0x72, 0xe5, 0x94, 0xe4, 0xce, 0x6c, 0x88, 0x32, +	0x81, 0x93, 0x2e, 0x0f, 0x89, 0xf8, 0x77, 0xa1, +	0xf0, 0x4d, 0x9c, 0x32, 0xb0, 0x6c, 0xf9, 0x0b, +	0x0e, 0x76, 0x2b, 0x43, 0x0c, 0x4d, 0x51, 0x7c, +	0x97, 0x10, 0x70, 0x68, 0xf4, 0x98, 0xef, 0x7f +}; +static const u8 enc_output077[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x4b, 0xc9, 0x8f, 0x72, 0xc4, 0x94, 0xc2, 0xa4, +	0x3c, 0x2b, 0x15, 0xa1, 0x04, 0x3f, 0x1c, 0xfa +}; +static const u8 enc_assoc077[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce077[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfb, 0x66 +}; +static const u8 enc_key077[] __initconst = { +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 +}; + +/* wycheproof - checking for int overflows */ +static const u8 enc_input078[] __initconst = { +	0xfa, 0xb1, 0xcd, 0xdf, 0x4f, 0xe1, 0x98, 0xef, +	0x63, 0xad, 0xd8, 0x81, 0xd6, 0xea, 0xd6, 0xc5, +	0x76, 0x37, 0xbb, 0xe9, 0x20, 0x18, 0xca, 0x7c, +	0x0b, 0x96, 0xfb, 0xa0, 0x87, 0x1e, 0x93, 0x2d, +	0xb1, 0xfb, 0xf9, 0x07, 0x61, 0xbe, 0x25, 0xdf, +	0x8d, 0xfa, 0xf9, 0x31, 0xce, 0x57, 0x57, 0xe6, +	0x17, 0xb3, 0xd7, 0xa9, 0xf0, 0xbf, 0x0f, 0xfe, +	0x5d, 0x59, 0x1a, 0x33, 0xc1, 0x43, 0xb8, 0xf5, +	0x3f, 0xd0, 0xb5, 0xa1, 0x96, 0x09, 0xfd, 0x62, +	0xe5, 0xc2, 0x51, 0xa4, 0x28, 0x1a, 0x20, 0x0c, +	0xfd, 0xc3, 0x4f, 0x28, 0x17, 0x10, 0x40, 0x6f, +	0x4e, 0x37, 0x62, 0x54, 0x46, 0xff, 0x6e, 0xf2, +	0x24, 0x91, 0x3d, 0xeb, 0x0d, 0x89, 0xaf, 0x33, +	0x71, 0x28, 0xe3, 0xd1, 0x55, 0xd1, 0x6d, 0x3e, +	0xc3, 0x24, 0x60, 0x41, 0x43, 0x21, 0x43, 0xe9, +	0xab, 0x3a, 0x6d, 0x2c, 0xcc, 0x2f, 0x4d, 0x62 +}; +static const u8 enc_output078[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xf7, 0xe9, 0xe1, 0x51, 0xb0, 0x25, 0x33, 0xc7, +	0x46, 0x58, 0xbf, 0xc7, 0x73, 0x7c, 0x68, 0x0d +}; +static const u8 enc_assoc078[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce078[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xbb, 0x90 +}; +static const u8 enc_key078[] __initconst = { +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 +}; + +/* wycheproof - checking for int overflows */ +static const u8 enc_input079[] __initconst = { +	0x22, 0x72, 0x02, 0xbe, 0x7f, 0x35, 0x15, 0xe9, +	0xd1, 0xc0, 0x2e, 0xea, 0x2f, 0x19, 0x50, 0xb6, +	0x48, 0x1b, 0x04, 0x8a, 0x4c, 0x91, 0x50, 0x6c, +	0xb4, 0x0d, 0x50, 0x4e, 0x6c, 0x94, 0x9f, 0x82, +	0xd1, 0x97, 0xc2, 0x5a, 0xd1, 0x7d, 0xc7, 0x21, +	0x65, 0x11, 0x25, 0x78, 0x2a, 0xc7, 0xa7, 0x12, +	0x47, 0xfe, 0xae, 0xf3, 0x2f, 0x1f, 0x25, 0x0c, +	0xe4, 0xbb, 0x8f, 0x79, 0xac, 0xaa, 0x17, 0x9d, +	0x45, 0xa7, 0xb0, 0x54, 0x5f, 0x09, 0x24, 0x32, +	0x5e, 0xfa, 0x87, 0xd5, 0xe4, 0x41, 0xd2, 0x84, +	0x78, 0xc6, 0x1f, 0x22, 0x23, 0xee, 0x67, 0xc3, +	0xb4, 0x1f, 0x43, 0x94, 0x53, 0x5e, 0x2a, 0x24, +	0x36, 0x9a, 0x2e, 0x16, 0x61, 0x3c, 0x45, 0x94, +	0x90, 0xc1, 0x4f, 0xb1, 0xd7, 0x55, 0xfe, 0x53, +	0xfb, 0xe1, 0xee, 0x45, 0xb1, 0xb2, 0x1f, 0x71, +	0x62, 0xe2, 0xfc, 0xaa, 0x74, 0x2a, 0xbe, 0xfd +}; +static const u8 enc_output079[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x79, 0x5b, 0xcf, 0xf6, 0x47, 0xc5, 0x53, 0xc2, +	0xe4, 0xeb, 0x6e, 0x0e, 0xaf, 0xd9, 0xe0, 0x4e +}; +static const u8 enc_assoc079[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce079[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x48, 0x4a +}; +static const u8 enc_key079[] __initconst = { +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 +}; + +/* wycheproof - checking for int overflows */ +static const u8 enc_input080[] __initconst = { +	0xfa, 0xe5, 0x83, 0x45, 0xc1, 0x6c, 0xb0, 0xf5, +	0xcc, 0x53, 0x7f, 0x2b, 0x1b, 0x34, 0x69, 0xc9, +	0x69, 0x46, 0x3b, 0x3e, 0xa7, 0x1b, 0xcf, 0x6b, +	0x98, 0xd6, 0x69, 0xa8, 0xe6, 0x0e, 0x04, 0xfc, +	0x08, 0xd5, 0xfd, 0x06, 0x9c, 0x36, 0x26, 0x38, +	0xe3, 0x40, 0x0e, 0xf4, 0xcb, 0x24, 0x2e, 0x27, +	0xe2, 0x24, 0x5e, 0x68, 0xcb, 0x9e, 0xc5, 0x83, +	0xda, 0x53, 0x40, 0xb1, 0x2e, 0xdf, 0x42, 0x3b, +	0x73, 0x26, 0xad, 0x20, 0xfe, 0xeb, 0x57, 0xda, +	0xca, 0x2e, 0x04, 0x67, 0xa3, 0x28, 0x99, 0xb4, +	0x2d, 0xf8, 0xe5, 0x6d, 0x84, 0xe0, 0x06, 0xbc, +	0x8a, 0x7a, 0xcc, 0x73, 0x1e, 0x7c, 0x1f, 0x6b, +	0xec, 0xb5, 0x71, 0x9f, 0x70, 0x77, 0xf0, 0xd4, +	0xf4, 0xc6, 0x1a, 0xb1, 0x1e, 0xba, 0xc1, 0x00, +	0x18, 0x01, 0xce, 0x33, 0xc4, 0xe4, 0xa7, 0x7d, +	0x83, 0x1d, 0x3c, 0xe3, 0x4e, 0x84, 0x10, 0xe1 +}; +static const u8 enc_output080[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x19, 0x46, 0xd6, 0x53, 0x96, 0x0f, 0x94, 0x7a, +	0x74, 0xd3, 0xe8, 0x09, 0x3c, 0xf4, 0x85, 0x02 +}; +static const u8 enc_assoc080[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce080[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x2f, 0x40 +}; +static const u8 enc_key080[] __initconst = { +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 +}; + +/* wycheproof - checking for int overflows */ +static const u8 enc_input081[] __initconst = { +	0xeb, 0xb2, 0x16, 0xdd, 0xd7, 0xca, 0x70, 0x92, +	0x15, 0xf5, 0x03, 0xdf, 0x9c, 0xe6, 0x3c, 0x5c, +	0xd2, 0x19, 0x4e, 0x7d, 0x90, 0x99, 0xe8, 0xa9, +	0x0b, 0x2a, 0xfa, 0xad, 0x5e, 0xba, 0x35, 0x06, +	0x99, 0x25, 0xa6, 0x03, 0xfd, 0xbc, 0x34, 0x1a, +	0xae, 0xd4, 0x15, 0x05, 0xb1, 0x09, 0x41, 0xfa, +	0x38, 0x56, 0xa7, 0xe2, 0x47, 0xb1, 0x04, 0x07, +	0x09, 0x74, 0x6c, 0xfc, 0x20, 0x96, 0xca, 0xa6, +	0x31, 0xb2, 0xff, 0xf4, 0x1c, 0x25, 0x05, 0x06, +	0xd8, 0x89, 0xc1, 0xc9, 0x06, 0x71, 0xad, 0xe8, +	0x53, 0xee, 0x63, 0x94, 0xc1, 0x91, 0x92, 0xa5, +	0xcf, 0x37, 0x10, 0xd1, 0x07, 0x30, 0x99, 0xe5, +	0xbc, 0x94, 0x65, 0x82, 0xfc, 0x0f, 0xab, 0x9f, +	0x54, 0x3c, 0x71, 0x6a, 0xe2, 0x48, 0x6a, 0x86, +	0x83, 0xfd, 0xca, 0x39, 0xd2, 0xe1, 0x4f, 0x23, +	0xd0, 0x0a, 0x58, 0x26, 0x64, 0xf4, 0xec, 0xb1 +}; +static const u8 enc_output081[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x36, 0xc3, 0x00, 0x29, 0x85, 0xdd, 0x21, 0xba, +	0xf8, 0x95, 0xd6, 0x33, 0x57, 0x3f, 0x12, 0xc0 +}; +static const u8 enc_assoc081[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce081[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x93, 0x35 +}; +static const u8 enc_key081[] __initconst = { +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, +	0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 +}; + +/* wycheproof - checking for int overflows */ +static const u8 enc_input082[] __initconst = { +	0x40, 0x8a, 0xe6, 0xef, 0x1c, 0x7e, 0xf0, 0xfb, +	0x2c, 0x2d, 0x61, 0x08, 0x16, 0xfc, 0x78, 0x49, +	0xef, 0xa5, 0x8f, 0x78, 0x27, 0x3f, 0x5f, 0x16, +	0x6e, 0xa6, 0x5f, 0x81, 0xb5, 0x75, 0x74, 0x7d, +	0x03, 0x5b, 0x30, 0x40, 0xfe, 0xde, 0x1e, 0xb9, +	0x45, 0x97, 0x88, 0x66, 0x97, 0x88, 0x40, 0x8e, +	0x00, 0x41, 0x3b, 0x3e, 0x37, 0x6d, 0x15, 0x2d, +	0x20, 0x4a, 0xa2, 0xb7, 0xa8, 0x35, 0x58, 0xfc, +	0xd4, 0x8a, 0x0e, 0xf7, 0xa2, 0x6b, 0x1c, 0xd6, +	0xd3, 0x5d, 0x23, 0xb3, 0xf5, 0xdf, 0xe0, 0xca, +	0x77, 0xa4, 0xce, 0x32, 0xb9, 0x4a, 0xbf, 0x83, +	0xda, 0x2a, 0xef, 0xca, 0xf0, 0x68, 0x38, 0x08, +	0x79, 0xe8, 0x9f, 0xb0, 0xa3, 0x82, 0x95, 0x95, +	0xcf, 0x44, 0xc3, 0x85, 0x2a, 0xe2, 0xcc, 0x66, +	0x2b, 0x68, 0x9f, 0x93, 0x55, 0xd9, 0xc1, 0x83, +	0x80, 0x1f, 0x6a, 0xcc, 0x31, 0x3f, 0x89, 0x07 +}; +static const u8 enc_output082[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x65, 0x14, 0x51, 0x8e, 0x0a, 0x26, 0x41, 0x42, +	0xe0, 0xb7, 0x35, 0x1f, 0x96, 0x7f, 0xc2, 0xae +}; +static const u8 enc_assoc082[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce082[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xf7, 0xd5 +}; +static const u8 enc_key082[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - checking for int overflows */ +static const u8 enc_input083[] __initconst = { +	0x0a, 0x0a, 0x24, 0x49, 0x9b, 0xca, 0xde, 0x58, +	0xcf, 0x15, 0x76, 0xc3, 0x12, 0xac, 0xa9, 0x84, +	0x71, 0x8c, 0xb4, 0xcc, 0x7e, 0x01, 0x53, 0xf5, +	0xa9, 0x01, 0x58, 0x10, 0x85, 0x96, 0x44, 0xdf, +	0xc0, 0x21, 0x17, 0x4e, 0x0b, 0x06, 0x0a, 0x39, +	0x74, 0x48, 0xde, 0x8b, 0x48, 0x4a, 0x86, 0x03, +	0xbe, 0x68, 0x0a, 0x69, 0x34, 0xc0, 0x90, 0x6f, +	0x30, 0xdd, 0x17, 0xea, 0xe2, 0xd4, 0xc5, 0xfa, +	0xa7, 0x77, 0xf8, 0xca, 0x53, 0x37, 0x0e, 0x08, +	0x33, 0x1b, 0x88, 0xc3, 0x42, 0xba, 0xc9, 0x59, +	0x78, 0x7b, 0xbb, 0x33, 0x93, 0x0e, 0x3b, 0x56, +	0xbe, 0x86, 0xda, 0x7f, 0x2a, 0x6e, 0xb1, 0xf9, +	0x40, 0x89, 0xd1, 0xd1, 0x81, 0x07, 0x4d, 0x43, +	0x02, 0xf8, 0xe0, 0x55, 0x2d, 0x0d, 0xe1, 0xfa, +	0xb3, 0x06, 0xa2, 0x1b, 0x42, 0xd4, 0xc3, 0xba, +	0x6e, 0x6f, 0x0c, 0xbc, 0xc8, 0x1e, 0x87, 0x7a +}; +static const u8 enc_output083[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x4c, 0x19, 0x4d, 0xa6, 0xa9, 0x9f, 0xd6, 0x5b, +	0x40, 0xe9, 0xca, 0xd7, 0x98, 0xf4, 0x4b, 0x19 +}; +static const u8 enc_assoc083[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce083[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xfc, 0xe4 +}; +static const u8 enc_key083[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - checking for int overflows */ +static const u8 enc_input084[] __initconst = { +	0x4a, 0x0a, 0xaf, 0xf8, 0x49, 0x47, 0x29, 0x18, +	0x86, 0x91, 0x70, 0x13, 0x40, 0xf3, 0xce, 0x2b, +	0x8a, 0x78, 0xee, 0xd3, 0xa0, 0xf0, 0x65, 0x99, +	0x4b, 0x72, 0x48, 0x4e, 0x79, 0x91, 0xd2, 0x5c, +	0x29, 0xaa, 0x07, 0x5e, 0xb1, 0xfc, 0x16, 0xde, +	0x93, 0xfe, 0x06, 0x90, 0x58, 0x11, 0x2a, 0xb2, +	0x84, 0xa3, 0xed, 0x18, 0x78, 0x03, 0x26, 0xd1, +	0x25, 0x8a, 0x47, 0x22, 0x2f, 0xa6, 0x33, 0xd8, +	0xb2, 0x9f, 0x3b, 0xd9, 0x15, 0x0b, 0x23, 0x9b, +	0x15, 0x46, 0xc2, 0xbb, 0x9b, 0x9f, 0x41, 0x0f, +	0xeb, 0xea, 0xd3, 0x96, 0x00, 0x0e, 0xe4, 0x77, +	0x70, 0x15, 0x32, 0xc3, 0xd0, 0xf5, 0xfb, 0xf8, +	0x95, 0xd2, 0x80, 0x19, 0x6d, 0x2f, 0x73, 0x7c, +	0x5e, 0x9f, 0xec, 0x50, 0xd9, 0x2b, 0xb0, 0xdf, +	0x5d, 0x7e, 0x51, 0x3b, 0xe5, 0xb8, 0xea, 0x97, +	0x13, 0x10, 0xd5, 0xbf, 0x16, 0xba, 0x7a, 0xee +}; +static const u8 enc_output084[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xc8, 0xae, 0x77, 0x88, 0xcd, 0x28, 0x74, 0xab, +	0xc1, 0x38, 0x54, 0x1e, 0x11, 0xfd, 0x05, 0x87 +}; +static const u8 enc_assoc084[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce084[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x01, 0x84, 0x86, 0xa8 +}; +static const u8 enc_key084[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - checking for int overflows */ +static const u8 enc_input085[] __initconst = { +	0xff, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0x78, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0x9f, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0x9c, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0x47, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0xd4, 0xd2, 0x06, 0x61, 0x6f, 0x92, 0x93, 0xf6, +	0x5b, 0x45, 0xdb, 0xbc, 0x74, 0xe7, 0xc2, 0xed, +	0xfb, 0xcb, 0xbf, 0x1c, 0xfb, 0x67, 0x9b, 0xb7, +	0x39, 0xa5, 0x86, 0x2d, 0xe2, 0xbc, 0xb9, 0x37, +	0xf7, 0x4d, 0x5b, 0xf8, 0x67, 0x1c, 0x5a, 0x8a, +	0x50, 0x92, 0xf6, 0x1d, 0x54, 0xc9, 0xaa, 0x5b +}; +static const u8 enc_output085[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x93, 0x3a, 0x51, 0x63, 0xc7, 0xf6, 0x23, 0x68, +	0x32, 0x7b, 0x3f, 0xbc, 0x10, 0x36, 0xc9, 0x43 +}; +static const u8 enc_assoc085[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce085[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key085[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input093[] __initconst = { +	0x00, 0x52, 0x35, 0xd2, 0xa9, 0x19, 0xf2, 0x8d, +	0x3d, 0xb7, 0x66, 0x4a, 0x34, 0xae, 0x6b, 0x44, +	0x4d, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0x5b, 0x8b, 0x94, 0x50, 0x9e, 0x2b, 0x74, 0xa3, +	0x6d, 0x34, 0x6e, 0x33, 0xd5, 0x72, 0x65, 0x9b, +	0xa9, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0x83, 0xdc, 0xe9, 0xf3, 0x07, 0x3e, 0xfa, 0xdb, +	0x7d, 0x23, 0xb8, 0x7a, 0xce, 0x35, 0x16, 0x8c +}; +static const u8 enc_output093[] __initconst = { +	0x00, 0x39, 0xe2, 0xfd, 0x2f, 0xd3, 0x12, 0x14, +	0x9e, 0x98, 0x98, 0x80, 0x88, 0x48, 0x13, 0xe7, +	0xca, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x3b, 0x0e, 0x86, 0x9a, 0xaa, 0x8e, 0xa4, 0x96, +	0x32, 0xff, 0xff, 0x37, 0xb9, 0xe8, 0xce, 0x00, +	0xca, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x3b, 0x0e, 0x86, 0x9a, 0xaa, 0x8e, 0xa4, 0x96, +	0x32, 0xff, 0xff, 0x37, 0xb9, 0xe8, 0xce, 0x00, +	0xa5, 0x19, 0xac, 0x1a, 0x35, 0xb4, 0xa5, 0x77, +	0x87, 0x51, 0x0a, 0xf7, 0x8d, 0x8d, 0x20, 0x0a +}; +static const u8 enc_assoc093[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce093[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key093[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input094[] __initconst = { +	0xd3, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0xe5, 0xda, 0x78, 0x76, 0x6f, 0xa1, 0x92, 0x90, +	0xc0, 0x31, 0xf7, 0x52, 0x08, 0x50, 0x67, 0x45, +	0xae, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0x49, 0x6d, 0xde, 0xb0, 0x55, 0x09, 0xc6, 0xef, +	0xff, 0xab, 0x75, 0xeb, 0x2d, 0xf4, 0xab, 0x09, +	0x76, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0x01, 0x49, 0xef, 0x50, 0x4b, 0x71, 0xb1, 0x20, +	0xca, 0x4f, 0xf3, 0x95, 0x19, 0xc2, 0xc2, 0x10 +}; +static const u8 enc_output094[] __initconst = { +	0xd3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x62, 0x18, 0xb2, 0x7f, 0x83, 0xb8, 0xb4, 0x66, +	0x02, 0xf6, 0xe1, 0xd8, 0x34, 0x20, 0x7b, 0x02, +	0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x2a, 0x64, 0x16, 0xce, 0xdb, 0x1c, 0xdd, 0x29, +	0x6e, 0xf5, 0xd7, 0xd6, 0x92, 0xda, 0xff, 0x02, +	0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x2a, 0x64, 0x16, 0xce, 0xdb, 0x1c, 0xdd, 0x29, +	0x6e, 0xf5, 0xd7, 0xd6, 0x92, 0xda, 0xff, 0x02, +	0x30, 0x2f, 0xe8, 0x2a, 0xb0, 0xa0, 0x9a, 0xf6, +	0x44, 0x00, 0xd0, 0x15, 0xae, 0x83, 0xd9, 0xcc +}; +static const u8 enc_assoc094[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce094[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key094[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input095[] __initconst = { +	0xe9, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0x6d, 0xf1, 0x39, 0x4e, 0xdc, 0x53, 0x9b, 0x5b, +	0x3a, 0x09, 0x57, 0xbe, 0x0f, 0xb8, 0x59, 0x46, +	0x80, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0xd1, 0x76, 0x9f, 0xe8, 0x06, 0xbb, 0xfe, 0xb6, +	0xf5, 0x90, 0x95, 0x0f, 0x2e, 0xac, 0x9e, 0x0a, +	0x58, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0x99, 0x52, 0xae, 0x08, 0x18, 0xc3, 0x89, 0x79, +	0xc0, 0x74, 0x13, 0x71, 0x1a, 0x9a, 0xf7, 0x13 +}; +static const u8 enc_output095[] __initconst = { +	0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xea, 0x33, 0xf3, 0x47, 0x30, 0x4a, 0xbd, 0xad, +	0xf8, 0xce, 0x41, 0x34, 0x33, 0xc8, 0x45, 0x01, +	0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xb2, 0x7f, 0x57, 0x96, 0x88, 0xae, 0xe5, 0x70, +	0x64, 0xce, 0x37, 0x32, 0x91, 0x82, 0xca, 0x01, +	0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xb2, 0x7f, 0x57, 0x96, 0x88, 0xae, 0xe5, 0x70, +	0x64, 0xce, 0x37, 0x32, 0x91, 0x82, 0xca, 0x01, +	0x98, 0xa7, 0xe8, 0x36, 0xe0, 0xee, 0x4d, 0x02, +	0x35, 0x00, 0xd0, 0x55, 0x7e, 0xc2, 0xcb, 0xe0 +}; +static const u8 enc_assoc095[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce095[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key095[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input096[] __initconst = { +	0xff, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0x64, 0xf9, 0x0f, 0x5b, 0x26, 0x92, 0xb8, 0x60, +	0xd4, 0x59, 0x6f, 0xf4, 0xb3, 0x40, 0x2c, 0x5c, +	0x00, 0xb9, 0xbb, 0x53, 0x70, 0x7a, 0xa6, 0x67, +	0xd3, 0x56, 0xfe, 0x50, 0xc7, 0x19, 0x96, 0x94, +	0x03, 0x35, 0x61, 0xe7, 0xca, 0xca, 0x6d, 0x94, +	0x1d, 0xc3, 0xcd, 0x69, 0x14, 0xad, 0x69, 0x04 +}; +static const u8 enc_output096[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xe3, 0x3b, 0xc5, 0x52, 0xca, 0x8b, 0x9e, 0x96, +	0x16, 0x9e, 0x79, 0x7e, 0x8f, 0x30, 0x30, 0x1b, +	0x60, 0x3c, 0xa9, 0x99, 0x44, 0xdf, 0x76, 0x52, +	0x8c, 0x9d, 0x6f, 0x54, 0xab, 0x83, 0x3d, 0x0f, +	0x60, 0x3c, 0xa9, 0x99, 0x44, 0xdf, 0x76, 0x52, +	0x8c, 0x9d, 0x6f, 0x54, 0xab, 0x83, 0x3d, 0x0f, +	0x6a, 0xb8, 0xdc, 0xe2, 0xc5, 0x9d, 0xa4, 0x73, +	0x71, 0x30, 0xb0, 0x25, 0x2f, 0x68, 0xa8, 0xd8 +}; +static const u8 enc_assoc096[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce096[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key096[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input097[] __initconst = { +	0x68, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0xb0, 0x8f, 0x25, 0x67, 0x5b, 0x9b, 0xcb, 0xf6, +	0xe3, 0x84, 0x07, 0xde, 0x2e, 0xc7, 0x5a, 0x47, +	0x9f, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0x2d, 0x2a, 0xf7, 0xcd, 0x6b, 0x08, 0x05, 0x01, +	0xd3, 0x1b, 0xa5, 0x4f, 0xb2, 0xeb, 0x75, 0x96, +	0x47, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0x65, 0x0e, 0xc6, 0x2d, 0x75, 0x70, 0x72, 0xce, +	0xe6, 0xff, 0x23, 0x31, 0x86, 0xdd, 0x1c, 0x8f +}; +static const u8 enc_output097[] __initconst = { +	0x68, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x37, 0x4d, 0xef, 0x6e, 0xb7, 0x82, 0xed, 0x00, +	0x21, 0x43, 0x11, 0x54, 0x12, 0xb7, 0x46, 0x00, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x4e, 0x23, 0x3f, 0xb3, 0xe5, 0x1d, 0x1e, 0xc7, +	0x42, 0x45, 0x07, 0x72, 0x0d, 0xc5, 0x21, 0x9d, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x4e, 0x23, 0x3f, 0xb3, 0xe5, 0x1d, 0x1e, 0xc7, +	0x42, 0x45, 0x07, 0x72, 0x0d, 0xc5, 0x21, 0x9d, +	0x04, 0x4d, 0xea, 0x60, 0x88, 0x80, 0x41, 0x2b, +	0xfd, 0xff, 0xcf, 0x35, 0x57, 0x9e, 0x9b, 0x26 +}; +static const u8 enc_assoc097[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce097[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key097[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input098[] __initconst = { +	0x6d, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0xa1, 0x61, 0xb5, 0xab, 0x04, 0x09, 0x00, 0x62, +	0x9e, 0xfe, 0xff, 0x78, 0xd7, 0xd8, 0x6b, 0x45, +	0x9f, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0xc6, 0xf8, 0x07, 0x8c, 0xc8, 0xef, 0x12, 0xa0, +	0xff, 0x65, 0x7d, 0x6d, 0x08, 0xdb, 0x10, 0xb8, +	0x47, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0x8e, 0xdc, 0x36, 0x6c, 0xd6, 0x97, 0x65, 0x6f, +	0xca, 0x81, 0xfb, 0x13, 0x3c, 0xed, 0x79, 0xa1 +}; +static const u8 enc_output098[] __initconst = { +	0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x26, 0xa3, 0x7f, 0xa2, 0xe8, 0x10, 0x26, 0x94, +	0x5c, 0x39, 0xe9, 0xf2, 0xeb, 0xa8, 0x77, 0x02, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xa5, 0xf1, 0xcf, 0xf2, 0x46, 0xfa, 0x09, 0x66, +	0x6e, 0x3b, 0xdf, 0x50, 0xb7, 0xf5, 0x44, 0xb3, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xa5, 0xf1, 0xcf, 0xf2, 0x46, 0xfa, 0x09, 0x66, +	0x6e, 0x3b, 0xdf, 0x50, 0xb7, 0xf5, 0x44, 0xb3, +	0x1e, 0x6b, 0xea, 0x63, 0x14, 0x54, 0x2e, 0x2e, +	0xf9, 0xff, 0xcf, 0x45, 0x0b, 0x2e, 0x98, 0x2b +}; +static const u8 enc_assoc098[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce098[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key098[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input099[] __initconst = { +	0xff, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0xfc, 0x01, 0xb8, 0x91, 0xe5, 0xf0, 0xf9, 0x12, +	0x8d, 0x7d, 0x1c, 0x57, 0x91, 0x92, 0xb6, 0x98, +	0x63, 0x41, 0x44, 0x15, 0xb6, 0x99, 0x68, 0x95, +	0x9a, 0x72, 0x91, 0xb7, 0xa5, 0xaf, 0x13, 0x48, +	0x60, 0xcd, 0x9e, 0xa1, 0x0c, 0x29, 0xa3, 0x66, +	0x54, 0xe7, 0xa2, 0x8e, 0x76, 0x1b, 0xec, 0xd8 +}; +static const u8 enc_output099[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x7b, 0xc3, 0x72, 0x98, 0x09, 0xe9, 0xdf, 0xe4, +	0x4f, 0xba, 0x0a, 0xdd, 0xad, 0xe2, 0xaa, 0xdf, +	0x03, 0xc4, 0x56, 0xdf, 0x82, 0x3c, 0xb8, 0xa0, +	0xc5, 0xb9, 0x00, 0xb3, 0xc9, 0x35, 0xb8, 0xd3, +	0x03, 0xc4, 0x56, 0xdf, 0x82, 0x3c, 0xb8, 0xa0, +	0xc5, 0xb9, 0x00, 0xb3, 0xc9, 0x35, 0xb8, 0xd3, +	0xed, 0x20, 0x17, 0xc8, 0xdb, 0xa4, 0x77, 0x56, +	0x29, 0x04, 0x9d, 0x78, 0x6e, 0x3b, 0xce, 0xb1 +}; +static const u8 enc_assoc099[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce099[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key099[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input100[] __initconst = { +	0xff, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0x6b, 0x6d, 0xc9, 0xd2, 0x1a, 0x81, 0x9e, 0x70, +	0xb5, 0x77, 0xf4, 0x41, 0x37, 0xd3, 0xd6, 0xbd, +	0x13, 0x35, 0xf5, 0xeb, 0x44, 0x49, 0x40, 0x77, +	0xb2, 0x64, 0x49, 0xa5, 0x4b, 0x6c, 0x7c, 0x75, +	0x10, 0xb9, 0x2f, 0x5f, 0xfe, 0xf9, 0x8b, 0x84, +	0x7c, 0xf1, 0x7a, 0x9c, 0x98, 0xd8, 0x83, 0xe5 +}; +static const u8 enc_output100[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xec, 0xaf, 0x03, 0xdb, 0xf6, 0x98, 0xb8, 0x86, +	0x77, 0xb0, 0xe2, 0xcb, 0x0b, 0xa3, 0xca, 0xfa, +	0x73, 0xb0, 0xe7, 0x21, 0x70, 0xec, 0x90, 0x42, +	0xed, 0xaf, 0xd8, 0xa1, 0x27, 0xf6, 0xd7, 0xee, +	0x73, 0xb0, 0xe7, 0x21, 0x70, 0xec, 0x90, 0x42, +	0xed, 0xaf, 0xd8, 0xa1, 0x27, 0xf6, 0xd7, 0xee, +	0x07, 0x3f, 0x17, 0xcb, 0x67, 0x78, 0x64, 0x59, +	0x25, 0x04, 0x9d, 0x88, 0x22, 0xcb, 0xca, 0xb6 +}; +static const u8 enc_assoc100[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce100[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key100[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input101[] __initconst = { +	0xff, 0xcb, 0x2b, 0x11, 0x06, 0xf8, 0x23, 0x4c, +	0x5e, 0x99, 0xd4, 0xdb, 0x4c, 0x70, 0x48, 0xde, +	0x32, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0x16, 0xe9, 0x88, 0x4a, 0x11, 0x4f, 0x0e, 0x92, +	0x66, 0xce, 0xa3, 0x88, 0x5f, 0xe3, 0x6b, 0x9f, +	0xd6, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0xce, 0xbe, 0xf5, 0xe9, 0x88, 0x5a, 0x80, 0xea, +	0x76, 0xd9, 0x75, 0xc1, 0x44, 0xa4, 0x18, 0x88 +}; +static const u8 enc_output101[] __initconst = { +	0xff, 0xa0, 0xfc, 0x3e, 0x80, 0x32, 0xc3, 0xd5, +	0xfd, 0xb6, 0x2a, 0x11, 0xf0, 0x96, 0x30, 0x7d, +	0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x76, 0x6c, 0x9a, 0x80, 0x25, 0xea, 0xde, 0xa7, +	0x39, 0x05, 0x32, 0x8c, 0x33, 0x79, 0xc0, 0x04, +	0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x76, 0x6c, 0x9a, 0x80, 0x25, 0xea, 0xde, 0xa7, +	0x39, 0x05, 0x32, 0x8c, 0x33, 0x79, 0xc0, 0x04, +	0x8b, 0x9b, 0xb4, 0xb4, 0x86, 0x12, 0x89, 0x65, +	0x8c, 0x69, 0x6a, 0x83, 0x40, 0x15, 0x04, 0x05 +}; +static const u8 enc_assoc101[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce101[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key101[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input102[] __initconst = { +	0x6f, 0x9e, 0x70, 0xed, 0x3b, 0x8b, 0xac, 0xa0, +	0x26, 0xe4, 0x6a, 0x5a, 0x09, 0x43, 0x15, 0x8d, +	0x21, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0x0c, 0x61, 0x2c, 0x5e, 0x8d, 0x89, 0xa8, 0x73, +	0xdb, 0xca, 0xad, 0x5b, 0x73, 0x46, 0x42, 0x9b, +	0xc5, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0xd4, 0x36, 0x51, 0xfd, 0x14, 0x9c, 0x26, 0x0b, +	0xcb, 0xdd, 0x7b, 0x12, 0x68, 0x01, 0x31, 0x8c +}; +static const u8 enc_output102[] __initconst = { +	0x6f, 0xf5, 0xa7, 0xc2, 0xbd, 0x41, 0x4c, 0x39, +	0x85, 0xcb, 0x94, 0x90, 0xb5, 0xa5, 0x6d, 0x2e, +	0xa6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x6c, 0xe4, 0x3e, 0x94, 0xb9, 0x2c, 0x78, 0x46, +	0x84, 0x01, 0x3c, 0x5f, 0x1f, 0xdc, 0xe9, 0x00, +	0xa6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x6c, 0xe4, 0x3e, 0x94, 0xb9, 0x2c, 0x78, 0x46, +	0x84, 0x01, 0x3c, 0x5f, 0x1f, 0xdc, 0xe9, 0x00, +	0x8b, 0x3b, 0xbd, 0x51, 0x64, 0x44, 0x59, 0x56, +	0x8d, 0x81, 0xca, 0x1f, 0xa7, 0x2c, 0xe4, 0x04 +}; +static const u8 enc_assoc102[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce102[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key102[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input103[] __initconst = { +	0x41, 0x2b, 0x08, 0x0a, 0x3e, 0x19, 0xc1, 0x0d, +	0x44, 0xa1, 0xaf, 0x1e, 0xab, 0xde, 0xb4, 0xce, +	0x35, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0x6b, 0x83, 0x94, 0x33, 0x09, 0x21, 0x48, 0x6c, +	0xa1, 0x1d, 0x29, 0x1c, 0x3e, 0x97, 0xee, 0x9a, +	0xd1, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0xb3, 0xd4, 0xe9, 0x90, 0x90, 0x34, 0xc6, 0x14, +	0xb1, 0x0a, 0xff, 0x55, 0x25, 0xd0, 0x9d, 0x8d +}; +static const u8 enc_output103[] __initconst = { +	0x41, 0x40, 0xdf, 0x25, 0xb8, 0xd3, 0x21, 0x94, +	0xe7, 0x8e, 0x51, 0xd4, 0x17, 0x38, 0xcc, 0x6d, +	0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x0b, 0x06, 0x86, 0xf9, 0x3d, 0x84, 0x98, 0x59, +	0xfe, 0xd6, 0xb8, 0x18, 0x52, 0x0d, 0x45, 0x01, +	0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x0b, 0x06, 0x86, 0xf9, 0x3d, 0x84, 0x98, 0x59, +	0xfe, 0xd6, 0xb8, 0x18, 0x52, 0x0d, 0x45, 0x01, +	0x86, 0xfb, 0xab, 0x2b, 0x4a, 0x94, 0xf4, 0x7a, +	0xa5, 0x6f, 0x0a, 0xea, 0x65, 0xd1, 0x10, 0x08 +}; +static const u8 enc_assoc103[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce103[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key103[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input104[] __initconst = { +	0xb2, 0x47, 0xa7, 0x47, 0x23, 0x49, 0x1a, 0xac, +	0xac, 0xaa, 0xd7, 0x09, 0xc9, 0x1e, 0x93, 0x2b, +	0x31, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0x9a, 0xde, 0x04, 0xe7, 0x5b, 0xb7, 0x01, 0xd9, +	0x66, 0x06, 0x01, 0xb3, 0x47, 0x65, 0xde, 0x98, +	0xd5, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0x42, 0x89, 0x79, 0x44, 0xc2, 0xa2, 0x8f, 0xa1, +	0x76, 0x11, 0xd7, 0xfa, 0x5c, 0x22, 0xad, 0x8f +}; +static const u8 enc_output104[] __initconst = { +	0xb2, 0x2c, 0x70, 0x68, 0xa5, 0x83, 0xfa, 0x35, +	0x0f, 0x85, 0x29, 0xc3, 0x75, 0xf8, 0xeb, 0x88, +	0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xfa, 0x5b, 0x16, 0x2d, 0x6f, 0x12, 0xd1, 0xec, +	0x39, 0xcd, 0x90, 0xb7, 0x2b, 0xff, 0x75, 0x03, +	0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xfa, 0x5b, 0x16, 0x2d, 0x6f, 0x12, 0xd1, 0xec, +	0x39, 0xcd, 0x90, 0xb7, 0x2b, 0xff, 0x75, 0x03, +	0xa0, 0x19, 0xac, 0x2e, 0xd6, 0x67, 0xe1, 0x7d, +	0xa1, 0x6f, 0x0a, 0xfa, 0x19, 0x61, 0x0d, 0x0d +}; +static const u8 enc_assoc104[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce104[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key104[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input105[] __initconst = { +	0x74, 0x0f, 0x9e, 0x49, 0xf6, 0x10, 0xef, 0xa5, +	0x85, 0xb6, 0x59, 0xca, 0x6e, 0xd8, 0xb4, 0x99, +	0x2d, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0x41, 0x2d, 0x96, 0xaf, 0xbe, 0x80, 0xec, 0x3e, +	0x79, 0xd4, 0x51, 0xb0, 0x0a, 0x2d, 0xb2, 0x9a, +	0xc9, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0x99, 0x7a, 0xeb, 0x0c, 0x27, 0x95, 0x62, 0x46, +	0x69, 0xc3, 0x87, 0xf9, 0x11, 0x6a, 0xc1, 0x8d +}; +static const u8 enc_output105[] __initconst = { +	0x74, 0x64, 0x49, 0x66, 0x70, 0xda, 0x0f, 0x3c, +	0x26, 0x99, 0xa7, 0x00, 0xd2, 0x3e, 0xcc, 0x3a, +	0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x21, 0xa8, 0x84, 0x65, 0x8a, 0x25, 0x3c, 0x0b, +	0x26, 0x1f, 0xc0, 0xb4, 0x66, 0xb7, 0x19, 0x01, +	0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x21, 0xa8, 0x84, 0x65, 0x8a, 0x25, 0x3c, 0x0b, +	0x26, 0x1f, 0xc0, 0xb4, 0x66, 0xb7, 0x19, 0x01, +	0x73, 0x6e, 0x18, 0x18, 0x16, 0x96, 0xa5, 0x88, +	0x9c, 0x31, 0x59, 0xfa, 0xab, 0xab, 0x20, 0xfd +}; +static const u8 enc_assoc105[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce105[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key105[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input106[] __initconst = { +	0xad, 0xba, 0x5d, 0x10, 0x5b, 0xc8, 0xaa, 0x06, +	0x2c, 0x23, 0x36, 0xcb, 0x88, 0x9d, 0xdb, 0xd5, +	0x37, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0x17, 0x7c, 0x5f, 0xfe, 0x28, 0x75, 0xf4, 0x68, +	0xf6, 0xc2, 0x96, 0x57, 0x48, 0xf3, 0x59, 0x9a, +	0xd3, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0xcf, 0x2b, 0x22, 0x5d, 0xb1, 0x60, 0x7a, 0x10, +	0xe6, 0xd5, 0x40, 0x1e, 0x53, 0xb4, 0x2a, 0x8d +}; +static const u8 enc_output106[] __initconst = { +	0xad, 0xd1, 0x8a, 0x3f, 0xdd, 0x02, 0x4a, 0x9f, +	0x8f, 0x0c, 0xc8, 0x01, 0x34, 0x7b, 0xa3, 0x76, +	0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x77, 0xf9, 0x4d, 0x34, 0x1c, 0xd0, 0x24, 0x5d, +	0xa9, 0x09, 0x07, 0x53, 0x24, 0x69, 0xf2, 0x01, +	0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x77, 0xf9, 0x4d, 0x34, 0x1c, 0xd0, 0x24, 0x5d, +	0xa9, 0x09, 0x07, 0x53, 0x24, 0x69, 0xf2, 0x01, +	0xba, 0xd5, 0x8f, 0x10, 0xa9, 0x1e, 0x6a, 0x88, +	0x9a, 0xba, 0x32, 0xfd, 0x17, 0xd8, 0x33, 0x1a +}; +static const u8 enc_assoc106[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce106[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key106[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input107[] __initconst = { +	0xfe, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0xc0, 0x01, 0xed, 0xc5, 0xda, 0x44, 0x2e, 0x71, +	0x9b, 0xce, 0x9a, 0xbe, 0x27, 0x3a, 0xf1, 0x44, +	0xb4, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0x48, 0x02, 0x5f, 0x41, 0xfa, 0x4e, 0x33, 0x6c, +	0x78, 0x69, 0x57, 0xa2, 0xa7, 0xc4, 0x93, 0x0a, +	0x6c, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0x00, 0x26, 0x6e, 0xa1, 0xe4, 0x36, 0x44, 0xa3, +	0x4d, 0x8d, 0xd1, 0xdc, 0x93, 0xf2, 0xfa, 0x13 +}; +static const u8 enc_output107[] __initconst = { +	0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x47, 0xc3, 0x27, 0xcc, 0x36, 0x5d, 0x08, 0x87, +	0x59, 0x09, 0x8c, 0x34, 0x1b, 0x4a, 0xed, 0x03, +	0xd4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x2b, 0x0b, 0x97, 0x3f, 0x74, 0x5b, 0x28, 0xaa, +	0xe9, 0x37, 0xf5, 0x9f, 0x18, 0xea, 0xc7, 0x01, +	0xd4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x2b, 0x0b, 0x97, 0x3f, 0x74, 0x5b, 0x28, 0xaa, +	0xe9, 0x37, 0xf5, 0x9f, 0x18, 0xea, 0xc7, 0x01, +	0xd6, 0x8c, 0xe1, 0x74, 0x07, 0x9a, 0xdd, 0x02, +	0x8d, 0xd0, 0x5c, 0xf8, 0x14, 0x63, 0x04, 0x88 +}; +static const u8 enc_assoc107[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce107[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key107[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input108[] __initconst = { +	0xb5, 0x13, 0xb0, 0x6a, 0xb9, 0xac, 0x14, 0x43, +	0x5a, 0xcb, 0x8a, 0xa3, 0xa3, 0x7a, 0xfd, 0xb6, +	0x54, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0x61, 0x95, 0x01, 0x93, 0xb1, 0xbf, 0x03, 0x11, +	0xff, 0x11, 0x79, 0x89, 0xae, 0xd9, 0xa9, 0x99, +	0xb0, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0xb9, 0xc2, 0x7c, 0x30, 0x28, 0xaa, 0x8d, 0x69, +	0xef, 0x06, 0xaf, 0xc0, 0xb5, 0x9e, 0xda, 0x8e +}; +static const u8 enc_output108[] __initconst = { +	0xb5, 0x78, 0x67, 0x45, 0x3f, 0x66, 0xf4, 0xda, +	0xf9, 0xe4, 0x74, 0x69, 0x1f, 0x9c, 0x85, 0x15, +	0xd3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x01, 0x10, 0x13, 0x59, 0x85, 0x1a, 0xd3, 0x24, +	0xa0, 0xda, 0xe8, 0x8d, 0xc2, 0x43, 0x02, 0x02, +	0xd3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x01, 0x10, 0x13, 0x59, 0x85, 0x1a, 0xd3, 0x24, +	0xa0, 0xda, 0xe8, 0x8d, 0xc2, 0x43, 0x02, 0x02, +	0xaa, 0x48, 0xa3, 0x88, 0x7d, 0x4b, 0x05, 0x96, +	0x99, 0xc2, 0xfd, 0xf9, 0xc6, 0x78, 0x7e, 0x0a +}; +static const u8 enc_assoc108[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce108[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key108[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input109[] __initconst = { +	0xff, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0xd4, 0xf1, 0x09, 0xe8, 0x14, 0xce, 0xa8, 0x5a, +	0x08, 0xc0, 0x11, 0xd8, 0x50, 0xdd, 0x1d, 0xcb, +	0xcf, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0x53, 0x40, 0xb8, 0x5a, 0x9a, 0xa0, 0x82, 0x96, +	0xb7, 0x7a, 0x5f, 0xc3, 0x96, 0x1f, 0x66, 0x0f, +	0x17, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0x1b, 0x64, 0x89, 0xba, 0x84, 0xd8, 0xf5, 0x59, +	0x82, 0x9e, 0xd9, 0xbd, 0xa2, 0x29, 0x0f, 0x16 +}; +static const u8 enc_output109[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x53, 0x33, 0xc3, 0xe1, 0xf8, 0xd7, 0x8e, 0xac, +	0xca, 0x07, 0x07, 0x52, 0x6c, 0xad, 0x01, 0x8c, +	0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x30, 0x49, 0x70, 0x24, 0x14, 0xb5, 0x99, 0x50, +	0x26, 0x24, 0xfd, 0xfe, 0x29, 0x31, 0x32, 0x04, +	0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x30, 0x49, 0x70, 0x24, 0x14, 0xb5, 0x99, 0x50, +	0x26, 0x24, 0xfd, 0xfe, 0x29, 0x31, 0x32, 0x04, +	0xb9, 0x36, 0xa8, 0x17, 0xf2, 0x21, 0x1a, 0xf1, +	0x29, 0xe2, 0xcf, 0x16, 0x0f, 0xd4, 0x2b, 0xcb +}; +static const u8 enc_assoc109[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce109[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key109[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input110[] __initconst = { +	0xff, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0xdf, 0x4c, 0x62, 0x03, 0x2d, 0x41, 0x19, 0xb5, +	0x88, 0x47, 0x7e, 0x99, 0x92, 0x5a, 0x56, 0xd9, +	0xd6, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0xfa, 0x84, 0xf0, 0x64, 0x55, 0x36, 0x42, 0x1b, +	0x2b, 0xb9, 0x24, 0x6e, 0xc2, 0x19, 0xed, 0x0b, +	0x0e, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0xb2, 0xa0, 0xc1, 0x84, 0x4b, 0x4e, 0x35, 0xd4, +	0x1e, 0x5d, 0xa2, 0x10, 0xf6, 0x2f, 0x84, 0x12 +}; +static const u8 enc_output110[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x58, 0x8e, 0xa8, 0x0a, 0xc1, 0x58, 0x3f, 0x43, +	0x4a, 0x80, 0x68, 0x13, 0xae, 0x2a, 0x4a, 0x9e, +	0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x99, 0x8d, 0x38, 0x1a, 0xdb, 0x23, 0x59, 0xdd, +	0xba, 0xe7, 0x86, 0x53, 0x7d, 0x37, 0xb9, 0x00, +	0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x99, 0x8d, 0x38, 0x1a, 0xdb, 0x23, 0x59, 0xdd, +	0xba, 0xe7, 0x86, 0x53, 0x7d, 0x37, 0xb9, 0x00, +	0x9f, 0x7a, 0xc4, 0x35, 0x1f, 0x6b, 0x91, 0xe6, +	0x30, 0x97, 0xa7, 0x13, 0x11, 0x5d, 0x05, 0xbe +}; +static const u8 enc_assoc110[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce110[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key110[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input111[] __initconst = { +	0xff, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0x13, 0xf8, 0x0a, 0x00, 0x6d, 0xc1, 0xbb, 0xda, +	0xd6, 0x39, 0xa9, 0x2f, 0xc7, 0xec, 0xa6, 0x55, +	0xf7, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0x63, 0x48, 0xb8, 0xfd, 0x29, 0xbf, 0x96, 0xd5, +	0x63, 0xa5, 0x17, 0xe2, 0x7d, 0x7b, 0xfc, 0x0f, +	0x2f, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0x2b, 0x6c, 0x89, 0x1d, 0x37, 0xc7, 0xe1, 0x1a, +	0x56, 0x41, 0x91, 0x9c, 0x49, 0x4d, 0x95, 0x16 +}; +static const u8 enc_output111[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x94, 0x3a, 0xc0, 0x09, 0x81, 0xd8, 0x9d, 0x2c, +	0x14, 0xfe, 0xbf, 0xa5, 0xfb, 0x9c, 0xba, 0x12, +	0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x41, 0x70, 0x83, 0xa7, 0xaa, 0x8d, 0x13, +	0xf2, 0xfb, 0xb5, 0xdf, 0xc2, 0x55, 0xa8, 0x04, +	0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x00, 0x41, 0x70, 0x83, 0xa7, 0xaa, 0x8d, 0x13, +	0xf2, 0xfb, 0xb5, 0xdf, 0xc2, 0x55, 0xa8, 0x04, +	0x9a, 0x18, 0xa8, 0x28, 0x07, 0x02, 0x69, 0xf4, +	0x47, 0x00, 0xd0, 0x09, 0xe7, 0x17, 0x1c, 0xc9 +}; +static const u8 enc_assoc111[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce111[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key111[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input112[] __initconst = { +	0xff, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0x82, 0xe5, 0x9b, 0x45, 0x82, 0x91, 0x50, 0x38, +	0xf9, 0x33, 0x81, 0x1e, 0x65, 0x2d, 0xc6, 0x6a, +	0xfc, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0xb6, 0x71, 0xc8, 0xca, 0xc2, 0x70, 0xc2, 0x65, +	0xa0, 0xac, 0x2f, 0x53, 0x57, 0x99, 0x88, 0x0a, +	0x24, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0xfe, 0x55, 0xf9, 0x2a, 0xdc, 0x08, 0xb5, 0xaa, +	0x95, 0x48, 0xa9, 0x2d, 0x63, 0xaf, 0xe1, 0x13 +}; +static const u8 enc_output112[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x05, 0x27, 0x51, 0x4c, 0x6e, 0x88, 0x76, 0xce, +	0x3b, 0xf4, 0x97, 0x94, 0x59, 0x5d, 0xda, 0x2d, +	0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xd5, 0x78, 0x00, 0xb4, 0x4c, 0x65, 0xd9, 0xa3, +	0x31, 0xf2, 0x8d, 0x6e, 0xe8, 0xb7, 0xdc, 0x01, +	0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xd5, 0x78, 0x00, 0xb4, 0x4c, 0x65, 0xd9, 0xa3, +	0x31, 0xf2, 0x8d, 0x6e, 0xe8, 0xb7, 0xdc, 0x01, +	0xb4, 0x36, 0xa8, 0x2b, 0x93, 0xd5, 0x55, 0xf7, +	0x43, 0x00, 0xd0, 0x19, 0x9b, 0xa7, 0x18, 0xce +}; +static const u8 enc_assoc112[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce112[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key112[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input113[] __initconst = { +	0xff, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0xf1, 0xd1, 0x28, 0x87, 0xb7, 0x21, 0x69, 0x86, +	0xa1, 0x2d, 0x79, 0x09, 0x8b, 0x6d, 0xe6, 0x0f, +	0xc0, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0xa7, 0xc7, 0x58, 0x99, 0xf3, 0xe6, 0x0a, 0xf1, +	0xfc, 0xb6, 0xc7, 0x30, 0x7d, 0x87, 0x59, 0x0f, +	0x18, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0xef, 0xe3, 0x69, 0x79, 0xed, 0x9e, 0x7d, 0x3e, +	0xc9, 0x52, 0x41, 0x4e, 0x49, 0xb1, 0x30, 0x16 +}; +static const u8 enc_output113[] __initconst = { +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x76, 0x13, 0xe2, 0x8e, 0x5b, 0x38, 0x4f, 0x70, +	0x63, 0xea, 0x6f, 0x83, 0xb7, 0x1d, 0xfa, 0x48, +	0xa0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xc4, 0xce, 0x90, 0xe7, 0x7d, 0xf3, 0x11, 0x37, +	0x6d, 0xe8, 0x65, 0x0d, 0xc2, 0xa9, 0x0d, 0x04, +	0xa0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xc4, 0xce, 0x90, 0xe7, 0x7d, 0xf3, 0x11, 0x37, +	0x6d, 0xe8, 0x65, 0x0d, 0xc2, 0xa9, 0x0d, 0x04, +	0xce, 0x54, 0xa8, 0x2e, 0x1f, 0xa9, 0x42, 0xfa, +	0x3f, 0x00, 0xd0, 0x29, 0x4f, 0x37, 0x15, 0xd3 +}; +static const u8 enc_assoc113[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce113[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key113[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input114[] __initconst = { +	0xcb, 0xf1, 0xda, 0x9e, 0x0b, 0xa9, 0x37, 0x73, +	0x74, 0xe6, 0x9e, 0x1c, 0x0e, 0x60, 0x0c, 0xfc, +	0x34, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0xbe, 0x3f, 0xa6, 0x6b, 0x6c, 0xe7, 0x80, 0x8a, +	0xa3, 0xe4, 0x59, 0x49, 0xf9, 0x44, 0x64, 0x9f, +	0xd0, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0x66, 0x68, 0xdb, 0xc8, 0xf5, 0xf2, 0x0e, 0xf2, +	0xb3, 0xf3, 0x8f, 0x00, 0xe2, 0x03, 0x17, 0x88 +}; +static const u8 enc_output114[] __initconst = { +	0xcb, 0x9a, 0x0d, 0xb1, 0x8d, 0x63, 0xd7, 0xea, +	0xd7, 0xc9, 0x60, 0xd6, 0xb2, 0x86, 0x74, 0x5f, +	0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xde, 0xba, 0xb4, 0xa1, 0x58, 0x42, 0x50, 0xbf, +	0xfc, 0x2f, 0xc8, 0x4d, 0x95, 0xde, 0xcf, 0x04, +	0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xde, 0xba, 0xb4, 0xa1, 0x58, 0x42, 0x50, 0xbf, +	0xfc, 0x2f, 0xc8, 0x4d, 0x95, 0xde, 0xcf, 0x04, +	0x23, 0x83, 0xab, 0x0b, 0x79, 0x92, 0x05, 0x69, +	0x9b, 0x51, 0x0a, 0xa7, 0x09, 0xbf, 0x31, 0xf1 +}; +static const u8 enc_assoc114[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce114[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key114[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input115[] __initconst = { +	0x8f, 0x27, 0x86, 0x94, 0xc4, 0xe9, 0xda, 0xeb, +	0xd5, 0x8d, 0x3e, 0x5b, 0x96, 0x6e, 0x8b, 0x68, +	0x42, 0x3d, 0x35, 0xf6, 0x13, 0xe6, 0xd9, 0x09, +	0x3d, 0x38, 0xe9, 0x75, 0xc3, 0x8f, 0xe3, 0xb8, +	0x06, 0x53, 0xe7, 0xa3, 0x31, 0x71, 0x88, 0x33, +	0xac, 0xc3, 0xb9, 0xad, 0xff, 0x1c, 0x31, 0x98, +	0xa6, 0xf6, 0x37, 0x81, 0x71, 0xea, 0xe4, 0x39, +	0x6e, 0xa1, 0x5d, 0xc2, 0x40, 0xd1, 0xab, 0xf4, +	0xde, 0x04, 0x9a, 0x00, 0xa8, 0x64, 0x06, 0x4b, +	0xbc, 0xd4, 0x6f, 0xe4, 0xe4, 0x5b, 0x42, 0x8f +}; +static const u8 enc_output115[] __initconst = { +	0x8f, 0x4c, 0x51, 0xbb, 0x42, 0x23, 0x3a, 0x72, +	0x76, 0xa2, 0xc0, 0x91, 0x2a, 0x88, 0xf3, 0xcb, +	0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x66, 0xd6, 0xf5, 0x69, 0x05, 0xd4, 0x58, 0x06, +	0xf3, 0x08, 0x28, 0xa9, 0x93, 0x86, 0x9a, 0x03, +	0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x66, 0xd6, 0xf5, 0x69, 0x05, 0xd4, 0x58, 0x06, +	0xf3, 0x08, 0x28, 0xa9, 0x93, 0x86, 0x9a, 0x03, +	0x8b, 0xfb, 0xab, 0x17, 0xa9, 0xe0, 0xb8, 0x74, +	0x8b, 0x51, 0x0a, 0xe7, 0xd9, 0xfd, 0x23, 0x05 +}; +static const u8 enc_assoc115[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce115[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key115[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input116[] __initconst = { +	0xd5, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0x9a, 0x22, 0xd7, 0x0a, 0x48, 0xe2, 0x4f, 0xdd, +	0xcd, 0xd4, 0x41, 0x9d, 0xe6, 0x4c, 0x8f, 0x44, +	0xfc, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0x77, 0xb5, 0xc9, 0x07, 0xd9, 0xc9, 0xe1, 0xea, +	0x51, 0x85, 0x1a, 0x20, 0x4a, 0xad, 0x9f, 0x0a, +	0x24, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0x3f, 0x91, 0xf8, 0xe7, 0xc7, 0xb1, 0x96, 0x25, +	0x64, 0x61, 0x9c, 0x5e, 0x7e, 0x9b, 0xf6, 0x13 +}; +static const u8 enc_output116[] __initconst = { +	0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x1d, 0xe0, 0x1d, 0x03, 0xa4, 0xfb, 0x69, 0x2b, +	0x0f, 0x13, 0x57, 0x17, 0xda, 0x3c, 0x93, 0x03, +	0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x14, 0xbc, 0x01, 0x79, 0x57, 0xdc, 0xfa, 0x2c, +	0xc0, 0xdb, 0xb8, 0x1d, 0xf5, 0x83, 0xcb, 0x01, +	0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x14, 0xbc, 0x01, 0x79, 0x57, 0xdc, 0xfa, 0x2c, +	0xc0, 0xdb, 0xb8, 0x1d, 0xf5, 0x83, 0xcb, 0x01, +	0x49, 0xbc, 0x6e, 0x9f, 0xc5, 0x1c, 0x4d, 0x50, +	0x30, 0x36, 0x64, 0x4d, 0x84, 0x27, 0x73, 0xd2 +}; +static const u8 enc_assoc116[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce116[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key116[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input117[] __initconst = { +	0xdb, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0x75, 0xd5, 0x64, 0x3a, 0xa5, 0xaf, 0x93, 0x4d, +	0x8c, 0xce, 0x39, 0x2c, 0xc3, 0xee, 0xdb, 0x47, +	0xc0, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0x60, 0x1b, 0x5a, 0xd2, 0x06, 0x7f, 0x28, 0x06, +	0x6a, 0x8f, 0x32, 0x81, 0x71, 0x5b, 0xa8, 0x08, +	0x18, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0x28, 0x3f, 0x6b, 0x32, 0x18, 0x07, 0x5f, 0xc9, +	0x5f, 0x6b, 0xb4, 0xff, 0x45, 0x6d, 0xc1, 0x11 +}; +static const u8 enc_output117[] __initconst = { +	0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xf2, 0x17, 0xae, 0x33, 0x49, 0xb6, 0xb5, 0xbb, +	0x4e, 0x09, 0x2f, 0xa6, 0xff, 0x9e, 0xc7, 0x00, +	0xa0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x03, 0x12, 0x92, 0xac, 0x88, 0x6a, 0x33, 0xc0, +	0xfb, 0xd1, 0x90, 0xbc, 0xce, 0x75, 0xfc, 0x03, +	0xa0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0x03, 0x12, 0x92, 0xac, 0x88, 0x6a, 0x33, 0xc0, +	0xfb, 0xd1, 0x90, 0xbc, 0xce, 0x75, 0xfc, 0x03, +	0x63, 0xda, 0x6e, 0xa2, 0x51, 0xf0, 0x39, 0x53, +	0x2c, 0x36, 0x64, 0x5d, 0x38, 0xb7, 0x6f, 0xd7 +}; +static const u8 enc_assoc117[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce117[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key117[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +/* wycheproof - edge case intermediate sums in poly1305 */ +static const u8 enc_input118[] __initconst = { +	0x93, 0x94, 0x28, 0xd0, 0x79, 0x35, 0x1f, 0x66, +	0x5c, 0xd0, 0x01, 0x35, 0x43, 0x19, 0x87, 0x5c, +	0x62, 0x48, 0x39, 0x60, 0x42, 0x16, 0xe4, 0x03, +	0xeb, 0xcc, 0x6a, 0xf5, 0x59, 0xec, 0x8b, 0x43, +	0x97, 0x7a, 0xed, 0x35, 0xcb, 0x5a, 0x2f, 0xca, +	0xa0, 0x34, 0x6e, 0xfb, 0x93, 0x65, 0x54, 0x64, +	0xd8, 0xc8, 0xc3, 0xfa, 0x1a, 0x9e, 0x47, 0x4a, +	0xbe, 0x52, 0xd0, 0x2c, 0x81, 0x87, 0xe9, 0x0f, +	0x4f, 0x2d, 0x90, 0x96, 0x52, 0x4f, 0xa1, 0xb2, +	0xb0, 0x23, 0xb8, 0xb2, 0x88, 0x22, 0x27, 0x73, +	0x90, 0xec, 0xf2, 0x1a, 0x04, 0xe6, 0x30, 0x85, +	0x8b, 0xb6, 0x56, 0x52, 0xb5, 0xb1, 0x80, 0x16 +}; +static const u8 enc_output118[] __initconst = { +	0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xe5, 0x8a, 0xf3, 0x69, 0xae, 0x0f, 0xc2, 0xf5, +	0x29, 0x0b, 0x7c, 0x7f, 0x65, 0x9c, 0x97, 0x04, +	0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xbb, 0xc1, 0x0b, 0x84, 0x94, 0x8b, 0x5c, 0x8c, +	0x2f, 0x0c, 0x72, 0x11, 0x3e, 0xa9, 0xbd, 0x04, +	0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +	0xbb, 0xc1, 0x0b, 0x84, 0x94, 0x8b, 0x5c, 0x8c, +	0x2f, 0x0c, 0x72, 0x11, 0x3e, 0xa9, 0xbd, 0x04, +	0x73, 0xeb, 0x27, 0x24, 0xb5, 0xc4, 0x05, 0xf0, +	0x4d, 0x00, 0xd0, 0xf1, 0x58, 0x40, 0xa1, 0xc1 +}; +static const u8 enc_assoc118[] __initconst = { +	0xff, 0xff, 0xff, 0xff +}; +static const u8 enc_nonce118[] __initconst = { +	0x00, 0x00, 0x00, 0x00, 0x06, 0x4c, 0x2d, 0x52 +}; +static const u8 enc_key118[] __initconst = { +	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, +	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, +	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, +	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f +}; + +static const struct chacha20poly1305_testvec +chacha20poly1305_enc_vectors[] __initconst = { +	{ enc_input001, enc_output001, enc_assoc001, enc_nonce001, enc_key001, +	  sizeof(enc_input001), sizeof(enc_assoc001), sizeof(enc_nonce001) }, +	{ enc_input002, enc_output002, enc_assoc002, enc_nonce002, enc_key002, +	  sizeof(enc_input002), sizeof(enc_assoc002), sizeof(enc_nonce002) }, +	{ enc_input003, enc_output003, enc_assoc003, enc_nonce003, enc_key003, +	  sizeof(enc_input003), sizeof(enc_assoc003), sizeof(enc_nonce003) }, +	{ enc_input004, enc_output004, enc_assoc004, enc_nonce004, enc_key004, +	  sizeof(enc_input004), sizeof(enc_assoc004), sizeof(enc_nonce004) }, +	{ enc_input005, enc_output005, enc_assoc005, enc_nonce005, enc_key005, +	  sizeof(enc_input005), sizeof(enc_assoc005), sizeof(enc_nonce005) }, +	{ enc_input006, enc_output006, enc_assoc006, enc_nonce006, enc_key006, +	  sizeof(enc_input006), sizeof(enc_assoc006), sizeof(enc_nonce006) }, +	{ enc_input007, enc_output007, enc_assoc007, enc_nonce007, enc_key007, +	  sizeof(enc_input007), sizeof(enc_assoc007), sizeof(enc_nonce007) }, +	{ enc_input008, enc_output008, enc_assoc008, enc_nonce008, enc_key008, +	  sizeof(enc_input008), sizeof(enc_assoc008), sizeof(enc_nonce008) }, +	{ enc_input009, enc_output009, enc_assoc009, enc_nonce009, enc_key009, +	  sizeof(enc_input009), sizeof(enc_assoc009), sizeof(enc_nonce009) }, +	{ enc_input010, enc_output010, enc_assoc010, enc_nonce010, enc_key010, +	  sizeof(enc_input010), sizeof(enc_assoc010), sizeof(enc_nonce010) }, +	{ enc_input011, enc_output011, enc_assoc011, enc_nonce011, enc_key011, +	  sizeof(enc_input011), sizeof(enc_assoc011), sizeof(enc_nonce011) }, +	{ enc_input012, enc_output012, enc_assoc012, enc_nonce012, enc_key012, +	  sizeof(enc_input012), sizeof(enc_assoc012), sizeof(enc_nonce012) }, +	{ enc_input053, enc_output053, enc_assoc053, enc_nonce053, enc_key053, +	  sizeof(enc_input053), sizeof(enc_assoc053), sizeof(enc_nonce053) }, +	{ enc_input054, enc_output054, enc_assoc054, enc_nonce054, enc_key054, +	  sizeof(enc_input054), sizeof(enc_assoc054), sizeof(enc_nonce054) }, +	{ enc_input055, enc_output055, enc_assoc055, enc_nonce055, enc_key055, +	  sizeof(enc_input055), sizeof(enc_assoc055), sizeof(enc_nonce055) }, +	{ enc_input056, enc_output056, enc_assoc056, enc_nonce056, enc_key056, +	  sizeof(enc_input056), sizeof(enc_assoc056), sizeof(enc_nonce056) }, +	{ enc_input057, enc_output057, enc_assoc057, enc_nonce057, enc_key057, +	  sizeof(enc_input057), sizeof(enc_assoc057), sizeof(enc_nonce057) }, +	{ enc_input058, enc_output058, enc_assoc058, enc_nonce058, enc_key058, +	  sizeof(enc_input058), sizeof(enc_assoc058), sizeof(enc_nonce058) }, +	{ enc_input059, enc_output059, enc_assoc059, enc_nonce059, enc_key059, +	  sizeof(enc_input059), sizeof(enc_assoc059), sizeof(enc_nonce059) }, +	{ enc_input060, enc_output060, enc_assoc060, enc_nonce060, enc_key060, +	  sizeof(enc_input060), sizeof(enc_assoc060), sizeof(enc_nonce060) }, +	{ enc_input061, enc_output061, enc_assoc061, enc_nonce061, enc_key061, +	  sizeof(enc_input061), sizeof(enc_assoc061), sizeof(enc_nonce061) }, +	{ enc_input062, enc_output062, enc_assoc062, enc_nonce062, enc_key062, +	  sizeof(enc_input062), sizeof(enc_assoc062), sizeof(enc_nonce062) }, +	{ enc_input063, enc_output063, enc_assoc063, enc_nonce063, enc_key063, +	  sizeof(enc_input063), sizeof(enc_assoc063), sizeof(enc_nonce063) }, +	{ enc_input064, enc_output064, enc_assoc064, enc_nonce064, enc_key064, +	  sizeof(enc_input064), sizeof(enc_assoc064), sizeof(enc_nonce064) }, +	{ enc_input065, enc_output065, enc_assoc065, enc_nonce065, enc_key065, +	  sizeof(enc_input065), sizeof(enc_assoc065), sizeof(enc_nonce065) }, +	{ enc_input066, enc_output066, enc_assoc066, enc_nonce066, enc_key066, +	  sizeof(enc_input066), sizeof(enc_assoc066), sizeof(enc_nonce066) }, +	{ enc_input067, enc_output067, enc_assoc067, enc_nonce067, enc_key067, +	  sizeof(enc_input067), sizeof(enc_assoc067), sizeof(enc_nonce067) }, +	{ enc_input068, enc_output068, enc_assoc068, enc_nonce068, enc_key068, +	  sizeof(enc_input068), sizeof(enc_assoc068), sizeof(enc_nonce068) }, +	{ enc_input069, enc_output069, enc_assoc069, enc_nonce069, enc_key069, +	  sizeof(enc_input069), sizeof(enc_assoc069), sizeof(enc_nonce069) }, +	{ enc_input070, enc_output070, enc_assoc070, enc_nonce070, enc_key070, +	  sizeof(enc_input070), sizeof(enc_assoc070), sizeof(enc_nonce070) }, +	{ enc_input071, enc_output071, enc_assoc071, enc_nonce071, enc_key071, +	  sizeof(enc_input071), sizeof(enc_assoc071), sizeof(enc_nonce071) }, +	{ enc_input072, enc_output072, enc_assoc072, enc_nonce072, enc_key072, +	  sizeof(enc_input072), sizeof(enc_assoc072), sizeof(enc_nonce072) }, +	{ enc_input073, enc_output073, enc_assoc073, enc_nonce073, enc_key073, +	  sizeof(enc_input073), sizeof(enc_assoc073), sizeof(enc_nonce073) }, +	{ enc_input076, enc_output076, enc_assoc076, enc_nonce076, enc_key076, +	  sizeof(enc_input076), sizeof(enc_assoc076), sizeof(enc_nonce076) }, +	{ enc_input077, enc_output077, enc_assoc077, enc_nonce077, enc_key077, +	  sizeof(enc_input077), sizeof(enc_assoc077), sizeof(enc_nonce077) }, +	{ enc_input078, enc_output078, enc_assoc078, enc_nonce078, enc_key078, +	  sizeof(enc_input078), sizeof(enc_assoc078), sizeof(enc_nonce078) }, +	{ enc_input079, enc_output079, enc_assoc079, enc_nonce079, enc_key079, +	  sizeof(enc_input079), sizeof(enc_assoc079), sizeof(enc_nonce079) }, +	{ enc_input080, enc_output080, enc_assoc080, enc_nonce080, enc_key080, +	  sizeof(enc_input080), sizeof(enc_assoc080), sizeof(enc_nonce080) }, +	{ enc_input081, enc_output081, enc_assoc081, enc_nonce081, enc_key081, +	  sizeof(enc_input081), sizeof(enc_assoc081), sizeof(enc_nonce081) }, +	{ enc_input082, enc_output082, enc_assoc082, enc_nonce082, enc_key082, +	  sizeof(enc_input082), sizeof(enc_assoc082), sizeof(enc_nonce082) }, +	{ enc_input083, enc_output083, enc_assoc083, enc_nonce083, enc_key083, +	  sizeof(enc_input083), sizeof(enc_assoc083), sizeof(enc_nonce083) }, +	{ enc_input084, enc_output084, enc_assoc084, enc_nonce084, enc_key084, +	  sizeof(enc_input084), sizeof(enc_assoc084), sizeof(enc_nonce084) }, +	{ enc_input085, enc_output085, enc_assoc085, enc_nonce085, enc_key085, +	  sizeof(enc_input085), sizeof(enc_assoc085), sizeof(enc_nonce085) }, +	{ enc_input093, enc_output093, enc_assoc093, enc_nonce093, enc_key093, +	  sizeof(enc_input093), sizeof(enc_assoc093), sizeof(enc_nonce093) }, +	{ enc_input094, enc_output094, enc_assoc094, enc_nonce094, enc_key094, +	  sizeof(enc_input094), sizeof(enc_assoc094), sizeof(enc_nonce094) }, +	{ enc_input095, enc_output095, enc_assoc095, enc_nonce095, enc_key095, +	  sizeof(enc_input095), sizeof(enc_assoc095), sizeof(enc_nonce095) }, +	{ enc_input096, enc_output096, enc_assoc096, enc_nonce096, enc_key096, +	  sizeof(enc_input096), sizeof(enc_assoc096), sizeof(enc_nonce096) }, +	{ enc_input097, enc_output097, enc_assoc097, enc_nonce097, enc_key097, +	  sizeof(enc_input097), sizeof(enc_assoc097), sizeof(enc_nonce097) }, +	{ enc_input098, enc_output098, enc_assoc098, enc_nonce098, enc_key098, +	  sizeof(enc_input098), sizeof(enc_assoc098), sizeof(enc_nonce098) }, +	{ enc_input099, enc_output099, enc_assoc099, enc_nonce099, enc_key099, +	  sizeof(enc_input099), sizeof(enc_assoc099), sizeof(enc_nonce099) }, +	{ enc_input100, enc_output100, enc_assoc100, enc_nonce100, enc_key100, +	  sizeof(enc_input100), sizeof(enc_assoc100), sizeof(enc_nonce100) }, +	{ enc_input101, enc_output101, enc_assoc101, enc_nonce101, enc_key101, +	  sizeof(enc_input101), sizeof(enc_assoc101), sizeof(enc_nonce101) }, +	{ enc_input102, enc_output102, enc_assoc102, enc_nonce102, enc_key102, +	  sizeof(enc_input102), sizeof(enc_assoc102), sizeof(enc_nonce102) }, +	{ enc_input103, enc_output103, enc_assoc103, enc_nonce103, enc_key103, +	  sizeof(enc_input103), sizeof(enc_assoc103), sizeof(enc_nonce103) }, +	{ enc_input104, enc_output104, enc_assoc104, enc_nonce104, enc_key104, +	  sizeof(enc_input104), sizeof(enc_assoc104), sizeof(enc_nonce104) }, +	{ enc_input105, enc_output105, enc_assoc105, enc_nonce105, enc_key105, +	  sizeof(enc_input105), sizeof(enc_assoc105), sizeof(enc_nonce105) }, +	{ enc_input106, enc_output106, enc_assoc106, enc_nonce106, enc_key106, +	  sizeof(enc_input106), sizeof(enc_assoc106), sizeof(enc_nonce106) }, +	{ enc_input107, enc_output107, enc_assoc107, enc_nonce107, enc_key107, +	  sizeof(enc_input107), sizeof(enc_assoc107), sizeof(enc_nonce107) }, +	{ enc_input108, enc_output108, enc_assoc108, enc_nonce108, enc_key108, +	  sizeof(enc_input108), sizeof(enc_assoc108), sizeof(enc_nonce108) }, +	{ enc_input109, enc_output109, enc_assoc109, enc_nonce109, enc_key109, +	  sizeof(enc_input109), sizeof(enc_assoc109), sizeof(enc_nonce109) }, +	{ enc_input110, enc_output110, enc_assoc110, enc_nonce110, enc_key110, +	  sizeof(enc_input110), sizeof(enc_assoc110), sizeof(enc_nonce110) }, +	{ enc_input111, enc_output111, enc_assoc111, enc_nonce111, enc_key111, +	  sizeof(enc_input111), sizeof(enc_assoc111), sizeof(enc_nonce111) }, +	{ enc_input112, enc_output112, enc_assoc112, enc_nonce112, enc_key112, +	  sizeof(enc_input112), sizeof(enc_assoc112), sizeof(enc_nonce112) }, +	{ enc_input113, enc_output113, enc_assoc113, enc_nonce113, enc_key113, +	  sizeof(enc_input113), sizeof(enc_assoc113), sizeof(enc_nonce113) }, +	{ enc_input114, enc_output114, enc_assoc114, enc_nonce114, enc_key114, +	  sizeof(enc_input114), sizeof(enc_assoc114), sizeof(enc_nonce114) }, +	{ enc_input115, enc_output115, enc_assoc115, enc_nonce115, enc_key115, +	  sizeof(enc_input115), sizeof(enc_assoc115), sizeof(enc_nonce115) }, +	{ enc_input116, enc_output116, enc_assoc116, enc_nonce116, enc_key116, +	  sizeof(enc_input116), sizeof(enc_assoc116), sizeof(enc_nonce116) }, +	{ enc_input117, enc_output117, enc_assoc117, enc_nonce117, enc_key117, +	  sizeof(enc_input117), sizeof(enc_assoc117), sizeof(enc_nonce117) }, +	{ enc_input118, enc_output118, enc_assoc118, enc_nonce118, enc_key118, +	  sizeof(enc_input118), sizeof(enc_assoc118), sizeof(enc_nonce118) } +}; + +static const u8 dec_input001[] __initconst = { +	0x64, 0xa0, 0x86, 0x15, 0x75, 0x86, 0x1a, 0xf4, +	0x60, 0xf0, 0x62, 0xc7, 0x9b, 0xe6, 0x43, 0xbd, +	0x5e, 0x80, 0x5c, 0xfd, 0x34, 0x5c, 0xf3, 0x89, +	0xf1, 0x08, 0x67, 0x0a, 0xc7, 0x6c, 0x8c, 0xb2, +	0x4c, 0x6c, 0xfc, 0x18, 0x75, 0x5d, 0x43, 0xee, +	0xa0, 0x9e, 0xe9, 0x4e, 0x38, 0x2d, 0x26, 0xb0, +	0xbd, 0xb7, 0xb7, 0x3c, 0x32, 0x1b, 0x01, 0x00, +	0xd4, 0xf0, 0x3b, 0x7f, 0x35, 0x58, 0x94, 0xcf, +	0x33, 0x2f, 0x83, 0x0e, 0x71, 0x0b, 0x97, 0xce, +	0x98, 0xc8, 0xa8, 0x4a, 0xbd, 0x0b, 0x94, 0x81, +	0x14, 0xad, 0x17, 0x6e, 0x00, 0x8d, 0x33, 0xbd, +	0x60, 0xf9, 0x82, 0xb1, 0xff, 0x37, 0xc8, 0x55, +	0x97, 0x97, 0xa0, 0x6e, 0xf4, 0xf0, 0xef, 0x61, +	0xc1, 0x86, 0x32, 0x4e, 0x2b, 0x35, 0x06, 0x38, +	0x36, 0x06, 0x90, 0x7b, 0x6a, 0x7c, 0x02, 0xb0, +	0xf9, 0xf6, 0x15, 0x7b, 0x53, 0xc8, 0x67, 0xe4, +	0xb9, 0x16, 0x6c, 0x76, 0x7b, 0x80, 0x4d, 0x46, +	0xa5, 0x9b, 0x52, 0x16, 0xcd, 0xe7, 0xa4, 0xe9, +	0x90, 0x40, 0xc5, 0xa4, 0x04, 0x33, 0x22, 0x5e, +	0xe2, 0x82, 0xa1, 0xb0, 0xa0, 0x6c, 0x52, 0x3e, +	0xaf, 0x45, 0x34, 0xd7, 0xf8, 0x3f, 0xa1, 0x15, +	0x5b, 0x00, 0x47, 0x71, 0x8c, 0xbc, 0x54, 0x6a, +	0x0d, 0x07, 0x2b, 0x04, 0xb3, 0x56, 0x4e, 0xea, +	0x1b, 0x42, 0x22, 0x73, 0xf5, 0x48, 0x27, 0x1a, +	0x0b, 0xb2, 0x31, 0x60, 0x53, 0xfa, 0x76, 0x99, +	0x19, 0x55, 0xeb, 0xd6, 0x31, 0x59, 0x43, 0x4e, +	0xce, 0xbb, 0x4e, 0x46, 0x6d, 0xae, 0x5a, 0x10, +	0x73, 0xa6, 0x72, 0x76, 0x27, 0x09, 0x7a, 0x10, +	0x49, 0xe6, 0x17, 0xd9, 0x1d, 0x36, 0x10, 0x94, +	0xfa, 0x68, 0xf0, 0xff, 0x77, 0x98, 0x71, 0x30, +	0x30, 0x5b, 0xea, 0xba, 0x2e, 0xda, 0x04, 0xdf, +	0x99, 0x7b, 0x71, 0x4d, 0x6c, 0x6f, 0x2c, 0x29, +	0xa6, 0xad, 0x5c, 0xb4, 0x02, 0x2b, 0x02, 0x70, +	0x9b, 0xee, 0xad, 0x9d, 0x67, 0x89, 0x0c, 0xbb, +	0x22, 0x39, 0x23, 0x36, 0xfe, 0xa1, 0x85, 0x1f, +	0x38 +}; +static const u8 dec_output001[] __initconst = { +	0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, +	0x2d, 0x44, 0x72, 0x61, 0x66, 0x74, 0x73, 0x20, +	0x61, 0x72, 0x65, 0x20, 0x64, 0x72, 0x61, 0x66, +	0x74, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, +	0x6e, 0x74, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, +	0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, +	0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, +	0x6f, 0x66, 0x20, 0x73, 0x69, 0x78, 0x20, 0x6d, +	0x6f, 0x6e, 0x74, 0x68, 0x73, 0x20, 0x61, 0x6e, +	0x64, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, +	0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, +	0x2c, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, +	0x65, 0x64, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x6f, +	0x62, 0x73, 0x6f, 0x6c, 0x65, 0x74, 0x65, 0x64, +	0x20, 0x62, 0x79, 0x20, 0x6f, 0x74, 0x68, 0x65, +	0x72, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, +	0x6e, 0x74, 0x73, 0x20, 0x61, 0x74, 0x20, 0x61, +	0x6e, 0x79, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, +	0x20, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x69, +	0x6e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x70, 0x72, +	0x69, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, +	0x75, 0x73, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, +	0x72, 0x6e, 0x65, 0x74, 0x2d, 0x44, 0x72, 0x61, +	0x66, 0x74, 0x73, 0x20, 0x61, 0x73, 0x20, 0x72, +	0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, +	0x20, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, +	0x6c, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x20, +	0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, +	0x6d, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, +	0x74, 0x68, 0x61, 0x6e, 0x20, 0x61, 0x73, 0x20, +	0x2f, 0xe2, 0x80, 0x9c, 0x77, 0x6f, 0x72, 0x6b, +	0x20, 0x69, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x67, +	0x72, 0x65, 0x73, 0x73, 0x2e, 0x2f, 0xe2, 0x80, +	0x9d +}; +static const u8 dec_assoc001[] __initconst = { +	0xf3, 0x33, 0x88, 0x86, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x4e, 0x91 +}; +static const u8 dec_nonce001[] __initconst = { +	0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 +}; +static const u8 dec_key001[] __initconst = { +	0x1c, 0x92, 0x40, 0xa5, 0xeb, 0x55, 0xd3, 0x8a, +	0xf3, 0x33, 0x88, 0x86, 0x04, 0xf6, 0xb5, 0xf0, +	0x47, 0x39, 0x17, 0xc1, 0x40, 0x2b, 0x80, 0x09, +	0x9d, 0xca, 0x5c, 0xbc, 0x20, 0x70, 0x75, 0xc0 +}; + +static const u8 dec_input002[] __initconst = { +	0xea, 0xe0, 0x1e, 0x9e, 0x2c, 0x91, 0xaa, 0xe1, +	0xdb, 0x5d, 0x99, 0x3f, 0x8a, 0xf7, 0x69, 0x92 +}; +static const u8 dec_output002[] __initconst = { }; +static const u8 dec_assoc002[] __initconst = { }; +static const u8 dec_nonce002[] __initconst = { +	0xca, 0xbf, 0x33, 0x71, 0x32, 0x45, 0x77, 0x8e +}; +static const u8 dec_key002[] __initconst = { +	0x4c, 0xf5, 0x96, 0x83, 0x38, 0xe6, 0xae, 0x7f, +	0x2d, 0x29, 0x25, 0x76, 0xd5, 0x75, 0x27, 0x86, +	0x91, 0x9a, 0x27, 0x7a, 0xfb, 0x46, 0xc5, 0xef, +	0x94, 0x81, 0x79, 0x57, 0x14, 0x59, 0x40, 0x68 +}; + +static const u8 dec_input003[] __initconst = { +	0xdd, 0x6b, 0x3b, 0x82, 0xce, 0x5a, 0xbd, 0xd6, +	0xa9, 0x35, 0x83, 0xd8, 0x8c, 0x3d, 0x85, 0x77 +}; +static const u8 dec_output003[] __initconst = { }; +static const u8 dec_assoc003[] __initconst = { +	0x33, 0x10, 0x41, 0x12, 0x1f, 0xf3, 0xd2, 0x6b +}; +static const u8 dec_nonce003[] __initconst = { +	0x3d, 0x86, 0xb5, 0x6b, 0xc8, 0xa3, 0x1f, 0x1d +}; +static const u8 dec_key003[] __initconst = { +	0x2d, 0xb0, 0x5d, 0x40, 0xc8, 0xed, 0x44, 0x88, +	0x34, 0xd1, 0x13, 0xaf, 0x57, 0xa1, 0xeb, 0x3a, +	0x2a, 0x80, 0x51, 0x36, 0xec, 0x5b, 0xbc, 0x08, +	0x93, 0x84, 0x21, 0xb5, 0x13, 0x88, 0x3c, 0x0d +}; + +static const u8 dec_input004[] __initconst = { +	0xb7, 0x1b, 0xb0, 0x73, 0x59, 0xb0, 0x84, 0xb2, +	0x6d, 0x8e, 0xab, 0x94, 0x31, 0xa1, 0xae, 0xac, +	0x89 +}; +static const u8 dec_output004[] __initconst = { +	0xa4 +}; +static const u8 dec_assoc004[] __initconst = { +	0x6a, 0xe2, 0xad, 0x3f, 0x88, 0x39, 0x5a, 0x40 +}; +static const u8 dec_nonce004[] __initconst = { +	0xd2, 0x32, 0x1f, 0x29, 0x28, 0xc6, 0xc4, 0xc4 +}; +static const u8 dec_key004[] __initconst = { +	0x4b, 0x28, 0x4b, 0xa3, 0x7b, 0xbe, 0xe9, 0xf8, +	0x31, 0x80, 0x82, 0xd7, 0xd8, 0xe8, 0xb5, 0xa1, +	0xe2, 0x18, 0x18, 0x8a, 0x9c, 0xfa, 0xa3, 0x3d, +	0x25, 0x71, 0x3e, 0x40, 0xbc, 0x54, 0x7a, 0x3e +}; + +static const u8 dec_input005[] __initconst = { +	0xbf, 0xe1, 0x5b, 0x0b, 0xdb, 0x6b, 0xf5, 0x5e, +	0x6c, 0x5d, 0x84, 0x44, 0x39, 0x81, 0xc1, 0x9c, +	0xac +}; +static const u8 dec_output005[] __initconst = { +	0x2d +}; +static const u8 dec_assoc005[] __initconst = { }; +static const u8 dec_nonce005[] __initconst = { +	0x20, 0x1c, 0xaa, 0x5f, 0x9c, 0xbf, 0x92, 0x30 +}; +static const u8 dec_key005[] __initconst = { +	0x66, 0xca, 0x9c, 0x23, 0x2a, 0x4b, 0x4b, 0x31, +	0x0e, 0x92, 0x89, 0x8b, 0xf4, 0x93, 0xc7, 0x87, +	0x98, 0xa3, 0xd8, 0x39, 0xf8, 0xf4, 0xa7, 0x01, +	0xc0, 0x2e, 0x0a, 0xa6, 0x7e, 0x5a, 0x78, 0x87 +}; + +static const u8 dec_input006[] __initconst = { +	0x8b, 0x06, 0xd3, 0x31, 0xb0, 0x93, 0x45, 0xb1, +	0x75, 0x6e, 0x26, 0xf9, 0x67, 0xbc, 0x90, 0x15, +	0x81, 0x2c, 0xb5, 0xf0, 0xc6, 0x2b, 0xc7, 0x8c, +	0x56, 0xd1, 0xbf, 0x69, 0x6c, 0x07, 0xa0, 0xda, +	0x65, 0x27, 0xc9, 0x90, 0x3d, 0xef, 0x4b, 0x11, +	0x0f, 0x19, 0x07, 0xfd, 0x29, 0x92, 0xd9, 0xc8, +	0xf7, 0x99, 0x2e, 0x4a, 0xd0, 0xb8, 0x2c, 0xdc, +	0x93, 0xf5, 0x9e, 0x33, 0x78, 0xd1, 0x37, 0xc3, +	0x66, 0xd7, 0x5e, 0xbc, 0x44, 0xbf, 0x53, 0xa5, +	0xbc, 0xc4, 0xcb, 0x7b, 0x3a, 0x8e, 0x7f, 0x02, +	0xbd, 0xbb, 0xe7, 0xca, 0xa6, 0x6c, 0x6b, 0x93, +	0x21, 0x93, 0x10, 0x61, 0xe7, 0x69, 0xd0, 0x78, +	0xf3, 0x07, 0x5a, 0x1a, 0x8f, 0x73, 0xaa, 0xb1, +	0x4e, 0xd3, 0xda, 0x4f, 0xf3, 0x32, 0xe1, 0x66, +	0x3e, 0x6c, 0xc6, 0x13, 0xba, 0x06, 0x5b, 0xfc, +	0x6a, 0xe5, 0x6f, 0x60, 0xfb, 0x07, 0x40, 0xb0, +	0x8c, 0x9d, 0x84, 0x43, 0x6b, 0xc1, 0xf7, 0x8d, +	0x8d, 0x31, 0xf7, 0x7a, 0x39, 0x4d, 0x8f, 0x9a, +	0xeb +}; +static const u8 dec_output006[] __initconst = { +	0x33, 0x2f, 0x94, 0xc1, 0xa4, 0xef, 0xcc, 0x2a, +	0x5b, 0xa6, 0xe5, 0x8f, 0x1d, 0x40, 0xf0, 0x92, +	0x3c, 0xd9, 0x24, 0x11, 0xa9, 0x71, 0xf9, 0x37, +	0x14, 0x99, 0xfa, 0xbe, 0xe6, 0x80, 0xde, 0x50, +	0xc9, 0x96, 0xd4, 0xb0, 0xec, 0x9e, 0x17, 0xec, +	0xd2, 0x5e, 0x72, 0x99, 0xfc, 0x0a, 0xe1, 0xcb, +	0x48, 0xd2, 0x85, 0xdd, 0x2f, 0x90, 0xe0, 0x66, +	0x3b, 0xe6, 0x20, 0x74, 0xbe, 0x23, 0x8f, 0xcb, +	0xb4, 0xe4, 0xda, 0x48, 0x40, 0xa6, 0xd1, 0x1b, +	0xc7, 0x42, 0xce, 0x2f, 0x0c, 0xa6, 0x85, 0x6e, +	0x87, 0x37, 0x03, 0xb1, 0x7c, 0x25, 0x96, 0xa3, +	0x05, 0xd8, 0xb0, 0xf4, 0xed, 0xea, 0xc2, 0xf0, +	0x31, 0x98, 0x6c, 0xd1, 0x14, 0x25, 0xc0, 0xcb, +	0x01, 0x74, 0xd0, 0x82, 0xf4, 0x36, 0xf5, 0x41, +	0xd5, 0xdc, 0xca, 0xc5, 0xbb, 0x98, 0xfe, 0xfc, +	0x69, 0x21, 0x70, 0xd8, 0xa4, 0x4b, 0xc8, 0xde, +	0x8f +}; +static const u8 dec_assoc006[] __initconst = { +	0x70, 0xd3, 0x33, 0xf3, 0x8b, 0x18, 0x0b +}; +static const u8 dec_nonce006[] __initconst = { +	0xdf, 0x51, 0x84, 0x82, 0x42, 0x0c, 0x75, 0x9c +}; +static const u8 dec_key006[] __initconst = { +	0x68, 0x7b, 0x8d, 0x8e, 0xe3, 0xc4, 0xdd, 0xae, +	0xdf, 0x72, 0x7f, 0x53, 0x72, 0x25, 0x1e, 0x78, +	0x91, 0xcb, 0x69, 0x76, 0x1f, 0x49, 0x93, 0xf9, +	0x6f, 0x21, 0xcc, 0x39, 0x9c, 0xad, 0xb1, 0x01 +}; + +static const u8 dec_input007[] __initconst = { +	0x85, 0x04, 0xc2, 0xed, 0x8d, 0xfd, 0x97, 0x5c, +	0xd2, 0xb7, 0xe2, 0xc1, 0x6b, 0xa3, 0xba, 0xf8, +	0xc9, 0x50, 0xc3, 0xc6, 0xa5, 0xe3, 0xa4, 0x7c, +	0xc3, 0x23, 0x49, 0x5e, 0xa9, 0xb9, 0x32, 0xeb, +	0x8a, 0x7c, 0xca, 0xe5, 0xec, 0xfb, 0x7c, 0xc0, +	0xcb, 0x7d, 0xdc, 0x2c, 0x9d, 0x92, 0x55, 0x21, +	0x0a, 0xc8, 0x43, 0x63, 0x59, 0x0a, 0x31, 0x70, +	0x82, 0x67, 0x41, 0x03, 0xf8, 0xdf, 0xf2, 0xac, +	0xa7, 0x02, 0xd4, 0xd5, 0x8a, 0x2d, 0xc8, 0x99, +	0x19, 0x66, 0xd0, 0xf6, 0x88, 0x2c, 0x77, 0xd9, +	0xd4, 0x0d, 0x6c, 0xbd, 0x98, 0xde, 0xe7, 0x7f, +	0xad, 0x7e, 0x8a, 0xfb, 0xe9, 0x4b, 0xe5, 0xf7, +	0xe5, 0x50, 0xa0, 0x90, 0x3f, 0xd6, 0x22, 0x53, +	0xe3, 0xfe, 0x1b, 0xcc, 0x79, 0x3b, 0xec, 0x12, +	0x47, 0x52, 0xa7, 0xd6, 0x04, 0xe3, 0x52, 0xe6, +	0x93, 0x90, 0x91, 0x32, 0x73, 0x79, 0xb8, 0xd0, +	0x31, 0xde, 0x1f, 0x9f, 0x2f, 0x05, 0x38, 0x54, +	0x2f, 0x35, 0x04, 0x39, 0xe0, 0xa7, 0xba, 0xc6, +	0x52, 0xf6, 0x37, 0x65, 0x4c, 0x07, 0xa9, 0x7e, +	0xb3, 0x21, 0x6f, 0x74, 0x8c, 0xc9, 0xde, 0xdb, +	0x65, 0x1b, 0x9b, 0xaa, 0x60, 0xb1, 0x03, 0x30, +	0x6b, 0xb2, 0x03, 0xc4, 0x1c, 0x04, 0xf8, 0x0f, +	0x64, 0xaf, 0x46, 0xe4, 0x65, 0x99, 0x49, 0xe2, +	0xea, 0xce, 0x78, 0x00, 0xd8, 0x8b, 0xd5, 0x2e, +	0xcf, 0xfc, 0x40, 0x49, 0xe8, 0x58, 0xdc, 0x34, +	0x9c, 0x8c, 0x61, 0xbf, 0x0a, 0x8e, 0xec, 0x39, +	0xa9, 0x30, 0x05, 0x5a, 0xd2, 0x56, 0x01, 0xc7, +	0xda, 0x8f, 0x4e, 0xbb, 0x43, 0xa3, 0x3a, 0xf9, +	0x15, 0x2a, 0xd0, 0xa0, 0x7a, 0x87, 0x34, 0x82, +	0xfe, 0x8a, 0xd1, 0x2d, 0x5e, 0xc7, 0xbf, 0x04, +	0x53, 0x5f, 0x3b, 0x36, 0xd4, 0x25, 0x5c, 0x34, +	0x7a, 0x8d, 0xd5, 0x05, 0xce, 0x72, 0xca, 0xef, +	0x7a, 0x4b, 0xbc, 0xb0, 0x10, 0x5c, 0x96, 0x42, +	0x3a, 0x00, 0x98, 0xcd, 0x15, 0xe8, 0xb7, 0x53 +}; +static const u8 dec_output007[] __initconst = { +	0x9b, 0x18, 0xdb, 0xdd, 0x9a, 0x0f, 0x3e, 0xa5, +	0x15, 0x17, 0xde, 0xdf, 0x08, 0x9d, 0x65, 0x0a, +	0x67, 0x30, 0x12, 0xe2, 0x34, 0x77, 0x4b, 0xc1, +	0xd9, 0xc6, 0x1f, 0xab, 0xc6, 0x18, 0x50, 0x17, +	0xa7, 0x9d, 0x3c, 0xa6, 0xc5, 0x35, 0x8c, 0x1c, +	0xc0, 0xa1, 0x7c, 0x9f, 0x03, 0x89, 0xca, 0xe1, +	0xe6, 0xe9, 0xd4, 0xd3, 0x88, 0xdb, 0xb4, 0x51, +	0x9d, 0xec, 0xb4, 0xfc, 0x52, 0xee, 0x6d, 0xf1, +	0x75, 0x42, 0xc6, 0xfd, 0xbd, 0x7a, 0x8e, 0x86, +	0xfc, 0x44, 0xb3, 0x4f, 0xf3, 0xea, 0x67, 0x5a, +	0x41, 0x13, 0xba, 0xb0, 0xdc, 0xe1, 0xd3, 0x2a, +	0x7c, 0x22, 0xb3, 0xca, 0xac, 0x6a, 0x37, 0x98, +	0x3e, 0x1d, 0x40, 0x97, 0xf7, 0x9b, 0x1d, 0x36, +	0x6b, 0xb3, 0x28, 0xbd, 0x60, 0x82, 0x47, 0x34, +	0xaa, 0x2f, 0x7d, 0xe9, 0xa8, 0x70, 0x81, 0x57, +	0xd4, 0xb9, 0x77, 0x0a, 0x9d, 0x29, 0xa7, 0x84, +	0x52, 0x4f, 0xc2, 0x4a, 0x40, 0x3b, 0x3c, 0xd4, +	0xc9, 0x2a, 0xdb, 0x4a, 0x53, 0xc4, 0xbe, 0x80, +	0xe9, 0x51, 0x7f, 0x8f, 0xc7, 0xa2, 0xce, 0x82, +	0x5c, 0x91, 0x1e, 0x74, 0xd9, 0xd0, 0xbd, 0xd5, +	0xf3, 0xfd, 0xda, 0x4d, 0x25, 0xb4, 0xbb, 0x2d, +	0xac, 0x2f, 0x3d, 0x71, 0x85, 0x7b, 0xcf, 0x3c, +	0x7b, 0x3e, 0x0e, 0x22, 0x78, 0x0c, 0x29, 0xbf, +	0xe4, 0xf4, 0x57, 0xb3, 0xcb, 0x49, 0xa0, 0xfc, +	0x1e, 0x05, 0x4e, 0x16, 0xbc, 0xd5, 0xa8, 0xa3, +	0xee, 0x05, 0x35, 0xc6, 0x7c, 0xab, 0x60, 0x14, +	0x55, 0x1a, 0x8e, 0xc5, 0x88, 0x5d, 0xd5, 0x81, +	0xc2, 0x81, 0xa5, 0xc4, 0x60, 0xdb, 0xaf, 0x77, +	0x91, 0xe1, 0xce, 0xa2, 0x7e, 0x7f, 0x42, 0xe3, +	0xb0, 0x13, 0x1c, 0x1f, 0x25, 0x60, 0x21, 0xe2, +	0x40, 0x5f, 0x99, 0xb7, 0x73, 0xec, 0x9b, 0x2b, +	0xf0, 0x65, 0x11, 0xc8, 0xd0, 0x0a, 0x9f, 0xd3 +}; +static const u8 dec_assoc007[] __initconst = { }; +static const u8 dec_nonce007[] __initconst = { +	0xde, 0x7b, 0xef, 0xc3, 0x65, 0x1b, 0x68, 0xb0 +}; +static const u8 dec_key007[] __initconst = { +	0x8d, 0xb8, 0x91, 0x48, 0xf0, 0xe7, 0x0a, 0xbd, +	0xf9, 0x3f, 0xcd, 0xd9, 0xa0, 0x1e, 0x42, 0x4c, +	0xe7, 0xde, 0x25, 0x3d, 0xa3, 0xd7, 0x05, 0x80, +	0x8d, 0xf2, 0x82, 0xac, 0x44, 0x16, 0x51, 0x01 +}; + +static const u8 dec_input008[] __initconst = { +	0x14, 0xf6, 0x41, 0x37, 0xa6, 0xd4, 0x27, 0xcd, +	0xdb, 0x06, 0x3e, 0x9a, 0x4e, 0xab, 0xd5, 0xb1, +	0x1e, 0x6b, 0xd2, 0xbc, 0x11, 0xf4, 0x28, 0x93, +	0x63, 0x54, 0xef, 0xbb, 0x5e, 0x1d, 0x3a, 0x1d, +	0x37, 0x3c, 0x0a, 0x6c, 0x1e, 0xc2, 0xd1, 0x2c, +	0xb5, 0xa3, 0xb5, 0x7b, 0xb8, 0x8f, 0x25, 0xa6, +	0x1b, 0x61, 0x1c, 0xec, 0x28, 0x58, 0x26, 0xa4, +	0xa8, 0x33, 0x28, 0x25, 0x5c, 0x45, 0x05, 0xe5, +	0x6c, 0x99, 0xe5, 0x45, 0xc4, 0xa2, 0x03, 0x84, +	0x03, 0x73, 0x1e, 0x8c, 0x49, 0xac, 0x20, 0xdd, +	0x8d, 0xb3, 0xc4, 0xf5, 0xe7, 0x4f, 0xf1, 0xed, +	0xa1, 0x98, 0xde, 0xa4, 0x96, 0xdd, 0x2f, 0xab, +	0xab, 0x97, 0xcf, 0x3e, 0xd2, 0x9e, 0xb8, 0x13, +	0x07, 0x28, 0x29, 0x19, 0xaf, 0xfd, 0xf2, 0x49, +	0x43, 0xea, 0x49, 0x26, 0x91, 0xc1, 0x07, 0xd6, +	0xbb, 0x81, 0x75, 0x35, 0x0d, 0x24, 0x7f, 0xc8, +	0xda, 0xd4, 0xb7, 0xeb, 0xe8, 0x5c, 0x09, 0xa2, +	0x2f, 0xdc, 0x28, 0x7d, 0x3a, 0x03, 0xfa, 0x94, +	0xb5, 0x1d, 0x17, 0x99, 0x36, 0xc3, 0x1c, 0x18, +	0x34, 0xe3, 0x9f, 0xf5, 0x55, 0x7c, 0xb0, 0x60, +	0x9d, 0xff, 0xac, 0xd4, 0x61, 0xf2, 0xad, 0xf8, +	0xce, 0xc7, 0xbe, 0x5c, 0xd2, 0x95, 0xa8, 0x4b, +	0x77, 0x13, 0x19, 0x59, 0x26, 0xc9, 0xb7, 0x8f, +	0x6a, 0xcb, 0x2d, 0x37, 0x91, 0xea, 0x92, 0x9c, +	0x94, 0x5b, 0xda, 0x0b, 0xce, 0xfe, 0x30, 0x20, +	0xf8, 0x51, 0xad, 0xf2, 0xbe, 0xe7, 0xc7, 0xff, +	0xb3, 0x33, 0x91, 0x6a, 0xc9, 0x1a, 0x41, 0xc9, +	0x0f, 0xf3, 0x10, 0x0e, 0xfd, 0x53, 0xff, 0x6c, +	0x16, 0x52, 0xd9, 0xf3, 0xf7, 0x98, 0x2e, 0xc9, +	0x07, 0x31, 0x2c, 0x0c, 0x72, 0xd7, 0xc5, 0xc6, +	0x08, 0x2a, 0x7b, 0xda, 0xbd, 0x7e, 0x02, 0xea, +	0x1a, 0xbb, 0xf2, 0x04, 0x27, 0x61, 0x28, 0x8e, +	0xf5, 0x04, 0x03, 0x1f, 0x4c, 0x07, 0x55, 0x82, +	0xec, 0x1e, 0xd7, 0x8b, 0x2f, 0x65, 0x56, 0xd1, +	0xd9, 0x1e, 0x3c, 0xe9, 0x1f, 0x5e, 0x98, 0x70, +	0x38, 0x4a, 0x8c, 0x49, 0xc5, 0x43, 0xa0, 0xa1, +	0x8b, 0x74, 0x9d, 0x4c, 0x62, 0x0d, 0x10, 0x0c, +	0xf4, 0x6c, 0x8f, 0xe0, 0xaa, 0x9a, 0x8d, 0xb7, +	0xe0, 0xbe, 0x4c, 0x87, 0xf1, 0x98, 0x2f, 0xcc, +	0xed, 0xc0, 0x52, 0x29, 0xdc, 0x83, 0xf8, 0xfc, +	0x2c, 0x0e, 0xa8, 0x51, 0x4d, 0x80, 0x0d, 0xa3, +	0xfe, 0xd8, 0x37, 0xe7, 0x41, 0x24, 0xfc, 0xfb, +	0x75, 0xe3, 0x71, 0x7b, 0x57, 0x45, 0xf5, 0x97, +	0x73, 0x65, 0x63, 0x14, 0x74, 0xb8, 0x82, 0x9f, +	0xf8, 0x60, 0x2f, 0x8a, 0xf2, 0x4e, 0xf1, 0x39, +	0xda, 0x33, 0x91, 0xf8, 0x36, 0xe0, 0x8d, 0x3f, +	0x1f, 0x3b, 0x56, 0xdc, 0xa0, 0x8f, 0x3c, 0x9d, +	0x71, 0x52, 0xa7, 0xb8, 0xc0, 0xa5, 0xc6, 0xa2, +	0x73, 0xda, 0xf4, 0x4b, 0x74, 0x5b, 0x00, 0x3d, +	0x99, 0xd7, 0x96, 0xba, 0xe6, 0xe1, 0xa6, 0x96, +	0x38, 0xad, 0xb3, 0xc0, 0xd2, 0xba, 0x91, 0x6b, +	0xf9, 0x19, 0xdd, 0x3b, 0xbe, 0xbe, 0x9c, 0x20, +	0x50, 0xba, 0xa1, 0xd0, 0xce, 0x11, 0xbd, 0x95, +	0xd8, 0xd1, 0xdd, 0x33, 0x85, 0x74, 0xdc, 0xdb, +	0x66, 0x76, 0x44, 0xdc, 0x03, 0x74, 0x48, 0x35, +	0x98, 0xb1, 0x18, 0x47, 0x94, 0x7d, 0xff, 0x62, +	0xe4, 0x58, 0x78, 0xab, 0xed, 0x95, 0x36, 0xd9, +	0x84, 0x91, 0x82, 0x64, 0x41, 0xbb, 0x58, 0xe6, +	0x1c, 0x20, 0x6d, 0x15, 0x6b, 0x13, 0x96, 0xe8, +	0x35, 0x7f, 0xdc, 0x40, 0x2c, 0xe9, 0xbc, 0x8a, +	0x4f, 0x92, 0xec, 0x06, 0x2d, 0x50, 0xdf, 0x93, +	0x5d, 0x65, 0x5a, 0xa8, 0xfc, 0x20, 0x50, 0x14, +	0xa9, 0x8a, 0x7e, 0x1d, 0x08, 0x1f, 0xe2, 0x99, +	0xd0, 0xbe, 0xfb, 0x3a, 0x21, 0x9d, 0xad, 0x86, +	0x54, 0xfd, 0x0d, 0x98, 0x1c, 0x5a, 0x6f, 0x1f, +	0x9a, 0x40, 0xcd, 0xa2, 0xff, 0x6a, 0xf1, 0x54 +}; +static const u8 dec_output008[] __initconst = { +	0xc3, 0x09, 0x94, 0x62, 0xe6, 0x46, 0x2e, 0x10, +	0xbe, 0x00, 0xe4, 0xfc, 0xf3, 0x40, 0xa3, 0xe2, +	0x0f, 0xc2, 0x8b, 0x28, 0xdc, 0xba, 0xb4, 0x3c, +	0xe4, 0x21, 0x58, 0x61, 0xcd, 0x8b, 0xcd, 0xfb, +	0xac, 0x94, 0xa1, 0x45, 0xf5, 0x1c, 0xe1, 0x12, +	0xe0, 0x3b, 0x67, 0x21, 0x54, 0x5e, 0x8c, 0xaa, +	0xcf, 0xdb, 0xb4, 0x51, 0xd4, 0x13, 0xda, 0xe6, +	0x83, 0x89, 0xb6, 0x92, 0xe9, 0x21, 0x76, 0xa4, +	0x93, 0x7d, 0x0e, 0xfd, 0x96, 0x36, 0x03, 0x91, +	0x43, 0x5c, 0x92, 0x49, 0x62, 0x61, 0x7b, 0xeb, +	0x43, 0x89, 0xb8, 0x12, 0x20, 0x43, 0xd4, 0x47, +	0x06, 0x84, 0xee, 0x47, 0xe9, 0x8a, 0x73, 0x15, +	0x0f, 0x72, 0xcf, 0xed, 0xce, 0x96, 0xb2, 0x7f, +	0x21, 0x45, 0x76, 0xeb, 0x26, 0x28, 0x83, 0x6a, +	0xad, 0xaa, 0xa6, 0x81, 0xd8, 0x55, 0xb1, 0xa3, +	0x85, 0xb3, 0x0c, 0xdf, 0xf1, 0x69, 0x2d, 0x97, +	0x05, 0x2a, 0xbc, 0x7c, 0x7b, 0x25, 0xf8, 0x80, +	0x9d, 0x39, 0x25, 0xf3, 0x62, 0xf0, 0x66, 0x5e, +	0xf4, 0xa0, 0xcf, 0xd8, 0xfd, 0x4f, 0xb1, 0x1f, +	0x60, 0x3a, 0x08, 0x47, 0xaf, 0xe1, 0xf6, 0x10, +	0x77, 0x09, 0xa7, 0x27, 0x8f, 0x9a, 0x97, 0x5a, +	0x26, 0xfa, 0xfe, 0x41, 0x32, 0x83, 0x10, 0xe0, +	0x1d, 0xbf, 0x64, 0x0d, 0xf4, 0x1c, 0x32, 0x35, +	0xe5, 0x1b, 0x36, 0xef, 0xd4, 0x4a, 0x93, 0x4d, +	0x00, 0x7c, 0xec, 0x02, 0x07, 0x8b, 0x5d, 0x7d, +	0x1b, 0x0e, 0xd1, 0xa6, 0xa5, 0x5d, 0x7d, 0x57, +	0x88, 0xa8, 0xcc, 0x81, 0xb4, 0x86, 0x4e, 0xb4, +	0x40, 0xe9, 0x1d, 0xc3, 0xb1, 0x24, 0x3e, 0x7f, +	0xcc, 0x8a, 0x24, 0x9b, 0xdf, 0x6d, 0xf0, 0x39, +	0x69, 0x3e, 0x4c, 0xc0, 0x96, 0xe4, 0x13, 0xda, +	0x90, 0xda, 0xf4, 0x95, 0x66, 0x8b, 0x17, 0x17, +	0xfe, 0x39, 0x43, 0x25, 0xaa, 0xda, 0xa0, 0x43, +	0x3c, 0xb1, 0x41, 0x02, 0xa3, 0xf0, 0xa7, 0x19, +	0x59, 0xbc, 0x1d, 0x7d, 0x6c, 0x6d, 0x91, 0x09, +	0x5c, 0xb7, 0x5b, 0x01, 0xd1, 0x6f, 0x17, 0x21, +	0x97, 0xbf, 0x89, 0x71, 0xa5, 0xb0, 0x6e, 0x07, +	0x45, 0xfd, 0x9d, 0xea, 0x07, 0xf6, 0x7a, 0x9f, +	0x10, 0x18, 0x22, 0x30, 0x73, 0xac, 0xd4, 0x6b, +	0x72, 0x44, 0xed, 0xd9, 0x19, 0x9b, 0x2d, 0x4a, +	0x41, 0xdd, 0xd1, 0x85, 0x5e, 0x37, 0x19, 0xed, +	0xd2, 0x15, 0x8f, 0x5e, 0x91, 0xdb, 0x33, 0xf2, +	0xe4, 0xdb, 0xff, 0x98, 0xfb, 0xa3, 0xb5, 0xca, +	0x21, 0x69, 0x08, 0xe7, 0x8a, 0xdf, 0x90, 0xff, +	0x3e, 0xe9, 0x20, 0x86, 0x3c, 0xe9, 0xfc, 0x0b, +	0xfe, 0x5c, 0x61, 0xaa, 0x13, 0x92, 0x7f, 0x7b, +	0xec, 0xe0, 0x6d, 0xa8, 0x23, 0x22, 0xf6, 0x6b, +	0x77, 0xc4, 0xfe, 0x40, 0x07, 0x3b, 0xb6, 0xf6, +	0x8e, 0x5f, 0xd4, 0xb9, 0xb7, 0x0f, 0x21, 0x04, +	0xef, 0x83, 0x63, 0x91, 0x69, 0x40, 0xa3, 0x48, +	0x5c, 0xd2, 0x60, 0xf9, 0x4f, 0x6c, 0x47, 0x8b, +	0x3b, 0xb1, 0x9f, 0x8e, 0xee, 0x16, 0x8a, 0x13, +	0xfc, 0x46, 0x17, 0xc3, 0xc3, 0x32, 0x56, 0xf8, +	0x3c, 0x85, 0x3a, 0xb6, 0x3e, 0xaa, 0x89, 0x4f, +	0xb3, 0xdf, 0x38, 0xfd, 0xf1, 0xe4, 0x3a, 0xc0, +	0xe6, 0x58, 0xb5, 0x8f, 0xc5, 0x29, 0xa2, 0x92, +	0x4a, 0xb6, 0xa0, 0x34, 0x7f, 0xab, 0xb5, 0x8a, +	0x90, 0xa1, 0xdb, 0x4d, 0xca, 0xb6, 0x2c, 0x41, +	0x3c, 0xf7, 0x2b, 0x21, 0xc3, 0xfd, 0xf4, 0x17, +	0x5c, 0xb5, 0x33, 0x17, 0x68, 0x2b, 0x08, 0x30, +	0xf3, 0xf7, 0x30, 0x3c, 0x96, 0xe6, 0x6a, 0x20, +	0x97, 0xe7, 0x4d, 0x10, 0x5f, 0x47, 0x5f, 0x49, +	0x96, 0x09, 0xf0, 0x27, 0x91, 0xc8, 0xf8, 0x5a, +	0x2e, 0x79, 0xb5, 0xe2, 0xb8, 0xe8, 0xb9, 0x7b, +	0xd5, 0x10, 0xcb, 0xff, 0x5d, 0x14, 0x73, 0xf3 +}; +static const u8 dec_assoc008[] __initconst = { }; +static const u8 dec_nonce008[] __initconst = { +	0x0e, 0x0d, 0x57, 0xbb, 0x7b, 0x40, 0x54, 0x02 +}; +static const u8 dec_key008[] __initconst = { +	0xf2, 0xaa, 0x4f, 0x99, 0xfd, 0x3e, 0xa8, 0x53, +	0xc1, 0x44, 0xe9, 0x81, 0x18, 0xdc, 0xf5, 0xf0, +	0x3e, 0x44, 0x15, 0x59, 0xe0, 0xc5, 0x44, 0x86, +	0xc3, 0x91, 0xa8, 0x75, 0xc0, 0x12, 0x46, 0xba +}; + +static const u8 dec_input009[] __initconst = { +	0xfd, 0x81, 0x8d, 0xd0, 0x3d, 0xb4, 0xd5, 0xdf, +	0xd3, 0x42, 0x47, 0x5a, 0x6d, 0x19, 0x27, 0x66, +	0x4b, 0x2e, 0x0c, 0x27, 0x9c, 0x96, 0x4c, 0x72, +	0x02, 0xa3, 0x65, 0xc3, 0xb3, 0x6f, 0x2e, 0xbd, +	0x63, 0x8a, 0x4a, 0x5d, 0x29, 0xa2, 0xd0, 0x28, +	0x48, 0xc5, 0x3d, 0x98, 0xa3, 0xbc, 0xe0, 0xbe, +	0x3b, 0x3f, 0xe6, 0x8a, 0xa4, 0x7f, 0x53, 0x06, +	0xfa, 0x7f, 0x27, 0x76, 0x72, 0x31, 0xa1, 0xf5, +	0xd6, 0x0c, 0x52, 0x47, 0xba, 0xcd, 0x4f, 0xd7, +	0xeb, 0x05, 0x48, 0x0d, 0x7c, 0x35, 0x4a, 0x09, +	0xc9, 0x76, 0x71, 0x02, 0xa3, 0xfb, 0xb7, 0x1a, +	0x65, 0xb7, 0xed, 0x98, 0xc6, 0x30, 0x8a, 0x00, +	0xae, 0xa1, 0x31, 0xe5, 0xb5, 0x9e, 0x6d, 0x62, +	0xda, 0xda, 0x07, 0x0f, 0x38, 0x38, 0xd3, 0xcb, +	0xc1, 0xb0, 0xad, 0xec, 0x72, 0xec, 0xb1, 0xa2, +	0x7b, 0x59, 0xf3, 0x3d, 0x2b, 0xef, 0xcd, 0x28, +	0x5b, 0x83, 0xcc, 0x18, 0x91, 0x88, 0xb0, 0x2e, +	0xf9, 0x29, 0x31, 0x18, 0xf9, 0x4e, 0xe9, 0x0a, +	0x91, 0x92, 0x9f, 0xae, 0x2d, 0xad, 0xf4, 0xe6, +	0x1a, 0xe2, 0xa4, 0xee, 0x47, 0x15, 0xbf, 0x83, +	0x6e, 0xd7, 0x72, 0x12, 0x3b, 0x2d, 0x24, 0xe9, +	0xb2, 0x55, 0xcb, 0x3c, 0x10, 0xf0, 0x24, 0x8a, +	0x4a, 0x02, 0xea, 0x90, 0x25, 0xf0, 0xb4, 0x79, +	0x3a, 0xef, 0x6e, 0xf5, 0x52, 0xdf, 0xb0, 0x0a, +	0xcd, 0x24, 0x1c, 0xd3, 0x2e, 0x22, 0x74, 0xea, +	0x21, 0x6f, 0xe9, 0xbd, 0xc8, 0x3e, 0x36, 0x5b, +	0x19, 0xf1, 0xca, 0x99, 0x0a, 0xb4, 0xa7, 0x52, +	0x1a, 0x4e, 0xf2, 0xad, 0x8d, 0x56, 0x85, 0xbb, +	0x64, 0x89, 0xba, 0x26, 0xf9, 0xc7, 0xe1, 0x89, +	0x19, 0x22, 0x77, 0xc3, 0xa8, 0xfc, 0xff, 0xad, +	0xfe, 0xb9, 0x48, 0xae, 0x12, 0x30, 0x9f, 0x19, +	0xfb, 0x1b, 0xef, 0x14, 0x87, 0x8a, 0x78, 0x71, +	0xf3, 0xf4, 0xb7, 0x00, 0x9c, 0x1d, 0xb5, 0x3d, +	0x49, 0x00, 0x0c, 0x06, 0xd4, 0x50, 0xf9, 0x54, +	0x45, 0xb2, 0x5b, 0x43, 0xdb, 0x6d, 0xcf, 0x1a, +	0xe9, 0x7a, 0x7a, 0xcf, 0xfc, 0x8a, 0x4e, 0x4d, +	0x0b, 0x07, 0x63, 0x28, 0xd8, 0xe7, 0x08, 0x95, +	0xdf, 0xa6, 0x72, 0x93, 0x2e, 0xbb, 0xa0, 0x42, +	0x89, 0x16, 0xf1, 0xd9, 0x0c, 0xf9, 0xa1, 0x16, +	0xfd, 0xd9, 0x03, 0xb4, 0x3b, 0x8a, 0xf5, 0xf6, +	0xe7, 0x6b, 0x2e, 0x8e, 0x4c, 0x3d, 0xe2, 0xaf, +	0x08, 0x45, 0x03, 0xff, 0x09, 0xb6, 0xeb, 0x2d, +	0xc6, 0x1b, 0x88, 0x94, 0xac, 0x3e, 0xf1, 0x9f, +	0x0e, 0x0e, 0x2b, 0xd5, 0x00, 0x4d, 0x3f, 0x3b, +	0x53, 0xae, 0xaf, 0x1c, 0x33, 0x5f, 0x55, 0x6e, +	0x8d, 0xaf, 0x05, 0x7a, 0x10, 0x34, 0xc9, 0xf4, +	0x66, 0xcb, 0x62, 0x12, 0xa6, 0xee, 0xe8, 0x1c, +	0x5d, 0x12, 0x86, 0xdb, 0x6f, 0x1c, 0x33, 0xc4, +	0x1c, 0xda, 0x82, 0x2d, 0x3b, 0x59, 0xfe, 0xb1, +	0xa4, 0x59, 0x41, 0x86, 0xd0, 0xef, 0xae, 0xfb, +	0xda, 0x6d, 0x11, 0xb8, 0xca, 0xe9, 0x6e, 0xff, +	0xf7, 0xa9, 0xd9, 0x70, 0x30, 0xfc, 0x53, 0xe2, +	0xd7, 0xa2, 0x4e, 0xc7, 0x91, 0xd9, 0x07, 0x06, +	0xaa, 0xdd, 0xb0, 0x59, 0x28, 0x1d, 0x00, 0x66, +	0xc5, 0x54, 0xc2, 0xfc, 0x06, 0xda, 0x05, 0x90, +	0x52, 0x1d, 0x37, 0x66, 0xee, 0xf0, 0xb2, 0x55, +	0x8a, 0x5d, 0xd2, 0x38, 0x86, 0x94, 0x9b, 0xfc, +	0x10, 0x4c, 0xa1, 0xb9, 0x64, 0x3e, 0x44, 0xb8, +	0x5f, 0xb0, 0x0c, 0xec, 0xe0, 0xc9, 0xe5, 0x62, +	0x75, 0x3f, 0x09, 0xd5, 0xf5, 0xd9, 0x26, 0xba, +	0x9e, 0xd2, 0xf4, 0xb9, 0x48, 0x0a, 0xbc, 0xa2, +	0xd6, 0x7c, 0x36, 0x11, 0x7d, 0x26, 0x81, 0x89, +	0xcf, 0xa4, 0xad, 0x73, 0x0e, 0xee, 0xcc, 0x06, +	0xa9, 0xdb, 0xb1, 0xfd, 0xfb, 0x09, 0x7f, 0x90, +	0x42, 0x37, 0x2f, 0xe1, 0x9c, 0x0f, 0x6f, 0xcf, +	0x43, 0xb5, 0xd9, 0x90, 0xe1, 0x85, 0xf5, 0xa8, +	0xae +}; +static const u8 dec_output009[] __initconst = { +	0xe6, 0xc3, 0xdb, 0x63, 0x55, 0x15, 0xe3, 0x5b, +	0xb7, 0x4b, 0x27, 0x8b, 0x5a, 0xdd, 0xc2, 0xe8, +	0x3a, 0x6b, 0xd7, 0x81, 0x96, 0x35, 0x97, 0xca, +	0xd7, 0x68, 0xe8, 0xef, 0xce, 0xab, 0xda, 0x09, +	0x6e, 0xd6, 0x8e, 0xcb, 0x55, 0xb5, 0xe1, 0xe5, +	0x57, 0xfd, 0xc4, 0xe3, 0xe0, 0x18, 0x4f, 0x85, +	0xf5, 0x3f, 0x7e, 0x4b, 0x88, 0xc9, 0x52, 0x44, +	0x0f, 0xea, 0xaf, 0x1f, 0x71, 0x48, 0x9f, 0x97, +	0x6d, 0xb9, 0x6f, 0x00, 0xa6, 0xde, 0x2b, 0x77, +	0x8b, 0x15, 0xad, 0x10, 0xa0, 0x2b, 0x7b, 0x41, +	0x90, 0x03, 0x2d, 0x69, 0xae, 0xcc, 0x77, 0x7c, +	0xa5, 0x9d, 0x29, 0x22, 0xc2, 0xea, 0xb4, 0x00, +	0x1a, 0xd2, 0x7a, 0x98, 0x8a, 0xf9, 0xf7, 0x82, +	0xb0, 0xab, 0xd8, 0xa6, 0x94, 0x8d, 0x58, 0x2f, +	0x01, 0x9e, 0x00, 0x20, 0xfc, 0x49, 0xdc, 0x0e, +	0x03, 0xe8, 0x45, 0x10, 0xd6, 0xa8, 0xda, 0x55, +	0x10, 0x9a, 0xdf, 0x67, 0x22, 0x8b, 0x43, 0xab, +	0x00, 0xbb, 0x02, 0xc8, 0xdd, 0x7b, 0x97, 0x17, +	0xd7, 0x1d, 0x9e, 0x02, 0x5e, 0x48, 0xde, 0x8e, +	0xcf, 0x99, 0x07, 0x95, 0x92, 0x3c, 0x5f, 0x9f, +	0xc5, 0x8a, 0xc0, 0x23, 0xaa, 0xd5, 0x8c, 0x82, +	0x6e, 0x16, 0x92, 0xb1, 0x12, 0x17, 0x07, 0xc3, +	0xfb, 0x36, 0xf5, 0x6c, 0x35, 0xd6, 0x06, 0x1f, +	0x9f, 0xa7, 0x94, 0xa2, 0x38, 0x63, 0x9c, 0xb0, +	0x71, 0xb3, 0xa5, 0xd2, 0xd8, 0xba, 0x9f, 0x08, +	0x01, 0xb3, 0xff, 0x04, 0x97, 0x73, 0x45, 0x1b, +	0xd5, 0xa9, 0x9c, 0x80, 0xaf, 0x04, 0x9a, 0x85, +	0xdb, 0x32, 0x5b, 0x5d, 0x1a, 0xc1, 0x36, 0x28, +	0x10, 0x79, 0xf1, 0x3c, 0xbf, 0x1a, 0x41, 0x5c, +	0x4e, 0xdf, 0xb2, 0x7c, 0x79, 0x3b, 0x7a, 0x62, +	0x3d, 0x4b, 0xc9, 0x9b, 0x2a, 0x2e, 0x7c, 0xa2, +	0xb1, 0x11, 0x98, 0xa7, 0x34, 0x1a, 0x00, 0xf3, +	0xd1, 0xbc, 0x18, 0x22, 0xba, 0x02, 0x56, 0x62, +	0x31, 0x10, 0x11, 0x6d, 0xe0, 0x54, 0x9d, 0x40, +	0x1f, 0x26, 0x80, 0x41, 0xca, 0x3f, 0x68, 0x0f, +	0x32, 0x1d, 0x0a, 0x8e, 0x79, 0xd8, 0xa4, 0x1b, +	0x29, 0x1c, 0x90, 0x8e, 0xc5, 0xe3, 0xb4, 0x91, +	0x37, 0x9a, 0x97, 0x86, 0x99, 0xd5, 0x09, 0xc5, +	0xbb, 0xa3, 0x3f, 0x21, 0x29, 0x82, 0x14, 0x5c, +	0xab, 0x25, 0xfb, 0xf2, 0x4f, 0x58, 0x26, 0xd4, +	0x83, 0xaa, 0x66, 0x89, 0x67, 0x7e, 0xc0, 0x49, +	0xe1, 0x11, 0x10, 0x7f, 0x7a, 0xda, 0x29, 0x04, +	0xff, 0xf0, 0xcb, 0x09, 0x7c, 0x9d, 0xfa, 0x03, +	0x6f, 0x81, 0x09, 0x31, 0x60, 0xfb, 0x08, 0xfa, +	0x74, 0xd3, 0x64, 0x44, 0x7c, 0x55, 0x85, 0xec, +	0x9c, 0x6e, 0x25, 0xb7, 0x6c, 0xc5, 0x37, 0xb6, +	0x83, 0x87, 0x72, 0x95, 0x8b, 0x9d, 0xe1, 0x69, +	0x5c, 0x31, 0x95, 0x42, 0xa6, 0x2c, 0xd1, 0x36, +	0x47, 0x1f, 0xec, 0x54, 0xab, 0xa2, 0x1c, 0xd8, +	0x00, 0xcc, 0xbc, 0x0d, 0x65, 0xe2, 0x67, 0xbf, +	0xbc, 0xea, 0xee, 0x9e, 0xe4, 0x36, 0x95, 0xbe, +	0x73, 0xd9, 0xa6, 0xd9, 0x0f, 0xa0, 0xcc, 0x82, +	0x76, 0x26, 0xad, 0x5b, 0x58, 0x6c, 0x4e, 0xab, +	0x29, 0x64, 0xd3, 0xd9, 0xa9, 0x08, 0x8c, 0x1d, +	0xa1, 0x4f, 0x80, 0xd8, 0x3f, 0x94, 0xfb, 0xd3, +	0x7b, 0xfc, 0xd1, 0x2b, 0xc3, 0x21, 0xeb, 0xe5, +	0x1c, 0x84, 0x23, 0x7f, 0x4b, 0xfa, 0xdb, 0x34, +	0x18, 0xa2, 0xc2, 0xe5, 0x13, 0xfe, 0x6c, 0x49, +	0x81, 0xd2, 0x73, 0xe7, 0xe2, 0xd7, 0xe4, 0x4f, +	0x4b, 0x08, 0x6e, 0xb1, 0x12, 0x22, 0x10, 0x9d, +	0xac, 0x51, 0x1e, 0x17, 0xd9, 0x8a, 0x0b, 0x42, +	0x88, 0x16, 0x81, 0x37, 0x7c, 0x6a, 0xf7, 0xef, +	0x2d, 0xe3, 0xd9, 0xf8, 0x5f, 0xe0, 0x53, 0x27, +	0x74, 0xb9, 0xe2, 0xd6, 0x1c, 0x80, 0x2c, 0x52, +	0x65 +}; +static const u8 dec_assoc009[] __initconst = { +	0x5a, 0x27, 0xff, 0xeb, 0xdf, 0x84, 0xb2, 0x9e, +	0xef +}; +static const u8 dec_nonce009[] __initconst = { +	0xef, 0x2d, 0x63, 0xee, 0x6b, 0x80, 0x8b, 0x78 +}; +static const u8 dec_key009[] __initconst = { +	0xea, 0xbc, 0x56, 0x99, 0xe3, 0x50, 0xff, 0xc5, +	0xcc, 0x1a, 0xd7, 0xc1, 0x57, 0x72, 0xea, 0x86, +	0x5b, 0x89, 0x88, 0x61, 0x3d, 0x2f, 0x9b, 0xb2, +	0xe7, 0x9c, 0xec, 0x74, 0x6e, 0x3e, 0xf4, 0x3b +}; + +static const u8 dec_input010[] __initconst = { +	0xe5, 0x26, 0xa4, 0x3d, 0xbd, 0x33, 0xd0, 0x4b, +	0x6f, 0x05, 0xa7, 0x6e, 0x12, 0x7a, 0xd2, 0x74, +	0xa6, 0xdd, 0xbd, 0x95, 0xeb, 0xf9, 0xa4, 0xf1, +	0x59, 0x93, 0x91, 0x70, 0xd9, 0xfe, 0x9a, 0xcd, +	0x53, 0x1f, 0x3a, 0xab, 0xa6, 0x7c, 0x9f, 0xa6, +	0x9e, 0xbd, 0x99, 0xd9, 0xb5, 0x97, 0x44, 0xd5, +	0x14, 0x48, 0x4d, 0x9d, 0xc0, 0xd0, 0x05, 0x96, +	0xeb, 0x4c, 0x78, 0x55, 0x09, 0x08, 0x01, 0x02, +	0x30, 0x90, 0x7b, 0x96, 0x7a, 0x7b, 0x5f, 0x30, +	0x41, 0x24, 0xce, 0x68, 0x61, 0x49, 0x86, 0x57, +	0x82, 0xdd, 0x53, 0x1c, 0x51, 0x28, 0x2b, 0x53, +	0x6e, 0x2d, 0xc2, 0x20, 0x4c, 0xdd, 0x8f, 0x65, +	0x10, 0x20, 0x50, 0xdd, 0x9d, 0x50, 0xe5, 0x71, +	0x40, 0x53, 0x69, 0xfc, 0x77, 0x48, 0x11, 0xb9, +	0xde, 0xa4, 0x8d, 0x58, 0xe4, 0xa6, 0x1a, 0x18, +	0x47, 0x81, 0x7e, 0xfc, 0xdd, 0xf6, 0xef, 0xce, +	0x2f, 0x43, 0x68, 0xd6, 0x06, 0xe2, 0x74, 0x6a, +	0xad, 0x90, 0xf5, 0x37, 0xf3, 0x3d, 0x82, 0x69, +	0x40, 0xe9, 0x6b, 0xa7, 0x3d, 0xa8, 0x1e, 0xd2, +	0x02, 0x7c, 0xb7, 0x9b, 0xe4, 0xda, 0x8f, 0x95, +	0x06, 0xc5, 0xdf, 0x73, 0xa3, 0x20, 0x9a, 0x49, +	0xde, 0x9c, 0xbc, 0xee, 0x14, 0x3f, 0x81, 0x5e, +	0xf8, 0x3b, 0x59, 0x3c, 0xe1, 0x68, 0x12, 0x5a, +	0x3a, 0x76, 0x3a, 0x3f, 0xf7, 0x87, 0x33, 0x0a, +	0x01, 0xb8, 0xd4, 0xed, 0xb6, 0xbe, 0x94, 0x5e, +	0x70, 0x40, 0x56, 0x67, 0x1f, 0x50, 0x44, 0x19, +	0xce, 0x82, 0x70, 0x10, 0x87, 0x13, 0x20, 0x0b, +	0x4c, 0x5a, 0xb6, 0xf6, 0xa7, 0xae, 0x81, 0x75, +	0x01, 0x81, 0xe6, 0x4b, 0x57, 0x7c, 0xdd, 0x6d, +	0xf8, 0x1c, 0x29, 0x32, 0xf7, 0xda, 0x3c, 0x2d, +	0xf8, 0x9b, 0x25, 0x6e, 0x00, 0xb4, 0xf7, 0x2f, +	0xf7, 0x04, 0xf7, 0xa1, 0x56, 0xac, 0x4f, 0x1a, +	0x64, 0xb8, 0x47, 0x55, 0x18, 0x7b, 0x07, 0x4d, +	0xbd, 0x47, 0x24, 0x80, 0x5d, 0xa2, 0x70, 0xc5, +	0xdd, 0x8e, 0x82, 0xd4, 0xeb, 0xec, 0xb2, 0x0c, +	0x39, 0xd2, 0x97, 0xc1, 0xcb, 0xeb, 0xf4, 0x77, +	0x59, 0xb4, 0x87, 0xef, 0xcb, 0x43, 0x2d, 0x46, +	0x54, 0xd1, 0xa7, 0xd7, 0x15, 0x99, 0x0a, 0x43, +	0xa1, 0xe0, 0x99, 0x33, 0x71, 0xc1, 0xed, 0xfe, +	0x72, 0x46, 0x33, 0x8e, 0x91, 0x08, 0x9f, 0xc8, +	0x2e, 0xca, 0xfa, 0xdc, 0x59, 0xd5, 0xc3, 0x76, +	0x84, 0x9f, 0xa3, 0x37, 0x68, 0xc3, 0xf0, 0x47, +	0x2c, 0x68, 0xdb, 0x5e, 0xc3, 0x49, 0x4c, 0xe8, +	0x92, 0x85, 0xe2, 0x23, 0xd3, 0x3f, 0xad, 0x32, +	0xe5, 0x2b, 0x82, 0xd7, 0x8f, 0x99, 0x0a, 0x59, +	0x5c, 0x45, 0xd9, 0xb4, 0x51, 0x52, 0xc2, 0xae, +	0xbf, 0x80, 0xcf, 0xc9, 0xc9, 0x51, 0x24, 0x2a, +	0x3b, 0x3a, 0x4d, 0xae, 0xeb, 0xbd, 0x22, 0xc3, +	0x0e, 0x0f, 0x59, 0x25, 0x92, 0x17, 0xe9, 0x74, +	0xc7, 0x8b, 0x70, 0x70, 0x36, 0x55, 0x95, 0x75, +	0x4b, 0xad, 0x61, 0x2b, 0x09, 0xbc, 0x82, 0xf2, +	0x6e, 0x94, 0x43, 0xae, 0xc3, 0xd5, 0xcd, 0x8e, +	0xfe, 0x5b, 0x9a, 0x88, 0x43, 0x01, 0x75, 0xb2, +	0x23, 0x09, 0xf7, 0x89, 0x83, 0xe7, 0xfa, 0xf9, +	0xb4, 0x9b, 0xf8, 0xef, 0xbd, 0x1c, 0x92, 0xc1, +	0xda, 0x7e, 0xfe, 0x05, 0xba, 0x5a, 0xcd, 0x07, +	0x6a, 0x78, 0x9e, 0x5d, 0xfb, 0x11, 0x2f, 0x79, +	0x38, 0xb6, 0xc2, 0x5b, 0x6b, 0x51, 0xb4, 0x71, +	0xdd, 0xf7, 0x2a, 0xe4, 0xf4, 0x72, 0x76, 0xad, +	0xc2, 0xdd, 0x64, 0x5d, 0x79, 0xb6, 0xf5, 0x7a, +	0x77, 0x20, 0x05, 0x3d, 0x30, 0x06, 0xd4, 0x4c, +	0x0a, 0x2c, 0x98, 0x5a, 0xb9, 0xd4, 0x98, 0xa9, +	0x3f, 0xc6, 0x12, 0xea, 0x3b, 0x4b, 0xc5, 0x79, +	0x64, 0x63, 0x6b, 0x09, 0x54, 0x3b, 0x14, 0x27, +	0xba, 0x99, 0x80, 0xc8, 0x72, 0xa8, 0x12, 0x90, +	0x29, 0xba, 0x40, 0x54, 0x97, 0x2b, 0x7b, 0xfe, +	0xeb, 0xcd, 0x01, 0x05, 0x44, 0x72, 0xdb, 0x99, +	0xe4, 0x61, 0xc9, 0x69, 0xd6, 0xb9, 0x28, 0xd1, +	0x05, 0x3e, 0xf9, 0x0b, 0x49, 0x0a, 0x49, 0xe9, +	0x8d, 0x0e, 0xa7, 0x4a, 0x0f, 0xaf, 0x32, 0xd0, +	0xe0, 0xb2, 0x3a, 0x55, 0x58, 0xfe, 0x5c, 0x28, +	0x70, 0x51, 0x23, 0xb0, 0x7b, 0x6a, 0x5f, 0x1e, +	0xb8, 0x17, 0xd7, 0x94, 0x15, 0x8f, 0xee, 0x20, +	0xc7, 0x42, 0x25, 0x3e, 0x9a, 0x14, 0xd7, 0x60, +	0x72, 0x39, 0x47, 0x48, 0xa9, 0xfe, 0xdd, 0x47, +	0x0a, 0xb1, 0xe6, 0x60, 0x28, 0x8c, 0x11, 0x68, +	0xe1, 0xff, 0xd7, 0xce, 0xc8, 0xbe, 0xb3, 0xfe, +	0x27, 0x30, 0x09, 0x70, 0xd7, 0xfa, 0x02, 0x33, +	0x3a, 0x61, 0x2e, 0xc7, 0xff, 0xa4, 0x2a, 0xa8, +	0x6e, 0xb4, 0x79, 0x35, 0x6d, 0x4c, 0x1e, 0x38, +	0xf8, 0xee, 0xd4, 0x84, 0x4e, 0x6e, 0x28, 0xa7, +	0xce, 0xc8, 0xc1, 0xcf, 0x80, 0x05, 0xf3, 0x04, +	0xef, 0xc8, 0x18, 0x28, 0x2e, 0x8d, 0x5e, 0x0c, +	0xdf, 0xb8, 0x5f, 0x96, 0xe8, 0xc6, 0x9c, 0x2f, +	0xe5, 0xa6, 0x44, 0xd7, 0xe7, 0x99, 0x44, 0x0c, +	0xec, 0xd7, 0x05, 0x60, 0x97, 0xbb, 0x74, 0x77, +	0x58, 0xd5, 0xbb, 0x48, 0xde, 0x5a, 0xb2, 0x54, +	0x7f, 0x0e, 0x46, 0x70, 0x6a, 0x6f, 0x78, 0xa5, +	0x08, 0x89, 0x05, 0x4e, 0x7e, 0xa0, 0x69, 0xb4, +	0x40, 0x60, 0x55, 0x77, 0x75, 0x9b, 0x19, 0xf2, +	0xd5, 0x13, 0x80, 0x77, 0xf9, 0x4b, 0x3f, 0x1e, +	0xee, 0xe6, 0x76, 0x84, 0x7b, 0x8c, 0xe5, 0x27, +	0xa8, 0x0a, 0x91, 0x01, 0x68, 0x71, 0x8a, 0x3f, +	0x06, 0xab, 0xf6, 0xa9, 0xa5, 0xe6, 0x72, 0x92, +	0xe4, 0x67, 0xe2, 0xa2, 0x46, 0x35, 0x84, 0x55, +	0x7d, 0xca, 0xa8, 0x85, 0xd0, 0xf1, 0x3f, 0xbe, +	0xd7, 0x34, 0x64, 0xfc, 0xae, 0xe3, 0xe4, 0x04, +	0x9f, 0x66, 0x02, 0xb9, 0x88, 0x10, 0xd9, 0xc4, +	0x4c, 0x31, 0x43, 0x7a, 0x93, 0xe2, 0x9b, 0x56, +	0x43, 0x84, 0xdc, 0xdc, 0xde, 0x1d, 0xa4, 0x02, +	0x0e, 0xc2, 0xef, 0xc3, 0xf8, 0x78, 0xd1, 0xb2, +	0x6b, 0x63, 0x18, 0xc9, 0xa9, 0xe5, 0x72, 0xd8, +	0xf3, 0xb9, 0xd1, 0x8a, 0xc7, 0x1a, 0x02, 0x27, +	0x20, 0x77, 0x10, 0xe5, 0xc8, 0xd4, 0x4a, 0x47, +	0xe5, 0xdf, 0x5f, 0x01, 0xaa, 0xb0, 0xd4, 0x10, +	0xbb, 0x69, 0xe3, 0x36, 0xc8, 0xe1, 0x3d, 0x43, +	0xfb, 0x86, 0xcd, 0xcc, 0xbf, 0xf4, 0x88, 0xe0, +	0x20, 0xca, 0xb7, 0x1b, 0xf1, 0x2f, 0x5c, 0xee, +	0xd4, 0xd3, 0xa3, 0xcc, 0xa4, 0x1e, 0x1c, 0x47, +	0xfb, 0xbf, 0xfc, 0xa2, 0x41, 0x55, 0x9d, 0xf6, +	0x5a, 0x5e, 0x65, 0x32, 0x34, 0x7b, 0x52, 0x8d, +	0xd5, 0xd0, 0x20, 0x60, 0x03, 0xab, 0x3f, 0x8c, +	0xd4, 0x21, 0xea, 0x2a, 0xd9, 0xc4, 0xd0, 0xd3, +	0x65, 0xd8, 0x7a, 0x13, 0x28, 0x62, 0x32, 0x4b, +	0x2c, 0x87, 0x93, 0xa8, 0xb4, 0x52, 0x45, 0x09, +	0x44, 0xec, 0xec, 0xc3, 0x17, 0xdb, 0x9a, 0x4d, +	0x5c, 0xa9, 0x11, 0xd4, 0x7d, 0xaf, 0x9e, 0xf1, +	0x2d, 0xb2, 0x66, 0xc5, 0x1d, 0xed, 0xb7, 0xcd, +	0x0b, 0x25, 0x5e, 0x30, 0x47, 0x3f, 0x40, 0xf4, +	0xa1, 0xa0, 0x00, 0x94, 0x10, 0xc5, 0x6a, 0x63, +	0x1a, 0xd5, 0x88, 0x92, 0x8e, 0x82, 0x39, 0x87, +	0x3c, 0x78, 0x65, 0x58, 0x42, 0x75, 0x5b, 0xdd, +	0x77, 0x3e, 0x09, 0x4e, 0x76, 0x5b, 0xe6, 0x0e, +	0x4d, 0x38, 0xb2, 0xc0, 0xb8, 0x95, 0x01, 0x7a, +	0x10, 0xe0, 0xfb, 0x07, 0xf2, 0xab, 0x2d, 0x8c, +	0x32, 0xed, 0x2b, 0xc0, 0x46, 0xc2, 0xf5, 0x38, +	0x83, 0xf0, 0x17, 0xec, 0xc1, 0x20, 0x6a, 0x9a, +	0x0b, 0x00, 0xa0, 0x98, 0x22, 0x50, 0x23, 0xd5, +	0x80, 0x6b, 0xf6, 0x1f, 0xc3, 0xcc, 0x97, 0xc9, +	0x24, 0x9f, 0xf3, 0xaf, 0x43, 0x14, 0xd5, 0xa0 +}; +static const u8 dec_output010[] __initconst = { +	0x42, 0x93, 0xe4, 0xeb, 0x97, 0xb0, 0x57, 0xbf, +	0x1a, 0x8b, 0x1f, 0xe4, 0x5f, 0x36, 0x20, 0x3c, +	0xef, 0x0a, 0xa9, 0x48, 0x5f, 0x5f, 0x37, 0x22, +	0x3a, 0xde, 0xe3, 0xae, 0xbe, 0xad, 0x07, 0xcc, +	0xb1, 0xf6, 0xf5, 0xf9, 0x56, 0xdd, 0xe7, 0x16, +	0x1e, 0x7f, 0xdf, 0x7a, 0x9e, 0x75, 0xb7, 0xc7, +	0xbe, 0xbe, 0x8a, 0x36, 0x04, 0xc0, 0x10, 0xf4, +	0x95, 0x20, 0x03, 0xec, 0xdc, 0x05, 0xa1, 0x7d, +	0xc4, 0xa9, 0x2c, 0x82, 0xd0, 0xbc, 0x8b, 0xc5, +	0xc7, 0x45, 0x50, 0xf6, 0xa2, 0x1a, 0xb5, 0x46, +	0x3b, 0x73, 0x02, 0xa6, 0x83, 0x4b, 0x73, 0x82, +	0x58, 0x5e, 0x3b, 0x65, 0x2f, 0x0e, 0xfd, 0x2b, +	0x59, 0x16, 0xce, 0xa1, 0x60, 0x9c, 0xe8, 0x3a, +	0x99, 0xed, 0x8d, 0x5a, 0xcf, 0xf6, 0x83, 0xaf, +	0xba, 0xd7, 0x73, 0x73, 0x40, 0x97, 0x3d, 0xca, +	0xef, 0x07, 0x57, 0xe6, 0xd9, 0x70, 0x0e, 0x95, +	0xae, 0xa6, 0x8d, 0x04, 0xcc, 0xee, 0xf7, 0x09, +	0x31, 0x77, 0x12, 0xa3, 0x23, 0x97, 0x62, 0xb3, +	0x7b, 0x32, 0xfb, 0x80, 0x14, 0x48, 0x81, 0xc3, +	0xe5, 0xea, 0x91, 0x39, 0x52, 0x81, 0xa2, 0x4f, +	0xe4, 0xb3, 0x09, 0xff, 0xde, 0x5e, 0xe9, 0x58, +	0x84, 0x6e, 0xf9, 0x3d, 0xdf, 0x25, 0xea, 0xad, +	0xae, 0xe6, 0x9a, 0xd1, 0x89, 0x55, 0xd3, 0xde, +	0x6c, 0x52, 0xdb, 0x70, 0xfe, 0x37, 0xce, 0x44, +	0x0a, 0xa8, 0x25, 0x5f, 0x92, 0xc1, 0x33, 0x4a, +	0x4f, 0x9b, 0x62, 0x35, 0xff, 0xce, 0xc0, 0xa9, +	0x60, 0xce, 0x52, 0x00, 0x97, 0x51, 0x35, 0x26, +	0x2e, 0xb9, 0x36, 0xa9, 0x87, 0x6e, 0x1e, 0xcc, +	0x91, 0x78, 0x53, 0x98, 0x86, 0x5b, 0x9c, 0x74, +	0x7d, 0x88, 0x33, 0xe1, 0xdf, 0x37, 0x69, 0x2b, +	0xbb, 0xf1, 0x4d, 0xf4, 0xd1, 0xf1, 0x39, 0x93, +	0x17, 0x51, 0x19, 0xe3, 0x19, 0x1e, 0x76, 0x37, +	0x25, 0xfb, 0x09, 0x27, 0x6a, 0xab, 0x67, 0x6f, +	0x14, 0x12, 0x64, 0xe7, 0xc4, 0x07, 0xdf, 0x4d, +	0x17, 0xbb, 0x6d, 0xe0, 0xe9, 0xb9, 0xab, 0xca, +	0x10, 0x68, 0xaf, 0x7e, 0xb7, 0x33, 0x54, 0x73, +	0x07, 0x6e, 0xf7, 0x81, 0x97, 0x9c, 0x05, 0x6f, +	0x84, 0x5f, 0xd2, 0x42, 0xfb, 0x38, 0xcf, 0xd1, +	0x2f, 0x14, 0x30, 0x88, 0x98, 0x4d, 0x5a, 0xa9, +	0x76, 0xd5, 0x4f, 0x3e, 0x70, 0x6c, 0x85, 0x76, +	0xd7, 0x01, 0xa0, 0x1a, 0xc8, 0x4e, 0xaa, 0xac, +	0x78, 0xfe, 0x46, 0xde, 0x6a, 0x05, 0x46, 0xa7, +	0x43, 0x0c, 0xb9, 0xde, 0xb9, 0x68, 0xfb, 0xce, +	0x42, 0x99, 0x07, 0x4d, 0x0b, 0x3b, 0x5a, 0x30, +	0x35, 0xa8, 0xf9, 0x3a, 0x73, 0xef, 0x0f, 0xdb, +	0x1e, 0x16, 0x42, 0xc4, 0xba, 0xae, 0x58, 0xaa, +	0xf8, 0xe5, 0x75, 0x2f, 0x1b, 0x15, 0x5c, 0xfd, +	0x0a, 0x97, 0xd0, 0xe4, 0x37, 0x83, 0x61, 0x5f, +	0x43, 0xa6, 0xc7, 0x3f, 0x38, 0x59, 0xe6, 0xeb, +	0xa3, 0x90, 0xc3, 0xaa, 0xaa, 0x5a, 0xd3, 0x34, +	0xd4, 0x17, 0xc8, 0x65, 0x3e, 0x57, 0xbc, 0x5e, +	0xdd, 0x9e, 0xb7, 0xf0, 0x2e, 0x5b, 0xb2, 0x1f, +	0x8a, 0x08, 0x0d, 0x45, 0x91, 0x0b, 0x29, 0x53, +	0x4f, 0x4c, 0x5a, 0x73, 0x56, 0xfe, 0xaf, 0x41, +	0x01, 0x39, 0x0a, 0x24, 0x3c, 0x7e, 0xbe, 0x4e, +	0x53, 0xf3, 0xeb, 0x06, 0x66, 0x51, 0x28, 0x1d, +	0xbd, 0x41, 0x0a, 0x01, 0xab, 0x16, 0x47, 0x27, +	0x47, 0x47, 0xf7, 0xcb, 0x46, 0x0a, 0x70, 0x9e, +	0x01, 0x9c, 0x09, 0xe1, 0x2a, 0x00, 0x1a, 0xd8, +	0xd4, 0x79, 0x9d, 0x80, 0x15, 0x8e, 0x53, 0x2a, +	0x65, 0x83, 0x78, 0x3e, 0x03, 0x00, 0x07, 0x12, +	0x1f, 0x33, 0x3e, 0x7b, 0x13, 0x37, 0xf1, 0xc3, +	0xef, 0xb7, 0xc1, 0x20, 0x3c, 0x3e, 0x67, 0x66, +	0x5d, 0x88, 0xa7, 0x7d, 0x33, 0x50, 0x77, 0xb0, +	0x28, 0x8e, 0xe7, 0x2c, 0x2e, 0x7a, 0xf4, 0x3c, +	0x8d, 0x74, 0x83, 0xaf, 0x8e, 0x87, 0x0f, 0xe4, +	0x50, 0xff, 0x84, 0x5c, 0x47, 0x0c, 0x6a, 0x49, +	0xbf, 0x42, 0x86, 0x77, 0x15, 0x48, 0xa5, 0x90, +	0x5d, 0x93, 0xd6, 0x2a, 0x11, 0xd5, 0xd5, 0x11, +	0xaa, 0xce, 0xe7, 0x6f, 0xa5, 0xb0, 0x09, 0x2c, +	0x8d, 0xd3, 0x92, 0xf0, 0x5a, 0x2a, 0xda, 0x5b, +	0x1e, 0xd5, 0x9a, 0xc4, 0xc4, 0xf3, 0x49, 0x74, +	0x41, 0xca, 0xe8, 0xc1, 0xf8, 0x44, 0xd6, 0x3c, +	0xae, 0x6c, 0x1d, 0x9a, 0x30, 0x04, 0x4d, 0x27, +	0x0e, 0xb1, 0x5f, 0x59, 0xa2, 0x24, 0xe8, 0xe1, +	0x98, 0xc5, 0x6a, 0x4c, 0xfe, 0x41, 0xd2, 0x27, +	0x42, 0x52, 0xe1, 0xe9, 0x7d, 0x62, 0xe4, 0x88, +	0x0f, 0xad, 0xb2, 0x70, 0xcb, 0x9d, 0x4c, 0x27, +	0x2e, 0x76, 0x1e, 0x1a, 0x63, 0x65, 0xf5, 0x3b, +	0xf8, 0x57, 0x69, 0xeb, 0x5b, 0x38, 0x26, 0x39, +	0x33, 0x25, 0x45, 0x3e, 0x91, 0xb8, 0xd8, 0xc7, +	0xd5, 0x42, 0xc0, 0x22, 0x31, 0x74, 0xf4, 0xbc, +	0x0c, 0x23, 0xf1, 0xca, 0xc1, 0x8d, 0xd7, 0xbe, +	0xc9, 0x62, 0xe4, 0x08, 0x1a, 0xcf, 0x36, 0xd5, +	0xfe, 0x55, 0x21, 0x59, 0x91, 0x87, 0x87, 0xdf, +	0x06, 0xdb, 0xdf, 0x96, 0x45, 0x58, 0xda, 0x05, +	0xcd, 0x50, 0x4d, 0xd2, 0x7d, 0x05, 0x18, 0x73, +	0x6a, 0x8d, 0x11, 0x85, 0xa6, 0x88, 0xe8, 0xda, +	0xe6, 0x30, 0x33, 0xa4, 0x89, 0x31, 0x75, 0xbe, +	0x69, 0x43, 0x84, 0x43, 0x50, 0x87, 0xdd, 0x71, +	0x36, 0x83, 0xc3, 0x78, 0x74, 0x24, 0x0a, 0xed, +	0x7b, 0xdb, 0xa4, 0x24, 0x0b, 0xb9, 0x7e, 0x5d, +	0xff, 0xde, 0xb1, 0xef, 0x61, 0x5a, 0x45, 0x33, +	0xf6, 0x17, 0x07, 0x08, 0x98, 0x83, 0x92, 0x0f, +	0x23, 0x6d, 0xe6, 0xaa, 0x17, 0x54, 0xad, 0x6a, +	0xc8, 0xdb, 0x26, 0xbe, 0xb8, 0xb6, 0x08, 0xfa, +	0x68, 0xf1, 0xd7, 0x79, 0x6f, 0x18, 0xb4, 0x9e, +	0x2d, 0x3f, 0x1b, 0x64, 0xaf, 0x8d, 0x06, 0x0e, +	0x49, 0x28, 0xe0, 0x5d, 0x45, 0x68, 0x13, 0x87, +	0xfa, 0xde, 0x40, 0x7b, 0xd2, 0xc3, 0x94, 0xd5, +	0xe1, 0xd9, 0xc2, 0xaf, 0x55, 0x89, 0xeb, 0xb4, +	0x12, 0x59, 0xa8, 0xd4, 0xc5, 0x29, 0x66, 0x38, +	0xe6, 0xac, 0x22, 0x22, 0xd9, 0x64, 0x9b, 0x34, +	0x0a, 0x32, 0x9f, 0xc2, 0xbf, 0x17, 0x6c, 0x3f, +	0x71, 0x7a, 0x38, 0x6b, 0x98, 0xfb, 0x49, 0x36, +	0x89, 0xc9, 0xe2, 0xd6, 0xc7, 0x5d, 0xd0, 0x69, +	0x5f, 0x23, 0x35, 0xc9, 0x30, 0xe2, 0xfd, 0x44, +	0x58, 0x39, 0xd7, 0x97, 0xfb, 0x5c, 0x00, 0xd5, +	0x4f, 0x7a, 0x1a, 0x95, 0x8b, 0x62, 0x4b, 0xce, +	0xe5, 0x91, 0x21, 0x7b, 0x30, 0x00, 0xd6, 0xdd, +	0x6d, 0x02, 0x86, 0x49, 0x0f, 0x3c, 0x1a, 0x27, +	0x3c, 0xd3, 0x0e, 0x71, 0xf2, 0xff, 0xf5, 0x2f, +	0x87, 0xac, 0x67, 0x59, 0x81, 0xa3, 0xf7, 0xf8, +	0xd6, 0x11, 0x0c, 0x84, 0xa9, 0x03, 0xee, 0x2a, +	0xc4, 0xf3, 0x22, 0xab, 0x7c, 0xe2, 0x25, 0xf5, +	0x67, 0xa3, 0xe4, 0x11, 0xe0, 0x59, 0xb3, 0xca, +	0x87, 0xa0, 0xae, 0xc9, 0xa6, 0x62, 0x1b, 0x6e, +	0x4d, 0x02, 0x6b, 0x07, 0x9d, 0xfd, 0xd0, 0x92, +	0x06, 0xe1, 0xb2, 0x9a, 0x4a, 0x1f, 0x1f, 0x13, +	0x49, 0x99, 0x97, 0x08, 0xde, 0x7f, 0x98, 0xaf, +	0x51, 0x98, 0xee, 0x2c, 0xcb, 0xf0, 0x0b, 0xc6, +	0xb6, 0xb7, 0x2d, 0x9a, 0xb1, 0xac, 0xa6, 0xe3, +	0x15, 0x77, 0x9d, 0x6b, 0x1a, 0xe4, 0xfc, 0x8b, +	0xf2, 0x17, 0x59, 0x08, 0x04, 0x58, 0x81, 0x9d, +	0x1b, 0x1b, 0x69, 0x55, 0xc2, 0xb4, 0x3c, 0x1f, +	0x50, 0xf1, 0x7f, 0x77, 0x90, 0x4c, 0x66, 0x40, +	0x5a, 0xc0, 0x33, 0x1f, 0xcb, 0x05, 0x6d, 0x5c, +	0x06, 0x87, 0x52, 0xa2, 0x8f, 0x26, 0xd5, 0x4f +}; +static const u8 dec_assoc010[] __initconst = { +	0xd2, 0xa1, 0x70, 0xdb, 0x7a, 0xf8, 0xfa, 0x27, +	0xba, 0x73, 0x0f, 0xbf, 0x3d, 0x1e, 0x82, 0xb2 +}; +static const u8 dec_nonce010[] __initconst = { +	0xdb, 0x92, 0x0f, 0x7f, 0x17, 0x54, 0x0c, 0x30 +}; +static const u8 dec_key010[] __initconst = { +	0x47, 0x11, 0xeb, 0x86, 0x2b, 0x2c, 0xab, 0x44, +	0x34, 0xda, 0x7f, 0x57, 0x03, 0x39, 0x0c, 0xaf, +	0x2c, 0x14, 0xfd, 0x65, 0x23, 0xe9, 0x8e, 0x74, +	0xd5, 0x08, 0x68, 0x08, 0xe7, 0xb4, 0x72, 0xd7 +}; + +static const u8 dec_input011[] __initconst = { +	0x6a, 0xfc, 0x4b, 0x25, 0xdf, 0xc0, 0xe4, 0xe8, +	0x17, 0x4d, 0x4c, 0xc9, 0x7e, 0xde, 0x3a, 0xcc, +	0x3c, 0xba, 0x6a, 0x77, 0x47, 0xdb, 0xe3, 0x74, +	0x7a, 0x4d, 0x5f, 0x8d, 0x37, 0x55, 0x80, 0x73, +	0x90, 0x66, 0x5d, 0x3a, 0x7d, 0x5d, 0x86, 0x5e, +	0x8d, 0xfd, 0x83, 0xff, 0x4e, 0x74, 0x6f, 0xf9, +	0xe6, 0x70, 0x17, 0x70, 0x3e, 0x96, 0xa7, 0x7e, +	0xcb, 0xab, 0x8f, 0x58, 0x24, 0x9b, 0x01, 0xfd, +	0xcb, 0xe6, 0x4d, 0x9b, 0xf0, 0x88, 0x94, 0x57, +	0x66, 0xef, 0x72, 0x4c, 0x42, 0x6e, 0x16, 0x19, +	0x15, 0xea, 0x70, 0x5b, 0xac, 0x13, 0xdb, 0x9f, +	0x18, 0xe2, 0x3c, 0x26, 0x97, 0xbc, 0xdc, 0x45, +	0x8c, 0x6c, 0x24, 0x69, 0x9c, 0xf7, 0x65, 0x1e, +	0x18, 0x59, 0x31, 0x7c, 0xe4, 0x73, 0xbc, 0x39, +	0x62, 0xc6, 0x5c, 0x9f, 0xbf, 0xfa, 0x90, 0x03, +	0xc9, 0x72, 0x26, 0xb6, 0x1b, 0xc2, 0xb7, 0x3f, +	0xf2, 0x13, 0x77, 0xf2, 0x8d, 0xb9, 0x47, 0xd0, +	0x53, 0xdd, 0xc8, 0x91, 0x83, 0x8b, 0xb1, 0xce, +	0xa3, 0xfe, 0xcd, 0xd9, 0xdd, 0x92, 0x7b, 0xdb, +	0xb8, 0xfb, 0xc9, 0x2d, 0x01, 0x59, 0x39, 0x52, +	0xad, 0x1b, 0xec, 0xcf, 0xd7, 0x70, 0x13, 0x21, +	0xf5, 0x47, 0xaa, 0x18, 0x21, 0x5c, 0xc9, 0x9a, +	0xd2, 0x6b, 0x05, 0x9c, 0x01, 0xa1, 0xda, 0x35, +	0x5d, 0xb3, 0x70, 0xe6, 0xa9, 0x80, 0x8b, 0x91, +	0xb7, 0xb3, 0x5f, 0x24, 0x9a, 0xb7, 0xd1, 0x6b, +	0xa1, 0x1c, 0x50, 0xba, 0x49, 0xe0, 0xee, 0x2e, +	0x75, 0xac, 0x69, 0xc0, 0xeb, 0x03, 0xdd, 0x19, +	0xe5, 0xf6, 0x06, 0xdd, 0xc3, 0xd7, 0x2b, 0x07, +	0x07, 0x30, 0xa7, 0x19, 0x0c, 0xbf, 0xe6, 0x18, +	0xcc, 0xb1, 0x01, 0x11, 0x85, 0x77, 0x1d, 0x96, +	0xa7, 0xa3, 0x00, 0x84, 0x02, 0xa2, 0x83, 0x68, +	0xda, 0x17, 0x27, 0xc8, 0x7f, 0x23, 0xb7, 0xf4, +	0x13, 0x85, 0xcf, 0xdd, 0x7a, 0x7d, 0x24, 0x57, +	0xfe, 0x05, 0x93, 0xf5, 0x74, 0xce, 0xed, 0x0c, +	0x20, 0x98, 0x8d, 0x92, 0x30, 0xa1, 0x29, 0x23, +	0x1a, 0xa0, 0x4f, 0x69, 0x56, 0x4c, 0xe1, 0xc8, +	0xce, 0xf6, 0x9a, 0x0c, 0xa4, 0xfa, 0x04, 0xf6, +	0x62, 0x95, 0xf2, 0xfa, 0xc7, 0x40, 0x68, 0x40, +	0x8f, 0x41, 0xda, 0xb4, 0x26, 0x6f, 0x70, 0xab, +	0x40, 0x61, 0xa4, 0x0e, 0x75, 0xfb, 0x86, 0xeb, +	0x9d, 0x9a, 0x1f, 0xec, 0x76, 0x99, 0xe7, 0xea, +	0xaa, 0x1e, 0x2d, 0xb5, 0xd4, 0xa6, 0x1a, 0xb8, +	0x61, 0x0a, 0x1d, 0x16, 0x5b, 0x98, 0xc2, 0x31, +	0x40, 0xe7, 0x23, 0x1d, 0x66, 0x99, 0xc8, 0xc0, +	0xd7, 0xce, 0xf3, 0x57, 0x40, 0x04, 0x3f, 0xfc, +	0xea, 0xb3, 0xfc, 0xd2, 0xd3, 0x99, 0xa4, 0x94, +	0x69, 0xa0, 0xef, 0xd1, 0x85, 0xb3, 0xa6, 0xb1, +	0x28, 0xbf, 0x94, 0x67, 0x22, 0xc3, 0x36, 0x46, +	0xf8, 0xd2, 0x0f, 0x5f, 0xf4, 0x59, 0x80, 0xe6, +	0x2d, 0x43, 0x08, 0x7d, 0x19, 0x09, 0x97, 0xa7, +	0x4c, 0x3d, 0x8d, 0xba, 0x65, 0x62, 0xa3, 0x71, +	0x33, 0x29, 0x62, 0xdb, 0xc1, 0x33, 0x34, 0x1a, +	0x63, 0x33, 0x16, 0xb6, 0x64, 0x7e, 0xab, 0x33, +	0xf0, 0xe6, 0x26, 0x68, 0xba, 0x1d, 0x2e, 0x38, +	0x08, 0xe6, 0x02, 0xd3, 0x25, 0x2c, 0x47, 0x23, +	0x58, 0x34, 0x0f, 0x9d, 0x63, 0x4f, 0x63, 0xbb, +	0x7f, 0x3b, 0x34, 0x38, 0xa7, 0xb5, 0x8d, 0x65, +	0xd9, 0x9f, 0x79, 0x55, 0x3e, 0x4d, 0xe7, 0x73, +	0xd8, 0xf6, 0x98, 0x97, 0x84, 0x60, 0x9c, 0xc8, +	0xa9, 0x3c, 0xf6, 0xdc, 0x12, 0x5c, 0xe1, 0xbb, +	0x0b, 0x8b, 0x98, 0x9c, 0x9d, 0x26, 0x7c, 0x4a, +	0xe6, 0x46, 0x36, 0x58, 0x21, 0x4a, 0xee, 0xca, +	0xd7, 0x3b, 0xc2, 0x6c, 0x49, 0x2f, 0xe5, 0xd5, +	0x03, 0x59, 0x84, 0x53, 0xcb, 0xfe, 0x92, 0x71, +	0x2e, 0x7c, 0x21, 0xcc, 0x99, 0x85, 0x7f, 0xb8, +	0x74, 0x90, 0x13, 0x42, 0x3f, 0xe0, 0x6b, 0x1d, +	0xf2, 0x4d, 0x54, 0xd4, 0xfc, 0x3a, 0x05, 0xe6, +	0x74, 0xaf, 0xa6, 0xa0, 0x2a, 0x20, 0x23, 0x5d, +	0x34, 0x5c, 0xd9, 0x3e, 0x4e, 0xfa, 0x93, 0xe7, +	0xaa, 0xe9, 0x6f, 0x08, 0x43, 0x67, 0x41, 0xc5, +	0xad, 0xfb, 0x31, 0x95, 0x82, 0x73, 0x32, 0xd8, +	0xa6, 0xa3, 0xed, 0x0e, 0x2d, 0xf6, 0x5f, 0xfd, +	0x80, 0xa6, 0x7a, 0xe0, 0xdf, 0x78, 0x15, 0x29, +	0x74, 0x33, 0xd0, 0x9e, 0x83, 0x86, 0x72, 0x22, +	0x57, 0x29, 0xb9, 0x9e, 0x5d, 0xd3, 0x1a, 0xb5, +	0x96, 0x72, 0x41, 0x3d, 0xf1, 0x64, 0x43, 0x67, +	0xee, 0xaa, 0x5c, 0xd3, 0x9a, 0x96, 0x13, 0x11, +	0x5d, 0xf3, 0x0c, 0x87, 0x82, 0x1e, 0x41, 0x9e, +	0xd0, 0x27, 0xd7, 0x54, 0x3b, 0x67, 0x73, 0x09, +	0x91, 0xe9, 0xd5, 0x36, 0xa7, 0xb5, 0x55, 0xe4, +	0xf3, 0x21, 0x51, 0x49, 0x22, 0x07, 0x55, 0x4f, +	0x44, 0x4b, 0xd2, 0x15, 0x93, 0x17, 0x2a, 0xfa, +	0x4d, 0x4a, 0x57, 0xdb, 0x4c, 0xa6, 0xeb, 0xec, +	0x53, 0x25, 0x6c, 0x21, 0xed, 0x00, 0x4c, 0x3b, +	0xca, 0x14, 0x57, 0xa9, 0xd6, 0x6a, 0xcd, 0x8d, +	0x5e, 0x74, 0xac, 0x72, 0xc1, 0x97, 0xe5, 0x1b, +	0x45, 0x4e, 0xda, 0xfc, 0xcc, 0x40, 0xe8, 0x48, +	0x88, 0x0b, 0xa3, 0xe3, 0x8d, 0x83, 0x42, 0xc3, +	0x23, 0xfd, 0x68, 0xb5, 0x8e, 0xf1, 0x9d, 0x63, +	0x77, 0xe9, 0xa3, 0x8e, 0x8c, 0x26, 0x6b, 0xbd, +	0x72, 0x73, 0x35, 0x0c, 0x03, 0xf8, 0x43, 0x78, +	0x52, 0x71, 0x15, 0x1f, 0x71, 0x5d, 0x6e, 0xed, +	0xb9, 0xcc, 0x86, 0x30, 0xdb, 0x2b, 0xd3, 0x82, +	0x88, 0x23, 0x71, 0x90, 0x53, 0x5c, 0xa9, 0x2f, +	0x76, 0x01, 0xb7, 0x9a, 0xfe, 0x43, 0x55, 0xa3, +	0x04, 0x9b, 0x0e, 0xe4, 0x59, 0xdf, 0xc9, 0xe9, +	0xb1, 0xea, 0x29, 0x28, 0x3c, 0x5c, 0xae, 0x72, +	0x84, 0xb6, 0xc6, 0xeb, 0x0c, 0x27, 0x07, 0x74, +	0x90, 0x0d, 0x31, 0xb0, 0x00, 0x77, 0xe9, 0x40, +	0x70, 0x6f, 0x68, 0xa7, 0xfd, 0x06, 0xec, 0x4b, +	0xc0, 0xb7, 0xac, 0xbc, 0x33, 0xb7, 0x6d, 0x0a, +	0xbd, 0x12, 0x1b, 0x59, 0xcb, 0xdd, 0x32, 0xf5, +	0x1d, 0x94, 0x57, 0x76, 0x9e, 0x0c, 0x18, 0x98, +	0x71, 0xd7, 0x2a, 0xdb, 0x0b, 0x7b, 0xa7, 0x71, +	0xb7, 0x67, 0x81, 0x23, 0x96, 0xae, 0xb9, 0x7e, +	0x32, 0x43, 0x92, 0x8a, 0x19, 0xa0, 0xc4, 0xd4, +	0x3b, 0x57, 0xf9, 0x4a, 0x2c, 0xfb, 0x51, 0x46, +	0xbb, 0xcb, 0x5d, 0xb3, 0xef, 0x13, 0x93, 0x6e, +	0x68, 0x42, 0x54, 0x57, 0xd3, 0x6a, 0x3a, 0x8f, +	0x9d, 0x66, 0xbf, 0xbd, 0x36, 0x23, 0xf5, 0x93, +	0x83, 0x7b, 0x9c, 0xc0, 0xdd, 0xc5, 0x49, 0xc0, +	0x64, 0xed, 0x07, 0x12, 0xb3, 0xe6, 0xe4, 0xe5, +	0x38, 0x95, 0x23, 0xb1, 0xa0, 0x3b, 0x1a, 0x61, +	0xda, 0x17, 0xac, 0xc3, 0x58, 0xdd, 0x74, 0x64, +	0x22, 0x11, 0xe8, 0x32, 0x1d, 0x16, 0x93, 0x85, +	0x99, 0xa5, 0x9c, 0x34, 0x55, 0xb1, 0xe9, 0x20, +	0x72, 0xc9, 0x28, 0x7b, 0x79, 0x00, 0xa1, 0xa6, +	0xa3, 0x27, 0x40, 0x18, 0x8a, 0x54, 0xe0, 0xcc, +	0xe8, 0x4e, 0x8e, 0x43, 0x96, 0xe7, 0x3f, 0xc8, +	0xe9, 0xb2, 0xf9, 0xc9, 0xda, 0x04, 0x71, 0x50, +	0x47, 0xe4, 0xaa, 0xce, 0xa2, 0x30, 0xc8, 0xe4, +	0xac, 0xc7, 0x0d, 0x06, 0x2e, 0xe6, 0xe8, 0x80, +	0x36, 0x29, 0x9e, 0x01, 0xb8, 0xc3, 0xf0, 0xa0, +	0x5d, 0x7a, 0xca, 0x4d, 0xa0, 0x57, 0xbd, 0x2a, +	0x45, 0xa7, 0x7f, 0x9c, 0x93, 0x07, 0x8f, 0x35, +	0x67, 0x92, 0xe3, 0xe9, 0x7f, 0xa8, 0x61, 0x43, +	0x9e, 0x25, 0x4f, 0x33, 0x76, 0x13, 0x6e, 0x12, +	0xb9, 0xdd, 0xa4, 0x7c, 0x08, 0x9f, 0x7c, 0xe7, +	0x0a, 0x8d, 0x84, 0x06, 0xa4, 0x33, 0x17, 0x34, +	0x5e, 0x10, 0x7c, 0xc0, 0xa8, 0x3d, 0x1f, 0x42, +	0x20, 0x51, 0x65, 0x5d, 0x09, 0xc3, 0xaa, 0xc0, +	0xc8, 0x0d, 0xf0, 0x79, 0xbc, 0x20, 0x1b, 0x95, +	0xe7, 0x06, 0x7d, 0x47, 0x20, 0x03, 0x1a, 0x74, +	0xdd, 0xe2, 0xd4, 0xae, 0x38, 0x71, 0x9b, 0xf5, +	0x80, 0xec, 0x08, 0x4e, 0x56, 0xba, 0x76, 0x12, +	0x1a, 0xdf, 0x48, 0xf3, 0xae, 0xb3, 0xe6, 0xe6, +	0xbe, 0xc0, 0x91, 0x2e, 0x01, 0xb3, 0x01, 0x86, +	0xa2, 0xb9, 0x52, 0xd1, 0x21, 0xae, 0xd4, 0x97, +	0x1d, 0xef, 0x41, 0x12, 0x95, 0x3d, 0x48, 0x45, +	0x1c, 0x56, 0x32, 0x8f, 0xb8, 0x43, 0xbb, 0x19, +	0xf3, 0xca, 0xe9, 0xeb, 0x6d, 0x84, 0xbe, 0x86, +	0x06, 0xe2, 0x36, 0xb2, 0x62, 0x9d, 0xd3, 0x4c, +	0x48, 0x18, 0x54, 0x13, 0x4e, 0xcf, 0xfd, 0xba, +	0x84, 0xb9, 0x30, 0x53, 0xcf, 0xfb, 0xb9, 0x29, +	0x8f, 0xdc, 0x9f, 0xef, 0x60, 0x0b, 0x64, 0xf6, +	0x8b, 0xee, 0xa6, 0x91, 0xc2, 0x41, 0x6c, 0xf6, +	0xfa, 0x79, 0x67, 0x4b, 0xc1, 0x3f, 0xaf, 0x09, +	0x81, 0xd4, 0x5d, 0xcb, 0x09, 0xdf, 0x36, 0x31, +	0xc0, 0x14, 0x3c, 0x7c, 0x0e, 0x65, 0x95, 0x99, +	0x6d, 0xa3, 0xf4, 0xd7, 0x38, 0xee, 0x1a, 0x2b, +	0x37, 0xe2, 0xa4, 0x3b, 0x4b, 0xd0, 0x65, 0xca, +	0xf8, 0xc3, 0xe8, 0x15, 0x20, 0xef, 0xf2, 0x00, +	0xfd, 0x01, 0x09, 0xc5, 0xc8, 0x17, 0x04, 0x93, +	0xd0, 0x93, 0x03, 0x55, 0xc5, 0xfe, 0x32, 0xa3, +	0x3e, 0x28, 0x2d, 0x3b, 0x93, 0x8a, 0xcc, 0x07, +	0x72, 0x80, 0x8b, 0x74, 0x16, 0x24, 0xbb, 0xda, +	0x94, 0x39, 0x30, 0x8f, 0xb1, 0xcd, 0x4a, 0x90, +	0x92, 0x7c, 0x14, 0x8f, 0x95, 0x4e, 0xac, 0x9b, +	0xd8, 0x8f, 0x1a, 0x87, 0xa4, 0x32, 0x27, 0x8a, +	0xba, 0xf7, 0x41, 0xcf, 0x84, 0x37, 0x19, 0xe6, +	0x06, 0xf5, 0x0e, 0xcf, 0x36, 0xf5, 0x9e, 0x6c, +	0xde, 0xbc, 0xff, 0x64, 0x7e, 0x4e, 0x59, 0x57, +	0x48, 0xfe, 0x14, 0xf7, 0x9c, 0x93, 0x5d, 0x15, +	0xad, 0xcc, 0x11, 0xb1, 0x17, 0x18, 0xb2, 0x7e, +	0xcc, 0xab, 0xe9, 0xce, 0x7d, 0x77, 0x5b, 0x51, +	0x1b, 0x1e, 0x20, 0xa8, 0x32, 0x06, 0x0e, 0x75, +	0x93, 0xac, 0xdb, 0x35, 0x37, 0x1f, 0xe9, 0x19, +	0x1d, 0xb4, 0x71, 0x97, 0xd6, 0x4e, 0x2c, 0x08, +	0xa5, 0x13, 0xf9, 0x0e, 0x7e, 0x78, 0x6e, 0x14, +	0xe0, 0xa9, 0xb9, 0x96, 0x4c, 0x80, 0x82, 0xba, +	0x17, 0xb3, 0x9d, 0x69, 0xb0, 0x84, 0x46, 0xff, +	0xf9, 0x52, 0x79, 0x94, 0x58, 0x3a, 0x62, 0x90, +	0x15, 0x35, 0x71, 0x10, 0x37, 0xed, 0xa1, 0x8e, +	0x53, 0x6e, 0xf4, 0x26, 0x57, 0x93, 0x15, 0x93, +	0xf6, 0x81, 0x2c, 0x5a, 0x10, 0xda, 0x92, 0xad, +	0x2f, 0xdb, 0x28, 0x31, 0x2d, 0x55, 0x04, 0xd2, +	0x06, 0x28, 0x8c, 0x1e, 0xdc, 0xea, 0x54, 0xac, +	0xff, 0xb7, 0x6c, 0x30, 0x15, 0xd4, 0xb4, 0x0d, +	0x00, 0x93, 0x57, 0xdd, 0xd2, 0x07, 0x07, 0x06, +	0xd9, 0x43, 0x9b, 0xcd, 0x3a, 0xf4, 0x7d, 0x4c, +	0x36, 0x5d, 0x23, 0xa2, 0xcc, 0x57, 0x40, 0x91, +	0xe9, 0x2c, 0x2f, 0x2c, 0xd5, 0x30, 0x9b, 0x17, +	0xb0, 0xc9, 0xf7, 0xa7, 0x2f, 0xd1, 0x93, 0x20, +	0x6b, 0xc6, 0xc1, 0xe4, 0x6f, 0xcb, 0xd1, 0xe7, +	0x09, 0x0f, 0x9e, 0xdc, 0xaa, 0x9f, 0x2f, 0xdf, +	0x56, 0x9f, 0xd4, 0x33, 0x04, 0xaf, 0xd3, 0x6c, +	0x58, 0x61, 0xf0, 0x30, 0xec, 0xf2, 0x7f, 0xf2, +	0x9c, 0xdf, 0x39, 0xbb, 0x6f, 0xa2, 0x8c, 0x7e, +	0xc4, 0x22, 0x51, 0x71, 0xc0, 0x4d, 0x14, 0x1a, +	0xc4, 0xcd, 0x04, 0xd9, 0x87, 0x08, 0x50, 0x05, +	0xcc, 0xaf, 0xf6, 0xf0, 0x8f, 0x92, 0x54, 0x58, +	0xc2, 0xc7, 0x09, 0x7a, 0x59, 0x02, 0x05, 0xe8, +	0xb0, 0x86, 0xd9, 0xbf, 0x7b, 0x35, 0x51, 0x4d, +	0xaf, 0x08, 0x97, 0x2c, 0x65, 0xda, 0x2a, 0x71, +	0x3a, 0xa8, 0x51, 0xcc, 0xf2, 0x73, 0x27, 0xc3, +	0xfd, 0x62, 0xcf, 0xe3, 0xb2, 0xca, 0xcb, 0xbe, +	0x1a, 0x0a, 0xa1, 0x34, 0x7b, 0x77, 0xc4, 0x62, +	0x68, 0x78, 0x5f, 0x94, 0x07, 0x04, 0x65, 0x16, +	0x4b, 0x61, 0xcb, 0xff, 0x75, 0x26, 0x50, 0x66, +	0x1f, 0x6e, 0x93, 0xf8, 0xc5, 0x51, 0xeb, 0xa4, +	0x4a, 0x48, 0x68, 0x6b, 0xe2, 0x5e, 0x44, 0xb2, +	0x50, 0x2c, 0x6c, 0xae, 0x79, 0x4e, 0x66, 0x35, +	0x81, 0x50, 0xac, 0xbc, 0x3f, 0xb1, 0x0c, 0xf3, +	0x05, 0x3c, 0x4a, 0xa3, 0x6c, 0x2a, 0x79, 0xb4, +	0xb7, 0xab, 0xca, 0xc7, 0x9b, 0x8e, 0xcd, 0x5f, +	0x11, 0x03, 0xcb, 0x30, 0xa3, 0xab, 0xda, 0xfe, +	0x64, 0xb9, 0xbb, 0xd8, 0x5e, 0x3a, 0x1a, 0x56, +	0xe5, 0x05, 0x48, 0x90, 0x1e, 0x61, 0x69, 0x1b, +	0x22, 0xe6, 0x1a, 0x3c, 0x75, 0xad, 0x1f, 0x37, +	0x28, 0xdc, 0xe4, 0x6d, 0xbd, 0x42, 0xdc, 0xd3, +	0xc8, 0xb6, 0x1c, 0x48, 0xfe, 0x94, 0x77, 0x7f, +	0xbd, 0x62, 0xac, 0xa3, 0x47, 0x27, 0xcf, 0x5f, +	0xd9, 0xdb, 0xaf, 0xec, 0xf7, 0x5e, 0xc1, 0xb0, +	0x9d, 0x01, 0x26, 0x99, 0x7e, 0x8f, 0x03, 0x70, +	0xb5, 0x42, 0xbe, 0x67, 0x28, 0x1b, 0x7c, 0xbd, +	0x61, 0x21, 0x97, 0xcc, 0x5c, 0xe1, 0x97, 0x8f, +	0x8d, 0xde, 0x2b, 0xaa, 0xa7, 0x71, 0x1d, 0x1e, +	0x02, 0x73, 0x70, 0x58, 0x32, 0x5b, 0x1d, 0x67, +	0x3d, 0xe0, 0x74, 0x4f, 0x03, 0xf2, 0x70, 0x51, +	0x79, 0xf1, 0x61, 0x70, 0x15, 0x74, 0x9d, 0x23, +	0x89, 0xde, 0xac, 0xfd, 0xde, 0xd0, 0x1f, 0xc3, +	0x87, 0x44, 0x35, 0x4b, 0xe5, 0xb0, 0x60, 0xc5, +	0x22, 0xe4, 0x9e, 0xca, 0xeb, 0xd5, 0x3a, 0x09, +	0x45, 0xa4, 0xdb, 0xfa, 0x3f, 0xeb, 0x1b, 0xc7, +	0xc8, 0x14, 0x99, 0x51, 0x92, 0x10, 0xed, 0xed, +	0x28, 0xe0, 0xa1, 0xf8, 0x26, 0xcf, 0xcd, 0xcb, +	0x63, 0xa1, 0x3b, 0xe3, 0xdf, 0x7e, 0xfe, 0xa6, +	0xf0, 0x81, 0x9a, 0xbf, 0x55, 0xde, 0x54, 0xd5, +	0x56, 0x60, 0x98, 0x10, 0x68, 0xf4, 0x38, 0x96, +	0x8e, 0x6f, 0x1d, 0x44, 0x7f, 0xd6, 0x2f, 0xfe, +	0x55, 0xfb, 0x0c, 0x7e, 0x67, 0xe2, 0x61, 0x44, +	0xed, 0xf2, 0x35, 0x30, 0x5d, 0xe9, 0xc7, 0xd6, +	0x6d, 0xe0, 0xa0, 0xed, 0xf3, 0xfc, 0xd8, 0x3e, +	0x0a, 0x7b, 0xcd, 0xaf, 0x65, 0x68, 0x18, 0xc0, +	0xec, 0x04, 0x1c, 0x74, 0x6d, 0xe2, 0x6e, 0x79, +	0xd4, 0x11, 0x2b, 0x62, 0xd5, 0x27, 0xad, 0x4f, +	0x01, 0x59, 0x73, 0xcc, 0x6a, 0x53, 0xfb, 0x2d, +	0xd5, 0x4e, 0x99, 0x21, 0x65, 0x4d, 0xf5, 0x82, +	0xf7, 0xd8, 0x42, 0xce, 0x6f, 0x3d, 0x36, 0x47, +	0xf1, 0x05, 0x16, 0xe8, 0x1b, 0x6a, 0x8f, 0x93, +	0xf2, 0x8f, 0x37, 0x40, 0x12, 0x28, 0xa3, 0xe6, +	0xb9, 0x17, 0x4a, 0x1f, 0xb1, 0xd1, 0x66, 0x69, +	0x86, 0xc4, 0xfc, 0x97, 0xae, 0x3f, 0x8f, 0x1e, +	0x2b, 0xdf, 0xcd, 0xf9, 0x3c +}; +static const u8 dec_output011[] __initconst = { +	0x7a, 0x57, 0xf2, 0xc7, 0x06, 0x3f, 0x50, 0x7b, +	0x36, 0x1a, 0x66, 0x5c, 0xb9, 0x0e, 0x5e, 0x3b, +	0x45, 0x60, 0xbe, 0x9a, 0x31, 0x9f, 0xff, 0x5d, +	0x66, 0x34, 0xb4, 0xdc, 0xfb, 0x9d, 0x8e, 0xee, +	0x6a, 0x33, 0xa4, 0x07, 0x3c, 0xf9, 0x4c, 0x30, +	0xa1, 0x24, 0x52, 0xf9, 0x50, 0x46, 0x88, 0x20, +	0x02, 0x32, 0x3a, 0x0e, 0x99, 0x63, 0xaf, 0x1f, +	0x15, 0x28, 0x2a, 0x05, 0xff, 0x57, 0x59, 0x5e, +	0x18, 0xa1, 0x1f, 0xd0, 0x92, 0x5c, 0x88, 0x66, +	0x1b, 0x00, 0x64, 0xa5, 0x93, 0x8d, 0x06, 0x46, +	0xb0, 0x64, 0x8b, 0x8b, 0xef, 0x99, 0x05, 0x35, +	0x85, 0xb3, 0xf3, 0x33, 0xbb, 0xec, 0x66, 0xb6, +	0x3d, 0x57, 0x42, 0xe3, 0xb4, 0xc6, 0xaa, 0xb0, +	0x41, 0x2a, 0xb9, 0x59, 0xa9, 0xf6, 0x3e, 0x15, +	0x26, 0x12, 0x03, 0x21, 0x4c, 0x74, 0x43, 0x13, +	0x2a, 0x03, 0x27, 0x09, 0xb4, 0xfb, 0xe7, 0xb7, +	0x40, 0xff, 0x5e, 0xce, 0x48, 0x9a, 0x60, 0xe3, +	0x8b, 0x80, 0x8c, 0x38, 0x2d, 0xcb, 0x93, 0x37, +	0x74, 0x05, 0x52, 0x6f, 0x73, 0x3e, 0xc3, 0xbc, +	0xca, 0x72, 0x0a, 0xeb, 0xf1, 0x3b, 0xa0, 0x95, +	0xdc, 0x8a, 0xc4, 0xa9, 0xdc, 0xca, 0x44, 0xd8, +	0x08, 0x63, 0x6a, 0x36, 0xd3, 0x3c, 0xb8, 0xac, +	0x46, 0x7d, 0xfd, 0xaa, 0xeb, 0x3e, 0x0f, 0x45, +	0x8f, 0x49, 0xda, 0x2b, 0xf2, 0x12, 0xbd, 0xaf, +	0x67, 0x8a, 0x63, 0x48, 0x4b, 0x55, 0x5f, 0x6d, +	0x8c, 0xb9, 0x76, 0x34, 0x84, 0xae, 0xc2, 0xfc, +	0x52, 0x64, 0x82, 0xf7, 0xb0, 0x06, 0xf0, 0x45, +	0x73, 0x12, 0x50, 0x30, 0x72, 0xea, 0x78, 0x9a, +	0xa8, 0xaf, 0xb5, 0xe3, 0xbb, 0x77, 0x52, 0xec, +	0x59, 0x84, 0xbf, 0x6b, 0x8f, 0xce, 0x86, 0x5e, +	0x1f, 0x23, 0xe9, 0xfb, 0x08, 0x86, 0xf7, 0x10, +	0xb9, 0xf2, 0x44, 0x96, 0x44, 0x63, 0xa9, 0xa8, +	0x78, 0x00, 0x23, 0xd6, 0xc7, 0xe7, 0x6e, 0x66, +	0x4f, 0xcc, 0xee, 0x15, 0xb3, 0xbd, 0x1d, 0xa0, +	0xe5, 0x9c, 0x1b, 0x24, 0x2c, 0x4d, 0x3c, 0x62, +	0x35, 0x9c, 0x88, 0x59, 0x09, 0xdd, 0x82, 0x1b, +	0xcf, 0x0a, 0x83, 0x6b, 0x3f, 0xae, 0x03, 0xc4, +	0xb4, 0xdd, 0x7e, 0x5b, 0x28, 0x76, 0x25, 0x96, +	0xd9, 0xc9, 0x9d, 0x5f, 0x86, 0xfa, 0xf6, 0xd7, +	0xd2, 0xe6, 0x76, 0x1d, 0x0f, 0xa1, 0xdc, 0x74, +	0x05, 0x1b, 0x1d, 0xe0, 0xcd, 0x16, 0xb0, 0xa8, +	0x8a, 0x34, 0x7b, 0x15, 0x11, 0x77, 0xe5, 0x7b, +	0x7e, 0x20, 0xf7, 0xda, 0x38, 0xda, 0xce, 0x70, +	0xe9, 0xf5, 0x6c, 0xd9, 0xbe, 0x0c, 0x4c, 0x95, +	0x4c, 0xc2, 0x9b, 0x34, 0x55, 0x55, 0xe1, 0xf3, +	0x46, 0x8e, 0x48, 0x74, 0x14, 0x4f, 0x9d, 0xc9, +	0xf5, 0xe8, 0x1a, 0xf0, 0x11, 0x4a, 0xc1, 0x8d, +	0xe0, 0x93, 0xa0, 0xbe, 0x09, 0x1c, 0x2b, 0x4e, +	0x0f, 0xb2, 0x87, 0x8b, 0x84, 0xfe, 0x92, 0x32, +	0x14, 0xd7, 0x93, 0xdf, 0xe7, 0x44, 0xbc, 0xc5, +	0xae, 0x53, 0x69, 0xd8, 0xb3, 0x79, 0x37, 0x80, +	0xe3, 0x17, 0x5c, 0xec, 0x53, 0x00, 0x9a, 0xe3, +	0x8e, 0xdc, 0x38, 0xb8, 0x66, 0xf0, 0xd3, 0xad, +	0x1d, 0x02, 0x96, 0x86, 0x3e, 0x9d, 0x3b, 0x5d, +	0xa5, 0x7f, 0x21, 0x10, 0xf1, 0x1f, 0x13, 0x20, +	0xf9, 0x57, 0x87, 0x20, 0xf5, 0x5f, 0xf1, 0x17, +	0x48, 0x0a, 0x51, 0x5a, 0xcd, 0x19, 0x03, 0xa6, +	0x5a, 0xd1, 0x12, 0x97, 0xe9, 0x48, 0xe2, 0x1d, +	0x83, 0x75, 0x50, 0xd9, 0x75, 0x7d, 0x6a, 0x82, +	0xa1, 0xf9, 0x4e, 0x54, 0x87, 0x89, 0xc9, 0x0c, +	0xb7, 0x5b, 0x6a, 0x91, 0xc1, 0x9c, 0xb2, 0xa9, +	0xdc, 0x9a, 0xa4, 0x49, 0x0a, 0x6d, 0x0d, 0xbb, +	0xde, 0x86, 0x44, 0xdd, 0x5d, 0x89, 0x2b, 0x96, +	0x0f, 0x23, 0x95, 0xad, 0xcc, 0xa2, 0xb3, 0xb9, +	0x7e, 0x74, 0x38, 0xba, 0x9f, 0x73, 0xae, 0x5f, +	0xf8, 0x68, 0xa2, 0xe0, 0xa9, 0xce, 0xbd, 0x40, +	0xd4, 0x4c, 0x6b, 0xd2, 0x56, 0x62, 0xb0, 0xcc, +	0x63, 0x7e, 0x5b, 0xd3, 0xae, 0xd1, 0x75, 0xce, +	0xbb, 0xb4, 0x5b, 0xa8, 0xf8, 0xb4, 0xac, 0x71, +	0x75, 0xaa, 0xc9, 0x9f, 0xbb, 0x6c, 0xad, 0x0f, +	0x55, 0x5d, 0xe8, 0x85, 0x7d, 0xf9, 0x21, 0x35, +	0xea, 0x92, 0x85, 0x2b, 0x00, 0xec, 0x84, 0x90, +	0x0a, 0x63, 0x96, 0xe4, 0x6b, 0xa9, 0x77, 0xb8, +	0x91, 0xf8, 0x46, 0x15, 0x72, 0x63, 0x70, 0x01, +	0x40, 0xa3, 0xa5, 0x76, 0x62, 0x2b, 0xbf, 0xf1, +	0xe5, 0x8d, 0x9f, 0xa3, 0xfa, 0x9b, 0x03, 0xbe, +	0xfe, 0x65, 0x6f, 0xa2, 0x29, 0x0d, 0x54, 0xb4, +	0x71, 0xce, 0xa9, 0xd6, 0x3d, 0x88, 0xf9, 0xaf, +	0x6b, 0xa8, 0x9e, 0xf4, 0x16, 0x96, 0x36, 0xb9, +	0x00, 0xdc, 0x10, 0xab, 0xb5, 0x08, 0x31, 0x1f, +	0x00, 0xb1, 0x3c, 0xd9, 0x38, 0x3e, 0xc6, 0x04, +	0xa7, 0x4e, 0xe8, 0xae, 0xed, 0x98, 0xc2, 0xf7, +	0xb9, 0x00, 0x5f, 0x8c, 0x60, 0xd1, 0xe5, 0x15, +	0xf7, 0xae, 0x1e, 0x84, 0x88, 0xd1, 0xf6, 0xbc, +	0x3a, 0x89, 0x35, 0x22, 0x83, 0x7c, 0xca, 0xf0, +	0x33, 0x82, 0x4c, 0x79, 0x3c, 0xfd, 0xb1, 0xae, +	0x52, 0x62, 0x55, 0xd2, 0x41, 0x60, 0xc6, 0xbb, +	0xfa, 0x0e, 0x59, 0xd6, 0xa8, 0xfe, 0x5d, 0xed, +	0x47, 0x3d, 0xe0, 0xea, 0x1f, 0x6e, 0x43, 0x51, +	0xec, 0x10, 0x52, 0x56, 0x77, 0x42, 0x6b, 0x52, +	0x87, 0xd8, 0xec, 0xe0, 0xaa, 0x76, 0xa5, 0x84, +	0x2a, 0x22, 0x24, 0xfd, 0x92, 0x40, 0x88, 0xd5, +	0x85, 0x1c, 0x1f, 0x6b, 0x47, 0xa0, 0xc4, 0xe4, +	0xef, 0xf4, 0xea, 0xd7, 0x59, 0xac, 0x2a, 0x9e, +	0x8c, 0xfa, 0x1f, 0x42, 0x08, 0xfe, 0x4f, 0x74, +	0xa0, 0x26, 0xf5, 0xb3, 0x84, 0xf6, 0x58, 0x5f, +	0x26, 0x66, 0x3e, 0xd7, 0xe4, 0x22, 0x91, 0x13, +	0xc8, 0xac, 0x25, 0x96, 0x23, 0xd8, 0x09, 0xea, +	0x45, 0x75, 0x23, 0xb8, 0x5f, 0xc2, 0x90, 0x8b, +	0x09, 0xc4, 0xfc, 0x47, 0x6c, 0x6d, 0x0a, 0xef, +	0x69, 0xa4, 0x38, 0x19, 0xcf, 0x7d, 0xf9, 0x09, +	0x73, 0x9b, 0x60, 0x5a, 0xf7, 0x37, 0xb5, 0xfe, +	0x9f, 0xe3, 0x2b, 0x4c, 0x0d, 0x6e, 0x19, 0xf1, +	0xd6, 0xc0, 0x70, 0xf3, 0x9d, 0x22, 0x3c, 0xf9, +	0x49, 0xce, 0x30, 0x8e, 0x44, 0xb5, 0x76, 0x15, +	0x8f, 0x52, 0xfd, 0xa5, 0x04, 0xb8, 0x55, 0x6a, +	0x36, 0x59, 0x7c, 0xc4, 0x48, 0xb8, 0xd7, 0xab, +	0x05, 0x66, 0xe9, 0x5e, 0x21, 0x6f, 0x6b, 0x36, +	0x29, 0xbb, 0xe9, 0xe3, 0xa2, 0x9a, 0xa8, 0xcd, +	0x55, 0x25, 0x11, 0xba, 0x5a, 0x58, 0xa0, 0xde, +	0xae, 0x19, 0x2a, 0x48, 0x5a, 0xff, 0x36, 0xcd, +	0x6d, 0x16, 0x7a, 0x73, 0x38, 0x46, 0xe5, 0x47, +	0x59, 0xc8, 0xa2, 0xf6, 0xe2, 0x6c, 0x83, 0xc5, +	0x36, 0x2c, 0x83, 0x7d, 0xb4, 0x01, 0x05, 0x69, +	0xe7, 0xaf, 0x5c, 0xc4, 0x64, 0x82, 0x12, 0x21, +	0xef, 0xf7, 0xd1, 0x7d, 0xb8, 0x8d, 0x8c, 0x98, +	0x7c, 0x5f, 0x7d, 0x92, 0x88, 0xb9, 0x94, 0x07, +	0x9c, 0xd8, 0xe9, 0x9c, 0x17, 0x38, 0xe3, 0x57, +	0x6c, 0xe0, 0xdc, 0xa5, 0x92, 0x42, 0xb3, 0xbd, +	0x50, 0xa2, 0x7e, 0xb5, 0xb1, 0x52, 0x72, 0x03, +	0x97, 0xd8, 0xaa, 0x9a, 0x1e, 0x75, 0x41, 0x11, +	0xa3, 0x4f, 0xcc, 0xd4, 0xe3, 0x73, 0xad, 0x96, +	0xdc, 0x47, 0x41, 0x9f, 0xb0, 0xbe, 0x79, 0x91, +	0xf5, 0xb6, 0x18, 0xfe, 0xc2, 0x83, 0x18, 0x7d, +	0x73, 0xd9, 0x4f, 0x83, 0x84, 0x03, 0xb3, 0xf0, +	0x77, 0x66, 0x3d, 0x83, 0x63, 0x2e, 0x2c, 0xf9, +	0xdd, 0xa6, 0x1f, 0x89, 0x82, 0xb8, 0x23, 0x42, +	0xeb, 0xe2, 0xca, 0x70, 0x82, 0x61, 0x41, 0x0a, +	0x6d, 0x5f, 0x75, 0xc5, 0xe2, 0xc4, 0x91, 0x18, +	0x44, 0x22, 0xfa, 0x34, 0x10, 0xf5, 0x20, 0xdc, +	0xb7, 0xdd, 0x2a, 0x20, 0x77, 0xf5, 0xf9, 0xce, +	0xdb, 0xa0, 0x0a, 0x52, 0x2a, 0x4e, 0xdd, 0xcc, +	0x97, 0xdf, 0x05, 0xe4, 0x5e, 0xb7, 0xaa, 0xf0, +	0xe2, 0x80, 0xff, 0xba, 0x1a, 0x0f, 0xac, 0xdf, +	0x02, 0x32, 0xe6, 0xf7, 0xc7, 0x17, 0x13, 0xb7, +	0xfc, 0x98, 0x48, 0x8c, 0x0d, 0x82, 0xc9, 0x80, +	0x7a, 0xe2, 0x0a, 0xc5, 0xb4, 0xde, 0x7c, 0x3c, +	0x79, 0x81, 0x0e, 0x28, 0x65, 0x79, 0x67, 0x82, +	0x69, 0x44, 0x66, 0x09, 0xf7, 0x16, 0x1a, 0xf9, +	0x7d, 0x80, 0xa1, 0x79, 0x14, 0xa9, 0xc8, 0x20, +	0xfb, 0xa2, 0x46, 0xbe, 0x08, 0x35, 0x17, 0x58, +	0xc1, 0x1a, 0xda, 0x2a, 0x6b, 0x2e, 0x1e, 0xe6, +	0x27, 0x55, 0x7b, 0x19, 0xe2, 0xfb, 0x64, 0xfc, +	0x5e, 0x15, 0x54, 0x3c, 0xe7, 0xc2, 0x11, 0x50, +	0x30, 0xb8, 0x72, 0x03, 0x0b, 0x1a, 0x9f, 0x86, +	0x27, 0x11, 0x5c, 0x06, 0x2b, 0xbd, 0x75, 0x1a, +	0x0a, 0xda, 0x01, 0xfa, 0x5c, 0x4a, 0xc1, 0x80, +	0x3a, 0x6e, 0x30, 0xc8, 0x2c, 0xeb, 0x56, 0xec, +	0x89, 0xfa, 0x35, 0x7b, 0xb2, 0xf0, 0x97, 0x08, +	0x86, 0x53, 0xbe, 0xbd, 0x40, 0x41, 0x38, 0x1c, +	0xb4, 0x8b, 0x79, 0x2e, 0x18, 0x96, 0x94, 0xde, +	0xe8, 0xca, 0xe5, 0x9f, 0x92, 0x9f, 0x15, 0x5d, +	0x56, 0x60, 0x5c, 0x09, 0xf9, 0x16, 0xf4, 0x17, +	0x0f, 0xf6, 0x4c, 0xda, 0xe6, 0x67, 0x89, 0x9f, +	0xca, 0x6c, 0xe7, 0x9b, 0x04, 0x62, 0x0e, 0x26, +	0xa6, 0x52, 0xbd, 0x29, 0xff, 0xc7, 0xa4, 0x96, +	0xe6, 0x6a, 0x02, 0xa5, 0x2e, 0x7b, 0xfe, 0x97, +	0x68, 0x3e, 0x2e, 0x5f, 0x3b, 0x0f, 0x36, 0xd6, +	0x98, 0x19, 0x59, 0x48, 0xd2, 0xc6, 0xe1, 0x55, +	0x1a, 0x6e, 0xd6, 0xed, 0x2c, 0xba, 0xc3, 0x9e, +	0x64, 0xc9, 0x95, 0x86, 0x35, 0x5e, 0x3e, 0x88, +	0x69, 0x99, 0x4b, 0xee, 0xbe, 0x9a, 0x99, 0xb5, +	0x6e, 0x58, 0xae, 0xdd, 0x22, 0xdb, 0xdd, 0x6b, +	0xfc, 0xaf, 0x90, 0xa3, 0x3d, 0xa4, 0xc1, 0x15, +	0x92, 0x18, 0x8d, 0xd2, 0x4b, 0x7b, 0x06, 0xd1, +	0x37, 0xb5, 0xe2, 0x7c, 0x2c, 0xf0, 0x25, 0xe4, +	0x94, 0x2a, 0xbd, 0xe3, 0x82, 0x70, 0x78, 0xa3, +	0x82, 0x10, 0x5a, 0x90, 0xd7, 0xa4, 0xfa, 0xaf, +	0x1a, 0x88, 0x59, 0xdc, 0x74, 0x12, 0xb4, 0x8e, +	0xd7, 0x19, 0x46, 0xf4, 0x84, 0x69, 0x9f, 0xbb, +	0x70, 0xa8, 0x4c, 0x52, 0x81, 0xa9, 0xff, 0x76, +	0x1c, 0xae, 0xd8, 0x11, 0x3d, 0x7f, 0x7d, 0xc5, +	0x12, 0x59, 0x28, 0x18, 0xc2, 0xa2, 0xb7, 0x1c, +	0x88, 0xf8, 0xd6, 0x1b, 0xa6, 0x7d, 0x9e, 0xde, +	0x29, 0xf8, 0xed, 0xff, 0xeb, 0x92, 0x24, 0x4f, +	0x05, 0xaa, 0xd9, 0x49, 0xba, 0x87, 0x59, 0x51, +	0xc9, 0x20, 0x5c, 0x9b, 0x74, 0xcf, 0x03, 0xd9, +	0x2d, 0x34, 0xc7, 0x5b, 0xa5, 0x40, 0xb2, 0x99, +	0xf5, 0xcb, 0xb4, 0xf6, 0xb7, 0x72, 0x4a, 0xd6, +	0xbd, 0xb0, 0xf3, 0x93, 0xe0, 0x1b, 0xa8, 0x04, +	0x1e, 0x35, 0xd4, 0x80, 0x20, 0xf4, 0x9c, 0x31, +	0x6b, 0x45, 0xb9, 0x15, 0xb0, 0x5e, 0xdd, 0x0a, +	0x33, 0x9c, 0x83, 0xcd, 0x58, 0x89, 0x50, 0x56, +	0xbb, 0x81, 0x00, 0x91, 0x32, 0xf3, 0x1b, 0x3e, +	0xcf, 0x45, 0xe1, 0xf9, 0xe1, 0x2c, 0x26, 0x78, +	0x93, 0x9a, 0x60, 0x46, 0xc9, 0xb5, 0x5e, 0x6a, +	0x28, 0x92, 0x87, 0x3f, 0x63, 0x7b, 0xdb, 0xf7, +	0xd0, 0x13, 0x9d, 0x32, 0x40, 0x5e, 0xcf, 0xfb, +	0x79, 0x68, 0x47, 0x4c, 0xfd, 0x01, 0x17, 0xe6, +	0x97, 0x93, 0x78, 0xbb, 0xa6, 0x27, 0xa3, 0xe8, +	0x1a, 0xe8, 0x94, 0x55, 0x7d, 0x08, 0xe5, 0xdc, +	0x66, 0xa3, 0x69, 0xc8, 0xca, 0xc5, 0xa1, 0x84, +	0x55, 0xde, 0x08, 0x91, 0x16, 0x3a, 0x0c, 0x86, +	0xab, 0x27, 0x2b, 0x64, 0x34, 0x02, 0x6c, 0x76, +	0x8b, 0xc6, 0xaf, 0xcc, 0xe1, 0xd6, 0x8c, 0x2a, +	0x18, 0x3d, 0xa6, 0x1b, 0x37, 0x75, 0x45, 0x73, +	0xc2, 0x75, 0xd7, 0x53, 0x78, 0x3a, 0xd6, 0xe8, +	0x29, 0xd2, 0x4a, 0xa8, 0x1e, 0x82, 0xf6, 0xb6, +	0x81, 0xde, 0x21, 0xed, 0x2b, 0x56, 0xbb, 0xf2, +	0xd0, 0x57, 0xc1, 0x7c, 0xd2, 0x6a, 0xd2, 0x56, +	0xf5, 0x13, 0x5f, 0x1c, 0x6a, 0x0b, 0x74, 0xfb, +	0xe9, 0xfe, 0x9e, 0xea, 0x95, 0xb2, 0x46, 0xab, +	0x0a, 0xfc, 0xfd, 0xf3, 0xbb, 0x04, 0x2b, 0x76, +	0x1b, 0xa4, 0x74, 0xb0, 0xc1, 0x78, 0xc3, 0x69, +	0xe2, 0xb0, 0x01, 0xe1, 0xde, 0x32, 0x4c, 0x8d, +	0x1a, 0xb3, 0x38, 0x08, 0xd5, 0xfc, 0x1f, 0xdc, +	0x0e, 0x2c, 0x9c, 0xb1, 0xa1, 0x63, 0x17, 0x22, +	0xf5, 0x6c, 0x93, 0x70, 0x74, 0x00, 0xf8, 0x39, +	0x01, 0x94, 0xd1, 0x32, 0x23, 0x56, 0x5d, 0xa6, +	0x02, 0x76, 0x76, 0x93, 0xce, 0x2f, 0x19, 0xe9, +	0x17, 0x52, 0xae, 0x6e, 0x2c, 0x6d, 0x61, 0x7f, +	0x3b, 0xaa, 0xe0, 0x52, 0x85, 0xc5, 0x65, 0xc1, +	0xbb, 0x8e, 0x5b, 0x21, 0xd5, 0xc9, 0x78, 0x83, +	0x07, 0x97, 0x4c, 0x62, 0x61, 0x41, 0xd4, 0xfc, +	0xc9, 0x39, 0xe3, 0x9b, 0xd0, 0xcc, 0x75, 0xc4, +	0x97, 0xe6, 0xdd, 0x2a, 0x5f, 0xa6, 0xe8, 0x59, +	0x6c, 0x98, 0xb9, 0x02, 0xe2, 0xa2, 0xd6, 0x68, +	0xee, 0x3b, 0x1d, 0xe3, 0x4d, 0x5b, 0x30, 0xef, +	0x03, 0xf2, 0xeb, 0x18, 0x57, 0x36, 0xe8, 0xa1, +	0xf4, 0x47, 0xfb, 0xcb, 0x8f, 0xcb, 0xc8, 0xf3, +	0x4f, 0x74, 0x9d, 0x9d, 0xb1, 0x8d, 0x14, 0x44, +	0xd9, 0x19, 0xb4, 0x54, 0x4f, 0x75, 0x19, 0x09, +	0xa0, 0x75, 0xbc, 0x3b, 0x82, 0xc6, 0x3f, 0xb8, +	0x83, 0x19, 0x6e, 0xd6, 0x37, 0xfe, 0x6e, 0x8a, +	0x4e, 0xe0, 0x4a, 0xab, 0x7b, 0xc8, 0xb4, 0x1d, +	0xf4, 0xed, 0x27, 0x03, 0x65, 0xa2, 0xa1, 0xae, +	0x11, 0xe7, 0x98, 0x78, 0x48, 0x91, 0xd2, 0xd2, +	0xd4, 0x23, 0x78, 0x50, 0xb1, 0x5b, 0x85, 0x10, +	0x8d, 0xca, 0x5f, 0x0f, 0x71, 0xae, 0x72, 0x9a, +	0xf6, 0x25, 0x19, 0x60, 0x06, 0xf7, 0x10, 0x34, +	0x18, 0x0d, 0xc9, 0x9f, 0x7b, 0x0c, 0x9b, 0x8f, +	0x91, 0x1b, 0x9f, 0xcd, 0x10, 0xee, 0x75, 0xf9, +	0x97, 0x66, 0xfc, 0x4d, 0x33, 0x6e, 0x28, 0x2b, +	0x92, 0x85, 0x4f, 0xab, 0x43, 0x8d, 0x8f, 0x7d, +	0x86, 0xa7, 0xc7, 0xd8, 0xd3, 0x0b, 0x8b, 0x57, +	0xb6, 0x1d, 0x95, 0x0d, 0xe9, 0xbc, 0xd9, 0x03, +	0xd9, 0x10, 0x19, 0xc3, 0x46, 0x63, 0x55, 0x87, +	0x61, 0x79, 0x6c, 0x95, 0x0e, 0x9c, 0xdd, 0xca, +	0xc3, 0xf3, 0x64, 0xf0, 0x7d, 0x76, 0xb7, 0x53, +	0x67, 0x2b, 0x1e, 0x44, 0x56, 0x81, 0xea, 0x8f, +	0x5c, 0x42, 0x16, 0xb8, 0x28, 0xeb, 0x1b, 0x61, +	0x10, 0x1e, 0xbf, 0xec, 0xa8 +}; +static const u8 dec_assoc011[] __initconst = { +	0xd6, 0x31, 0xda, 0x5d, 0x42, 0x5e, 0xd7 +}; +static const u8 dec_nonce011[] __initconst = { +	0xfd, 0x87, 0xd4, 0xd8, 0x62, 0xfd, 0xec, 0xaa +}; +static const u8 dec_key011[] __initconst = { +	0x35, 0x4e, 0xb5, 0x70, 0x50, 0x42, 0x8a, 0x85, +	0xf2, 0xfb, 0xed, 0x7b, 0xd0, 0x9e, 0x97, 0xca, +	0xfa, 0x98, 0x66, 0x63, 0xee, 0x37, 0xcc, 0x52, +	0xfe, 0xd1, 0xdf, 0x95, 0x15, 0x34, 0x29, 0x38 +}; + +static const u8 dec_input012[] __initconst = { +	0x52, 0x34, 0xb3, 0x65, 0x3b, 0xb7, 0xe5, 0xd3, +	0xab, 0x49, 0x17, 0x60, 0xd2, 0x52, 0x56, 0xdf, +	0xdf, 0x34, 0x56, 0x82, 0xe2, 0xbe, 0xe5, 0xe1, +	0x28, 0xd1, 0x4e, 0x5f, 0x4f, 0x01, 0x7d, 0x3f, +	0x99, 0x6b, 0x30, 0x6e, 0x1a, 0x7c, 0x4c, 0x8e, +	0x62, 0x81, 0xae, 0x86, 0x3f, 0x6b, 0xd0, 0xb5, +	0xa9, 0xcf, 0x50, 0xf1, 0x02, 0x12, 0xa0, 0x0b, +	0x24, 0xe9, 0xe6, 0x72, 0x89, 0x2c, 0x52, 0x1b, +	0x34, 0x38, 0xf8, 0x75, 0x5f, 0xa0, 0x74, 0xe2, +	0x99, 0xdd, 0xa6, 0x4b, 0x14, 0x50, 0x4e, 0xf1, +	0xbe, 0xd6, 0x9e, 0xdb, 0xb2, 0x24, 0x27, 0x74, +	0x12, 0x4a, 0x78, 0x78, 0x17, 0xa5, 0x58, 0x8e, +	0x2f, 0xf9, 0xf4, 0x8d, 0xee, 0x03, 0x88, 0xae, +	0xb8, 0x29, 0xa1, 0x2f, 0x4b, 0xee, 0x92, 0xbd, +	0x87, 0xb3, 0xce, 0x34, 0x21, 0x57, 0x46, 0x04, +	0x49, 0x0c, 0x80, 0xf2, 0x01, 0x13, 0xa1, 0x55, +	0xb3, 0xff, 0x44, 0x30, 0x3c, 0x1c, 0xd0, 0xef, +	0xbc, 0x18, 0x74, 0x26, 0xad, 0x41, 0x5b, 0x5b, +	0x3e, 0x9a, 0x7a, 0x46, 0x4f, 0x16, 0xd6, 0x74, +	0x5a, 0xb7, 0x3a, 0x28, 0x31, 0xd8, 0xae, 0x26, +	0xac, 0x50, 0x53, 0x86, 0xf2, 0x56, 0xd7, 0x3f, +	0x29, 0xbc, 0x45, 0x68, 0x8e, 0xcb, 0x98, 0x64, +	0xdd, 0xc9, 0xba, 0xb8, 0x4b, 0x7b, 0x82, 0xdd, +	0x14, 0xa7, 0xcb, 0x71, 0x72, 0x00, 0x5c, 0xad, +	0x7b, 0x6a, 0x89, 0xa4, 0x3d, 0xbf, 0xb5, 0x4b, +	0x3e, 0x7c, 0x5a, 0xcf, 0xb8, 0xa1, 0xc5, 0x6e, +	0xc8, 0xb6, 0x31, 0x57, 0x7b, 0xdf, 0xa5, 0x7e, +	0xb1, 0xd6, 0x42, 0x2a, 0x31, 0x36, 0xd1, 0xd0, +	0x3f, 0x7a, 0xe5, 0x94, 0xd6, 0x36, 0xa0, 0x6f, +	0xb7, 0x40, 0x7d, 0x37, 0xc6, 0x55, 0x7c, 0x50, +	0x40, 0x6d, 0x29, 0x89, 0xe3, 0x5a, 0xae, 0x97, +	0xe7, 0x44, 0x49, 0x6e, 0xbd, 0x81, 0x3d, 0x03, +	0x93, 0x06, 0x12, 0x06, 0xe2, 0x41, 0x12, 0x4a, +	0xf1, 0x6a, 0xa4, 0x58, 0xa2, 0xfb, 0xd2, 0x15, +	0xba, 0xc9, 0x79, 0xc9, 0xce, 0x5e, 0x13, 0xbb, +	0xf1, 0x09, 0x04, 0xcc, 0xfd, 0xe8, 0x51, 0x34, +	0x6a, 0xe8, 0x61, 0x88, 0xda, 0xed, 0x01, 0x47, +	0x84, 0xf5, 0x73, 0x25, 0xf9, 0x1c, 0x42, 0x86, +	0x07, 0xf3, 0x5b, 0x1a, 0x01, 0xb3, 0xeb, 0x24, +	0x32, 0x8d, 0xf6, 0xed, 0x7c, 0x4b, 0xeb, 0x3c, +	0x36, 0x42, 0x28, 0xdf, 0xdf, 0xb6, 0xbe, 0xd9, +	0x8c, 0x52, 0xd3, 0x2b, 0x08, 0x90, 0x8c, 0xe7, +	0x98, 0x31, 0xe2, 0x32, 0x8e, 0xfc, 0x11, 0x48, +	0x00, 0xa8, 0x6a, 0x42, 0x4a, 0x02, 0xc6, 0x4b, +	0x09, 0xf1, 0xe3, 0x49, 0xf3, 0x45, 0x1f, 0x0e, +	0xbc, 0x56, 0xe2, 0xe4, 0xdf, 0xfb, 0xeb, 0x61, +	0xfa, 0x24, 0xc1, 0x63, 0x75, 0xbb, 0x47, 0x75, +	0xaf, 0xe1, 0x53, 0x16, 0x96, 0x21, 0x85, 0x26, +	0x11, 0xb3, 0x76, 0xe3, 0x23, 0xa1, 0x6b, 0x74, +	0x37, 0xd0, 0xde, 0x06, 0x90, 0x71, 0x5d, 0x43, +	0x88, 0x9b, 0x00, 0x54, 0xa6, 0x75, 0x2f, 0xa1, +	0xc2, 0x0b, 0x73, 0x20, 0x1d, 0xb6, 0x21, 0x79, +	0x57, 0x3f, 0xfa, 0x09, 0xbe, 0x8a, 0x33, 0xc3, +	0x52, 0xf0, 0x1d, 0x82, 0x31, 0xd1, 0x55, 0xb5, +	0x6c, 0x99, 0x25, 0xcf, 0x5c, 0x32, 0xce, 0xe9, +	0x0d, 0xfa, 0x69, 0x2c, 0xd5, 0x0d, 0xc5, 0x6d, +	0x86, 0xd0, 0x0c, 0x3b, 0x06, 0x50, 0x79, 0xe8, +	0xc3, 0xae, 0x04, 0xe6, 0xcd, 0x51, 0xe4, 0x26, +	0x9b, 0x4f, 0x7e, 0xa6, 0x0f, 0xab, 0xd8, 0xe5, +	0xde, 0xa9, 0x00, 0x95, 0xbe, 0xa3, 0x9d, 0x5d, +	0xb2, 0x09, 0x70, 0x18, 0x1c, 0xf0, 0xac, 0x29, +	0x23, 0x02, 0x29, 0x28, 0xd2, 0x74, 0x35, 0x57, +	0x62, 0x0f, 0x24, 0xea, 0x5e, 0x33, 0xc2, 0x92, +	0xf3, 0x78, 0x4d, 0x30, 0x1e, 0xa1, 0x99, 0xa9, +	0x82, 0xb0, 0x42, 0x31, 0x8d, 0xad, 0x8a, 0xbc, +	0xfc, 0xd4, 0x57, 0x47, 0x3e, 0xb4, 0x50, 0xdd, +	0x6e, 0x2c, 0x80, 0x4d, 0x22, 0xf1, 0xfb, 0x57, +	0xc4, 0xdd, 0x17, 0xe1, 0x8a, 0x36, 0x4a, 0xb3, +	0x37, 0xca, 0xc9, 0x4e, 0xab, 0xd5, 0x69, 0xc4, +	0xf4, 0xbc, 0x0b, 0x3b, 0x44, 0x4b, 0x29, 0x9c, +	0xee, 0xd4, 0x35, 0x22, 0x21, 0xb0, 0x1f, 0x27, +	0x64, 0xa8, 0x51, 0x1b, 0xf0, 0x9f, 0x19, 0x5c, +	0xfb, 0x5a, 0x64, 0x74, 0x70, 0x45, 0x09, 0xf5, +	0x64, 0xfe, 0x1a, 0x2d, 0xc9, 0x14, 0x04, 0x14, +	0xcf, 0xd5, 0x7d, 0x60, 0xaf, 0x94, 0x39, 0x94, +	0xe2, 0x7d, 0x79, 0x82, 0xd0, 0x65, 0x3b, 0x6b, +	0x9c, 0x19, 0x84, 0xb4, 0x6d, 0xb3, 0x0c, 0x99, +	0xc0, 0x56, 0xa8, 0xbd, 0x73, 0xce, 0x05, 0x84, +	0x3e, 0x30, 0xaa, 0xc4, 0x9b, 0x1b, 0x04, 0x2a, +	0x9f, 0xd7, 0x43, 0x2b, 0x23, 0xdf, 0xbf, 0xaa, +	0xd5, 0xc2, 0x43, 0x2d, 0x70, 0xab, 0xdc, 0x75, +	0xad, 0xac, 0xf7, 0xc0, 0xbe, 0x67, 0xb2, 0x74, +	0xed, 0x67, 0x10, 0x4a, 0x92, 0x60, 0xc1, 0x40, +	0x50, 0x19, 0x8a, 0x8a, 0x8c, 0x09, 0x0e, 0x72, +	0xe1, 0x73, 0x5e, 0xe8, 0x41, 0x85, 0x63, 0x9f, +	0x3f, 0xd7, 0x7d, 0xc4, 0xfb, 0x22, 0x5d, 0x92, +	0x6c, 0xb3, 0x1e, 0xe2, 0x50, 0x2f, 0x82, 0xa8, +	0x28, 0xc0, 0xb5, 0xd7, 0x5f, 0x68, 0x0d, 0x2c, +	0x2d, 0xaf, 0x7e, 0xfa, 0x2e, 0x08, 0x0f, 0x1f, +	0x70, 0x9f, 0xe9, 0x19, 0x72, 0x55, 0xf8, 0xfb, +	0x51, 0xd2, 0x33, 0x5d, 0xa0, 0xd3, 0x2b, 0x0a, +	0x6c, 0xbc, 0x4e, 0xcf, 0x36, 0x4d, 0xdc, 0x3b, +	0xe9, 0x3e, 0x81, 0x7c, 0x61, 0xdb, 0x20, 0x2d, +	0x3a, 0xc3, 0xb3, 0x0c, 0x1e, 0x00, 0xb9, 0x7c, +	0xf5, 0xca, 0x10, 0x5f, 0x3a, 0x71, 0xb3, 0xe4, +	0x20, 0xdb, 0x0c, 0x2a, 0x98, 0x63, 0x45, 0x00, +	0x58, 0xf6, 0x68, 0xe4, 0x0b, 0xda, 0x13, 0x3b, +	0x60, 0x5c, 0x76, 0xdb, 0xb9, 0x97, 0x71, 0xe4, +	0xd9, 0xb7, 0xdb, 0xbd, 0x68, 0xc7, 0x84, 0x84, +	0xaa, 0x7c, 0x68, 0x62, 0x5e, 0x16, 0xfc, 0xba, +	0x72, 0xaa, 0x9a, 0xa9, 0xeb, 0x7c, 0x75, 0x47, +	0x97, 0x7e, 0xad, 0xe2, 0xd9, 0x91, 0xe8, 0xe4, +	0xa5, 0x31, 0xd7, 0x01, 0x8e, 0xa2, 0x11, 0x88, +	0x95, 0xb9, 0xf2, 0x9b, 0xd3, 0x7f, 0x1b, 0x81, +	0x22, 0xf7, 0x98, 0x60, 0x0a, 0x64, 0xa6, 0xc1, +	0xf6, 0x49, 0xc7, 0xe3, 0x07, 0x4d, 0x94, 0x7a, +	0xcf, 0x6e, 0x68, 0x0c, 0x1b, 0x3f, 0x6e, 0x2e, +	0xee, 0x92, 0xfa, 0x52, 0xb3, 0x59, 0xf8, 0xf1, +	0x8f, 0x6a, 0x66, 0xa3, 0x82, 0x76, 0x4a, 0x07, +	0x1a, 0xc7, 0xdd, 0xf5, 0xda, 0x9c, 0x3c, 0x24, +	0xbf, 0xfd, 0x42, 0xa1, 0x10, 0x64, 0x6a, 0x0f, +	0x89, 0xee, 0x36, 0xa5, 0xce, 0x99, 0x48, 0x6a, +	0xf0, 0x9f, 0x9e, 0x69, 0xa4, 0x40, 0x20, 0xe9, +	0x16, 0x15, 0xf7, 0xdb, 0x75, 0x02, 0xcb, 0xe9, +	0x73, 0x8b, 0x3b, 0x49, 0x2f, 0xf0, 0xaf, 0x51, +	0x06, 0x5c, 0xdf, 0x27, 0x27, 0x49, 0x6a, 0xd1, +	0xcc, 0xc7, 0xb5, 0x63, 0xb5, 0xfc, 0xb8, 0x5c, +	0x87, 0x7f, 0x84, 0xb4, 0xcc, 0x14, 0xa9, 0x53, +	0xda, 0xa4, 0x56, 0xf8, 0xb6, 0x1b, 0xcc, 0x40, +	0x27, 0x52, 0x06, 0x5a, 0x13, 0x81, 0xd7, 0x3a, +	0xd4, 0x3b, 0xfb, 0x49, 0x65, 0x31, 0x33, 0xb2, +	0xfa, 0xcd, 0xad, 0x58, 0x4e, 0x2b, 0xae, 0xd2, +	0x20, 0xfb, 0x1a, 0x48, 0xb4, 0x3f, 0x9a, 0xd8, +	0x7a, 0x35, 0x4a, 0xc8, 0xee, 0x88, 0x5e, 0x07, +	0x66, 0x54, 0xb9, 0xec, 0x9f, 0xa3, 0xe3, 0xb9, +	0x37, 0xaa, 0x49, 0x76, 0x31, 0xda, 0x74, 0x2d, +	0x3c, 0xa4, 0x65, 0x10, 0x32, 0x38, 0xf0, 0xde, +	0xd3, 0x99, 0x17, 0xaa, 0x71, 0xaa, 0x8f, 0x0f, +	0x8c, 0xaf, 0xa2, 0xf8, 0x5d, 0x64, 0xba, 0x1d, +	0xa3, 0xef, 0x96, 0x73, 0xe8, 0xa1, 0x02, 0x8d, +	0x0c, 0x6d, 0xb8, 0x06, 0x90, 0xb8, 0x08, 0x56, +	0x2c, 0xa7, 0x06, 0xc9, 0xc2, 0x38, 0xdb, 0x7c, +	0x63, 0xb1, 0x57, 0x8e, 0xea, 0x7c, 0x79, 0xf3, +	0x49, 0x1d, 0xfe, 0x9f, 0xf3, 0x6e, 0xb1, 0x1d, +	0xba, 0x19, 0x80, 0x1a, 0x0a, 0xd3, 0xb0, 0x26, +	0x21, 0x40, 0xb1, 0x7c, 0xf9, 0x4d, 0x8d, 0x10, +	0xc1, 0x7e, 0xf4, 0xf6, 0x3c, 0xa8, 0xfd, 0x7c, +	0xa3, 0x92, 0xb2, 0x0f, 0xaa, 0xcc, 0xa6, 0x11, +	0xfe, 0x04, 0xe3, 0xd1, 0x7a, 0x32, 0x89, 0xdf, +	0x0d, 0xc4, 0x8f, 0x79, 0x6b, 0xca, 0x16, 0x7c, +	0x6e, 0xf9, 0xad, 0x0f, 0xf6, 0xfe, 0x27, 0xdb, +	0xc4, 0x13, 0x70, 0xf1, 0x62, 0x1a, 0x4f, 0x79, +	0x40, 0xc9, 0x9b, 0x8b, 0x21, 0xea, 0x84, 0xfa, +	0xf5, 0xf1, 0x89, 0xce, 0xb7, 0x55, 0x0a, 0x80, +	0x39, 0x2f, 0x55, 0x36, 0x16, 0x9c, 0x7b, 0x08, +	0xbd, 0x87, 0x0d, 0xa5, 0x32, 0xf1, 0x52, 0x7c, +	0xe8, 0x55, 0x60, 0x5b, 0xd7, 0x69, 0xe4, 0xfc, +	0xfa, 0x12, 0x85, 0x96, 0xea, 0x50, 0x28, 0xab, +	0x8a, 0xf7, 0xbb, 0x0e, 0x53, 0x74, 0xca, 0xa6, +	0x27, 0x09, 0xc2, 0xb5, 0xde, 0x18, 0x14, 0xd9, +	0xea, 0xe5, 0x29, 0x1c, 0x40, 0x56, 0xcf, 0xd7, +	0xae, 0x05, 0x3f, 0x65, 0xaf, 0x05, 0x73, 0xe2, +	0x35, 0x96, 0x27, 0x07, 0x14, 0xc0, 0xad, 0x33, +	0xf1, 0xdc, 0x44, 0x7a, 0x89, 0x17, 0x77, 0xd2, +	0x9c, 0x58, 0x60, 0xf0, 0x3f, 0x7b, 0x2d, 0x2e, +	0x57, 0x95, 0x54, 0x87, 0xed, 0xf2, 0xc7, 0x4c, +	0xf0, 0xae, 0x56, 0x29, 0x19, 0x7d, 0x66, 0x4b, +	0x9b, 0x83, 0x84, 0x42, 0x3b, 0x01, 0x25, 0x66, +	0x8e, 0x02, 0xde, 0xb9, 0x83, 0x54, 0x19, 0xf6, +	0x9f, 0x79, 0x0d, 0x67, 0xc5, 0x1d, 0x7a, 0x44, +	0x02, 0x98, 0xa7, 0x16, 0x1c, 0x29, 0x0d, 0x74, +	0xff, 0x85, 0x40, 0x06, 0xef, 0x2c, 0xa9, 0xc6, +	0xf5, 0x53, 0x07, 0x06, 0xae, 0xe4, 0xfa, 0x5f, +	0xd8, 0x39, 0x4d, 0xf1, 0x9b, 0x6b, 0xd9, 0x24, +	0x84, 0xfe, 0x03, 0x4c, 0xb2, 0x3f, 0xdf, 0xa1, +	0x05, 0x9e, 0x50, 0x14, 0x5a, 0xd9, 0x1a, 0xa2, +	0xa7, 0xfa, 0xfa, 0x17, 0xf7, 0x78, 0xd6, 0xb5, +	0x92, 0x61, 0x91, 0xac, 0x36, 0xfa, 0x56, 0x0d, +	0x38, 0x32, 0x18, 0x85, 0x08, 0x58, 0x37, 0xf0, +	0x4b, 0xdb, 0x59, 0xe7, 0xa4, 0x34, 0xc0, 0x1b, +	0x01, 0xaf, 0x2d, 0xde, 0xa1, 0xaa, 0x5d, 0xd3, +	0xec, 0xe1, 0xd4, 0xf7, 0xe6, 0x54, 0x68, 0xf0, +	0x51, 0x97, 0xa7, 0x89, 0xea, 0x24, 0xad, 0xd3, +	0x6e, 0x47, 0x93, 0x8b, 0x4b, 0xb4, 0xf7, 0x1c, +	0x42, 0x06, 0x67, 0xe8, 0x99, 0xf6, 0xf5, 0x7b, +	0x85, 0xb5, 0x65, 0xb5, 0xb5, 0xd2, 0x37, 0xf5, +	0xf3, 0x02, 0xa6, 0x4d, 0x11, 0xa7, 0xdc, 0x51, +	0x09, 0x7f, 0xa0, 0xd8, 0x88, 0x1c, 0x13, 0x71, +	0xae, 0x9c, 0xb7, 0x7b, 0x34, 0xd6, 0x4e, 0x68, +	0x26, 0x83, 0x51, 0xaf, 0x1d, 0xee, 0x8b, 0xbb, +	0x69, 0x43, 0x2b, 0x9e, 0x8a, 0xbc, 0x02, 0x0e, +	0xa0, 0x1b, 0xe0, 0xa8, 0x5f, 0x6f, 0xaf, 0x1b, +	0x8f, 0xe7, 0x64, 0x71, 0x74, 0x11, 0x7e, 0xa8, +	0xd8, 0xf9, 0x97, 0x06, 0xc3, 0xb6, 0xfb, 0xfb, +	0xb7, 0x3d, 0x35, 0x9d, 0x3b, 0x52, 0xed, 0x54, +	0xca, 0xf4, 0x81, 0x01, 0x2d, 0x1b, 0xc3, 0xa7, +	0x00, 0x3d, 0x1a, 0x39, 0x54, 0xe1, 0xf6, 0xff, +	0xed, 0x6f, 0x0b, 0x5a, 0x68, 0xda, 0x58, 0xdd, +	0xa9, 0xcf, 0x5c, 0x4a, 0xe5, 0x09, 0x4e, 0xde, +	0x9d, 0xbc, 0x3e, 0xee, 0x5a, 0x00, 0x3b, 0x2c, +	0x87, 0x10, 0x65, 0x60, 0xdd, 0xd7, 0x56, 0xd1, +	0x4c, 0x64, 0x45, 0xe4, 0x21, 0xec, 0x78, 0xf8, +	0x25, 0x7a, 0x3e, 0x16, 0x5d, 0x09, 0x53, 0x14, +	0xbe, 0x4f, 0xae, 0x87, 0xd8, 0xd1, 0xaa, 0x3c, +	0xf6, 0x3e, 0xa4, 0x70, 0x8c, 0x5e, 0x70, 0xa4, +	0xb3, 0x6b, 0x66, 0x73, 0xd3, 0xbf, 0x31, 0x06, +	0x19, 0x62, 0x93, 0x15, 0xf2, 0x86, 0xe4, 0x52, +	0x7e, 0x53, 0x4c, 0x12, 0x38, 0xcc, 0x34, 0x7d, +	0x57, 0xf6, 0x42, 0x93, 0x8a, 0xc4, 0xee, 0x5c, +	0x8a, 0xe1, 0x52, 0x8f, 0x56, 0x64, 0xf6, 0xa6, +	0xd1, 0x91, 0x57, 0x70, 0xcd, 0x11, 0x76, 0xf5, +	0x59, 0x60, 0x60, 0x3c, 0xc1, 0xc3, 0x0b, 0x7f, +	0x58, 0x1a, 0x50, 0x91, 0xf1, 0x68, 0x8f, 0x6e, +	0x74, 0x74, 0xa8, 0x51, 0x0b, 0xf7, 0x7a, 0x98, +	0x37, 0xf2, 0x0a, 0x0e, 0xa4, 0x97, 0x04, 0xb8, +	0x9b, 0xfd, 0xa0, 0xea, 0xf7, 0x0d, 0xe1, 0xdb, +	0x03, 0xf0, 0x31, 0x29, 0xf8, 0xdd, 0x6b, 0x8b, +	0x5d, 0xd8, 0x59, 0xa9, 0x29, 0xcf, 0x9a, 0x79, +	0x89, 0x19, 0x63, 0x46, 0x09, 0x79, 0x6a, 0x11, +	0xda, 0x63, 0x68, 0x48, 0x77, 0x23, 0xfb, 0x7d, +	0x3a, 0x43, 0xcb, 0x02, 0x3b, 0x7a, 0x6d, 0x10, +	0x2a, 0x9e, 0xac, 0xf1, 0xd4, 0x19, 0xf8, 0x23, +	0x64, 0x1d, 0x2c, 0x5f, 0xf2, 0xb0, 0x5c, 0x23, +	0x27, 0xf7, 0x27, 0x30, 0x16, 0x37, 0xb1, 0x90, +	0xab, 0x38, 0xfb, 0x55, 0xcd, 0x78, 0x58, 0xd4, +	0x7d, 0x43, 0xf6, 0x45, 0x5e, 0x55, 0x8d, 0xb1, +	0x02, 0x65, 0x58, 0xb4, 0x13, 0x4b, 0x36, 0xf7, +	0xcc, 0xfe, 0x3d, 0x0b, 0x82, 0xe2, 0x12, 0x11, +	0xbb, 0xe6, 0xb8, 0x3a, 0x48, 0x71, 0xc7, 0x50, +	0x06, 0x16, 0x3a, 0xe6, 0x7c, 0x05, 0xc7, 0xc8, +	0x4d, 0x2f, 0x08, 0x6a, 0x17, 0x9a, 0x95, 0x97, +	0x50, 0x68, 0xdc, 0x28, 0x18, 0xc4, 0x61, 0x38, +	0xb9, 0xe0, 0x3e, 0x78, 0xdb, 0x29, 0xe0, 0x9f, +	0x52, 0xdd, 0xf8, 0x4f, 0x91, 0xc1, 0xd0, 0x33, +	0xa1, 0x7a, 0x8e, 0x30, 0x13, 0x82, 0x07, 0x9f, +	0xd3, 0x31, 0x0f, 0x23, 0xbe, 0x32, 0x5a, 0x75, +	0xcf, 0x96, 0xb2, 0xec, 0xb5, 0x32, 0xac, 0x21, +	0xd1, 0x82, 0x33, 0xd3, 0x15, 0x74, 0xbd, 0x90, +	0xf1, 0x2c, 0xe6, 0x5f, 0x8d, 0xe3, 0x02, 0xe8, +	0xe9, 0xc4, 0xca, 0x96, 0xeb, 0x0e, 0xbc, 0x91, +	0xf4, 0xb9, 0xea, 0xd9, 0x1b, 0x75, 0xbd, 0xe1, +	0xac, 0x2a, 0x05, 0x37, 0x52, 0x9b, 0x1b, 0x3f, +	0x5a, 0xdc, 0x21, 0xc3, 0x98, 0xbb, 0xaf, 0xa3, +	0xf2, 0x00, 0xbf, 0x0d, 0x30, 0x89, 0x05, 0xcc, +	0xa5, 0x76, 0xf5, 0x06, 0xf0, 0xc6, 0x54, 0x8a, +	0x5d, 0xd4, 0x1e, 0xc1, 0xf2, 0xce, 0xb0, 0x62, +	0xc8, 0xfc, 0x59, 0x42, 0x9a, 0x90, 0x60, 0x55, +	0xfe, 0x88, 0xa5, 0x8b, 0xb8, 0x33, 0x0c, 0x23, +	0x24, 0x0d, 0x15, 0x70, 0x37, 0x1e, 0x3d, 0xf6, +	0xd2, 0xea, 0x92, 0x10, 0xb2, 0xc4, 0x51, 0xac, +	0xf2, 0xac, 0xf3, 0x6b, 0x6c, 0xaa, 0xcf, 0x12, +	0xc5, 0x6c, 0x90, 0x50, 0xb5, 0x0c, 0xfc, 0x1a, +	0x15, 0x52, 0xe9, 0x26, 0xc6, 0x52, 0xa4, 0xe7, +	0x81, 0x69, 0xe1, 0xe7, 0x9e, 0x30, 0x01, 0xec, +	0x84, 0x89, 0xb2, 0x0d, 0x66, 0xdd, 0xce, 0x28, +	0x5c, 0xec, 0x98, 0x46, 0x68, 0x21, 0x9f, 0x88, +	0x3f, 0x1f, 0x42, 0x77, 0xce, 0xd0, 0x61, 0xd4, +	0x20, 0xa7, 0xff, 0x53, 0xad, 0x37, 0xd0, 0x17, +	0x35, 0xc9, 0xfc, 0xba, 0x0a, 0x78, 0x3f, 0xf2, +	0xcc, 0x86, 0x89, 0xe8, 0x4b, 0x3c, 0x48, 0x33, +	0x09, 0x7f, 0xc6, 0xc0, 0xdd, 0xb8, 0xfd, 0x7a, +	0x66, 0x66, 0x65, 0xeb, 0x47, 0xa7, 0x04, 0x28, +	0xa3, 0x19, 0x8e, 0xa9, 0xb1, 0x13, 0x67, 0x62, +	0x70, 0xcf, 0xd6 +}; +static const u8 dec_output012[] __initconst = { +	0x74, 0xa6, 0x3e, 0xe4, 0xb1, 0xcb, 0xaf, 0xb0, +	0x40, 0xe5, 0x0f, 0x9e, 0xf1, 0xf2, 0x89, 0xb5, +	0x42, 0x34, 0x8a, 0xa1, 0x03, 0xb7, 0xe9, 0x57, +	0x46, 0xbe, 0x20, 0xe4, 0x6e, 0xb0, 0xeb, 0xff, +	0xea, 0x07, 0x7e, 0xef, 0xe2, 0x55, 0x9f, 0xe5, +	0x78, 0x3a, 0xb7, 0x83, 0xc2, 0x18, 0x40, 0x7b, +	0xeb, 0xcd, 0x81, 0xfb, 0x90, 0x12, 0x9e, 0x46, +	0xa9, 0xd6, 0x4a, 0xba, 0xb0, 0x62, 0xdb, 0x6b, +	0x99, 0xc4, 0xdb, 0x54, 0x4b, 0xb8, 0xa5, 0x71, +	0xcb, 0xcd, 0x63, 0x32, 0x55, 0xfb, 0x31, 0xf0, +	0x38, 0xf5, 0xbe, 0x78, 0xe4, 0x45, 0xce, 0x1b, +	0x6a, 0x5b, 0x0e, 0xf4, 0x16, 0xe4, 0xb1, 0x3d, +	0xf6, 0x63, 0x7b, 0xa7, 0x0c, 0xde, 0x6f, 0x8f, +	0x74, 0xdf, 0xe0, 0x1e, 0x9d, 0xce, 0x8f, 0x24, +	0xef, 0x23, 0x35, 0x33, 0x7b, 0x83, 0x34, 0x23, +	0x58, 0x74, 0x14, 0x77, 0x1f, 0xc2, 0x4f, 0x4e, +	0xc6, 0x89, 0xf9, 0x52, 0x09, 0x37, 0x64, 0x14, +	0xc4, 0x01, 0x6b, 0x9d, 0x77, 0xe8, 0x90, 0x5d, +	0xa8, 0x4a, 0x2a, 0xef, 0x5c, 0x7f, 0xeb, 0xbb, +	0xb2, 0xc6, 0x93, 0x99, 0x66, 0xdc, 0x7f, 0xd4, +	0x9e, 0x2a, 0xca, 0x8d, 0xdb, 0xe7, 0x20, 0xcf, +	0xe4, 0x73, 0xae, 0x49, 0x7d, 0x64, 0x0f, 0x0e, +	0x28, 0x46, 0xa9, 0xa8, 0x32, 0xe4, 0x0e, 0xf6, +	0x51, 0x53, 0xb8, 0x3c, 0xb1, 0xff, 0xa3, 0x33, +	0x41, 0x75, 0xff, 0xf1, 0x6f, 0xf1, 0xfb, 0xbb, +	0x83, 0x7f, 0x06, 0x9b, 0xe7, 0x1b, 0x0a, 0xe0, +	0x5c, 0x33, 0x60, 0x5b, 0xdb, 0x5b, 0xed, 0xfe, +	0xa5, 0x16, 0x19, 0x72, 0xa3, 0x64, 0x23, 0x00, +	0x02, 0xc7, 0xf3, 0x6a, 0x81, 0x3e, 0x44, 0x1d, +	0x79, 0x15, 0x5f, 0x9a, 0xde, 0xe2, 0xfd, 0x1b, +	0x73, 0xc1, 0xbc, 0x23, 0xba, 0x31, 0xd2, 0x50, +	0xd5, 0xad, 0x7f, 0x74, 0xa7, 0xc9, 0xf8, 0x3e, +	0x2b, 0x26, 0x10, 0xf6, 0x03, 0x36, 0x74, 0xe4, +	0x0e, 0x6a, 0x72, 0xb7, 0x73, 0x0a, 0x42, 0x28, +	0xc2, 0xad, 0x5e, 0x03, 0xbe, 0xb8, 0x0b, 0xa8, +	0x5b, 0xd4, 0xb8, 0xba, 0x52, 0x89, 0xb1, 0x9b, +	0xc1, 0xc3, 0x65, 0x87, 0xed, 0xa5, 0xf4, 0x86, +	0xfd, 0x41, 0x80, 0x91, 0x27, 0x59, 0x53, 0x67, +	0x15, 0x78, 0x54, 0x8b, 0x2d, 0x3d, 0xc7, 0xff, +	0x02, 0x92, 0x07, 0x5f, 0x7a, 0x4b, 0x60, 0x59, +	0x3c, 0x6f, 0x5c, 0xd8, 0xec, 0x95, 0xd2, 0xfe, +	0xa0, 0x3b, 0xd8, 0x3f, 0xd1, 0x69, 0xa6, 0xd6, +	0x41, 0xb2, 0xf4, 0x4d, 0x12, 0xf4, 0x58, 0x3e, +	0x66, 0x64, 0x80, 0x31, 0x9b, 0xa8, 0x4c, 0x8b, +	0x07, 0xb2, 0xec, 0x66, 0x94, 0x66, 0x47, 0x50, +	0x50, 0x5f, 0x18, 0x0b, 0x0e, 0xd6, 0xc0, 0x39, +	0x21, 0x13, 0x9e, 0x33, 0xbc, 0x79, 0x36, 0x02, +	0x96, 0x70, 0xf0, 0x48, 0x67, 0x2f, 0x26, 0xe9, +	0x6d, 0x10, 0xbb, 0xd6, 0x3f, 0xd1, 0x64, 0x7a, +	0x2e, 0xbe, 0x0c, 0x61, 0xf0, 0x75, 0x42, 0x38, +	0x23, 0xb1, 0x9e, 0x9f, 0x7c, 0x67, 0x66, 0xd9, +	0x58, 0x9a, 0xf1, 0xbb, 0x41, 0x2a, 0x8d, 0x65, +	0x84, 0x94, 0xfc, 0xdc, 0x6a, 0x50, 0x64, 0xdb, +	0x56, 0x33, 0x76, 0x00, 0x10, 0xed, 0xbe, 0xd2, +	0x12, 0xf6, 0xf6, 0x1b, 0xa2, 0x16, 0xde, 0xae, +	0x31, 0x95, 0xdd, 0xb1, 0x08, 0x7e, 0x4e, 0xee, +	0xe7, 0xf9, 0xa5, 0xfb, 0x5b, 0x61, 0x43, 0x00, +	0x40, 0xf6, 0x7e, 0x02, 0x04, 0x32, 0x4e, 0x0c, +	0xe2, 0x66, 0x0d, 0xd7, 0x07, 0x98, 0x0e, 0xf8, +	0x72, 0x34, 0x6d, 0x95, 0x86, 0xd7, 0xcb, 0x31, +	0x54, 0x47, 0xd0, 0x38, 0x29, 0x9c, 0x5a, 0x68, +	0xd4, 0x87, 0x76, 0xc9, 0xe7, 0x7e, 0xe3, 0xf4, +	0x81, 0x6d, 0x18, 0xcb, 0xc9, 0x05, 0xaf, 0xa0, +	0xfb, 0x66, 0xf7, 0xf1, 0x1c, 0xc6, 0x14, 0x11, +	0x4f, 0x2b, 0x79, 0x42, 0x8b, 0xbc, 0xac, 0xe7, +	0x6c, 0xfe, 0x0f, 0x58, 0xe7, 0x7c, 0x78, 0x39, +	0x30, 0xb0, 0x66, 0x2c, 0x9b, 0x6d, 0x3a, 0xe1, +	0xcf, 0xc9, 0xa4, 0x0e, 0x6d, 0x6d, 0x8a, 0xa1, +	0x3a, 0xe7, 0x28, 0xd4, 0x78, 0x4c, 0xa6, 0xa2, +	0x2a, 0xa6, 0x03, 0x30, 0xd7, 0xa8, 0x25, 0x66, +	0x87, 0x2f, 0x69, 0x5c, 0x4e, 0xdd, 0xa5, 0x49, +	0x5d, 0x37, 0x4a, 0x59, 0xc4, 0xaf, 0x1f, 0xa2, +	0xe4, 0xf8, 0xa6, 0x12, 0x97, 0xd5, 0x79, 0xf5, +	0xe2, 0x4a, 0x2b, 0x5f, 0x61, 0xe4, 0x9e, 0xe3, +	0xee, 0xb8, 0xa7, 0x5b, 0x2f, 0xf4, 0x9e, 0x6c, +	0xfb, 0xd1, 0xc6, 0x56, 0x77, 0xba, 0x75, 0xaa, +	0x3d, 0x1a, 0xa8, 0x0b, 0xb3, 0x68, 0x24, 0x00, +	0x10, 0x7f, 0xfd, 0xd7, 0xa1, 0x8d, 0x83, 0x54, +	0x4f, 0x1f, 0xd8, 0x2a, 0xbe, 0x8a, 0x0c, 0x87, +	0xab, 0xa2, 0xde, 0xc3, 0x39, 0xbf, 0x09, 0x03, +	0xa5, 0xf3, 0x05, 0x28, 0xe1, 0xe1, 0xee, 0x39, +	0x70, 0x9c, 0xd8, 0x81, 0x12, 0x1e, 0x02, 0x40, +	0xd2, 0x6e, 0xf0, 0xeb, 0x1b, 0x3d, 0x22, 0xc6, +	0xe5, 0xe3, 0xb4, 0x5a, 0x98, 0xbb, 0xf0, 0x22, +	0x28, 0x8d, 0xe5, 0xd3, 0x16, 0x48, 0x24, 0xa5, +	0xe6, 0x66, 0x0c, 0xf9, 0x08, 0xf9, 0x7e, 0x1e, +	0xe1, 0x28, 0x26, 0x22, 0xc7, 0xc7, 0x0a, 0x32, +	0x47, 0xfa, 0xa3, 0xbe, 0x3c, 0xc4, 0xc5, 0x53, +	0x0a, 0xd5, 0x94, 0x4a, 0xd7, 0x93, 0xd8, 0x42, +	0x99, 0xb9, 0x0a, 0xdb, 0x56, 0xf7, 0xb9, 0x1c, +	0x53, 0x4f, 0xfa, 0xd3, 0x74, 0xad, 0xd9, 0x68, +	0xf1, 0x1b, 0xdf, 0x61, 0xc6, 0x5e, 0xa8, 0x48, +	0xfc, 0xd4, 0x4a, 0x4c, 0x3c, 0x32, 0xf7, 0x1c, +	0x96, 0x21, 0x9b, 0xf9, 0xa3, 0xcc, 0x5a, 0xce, +	0xd5, 0xd7, 0x08, 0x24, 0xf6, 0x1c, 0xfd, 0xdd, +	0x38, 0xc2, 0x32, 0xe9, 0xb8, 0xe7, 0xb6, 0xfa, +	0x9d, 0x45, 0x13, 0x2c, 0x83, 0xfd, 0x4a, 0x69, +	0x82, 0xcd, 0xdc, 0xb3, 0x76, 0x0c, 0x9e, 0xd8, +	0xf4, 0x1b, 0x45, 0x15, 0xb4, 0x97, 0xe7, 0x58, +	0x34, 0xe2, 0x03, 0x29, 0x5a, 0xbf, 0xb6, 0xe0, +	0x5d, 0x13, 0xd9, 0x2b, 0xb4, 0x80, 0xb2, 0x45, +	0x81, 0x6a, 0x2e, 0x6c, 0x89, 0x7d, 0xee, 0xbb, +	0x52, 0xdd, 0x1f, 0x18, 0xe7, 0x13, 0x6b, 0x33, +	0x0e, 0xea, 0x36, 0x92, 0x77, 0x7b, 0x6d, 0x9c, +	0x5a, 0x5f, 0x45, 0x7b, 0x7b, 0x35, 0x62, 0x23, +	0xd1, 0xbf, 0x0f, 0xd0, 0x08, 0x1b, 0x2b, 0x80, +	0x6b, 0x7e, 0xf1, 0x21, 0x47, 0xb0, 0x57, 0xd1, +	0x98, 0x72, 0x90, 0x34, 0x1c, 0x20, 0x04, 0xff, +	0x3d, 0x5c, 0xee, 0x0e, 0x57, 0x5f, 0x6f, 0x24, +	0x4e, 0x3c, 0xea, 0xfc, 0xa5, 0xa9, 0x83, 0xc9, +	0x61, 0xb4, 0x51, 0x24, 0xf8, 0x27, 0x5e, 0x46, +	0x8c, 0xb1, 0x53, 0x02, 0x96, 0x35, 0xba, 0xb8, +	0x4c, 0x71, 0xd3, 0x15, 0x59, 0x35, 0x22, 0x20, +	0xad, 0x03, 0x9f, 0x66, 0x44, 0x3b, 0x9c, 0x35, +	0x37, 0x1f, 0x9b, 0xbb, 0xf3, 0xdb, 0x35, 0x63, +	0x30, 0x64, 0xaa, 0xa2, 0x06, 0xa8, 0x5d, 0xbb, +	0xe1, 0x9f, 0x70, 0xec, 0x82, 0x11, 0x06, 0x36, +	0xec, 0x8b, 0x69, 0x66, 0x24, 0x44, 0xc9, 0x4a, +	0x57, 0xbb, 0x9b, 0x78, 0x13, 0xce, 0x9c, 0x0c, +	0xba, 0x92, 0x93, 0x63, 0xb8, 0xe2, 0x95, 0x0f, +	0x0f, 0x16, 0x39, 0x52, 0xfd, 0x3a, 0x6d, 0x02, +	0x4b, 0xdf, 0x13, 0xd3, 0x2a, 0x22, 0xb4, 0x03, +	0x7c, 0x54, 0x49, 0x96, 0x68, 0x54, 0x10, 0xfa, +	0xef, 0xaa, 0x6c, 0xe8, 0x22, 0xdc, 0x71, 0x16, +	0x13, 0x1a, 0xf6, 0x28, 0xe5, 0x6d, 0x77, 0x3d, +	0xcd, 0x30, 0x63, 0xb1, 0x70, 0x52, 0xa1, 0xc5, +	0x94, 0x5f, 0xcf, 0xe8, 0xb8, 0x26, 0x98, 0xf7, +	0x06, 0xa0, 0x0a, 0x70, 0xfa, 0x03, 0x80, 0xac, +	0xc1, 0xec, 0xd6, 0x4c, 0x54, 0xd7, 0xfe, 0x47, +	0xb6, 0x88, 0x4a, 0xf7, 0x71, 0x24, 0xee, 0xf3, +	0xd2, 0xc2, 0x4a, 0x7f, 0xfe, 0x61, 0xc7, 0x35, +	0xc9, 0x37, 0x67, 0xcb, 0x24, 0x35, 0xda, 0x7e, +	0xca, 0x5f, 0xf3, 0x8d, 0xd4, 0x13, 0x8e, 0xd6, +	0xcb, 0x4d, 0x53, 0x8f, 0x53, 0x1f, 0xc0, 0x74, +	0xf7, 0x53, 0xb9, 0x5e, 0x23, 0x37, 0xba, 0x6e, +	0xe3, 0x9d, 0x07, 0x55, 0x25, 0x7b, 0xe6, 0x2a, +	0x64, 0xd1, 0x32, 0xdd, 0x54, 0x1b, 0x4b, 0xc0, +	0xe1, 0xd7, 0x69, 0x58, 0xf8, 0x93, 0x29, 0xc4, +	0xdd, 0x23, 0x2f, 0xa5, 0xfc, 0x9d, 0x7e, 0xf8, +	0xd4, 0x90, 0xcd, 0x82, 0x55, 0xdc, 0x16, 0x16, +	0x9f, 0x07, 0x52, 0x9b, 0x9d, 0x25, 0xed, 0x32, +	0xc5, 0x7b, 0xdf, 0xf6, 0x83, 0x46, 0x3d, 0x65, +	0xb7, 0xef, 0x87, 0x7a, 0x12, 0x69, 0x8f, 0x06, +	0x7c, 0x51, 0x15, 0x4a, 0x08, 0xe8, 0xac, 0x9a, +	0x0c, 0x24, 0xa7, 0x27, 0xd8, 0x46, 0x2f, 0xe7, +	0x01, 0x0e, 0x1c, 0xc6, 0x91, 0xb0, 0x6e, 0x85, +	0x65, 0xf0, 0x29, 0x0d, 0x2e, 0x6b, 0x3b, 0xfb, +	0x4b, 0xdf, 0xe4, 0x80, 0x93, 0x03, 0x66, 0x46, +	0x3e, 0x8a, 0x6e, 0xf3, 0x5e, 0x4d, 0x62, 0x0e, +	0x49, 0x05, 0xaf, 0xd4, 0xf8, 0x21, 0x20, 0x61, +	0x1d, 0x39, 0x17, 0xf4, 0x61, 0x47, 0x95, 0xfb, +	0x15, 0x2e, 0xb3, 0x4f, 0xd0, 0x5d, 0xf5, 0x7d, +	0x40, 0xda, 0x90, 0x3c, 0x6b, 0xcb, 0x17, 0x00, +	0x13, 0x3b, 0x64, 0x34, 0x1b, 0xf0, 0xf2, 0xe5, +	0x3b, 0xb2, 0xc7, 0xd3, 0x5f, 0x3a, 0x44, 0xa6, +	0x9b, 0xb7, 0x78, 0x0e, 0x42, 0x5d, 0x4c, 0xc1, +	0xe9, 0xd2, 0xcb, 0xb7, 0x78, 0xd1, 0xfe, 0x9a, +	0xb5, 0x07, 0xe9, 0xe0, 0xbe, 0xe2, 0x8a, 0xa7, +	0x01, 0x83, 0x00, 0x8c, 0x5c, 0x08, 0xe6, 0x63, +	0x12, 0x92, 0xb7, 0xb7, 0xa6, 0x19, 0x7d, 0x38, +	0x13, 0x38, 0x92, 0x87, 0x24, 0xf9, 0x48, 0xb3, +	0x5e, 0x87, 0x6a, 0x40, 0x39, 0x5c, 0x3f, 0xed, +	0x8f, 0xee, 0xdb, 0x15, 0x82, 0x06, 0xda, 0x49, +	0x21, 0x2b, 0xb5, 0xbf, 0x32, 0x7c, 0x9f, 0x42, +	0x28, 0x63, 0xcf, 0xaf, 0x1e, 0xf8, 0xc6, 0xa0, +	0xd1, 0x02, 0x43, 0x57, 0x62, 0xec, 0x9b, 0x0f, +	0x01, 0x9e, 0x71, 0xd8, 0x87, 0x9d, 0x01, 0xc1, +	0x58, 0x77, 0xd9, 0xaf, 0xb1, 0x10, 0x7e, 0xdd, +	0xa6, 0x50, 0x96, 0xe5, 0xf0, 0x72, 0x00, 0x6d, +	0x4b, 0xf8, 0x2a, 0x8f, 0x19, 0xf3, 0x22, 0x88, +	0x11, 0x4a, 0x8b, 0x7c, 0xfd, 0xb7, 0xed, 0xe1, +	0xf6, 0x40, 0x39, 0xe0, 0xe9, 0xf6, 0x3d, 0x25, +	0xe6, 0x74, 0x3c, 0x58, 0x57, 0x7f, 0xe1, 0x22, +	0x96, 0x47, 0x31, 0x91, 0xba, 0x70, 0x85, 0x28, +	0x6b, 0x9f, 0x6e, 0x25, 0xac, 0x23, 0x66, 0x2f, +	0x29, 0x88, 0x28, 0xce, 0x8c, 0x5c, 0x88, 0x53, +	0xd1, 0x3b, 0xcc, 0x6a, 0x51, 0xb2, 0xe1, 0x28, +	0x3f, 0x91, 0xb4, 0x0d, 0x00, 0x3a, 0xe3, 0xf8, +	0xc3, 0x8f, 0xd7, 0x96, 0x62, 0x0e, 0x2e, 0xfc, +	0xc8, 0x6c, 0x77, 0xa6, 0x1d, 0x22, 0xc1, 0xb8, +	0xe6, 0x61, 0xd7, 0x67, 0x36, 0x13, 0x7b, 0xbb, +	0x9b, 0x59, 0x09, 0xa6, 0xdf, 0xf7, 0x6b, 0xa3, +	0x40, 0x1a, 0xf5, 0x4f, 0xb4, 0xda, 0xd3, 0xf3, +	0x81, 0x93, 0xc6, 0x18, 0xd9, 0x26, 0xee, 0xac, +	0xf0, 0xaa, 0xdf, 0xc5, 0x9c, 0xca, 0xc2, 0xa2, +	0xcc, 0x7b, 0x5c, 0x24, 0xb0, 0xbc, 0xd0, 0x6a, +	0x4d, 0x89, 0x09, 0xb8, 0x07, 0xfe, 0x87, 0xad, +	0x0a, 0xea, 0xb8, 0x42, 0xf9, 0x5e, 0xb3, 0x3e, +	0x36, 0x4c, 0xaf, 0x75, 0x9e, 0x1c, 0xeb, 0xbd, +	0xbc, 0xbb, 0x80, 0x40, 0xa7, 0x3a, 0x30, 0xbf, +	0xa8, 0x44, 0xf4, 0xeb, 0x38, 0xad, 0x29, 0xba, +	0x23, 0xed, 0x41, 0x0c, 0xea, 0xd2, 0xbb, 0x41, +	0x18, 0xd6, 0xb9, 0xba, 0x65, 0x2b, 0xa3, 0x91, +	0x6d, 0x1f, 0xa9, 0xf4, 0xd1, 0x25, 0x8d, 0x4d, +	0x38, 0xff, 0x64, 0xa0, 0xec, 0xde, 0xa6, 0xb6, +	0x79, 0xab, 0x8e, 0x33, 0x6c, 0x47, 0xde, 0xaf, +	0x94, 0xa4, 0xa5, 0x86, 0x77, 0x55, 0x09, 0x92, +	0x81, 0x31, 0x76, 0xc7, 0x34, 0x22, 0x89, 0x8e, +	0x3d, 0x26, 0x26, 0xd7, 0xfc, 0x1e, 0x16, 0x72, +	0x13, 0x33, 0x63, 0xd5, 0x22, 0xbe, 0xb8, 0x04, +	0x34, 0x84, 0x41, 0xbb, 0x80, 0xd0, 0x9f, 0x46, +	0x48, 0x07, 0xa7, 0xfc, 0x2b, 0x3a, 0x75, 0x55, +	0x8c, 0xc7, 0x6a, 0xbd, 0x7e, 0x46, 0x08, 0x84, +	0x0f, 0xd5, 0x74, 0xc0, 0x82, 0x8e, 0xaa, 0x61, +	0x05, 0x01, 0xb2, 0x47, 0x6e, 0x20, 0x6a, 0x2d, +	0x58, 0x70, 0x48, 0x32, 0xa7, 0x37, 0xd2, 0xb8, +	0x82, 0x1a, 0x51, 0xb9, 0x61, 0xdd, 0xfd, 0x9d, +	0x6b, 0x0e, 0x18, 0x97, 0xf8, 0x45, 0x5f, 0x87, +	0x10, 0xcf, 0x34, 0x72, 0x45, 0x26, 0x49, 0x70, +	0xe7, 0xa3, 0x78, 0xe0, 0x52, 0x89, 0x84, 0x94, +	0x83, 0x82, 0xc2, 0x69, 0x8f, 0xe3, 0xe1, 0x3f, +	0x60, 0x74, 0x88, 0xc4, 0xf7, 0x75, 0x2c, 0xfb, +	0xbd, 0xb6, 0xc4, 0x7e, 0x10, 0x0a, 0x6c, 0x90, +	0x04, 0x9e, 0xc3, 0x3f, 0x59, 0x7c, 0xce, 0x31, +	0x18, 0x60, 0x57, 0x73, 0x46, 0x94, 0x7d, 0x06, +	0xa0, 0x6d, 0x44, 0xec, 0xa2, 0x0a, 0x9e, 0x05, +	0x15, 0xef, 0xca, 0x5c, 0xbf, 0x00, 0xeb, 0xf7, +	0x3d, 0x32, 0xd4, 0xa5, 0xef, 0x49, 0x89, 0x5e, +	0x46, 0xb0, 0xa6, 0x63, 0x5b, 0x8a, 0x73, 0xae, +	0x6f, 0xd5, 0x9d, 0xf8, 0x4f, 0x40, 0xb5, 0xb2, +	0x6e, 0xd3, 0xb6, 0x01, 0xa9, 0x26, 0xa2, 0x21, +	0xcf, 0x33, 0x7a, 0x3a, 0xa4, 0x23, 0x13, 0xb0, +	0x69, 0x6a, 0xee, 0xce, 0xd8, 0x9d, 0x01, 0x1d, +	0x50, 0xc1, 0x30, 0x6c, 0xb1, 0xcd, 0xa0, 0xf0, +	0xf0, 0xa2, 0x64, 0x6f, 0xbb, 0xbf, 0x5e, 0xe6, +	0xab, 0x87, 0xb4, 0x0f, 0x4f, 0x15, 0xaf, 0xb5, +	0x25, 0xa1, 0xb2, 0xd0, 0x80, 0x2c, 0xfb, 0xf9, +	0xfe, 0xd2, 0x33, 0xbb, 0x76, 0xfe, 0x7c, 0xa8, +	0x66, 0xf7, 0xe7, 0x85, 0x9f, 0x1f, 0x85, 0x57, +	0x88, 0xe1, 0xe9, 0x63, 0xe4, 0xd8, 0x1c, 0xa1, +	0xfb, 0xda, 0x44, 0x05, 0x2e, 0x1d, 0x3a, 0x1c, +	0xff, 0xc8, 0x3b, 0xc0, 0xfe, 0xda, 0x22, 0x0b, +	0x43, 0xd6, 0x88, 0x39, 0x4c, 0x4a, 0xa6, 0x69, +	0x18, 0x93, 0x42, 0x4e, 0xb5, 0xcc, 0x66, 0x0d, +	0x09, 0xf8, 0x1e, 0x7c, 0xd3, 0x3c, 0x99, 0x0d, +	0x50, 0x1d, 0x62, 0xe9, 0x57, 0x06, 0xbf, 0x19, +	0x88, 0xdd, 0xad, 0x7b, 0x4f, 0xf9, 0xc7, 0x82, +	0x6d, 0x8d, 0xc8, 0xc4, 0xc5, 0x78, 0x17, 0x20, +	0x15, 0xc5, 0x52, 0x41, 0xcf, 0x5b, 0xd6, 0x7f, +	0x94, 0x02, 0x41, 0xe0, 0x40, 0x22, 0x03, 0x5e, +	0xd1, 0x53, 0xd4, 0x86, 0xd3, 0x2c, 0x9f, 0x0f, +	0x96, 0xe3, 0x6b, 0x9a, 0x76, 0x32, 0x06, 0x47, +	0x4b, 0x11, 0xb3, 0xdd, 0x03, 0x65, 0xbd, 0x9b, +	0x01, 0xda, 0x9c, 0xb9, 0x7e, 0x3f, 0x6a, 0xc4, +	0x7b, 0xea, 0xd4, 0x3c, 0xb9, 0xfb, 0x5c, 0x6b, +	0x64, 0x33, 0x52, 0xba, 0x64, 0x78, 0x8f, 0xa4, +	0xaf, 0x7a, 0x61, 0x8d, 0xbc, 0xc5, 0x73, 0xe9, +	0x6b, 0x58, 0x97, 0x4b, 0xbf, 0x63, 0x22, 0xd3, +	0x37, 0x02, 0x54, 0xc5, 0xb9, 0x16, 0x4a, 0xf0, +	0x19, 0xd8, 0x94, 0x57, 0xb8, 0x8a, 0xb3, 0x16, +	0x3b, 0xd0, 0x84, 0x8e, 0x67, 0xa6, 0xa3, 0x7d, +	0x78, 0xec, 0x00 +}; +static const u8 dec_assoc012[] __initconst = { +	0xb1, 0x69, 0x83, 0x87, 0x30, 0xaa, 0x5d, 0xb8, +	0x77, 0xe8, 0x21, 0xff, 0x06, 0x59, 0x35, 0xce, +	0x75, 0xfe, 0x38, 0xef, 0xb8, 0x91, 0x43, 0x8c, +	0xcf, 0x70, 0xdd, 0x0a, 0x68, 0xbf, 0xd4, 0xbc, +	0x16, 0x76, 0x99, 0x36, 0x1e, 0x58, 0x79, 0x5e, +	0xd4, 0x29, 0xf7, 0x33, 0x93, 0x48, 0xdb, 0x5f, +	0x01, 0xae, 0x9c, 0xb6, 0xe4, 0x88, 0x6d, 0x2b, +	0x76, 0x75, 0xe0, 0xf3, 0x74, 0xe2, 0xc9 +}; +static const u8 dec_nonce012[] __initconst = { +	0x05, 0xa3, 0x93, 0xed, 0x30, 0xc5, 0xa2, 0x06 +}; +static const u8 dec_key012[] __initconst = { +	0xb3, 0x35, 0x50, 0x03, 0x54, 0x2e, 0x40, 0x5e, +	0x8f, 0x59, 0x8e, 0xc5, 0x90, 0xd5, 0x27, 0x2d, +	0xba, 0x29, 0x2e, 0xcb, 0x1b, 0x70, 0x44, 0x1e, +	0x65, 0x91, 0x6e, 0x2a, 0x79, 0x22, 0xda, 0x64 +}; + +static const u8 dec_input013[] __initconst = { +	0x52, 0x34, 0xb3, 0x65, 0x3b, 0xb7, 0xe5, 0xd3, +	0xab, 0x49, 0x17, 0x60, 0xd2, 0x52, 0x56, 0xdf, +	0xdf, 0x34, 0x56, 0x82, 0xe2, 0xbe, 0xe5, 0xe1, +	0x28, 0xd1, 0x4e, 0x5f, 0x4f, 0x01, 0x7d, 0x3f, +	0x99, 0x6b, 0x30, 0x6e, 0x1a, 0x7c, 0x4c, 0x8e, +	0x62, 0x81, 0xae, 0x86, 0x3f, 0x6b, 0xd0, 0xb5, +	0xa9, 0xcf, 0x50, 0xf1, 0x02, 0x12, 0xa0, 0x0b, +	0x24, 0xe9, 0xe6, 0x72, 0x89, 0x2c, 0x52, 0x1b, +	0x34, 0x38, 0xf8, 0x75, 0x5f, 0xa0, 0x74, 0xe2, +	0x99, 0xdd, 0xa6, 0x4b, 0x14, 0x50, 0x4e, 0xf1, +	0xbe, 0xd6, 0x9e, 0xdb, 0xb2, 0x24, 0x27, 0x74, +	0x12, 0x4a, 0x78, 0x78, 0x17, 0xa5, 0x58, 0x8e, +	0x2f, 0xf9, 0xf4, 0x8d, 0xee, 0x03, 0x88, 0xae, +	0xb8, 0x29, 0xa1, 0x2f, 0x4b, 0xee, 0x92, 0xbd, +	0x87, 0xb3, 0xce, 0x34, 0x21, 0x57, 0x46, 0x04, +	0x49, 0x0c, 0x80, 0xf2, 0x01, 0x13, 0xa1, 0x55, +	0xb3, 0xff, 0x44, 0x30, 0x3c, 0x1c, 0xd0, 0xef, +	0xbc, 0x18, 0x74, 0x26, 0xad, 0x41, 0x5b, 0x5b, +	0x3e, 0x9a, 0x7a, 0x46, 0x4f, 0x16, 0xd6, 0x74, +	0x5a, 0xb7, 0x3a, 0x28, 0x31, 0xd8, 0xae, 0x26, +	0xac, 0x50, 0x53, 0x86, 0xf2, 0x56, 0xd7, 0x3f, +	0x29, 0xbc, 0x45, 0x68, 0x8e, 0xcb, 0x98, 0x64, +	0xdd, 0xc9, 0xba, 0xb8, 0x4b, 0x7b, 0x82, 0xdd, +	0x14, 0xa7, 0xcb, 0x71, 0x72, 0x00, 0x5c, 0xad, +	0x7b, 0x6a, 0x89, 0xa4, 0x3d, 0xbf, 0xb5, 0x4b, +	0x3e, 0x7c, 0x5a, 0xcf, 0xb8, 0xa1, 0xc5, 0x6e, +	0xc8, 0xb6, 0x31, 0x57, 0x7b, 0xdf, 0xa5, 0x7e, +	0xb1, 0xd6, 0x42, 0x2a, 0x31, 0x36, 0xd1, 0xd0, +	0x3f, 0x7a, 0xe5, 0x94, 0xd6, 0x36, 0xa0, 0x6f, +	0xb7, 0x40, 0x7d, 0x37, 0xc6, 0x55, 0x7c, 0x50, +	0x40, 0x6d, 0x29, 0x89, 0xe3, 0x5a, 0xae, 0x97, +	0xe7, 0x44, 0x49, 0x6e, 0xbd, 0x81, 0x3d, 0x03, +	0x93, 0x06, 0x12, 0x06, 0xe2, 0x41, 0x12, 0x4a, +	0xf1, 0x6a, 0xa4, 0x58, 0xa2, 0xfb, 0xd2, 0x15, +	0xba, 0xc9, 0x79, 0xc9, 0xce, 0x5e, 0x13, 0xbb, +	0xf1, 0x09, 0x04, 0xcc, 0xfd, 0xe8, 0x51, 0x34, +	0x6a, 0xe8, 0x61, 0x88, 0xda, 0xed, 0x01, 0x47, +	0x84, 0xf5, 0x73, 0x25, 0xf9, 0x1c, 0x42, 0x86, +	0x07, 0xf3, 0x5b, 0x1a, 0x01, 0xb3, 0xeb, 0x24, +	0x32, 0x8d, 0xf6, 0xed, 0x7c, 0x4b, 0xeb, 0x3c, +	0x36, 0x42, 0x28, 0xdf, 0xdf, 0xb6, 0xbe, 0xd9, +	0x8c, 0x52, 0xd3, 0x2b, 0x08, 0x90, 0x8c, 0xe7, +	0x98, 0x31, 0xe2, 0x32, 0x8e, 0xfc, 0x11, 0x48, +	0x00, 0xa8, 0x6a, 0x42, 0x4a, 0x02, 0xc6, 0x4b, +	0x09, 0xf1, 0xe3, 0x49, 0xf3, 0x45, 0x1f, 0x0e, +	0xbc, 0x56, 0xe2, 0xe4, 0xdf, 0xfb, 0xeb, 0x61, +	0xfa, 0x24, 0xc1, 0x63, 0x75, 0xbb, 0x47, 0x75, +	0xaf, 0xe1, 0x53, 0x16, 0x96, 0x21, 0x85, 0x26, +	0x11, 0xb3, 0x76, 0xe3, 0x23, 0xa1, 0x6b, 0x74, +	0x37, 0xd0, 0xde, 0x06, 0x90, 0x71, 0x5d, 0x43, +	0x88, 0x9b, 0x00, 0x54, 0xa6, 0x75, 0x2f, 0xa1, +	0xc2, 0x0b, 0x73, 0x20, 0x1d, 0xb6, 0x21, 0x79, +	0x57, 0x3f, 0xfa, 0x09, 0xbe, 0x8a, 0x33, 0xc3, +	0x52, 0xf0, 0x1d, 0x82, 0x31, 0xd1, 0x55, 0xb5, +	0x6c, 0x99, 0x25, 0xcf, 0x5c, 0x32, 0xce, 0xe9, +	0x0d, 0xfa, 0x69, 0x2c, 0xd5, 0x0d, 0xc5, 0x6d, +	0x86, 0xd0, 0x0c, 0x3b, 0x06, 0x50, 0x79, 0xe8, +	0xc3, 0xae, 0x04, 0xe6, 0xcd, 0x51, 0xe4, 0x26, +	0x9b, 0x4f, 0x7e, 0xa6, 0x0f, 0xab, 0xd8, 0xe5, +	0xde, 0xa9, 0x00, 0x95, 0xbe, 0xa3, 0x9d, 0x5d, +	0xb2, 0x09, 0x70, 0x18, 0x1c, 0xf0, 0xac, 0x29, +	0x23, 0x02, 0x29, 0x28, 0xd2, 0x74, 0x35, 0x57, +	0x62, 0x0f, 0x24, 0xea, 0x5e, 0x33, 0xc2, 0x92, +	0xf3, 0x78, 0x4d, 0x30, 0x1e, 0xa1, 0x99, 0xa9, +	0x82, 0xb0, 0x42, 0x31, 0x8d, 0xad, 0x8a, 0xbc, +	0xfc, 0xd4, 0x57, 0x47, 0x3e, 0xb4, 0x50, 0xdd, +	0x6e, 0x2c, 0x80, 0x4d, 0x22, 0xf1, 0xfb, 0x57, +	0xc4, 0xdd, 0x17, 0xe1, 0x8a, 0x36, 0x4a, 0xb3, +	0x37, 0xca, 0xc9, 0x4e, 0xab, 0xd5, 0x69, 0xc4, +	0xf4, 0xbc, 0x0b, 0x3b, 0x44, 0x4b, 0x29, 0x9c, +	0xee, 0xd4, 0x35, 0x22, 0x21, 0xb0, 0x1f, 0x27, +	0x64, 0xa8, 0x51, 0x1b, 0xf0, 0x9f, 0x19, 0x5c, +	0xfb, 0x5a, 0x64, 0x74, 0x70, 0x45, 0x09, 0xf5, +	0x64, 0xfe, 0x1a, 0x2d, 0xc9, 0x14, 0x04, 0x14, +	0xcf, 0xd5, 0x7d, 0x60, 0xaf, 0x94, 0x39, 0x94, +	0xe2, 0x7d, 0x79, 0x82, 0xd0, 0x65, 0x3b, 0x6b, +	0x9c, 0x19, 0x84, 0xb4, 0x6d, 0xb3, 0x0c, 0x99, +	0xc0, 0x56, 0xa8, 0xbd, 0x73, 0xce, 0x05, 0x84, +	0x3e, 0x30, 0xaa, 0xc4, 0x9b, 0x1b, 0x04, 0x2a, +	0x9f, 0xd7, 0x43, 0x2b, 0x23, 0xdf, 0xbf, 0xaa, +	0xd5, 0xc2, 0x43, 0x2d, 0x70, 0xab, 0xdc, 0x75, +	0xad, 0xac, 0xf7, 0xc0, 0xbe, 0x67, 0xb2, 0x74, +	0xed, 0x67, 0x10, 0x4a, 0x92, 0x60, 0xc1, 0x40, +	0x50, 0x19, 0x8a, 0x8a, 0x8c, 0x09, 0x0e, 0x72, +	0xe1, 0x73, 0x5e, 0xe8, 0x41, 0x85, 0x63, 0x9f, +	0x3f, 0xd7, 0x7d, 0xc4, 0xfb, 0x22, 0x5d, 0x92, +	0x6c, 0xb3, 0x1e, 0xe2, 0x50, 0x2f, 0x82, 0xa8, +	0x28, 0xc0, 0xb5, 0xd7, 0x5f, 0x68, 0x0d, 0x2c, +	0x2d, 0xaf, 0x7e, 0xfa, 0x2e, 0x08, 0x0f, 0x1f, +	0x70, 0x9f, 0xe9, 0x19, 0x72, 0x55, 0xf8, 0xfb, +	0x51, 0xd2, 0x33, 0x5d, 0xa0, 0xd3, 0x2b, 0x0a, +	0x6c, 0xbc, 0x4e, 0xcf, 0x36, 0x4d, 0xdc, 0x3b, +	0xe9, 0x3e, 0x81, 0x7c, 0x61, 0xdb, 0x20, 0x2d, +	0x3a, 0xc3, 0xb3, 0x0c, 0x1e, 0x00, 0xb9, 0x7c, +	0xf5, 0xca, 0x10, 0x5f, 0x3a, 0x71, 0xb3, 0xe4, +	0x20, 0xdb, 0x0c, 0x2a, 0x98, 0x63, 0x45, 0x00, +	0x58, 0xf6, 0x68, 0xe4, 0x0b, 0xda, 0x13, 0x3b, +	0x60, 0x5c, 0x76, 0xdb, 0xb9, 0x97, 0x71, 0xe4, +	0xd9, 0xb7, 0xdb, 0xbd, 0x68, 0xc7, 0x84, 0x84, +	0xaa, 0x7c, 0x68, 0x62, 0x5e, 0x16, 0xfc, 0xba, +	0x72, 0xaa, 0x9a, 0xa9, 0xeb, 0x7c, 0x75, 0x47, +	0x97, 0x7e, 0xad, 0xe2, 0xd9, 0x91, 0xe8, 0xe4, +	0xa5, 0x31, 0xd7, 0x01, 0x8e, 0xa2, 0x11, 0x88, +	0x95, 0xb9, 0xf2, 0x9b, 0xd3, 0x7f, 0x1b, 0x81, +	0x22, 0xf7, 0x98, 0x60, 0x0a, 0x64, 0xa6, 0xc1, +	0xf6, 0x49, 0xc7, 0xe3, 0x07, 0x4d, 0x94, 0x7a, +	0xcf, 0x6e, 0x68, 0x0c, 0x1b, 0x3f, 0x6e, 0x2e, +	0xee, 0x92, 0xfa, 0x52, 0xb3, 0x59, 0xf8, 0xf1, +	0x8f, 0x6a, 0x66, 0xa3, 0x82, 0x76, 0x4a, 0x07, +	0x1a, 0xc7, 0xdd, 0xf5, 0xda, 0x9c, 0x3c, 0x24, +	0xbf, 0xfd, 0x42, 0xa1, 0x10, 0x64, 0x6a, 0x0f, +	0x89, 0xee, 0x36, 0xa5, 0xce, 0x99, 0x48, 0x6a, +	0xf0, 0x9f, 0x9e, 0x69, 0xa4, 0x40, 0x20, 0xe9, +	0x16, 0x15, 0xf7, 0xdb, 0x75, 0x02, 0xcb, 0xe9, +	0x73, 0x8b, 0x3b, 0x49, 0x2f, 0xf0, 0xaf, 0x51, +	0x06, 0x5c, 0xdf, 0x27, 0x27, 0x49, 0x6a, 0xd1, +	0xcc, 0xc7, 0xb5, 0x63, 0xb5, 0xfc, 0xb8, 0x5c, +	0x87, 0x7f, 0x84, 0xb4, 0xcc, 0x14, 0xa9, 0x53, +	0xda, 0xa4, 0x56, 0xf8, 0xb6, 0x1b, 0xcc, 0x40, +	0x27, 0x52, 0x06, 0x5a, 0x13, 0x81, 0xd7, 0x3a, +	0xd4, 0x3b, 0xfb, 0x49, 0x65, 0x31, 0x33, 0xb2, +	0xfa, 0xcd, 0xad, 0x58, 0x4e, 0x2b, 0xae, 0xd2, +	0x20, 0xfb, 0x1a, 0x48, 0xb4, 0x3f, 0x9a, 0xd8, +	0x7a, 0x35, 0x4a, 0xc8, 0xee, 0x88, 0x5e, 0x07, +	0x66, 0x54, 0xb9, 0xec, 0x9f, 0xa3, 0xe3, 0xb9, +	0x37, 0xaa, 0x49, 0x76, 0x31, 0xda, 0x74, 0x2d, +	0x3c, 0xa4, 0x65, 0x10, 0x32, 0x38, 0xf0, 0xde, +	0xd3, 0x99, 0x17, 0xaa, 0x71, 0xaa, 0x8f, 0x0f, +	0x8c, 0xaf, 0xa2, 0xf8, 0x5d, 0x64, 0xba, 0x1d, +	0xa3, 0xef, 0x96, 0x73, 0xe8, 0xa1, 0x02, 0x8d, +	0x0c, 0x6d, 0xb8, 0x06, 0x90, 0xb8, 0x08, 0x56, +	0x2c, 0xa7, 0x06, 0xc9, 0xc2, 0x38, 0xdb, 0x7c, +	0x63, 0xb1, 0x57, 0x8e, 0xea, 0x7c, 0x79, 0xf3, +	0x49, 0x1d, 0xfe, 0x9f, 0xf3, 0x6e, 0xb1, 0x1d, +	0xba, 0x19, 0x80, 0x1a, 0x0a, 0xd3, 0xb0, 0x26, +	0x21, 0x40, 0xb1, 0x7c, 0xf9, 0x4d, 0x8d, 0x10, +	0xc1, 0x7e, 0xf4, 0xf6, 0x3c, 0xa8, 0xfd, 0x7c, +	0xa3, 0x92, 0xb2, 0x0f, 0xaa, 0xcc, 0xa6, 0x11, +	0xfe, 0x04, 0xe3, 0xd1, 0x7a, 0x32, 0x89, 0xdf, +	0x0d, 0xc4, 0x8f, 0x79, 0x6b, 0xca, 0x16, 0x7c, +	0x6e, 0xf9, 0xad, 0x0f, 0xf6, 0xfe, 0x27, 0xdb, +	0xc4, 0x13, 0x70, 0xf1, 0x62, 0x1a, 0x4f, 0x79, +	0x40, 0xc9, 0x9b, 0x8b, 0x21, 0xea, 0x84, 0xfa, +	0xf5, 0xf1, 0x89, 0xce, 0xb7, 0x55, 0x0a, 0x80, +	0x39, 0x2f, 0x55, 0x36, 0x16, 0x9c, 0x7b, 0x08, +	0xbd, 0x87, 0x0d, 0xa5, 0x32, 0xf1, 0x52, 0x7c, +	0xe8, 0x55, 0x60, 0x5b, 0xd7, 0x69, 0xe4, 0xfc, +	0xfa, 0x12, 0x85, 0x96, 0xea, 0x50, 0x28, 0xab, +	0x8a, 0xf7, 0xbb, 0x0e, 0x53, 0x74, 0xca, 0xa6, +	0x27, 0x09, 0xc2, 0xb5, 0xde, 0x18, 0x14, 0xd9, +	0xea, 0xe5, 0x29, 0x1c, 0x40, 0x56, 0xcf, 0xd7, +	0xae, 0x05, 0x3f, 0x65, 0xaf, 0x05, 0x73, 0xe2, +	0x35, 0x96, 0x27, 0x07, 0x14, 0xc0, 0xad, 0x33, +	0xf1, 0xdc, 0x44, 0x7a, 0x89, 0x17, 0x77, 0xd2, +	0x9c, 0x58, 0x60, 0xf0, 0x3f, 0x7b, 0x2d, 0x2e, +	0x57, 0x95, 0x54, 0x87, 0xed, 0xf2, 0xc7, 0x4c, +	0xf0, 0xae, 0x56, 0x29, 0x19, 0x7d, 0x66, 0x4b, +	0x9b, 0x83, 0x84, 0x42, 0x3b, 0x01, 0x25, 0x66, +	0x8e, 0x02, 0xde, 0xb9, 0x83, 0x54, 0x19, 0xf6, +	0x9f, 0x79, 0x0d, 0x67, 0xc5, 0x1d, 0x7a, 0x44, +	0x02, 0x98, 0xa7, 0x16, 0x1c, 0x29, 0x0d, 0x74, +	0xff, 0x85, 0x40, 0x06, 0xef, 0x2c, 0xa9, 0xc6, +	0xf5, 0x53, 0x07, 0x06, 0xae, 0xe4, 0xfa, 0x5f, +	0xd8, 0x39, 0x4d, 0xf1, 0x9b, 0x6b, 0xd9, 0x24, +	0x84, 0xfe, 0x03, 0x4c, 0xb2, 0x3f, 0xdf, 0xa1, +	0x05, 0x9e, 0x50, 0x14, 0x5a, 0xd9, 0x1a, 0xa2, +	0xa7, 0xfa, 0xfa, 0x17, 0xf7, 0x78, 0xd6, 0xb5, +	0x92, 0x61, 0x91, 0xac, 0x36, 0xfa, 0x56, 0x0d, +	0x38, 0x32, 0x18, 0x85, 0x08, 0x58, 0x37, 0xf0, +	0x4b, 0xdb, 0x59, 0xe7, 0xa4, 0x34, 0xc0, 0x1b, +	0x01, 0xaf, 0x2d, 0xde, 0xa1, 0xaa, 0x5d, 0xd3, +	0xec, 0xe1, 0xd4, 0xf7, 0xe6, 0x54, 0x68, 0xf0, +	0x51, 0x97, 0xa7, 0x89, 0xea, 0x24, 0xad, 0xd3, +	0x6e, 0x47, 0x93, 0x8b, 0x4b, 0xb4, 0xf7, 0x1c, +	0x42, 0x06, 0x67, 0xe8, 0x99, 0xf6, 0xf5, 0x7b, +	0x85, 0xb5, 0x65, 0xb5, 0xb5, 0xd2, 0x37, 0xf5, +	0xf3, 0x02, 0xa6, 0x4d, 0x11, 0xa7, 0xdc, 0x51, +	0x09, 0x7f, 0xa0, 0xd8, 0x88, 0x1c, 0x13, 0x71, +	0xae, 0x9c, 0xb7, 0x7b, 0x34, 0xd6, 0x4e, 0x68, +	0x26, 0x83, 0x51, 0xaf, 0x1d, 0xee, 0x8b, 0xbb, +	0x69, 0x43, 0x2b, 0x9e, 0x8a, 0xbc, 0x02, 0x0e, +	0xa0, 0x1b, 0xe0, 0xa8, 0x5f, 0x6f, 0xaf, 0x1b, +	0x8f, 0xe7, 0x64, 0x71, 0x74, 0x11, 0x7e, 0xa8, +	0xd8, 0xf9, 0x97, 0x06, 0xc3, 0xb6, 0xfb, 0xfb, +	0xb7, 0x3d, 0x35, 0x9d, 0x3b, 0x52, 0xed, 0x54, +	0xca, 0xf4, 0x81, 0x01, 0x2d, 0x1b, 0xc3, 0xa7, +	0x00, 0x3d, 0x1a, 0x39, 0x54, 0xe1, 0xf6, 0xff, +	0xed, 0x6f, 0x0b, 0x5a, 0x68, 0xda, 0x58, 0xdd, +	0xa9, 0xcf, 0x5c, 0x4a, 0xe5, 0x09, 0x4e, 0xde, +	0x9d, 0xbc, 0x3e, 0xee, 0x5a, 0x00, 0x3b, 0x2c, +	0x87, 0x10, 0x65, 0x60, 0xdd, 0xd7, 0x56, 0xd1, +	0x4c, 0x64, 0x45, 0xe4, 0x21, 0xec, 0x78, 0xf8, +	0x25, 0x7a, 0x3e, 0x16, 0x5d, 0x09, 0x53, 0x14, +	0xbe, 0x4f, 0xae, 0x87, 0xd8, 0xd1, 0xaa, 0x3c, +	0xf6, 0x3e, 0xa4, 0x70, 0x8c, 0x5e, 0x70, 0xa4, +	0xb3, 0x6b, 0x66, 0x73, 0xd3, 0xbf, 0x31, 0x06, +	0x19, 0x62, 0x93, 0x15, 0xf2, 0x86, 0xe4, 0x52, +	0x7e, 0x53, 0x4c, 0x12, 0x38, 0xcc, 0x34, 0x7d, +	0x57, 0xf6, 0x42, 0x93, 0x8a, 0xc4, 0xee, 0x5c, +	0x8a, 0xe1, 0x52, 0x8f, 0x56, 0x64, 0xf6, 0xa6, +	0xd1, 0x91, 0x57, 0x70, 0xcd, 0x11, 0x76, 0xf5, +	0x59, 0x60, 0x60, 0x3c, 0xc1, 0xc3, 0x0b, 0x7f, +	0x58, 0x1a, 0x50, 0x91, 0xf1, 0x68, 0x8f, 0x6e, +	0x74, 0x74, 0xa8, 0x51, 0x0b, 0xf7, 0x7a, 0x98, +	0x37, 0xf2, 0x0a, 0x0e, 0xa4, 0x97, 0x04, 0xb8, +	0x9b, 0xfd, 0xa0, 0xea, 0xf7, 0x0d, 0xe1, 0xdb, +	0x03, 0xf0, 0x31, 0x29, 0xf8, 0xdd, 0x6b, 0x8b, +	0x5d, 0xd8, 0x59, 0xa9, 0x29, 0xcf, 0x9a, 0x79, +	0x89, 0x19, 0x63, 0x46, 0x09, 0x79, 0x6a, 0x11, +	0xda, 0x63, 0x68, 0x48, 0x77, 0x23, 0xfb, 0x7d, +	0x3a, 0x43, 0xcb, 0x02, 0x3b, 0x7a, 0x6d, 0x10, +	0x2a, 0x9e, 0xac, 0xf1, 0xd4, 0x19, 0xf8, 0x23, +	0x64, 0x1d, 0x2c, 0x5f, 0xf2, 0xb0, 0x5c, 0x23, +	0x27, 0xf7, 0x27, 0x30, 0x16, 0x37, 0xb1, 0x90, +	0xab, 0x38, 0xfb, 0x55, 0xcd, 0x78, 0x58, 0xd4, +	0x7d, 0x43, 0xf6, 0x45, 0x5e, 0x55, 0x8d, 0xb1, +	0x02, 0x65, 0x58, 0xb4, 0x13, 0x4b, 0x36, 0xf7, +	0xcc, 0xfe, 0x3d, 0x0b, 0x82, 0xe2, 0x12, 0x11, +	0xbb, 0xe6, 0xb8, 0x3a, 0x48, 0x71, 0xc7, 0x50, +	0x06, 0x16, 0x3a, 0xe6, 0x7c, 0x05, 0xc7, 0xc8, +	0x4d, 0x2f, 0x08, 0x6a, 0x17, 0x9a, 0x95, 0x97, +	0x50, 0x68, 0xdc, 0x28, 0x18, 0xc4, 0x61, 0x38, +	0xb9, 0xe0, 0x3e, 0x78, 0xdb, 0x29, 0xe0, 0x9f, +	0x52, 0xdd, 0xf8, 0x4f, 0x91, 0xc1, 0xd0, 0x33, +	0xa1, 0x7a, 0x8e, 0x30, 0x13, 0x82, 0x07, 0x9f, +	0xd3, 0x31, 0x0f, 0x23, 0xbe, 0x32, 0x5a, 0x75, +	0xcf, 0x96, 0xb2, 0xec, 0xb5, 0x32, 0xac, 0x21, +	0xd1, 0x82, 0x33, 0xd3, 0x15, 0x74, 0xbd, 0x90, +	0xf1, 0x2c, 0xe6, 0x5f, 0x8d, 0xe3, 0x02, 0xe8, +	0xe9, 0xc4, 0xca, 0x96, 0xeb, 0x0e, 0xbc, 0x91, +	0xf4, 0xb9, 0xea, 0xd9, 0x1b, 0x75, 0xbd, 0xe1, +	0xac, 0x2a, 0x05, 0x37, 0x52, 0x9b, 0x1b, 0x3f, +	0x5a, 0xdc, 0x21, 0xc3, 0x98, 0xbb, 0xaf, 0xa3, +	0xf2, 0x00, 0xbf, 0x0d, 0x30, 0x89, 0x05, 0xcc, +	0xa5, 0x76, 0xf5, 0x06, 0xf0, 0xc6, 0x54, 0x8a, +	0x5d, 0xd4, 0x1e, 0xc1, 0xf2, 0xce, 0xb0, 0x62, +	0xc8, 0xfc, 0x59, 0x42, 0x9a, 0x90, 0x60, 0x55, +	0xfe, 0x88, 0xa5, 0x8b, 0xb8, 0x33, 0x0c, 0x23, +	0x24, 0x0d, 0x15, 0x70, 0x37, 0x1e, 0x3d, 0xf6, +	0xd2, 0xea, 0x92, 0x10, 0xb2, 0xc4, 0x51, 0xac, +	0xf2, 0xac, 0xf3, 0x6b, 0x6c, 0xaa, 0xcf, 0x12, +	0xc5, 0x6c, 0x90, 0x50, 0xb5, 0x0c, 0xfc, 0x1a, +	0x15, 0x52, 0xe9, 0x26, 0xc6, 0x52, 0xa4, 0xe7, +	0x81, 0x69, 0xe1, 0xe7, 0x9e, 0x30, 0x01, 0xec, +	0x84, 0x89, 0xb2, 0x0d, 0x66, 0xdd, 0xce, 0x28, +	0x5c, 0xec, 0x98, 0x46, 0x68, 0x21, 0x9f, 0x88, +	0x3f, 0x1f, 0x42, 0x77, 0xce, 0xd0, 0x61, 0xd4, +	0x20, 0xa7, 0xff, 0x53, 0xad, 0x37, 0xd0, 0x17, +	0x35, 0xc9, 0xfc, 0xba, 0x0a, 0x78, 0x3f, 0xf2, +	0xcc, 0x86, 0x89, 0xe8, 0x4b, 0x3c, 0x48, 0x33, +	0x09, 0x7f, 0xc6, 0xc0, 0xdd, 0xb8, 0xfd, 0x7a, +	0x66, 0x66, 0x65, 0xeb, 0x47, 0xa7, 0x04, 0x28, +	0xa3, 0x19, 0x8e, 0xa9, 0xb1, 0x13, 0x67, 0x62, +	0x70, 0xcf, 0xd7 +}; +static const u8 dec_output013[] __initconst = { +	0x74, 0xa6, 0x3e, 0xe4, 0xb1, 0xcb, 0xaf, 0xb0, +	0x40, 0xe5, 0x0f, 0x9e, 0xf1, 0xf2, 0x89, 0xb5, +	0x42, 0x34, 0x8a, 0xa1, 0x03, 0xb7, 0xe9, 0x57, +	0x46, 0xbe, 0x20, 0xe4, 0x6e, 0xb0, 0xeb, 0xff, +	0xea, 0x07, 0x7e, 0xef, 0xe2, 0x55, 0x9f, 0xe5, +	0x78, 0x3a, 0xb7, 0x83, 0xc2, 0x18, 0x40, 0x7b, +	0xeb, 0xcd, 0x81, 0xfb, 0x90, 0x12, 0x9e, 0x46, +	0xa9, 0xd6, 0x4a, 0xba, 0xb0, 0x62, 0xdb, 0x6b, +	0x99, 0xc4, 0xdb, 0x54, 0x4b, 0xb8, 0xa5, 0x71, +	0xcb, 0xcd, 0x63, 0x32, 0x55, 0xfb, 0x31, 0xf0, +	0x38, 0xf5, 0xbe, 0x78, 0xe4, 0x45, 0xce, 0x1b, +	0x6a, 0x5b, 0x0e, 0xf4, 0x16, 0xe4, 0xb1, 0x3d, +	0xf6, 0x63, 0x7b, 0xa7, 0x0c, 0xde, 0x6f, 0x8f, +	0x74, 0xdf, 0xe0, 0x1e, 0x9d, 0xce, 0x8f, 0x24, +	0xef, 0x23, 0x35, 0x33, 0x7b, 0x83, 0x34, 0x23, +	0x58, 0x74, 0x14, 0x77, 0x1f, 0xc2, 0x4f, 0x4e, +	0xc6, 0x89, 0xf9, 0x52, 0x09, 0x37, 0x64, 0x14, +	0xc4, 0x01, 0x6b, 0x9d, 0x77, 0xe8, 0x90, 0x5d, +	0xa8, 0x4a, 0x2a, 0xef, 0x5c, 0x7f, 0xeb, 0xbb, +	0xb2, 0xc6, 0x93, 0x99, 0x66, 0xdc, 0x7f, 0xd4, +	0x9e, 0x2a, 0xca, 0x8d, 0xdb, 0xe7, 0x20, 0xcf, +	0xe4, 0x73, 0xae, 0x49, 0x7d, 0x64, 0x0f, 0x0e, +	0x28, 0x46, 0xa9, 0xa8, 0x32, 0xe4, 0x0e, 0xf6, +	0x51, 0x53, 0xb8, 0x3c, 0xb1, 0xff, 0xa3, 0x33, +	0x41, 0x75, 0xff, 0xf1, 0x6f, 0xf1, 0xfb, 0xbb, +	0x83, 0x7f, 0x06, 0x9b, 0xe7, 0x1b, 0x0a, 0xe0, +	0x5c, 0x33, 0x60, 0x5b, 0xdb, 0x5b, 0xed, 0xfe, +	0xa5, 0x16, 0x19, 0x72, 0xa3, 0x64, 0x23, 0x00, +	0x02, 0xc7, 0xf3, 0x6a, 0x81, 0x3e, 0x44, 0x1d, +	0x79, 0x15, 0x5f, 0x9a, 0xde, 0xe2, 0xfd, 0x1b, +	0x73, 0xc1, 0xbc, 0x23, 0xba, 0x31, 0xd2, 0x50, +	0xd5, 0xad, 0x7f, 0x74, 0xa7, 0xc9, 0xf8, 0x3e, +	0x2b, 0x26, 0x10, 0xf6, 0x03, 0x36, 0x74, 0xe4, +	0x0e, 0x6a, 0x72, 0xb7, 0x73, 0x0a, 0x42, 0x28, +	0xc2, 0xad, 0x5e, 0x03, 0xbe, 0xb8, 0x0b, 0xa8, +	0x5b, 0xd4, 0xb8, 0xba, 0x52, 0x89, 0xb1, 0x9b, +	0xc1, 0xc3, 0x65, 0x87, 0xed, 0xa5, 0xf4, 0x86, +	0xfd, 0x41, 0x80, 0x91, 0x27, 0x59, 0x53, 0x67, +	0x15, 0x78, 0x54, 0x8b, 0x2d, 0x3d, 0xc7, 0xff, +	0x02, 0x92, 0x07, 0x5f, 0x7a, 0x4b, 0x60, 0x59, +	0x3c, 0x6f, 0x5c, 0xd8, 0xec, 0x95, 0xd2, 0xfe, +	0xa0, 0x3b, 0xd8, 0x3f, 0xd1, 0x69, 0xa6, 0xd6, +	0x41, 0xb2, 0xf4, 0x4d, 0x12, 0xf4, 0x58, 0x3e, +	0x66, 0x64, 0x80, 0x31, 0x9b, 0xa8, 0x4c, 0x8b, +	0x07, 0xb2, 0xec, 0x66, 0x94, 0x66, 0x47, 0x50, +	0x50, 0x5f, 0x18, 0x0b, 0x0e, 0xd6, 0xc0, 0x39, +	0x21, 0x13, 0x9e, 0x33, 0xbc, 0x79, 0x36, 0x02, +	0x96, 0x70, 0xf0, 0x48, 0x67, 0x2f, 0x26, 0xe9, +	0x6d, 0x10, 0xbb, 0xd6, 0x3f, 0xd1, 0x64, 0x7a, +	0x2e, 0xbe, 0x0c, 0x61, 0xf0, 0x75, 0x42, 0x38, +	0x23, 0xb1, 0x9e, 0x9f, 0x7c, 0x67, 0x66, 0xd9, +	0x58, 0x9a, 0xf1, 0xbb, 0x41, 0x2a, 0x8d, 0x65, +	0x84, 0x94, 0xfc, 0xdc, 0x6a, 0x50, 0x64, 0xdb, +	0x56, 0x33, 0x76, 0x00, 0x10, 0xed, 0xbe, 0xd2, +	0x12, 0xf6, 0xf6, 0x1b, 0xa2, 0x16, 0xde, 0xae, +	0x31, 0x95, 0xdd, 0xb1, 0x08, 0x7e, 0x4e, 0xee, +	0xe7, 0xf9, 0xa5, 0xfb, 0x5b, 0x61, 0x43, 0x00, +	0x40, 0xf6, 0x7e, 0x02, 0x04, 0x32, 0x4e, 0x0c, +	0xe2, 0x66, 0x0d, 0xd7, 0x07, 0x98, 0x0e, 0xf8, +	0x72, 0x34, 0x6d, 0x95, 0x86, 0xd7, 0xcb, 0x31, +	0x54, 0x47, 0xd0, 0x38, 0x29, 0x9c, 0x5a, 0x68, +	0xd4, 0x87, 0x76, 0xc9, 0xe7, 0x7e, 0xe3, 0xf4, +	0x81, 0x6d, 0x18, 0xcb, 0xc9, 0x05, 0xaf, 0xa0, +	0xfb, 0x66, 0xf7, 0xf1, 0x1c, 0xc6, 0x14, 0x11, +	0x4f, 0x2b, 0x79, 0x42, 0x8b, 0xbc, 0xac, 0xe7, +	0x6c, 0xfe, 0x0f, 0x58, 0xe7, 0x7c, 0x78, 0x39, +	0x30, 0xb0, 0x66, 0x2c, 0x9b, 0x6d, 0x3a, 0xe1, +	0xcf, 0xc9, 0xa4, 0x0e, 0x6d, 0x6d, 0x8a, 0xa1, +	0x3a, 0xe7, 0x28, 0xd4, 0x78, 0x4c, 0xa6, 0xa2, +	0x2a, 0xa6, 0x03, 0x30, 0xd7, 0xa8, 0x25, 0x66, +	0x87, 0x2f, 0x69, 0x5c, 0x4e, 0xdd, 0xa5, 0x49, +	0x5d, 0x37, 0x4a, 0x59, 0xc4, 0xaf, 0x1f, 0xa2, +	0xe4, 0xf8, 0xa6, 0x12, 0x97, 0xd5, 0x79, 0xf5, +	0xe2, 0x4a, 0x2b, 0x5f, 0x61, 0xe4, 0x9e, 0xe3, +	0xee, 0xb8, 0xa7, 0x5b, 0x2f, 0xf4, 0x9e, 0x6c, +	0xfb, 0xd1, 0xc6, 0x56, 0x77, 0xba, 0x75, 0xaa, +	0x3d, 0x1a, 0xa8, 0x0b, 0xb3, 0x68, 0x24, 0x00, +	0x10, 0x7f, 0xfd, 0xd7, 0xa1, 0x8d, 0x83, 0x54, +	0x4f, 0x1f, 0xd8, 0x2a, 0xbe, 0x8a, 0x0c, 0x87, +	0xab, 0xa2, 0xde, 0xc3, 0x39, 0xbf, 0x09, 0x03, +	0xa5, 0xf3, 0x05, 0x28, 0xe1, 0xe1, 0xee, 0x39, +	0x70, 0x9c, 0xd8, 0x81, 0x12, 0x1e, 0x02, 0x40, +	0xd2, 0x6e, 0xf0, 0xeb, 0x1b, 0x3d, 0x22, 0xc6, +	0xe5, 0xe3, 0xb4, 0x5a, 0x98, 0xbb, 0xf0, 0x22, +	0x28, 0x8d, 0xe5, 0xd3, 0x16, 0x48, 0x24, 0xa5, +	0xe6, 0x66, 0x0c, 0xf9, 0x08, 0xf9, 0x7e, 0x1e, +	0xe1, 0x28, 0x26, 0x22, 0xc7, 0xc7, 0x0a, 0x32, +	0x47, 0xfa, 0xa3, 0xbe, 0x3c, 0xc4, 0xc5, 0x53, +	0x0a, 0xd5, 0x94, 0x4a, 0xd7, 0x93, 0xd8, 0x42, +	0x99, 0xb9, 0x0a, 0xdb, 0x56, 0xf7, 0xb9, 0x1c, +	0x53, 0x4f, 0xfa, 0xd3, 0x74, 0xad, 0xd9, 0x68, +	0xf1, 0x1b, 0xdf, 0x61, 0xc6, 0x5e, 0xa8, 0x48, +	0xfc, 0xd4, 0x4a, 0x4c, 0x3c, 0x32, 0xf7, 0x1c, +	0x96, 0x21, 0x9b, 0xf9, 0xa3, 0xcc, 0x5a, 0xce, +	0xd5, 0xd7, 0x08, 0x24, 0xf6, 0x1c, 0xfd, 0xdd, +	0x38, 0xc2, 0x32, 0xe9, 0xb8, 0xe7, 0xb6, 0xfa, +	0x9d, 0x45, 0x13, 0x2c, 0x83, 0xfd, 0x4a, 0x69, +	0x82, 0xcd, 0xdc, 0xb3, 0x76, 0x0c, 0x9e, 0xd8, +	0xf4, 0x1b, 0x45, 0x15, 0xb4, 0x97, 0xe7, 0x58, +	0x34, 0xe2, 0x03, 0x29, 0x5a, 0xbf, 0xb6, 0xe0, +	0x5d, 0x13, 0xd9, 0x2b, 0xb4, 0x80, 0xb2, 0x45, +	0x81, 0x6a, 0x2e, 0x6c, 0x89, 0x7d, 0xee, 0xbb, +	0x52, 0xdd, 0x1f, 0x18, 0xe7, 0x13, 0x6b, 0x33, +	0x0e, 0xea, 0x36, 0x92, 0x77, 0x7b, 0x6d, 0x9c, +	0x5a, 0x5f, 0x45, 0x7b, 0x7b, 0x35, 0x62, 0x23, +	0xd1, 0xbf, 0x0f, 0xd0, 0x08, 0x1b, 0x2b, 0x80, +	0x6b, 0x7e, 0xf1, 0x21, 0x47, 0xb0, 0x57, 0xd1, +	0x98, 0x72, 0x90, 0x34, 0x1c, 0x20, 0x04, 0xff, +	0x3d, 0x5c, 0xee, 0x0e, 0x57, 0x5f, 0x6f, 0x24, +	0x4e, 0x3c, 0xea, 0xfc, 0xa5, 0xa9, 0x83, 0xc9, +	0x61, 0xb4, 0x51, 0x24, 0xf8, 0x27, 0x5e, 0x46, +	0x8c, 0xb1, 0x53, 0x02, 0x96, 0x35, 0xba, 0xb8, +	0x4c, 0x71, 0xd3, 0x15, 0x59, 0x35, 0x22, 0x20, +	0xad, 0x03, 0x9f, 0x66, 0x44, 0x3b, 0x9c, 0x35, +	0x37, 0x1f, 0x9b, 0xbb, 0xf3, 0xdb, 0x35, 0x63, +	0x30, 0x64, 0xaa, 0xa2, 0x06, 0xa8, 0x5d, 0xbb, +	0xe1, 0x9f, 0x70, 0xec, 0x82, 0x11, 0x06, 0x36, +	0xec, 0x8b, 0x69, 0x66, 0x24, 0x44, 0xc9, 0x4a, +	0x57, 0xbb, 0x9b, 0x78, 0x13, 0xce, 0x9c, 0x0c, +	0xba, 0x92, 0x93, 0x63, 0xb8, 0xe2, 0x95, 0x0f, +	0x0f, 0x16, 0x39, 0x52, 0xfd, 0x3a, 0x6d, 0x02, +	0x4b, 0xdf, 0x13, 0xd3, 0x2a, 0x22, 0xb4, 0x03, +	0x7c, 0x54, 0x49, 0x96, 0x68, 0x54, 0x10, 0xfa, +	0xef, 0xaa, 0x6c, 0xe8, 0x22, 0xdc, 0x71, 0x16, +	0x13, 0x1a, 0xf6, 0x28, 0xe5, 0x6d, 0x77, 0x3d, +	0xcd, 0x30, 0x63, 0xb1, 0x70, 0x52, 0xa1, 0xc5, +	0x94, 0x5f, 0xcf, 0xe8, 0xb8, 0x26, 0x98, 0xf7, +	0x06, 0xa0, 0x0a, 0x70, 0xfa, 0x03, 0x80, 0xac, +	0xc1, 0xec, 0xd6, 0x4c, 0x54, 0xd7, 0xfe, 0x47, +	0xb6, 0x88, 0x4a, 0xf7, 0x71, 0x24, 0xee, 0xf3, +	0xd2, 0xc2, 0x4a, 0x7f, 0xfe, 0x61, 0xc7, 0x35, +	0xc9, 0x37, 0x67, 0xcb, 0x24, 0x35, 0xda, 0x7e, +	0xca, 0x5f, 0xf3, 0x8d, 0xd4, 0x13, 0x8e, 0xd6, +	0xcb, 0x4d, 0x53, 0x8f, 0x53, 0x1f, 0xc0, 0x74, +	0xf7, 0x53, 0xb9, 0x5e, 0x23, 0x37, 0xba, 0x6e, +	0xe3, 0x9d, 0x07, 0x55, 0x25, 0x7b, 0xe6, 0x2a, +	0x64, 0xd1, 0x32, 0xdd, 0x54, 0x1b, 0x4b, 0xc0, +	0xe1, 0xd7, 0x69, 0x58, 0xf8, 0x93, 0x29, 0xc4, +	0xdd, 0x23, 0x2f, 0xa5, 0xfc, 0x9d, 0x7e, 0xf8, +	0xd4, 0x90, 0xcd, 0x82, 0x55, 0xdc, 0x16, 0x16, +	0x9f, 0x07, 0x52, 0x9b, 0x9d, 0x25, 0xed, 0x32, +	0xc5, 0x7b, 0xdf, 0xf6, 0x83, 0x46, 0x3d, 0x65, +	0xb7, 0xef, 0x87, 0x7a, 0x12, 0x69, 0x8f, 0x06, +	0x7c, 0x51, 0x15, 0x4a, 0x08, 0xe8, 0xac, 0x9a, +	0x0c, 0x24, 0xa7, 0x27, 0xd8, 0x46, 0x2f, 0xe7, +	0x01, 0x0e, 0x1c, 0xc6, 0x91, 0xb0, 0x6e, 0x85, +	0x65, 0xf0, 0x29, 0x0d, 0x2e, 0x6b, 0x3b, 0xfb, +	0x4b, 0xdf, 0xe4, 0x80, 0x93, 0x03, 0x66, 0x46, +	0x3e, 0x8a, 0x6e, 0xf3, 0x5e, 0x4d, 0x62, 0x0e, +	0x49, 0x05, 0xaf, 0xd4, 0xf8, 0x21, 0x20, 0x61, +	0x1d, 0x39, 0x17, 0xf4, 0x61, 0x47, 0x95, 0xfb, +	0x15, 0x2e, 0xb3, 0x4f, 0xd0, 0x5d, 0xf5, 0x7d, +	0x40, 0xda, 0x90, 0x3c, 0x6b, 0xcb, 0x17, 0x00, +	0x13, 0x3b, 0x64, 0x34, 0x1b, 0xf0, 0xf2, 0xe5, +	0x3b, 0xb2, 0xc7, 0xd3, 0x5f, 0x3a, 0x44, 0xa6, +	0x9b, 0xb7, 0x78, 0x0e, 0x42, 0x5d, 0x4c, 0xc1, +	0xe9, 0xd2, 0xcb, 0xb7, 0x78, 0xd1, 0xfe, 0x9a, +	0xb5, 0x07, 0xe9, 0xe0, 0xbe, 0xe2, 0x8a, 0xa7, +	0x01, 0x83, 0x00, 0x8c, 0x5c, 0x08, 0xe6, 0x63, +	0x12, 0x92, 0xb7, 0xb7, 0xa6, 0x19, 0x7d, 0x38, +	0x13, 0x38, 0x92, 0x87, 0x24, 0xf9, 0x48, 0xb3, +	0x5e, 0x87, 0x6a, 0x40, 0x39, 0x5c, 0x3f, 0xed, +	0x8f, 0xee, 0xdb, 0x15, 0x82, 0x06, 0xda, 0x49, +	0x21, 0x2b, 0xb5, 0xbf, 0x32, 0x7c, 0x9f, 0x42, +	0x28, 0x63, 0xcf, 0xaf, 0x1e, 0xf8, 0xc6, 0xa0, +	0xd1, 0x02, 0x43, 0x57, 0x62, 0xec, 0x9b, 0x0f, +	0x01, 0x9e, 0x71, 0xd8, 0x87, 0x9d, 0x01, 0xc1, +	0x58, 0x77, 0xd9, 0xaf, 0xb1, 0x10, 0x7e, 0xdd, +	0xa6, 0x50, 0x96, 0xe5, 0xf0, 0x72, 0x00, 0x6d, +	0x4b, 0xf8, 0x2a, 0x8f, 0x19, 0xf3, 0x22, 0x88, +	0x11, 0x4a, 0x8b, 0x7c, 0xfd, 0xb7, 0xed, 0xe1, +	0xf6, 0x40, 0x39, 0xe0, 0xe9, 0xf6, 0x3d, 0x25, +	0xe6, 0x74, 0x3c, 0x58, 0x57, 0x7f, 0xe1, 0x22, +	0x96, 0x47, 0x31, 0x91, 0xba, 0x70, 0x85, 0x28, +	0x6b, 0x9f, 0x6e, 0x25, 0xac, 0x23, 0x66, 0x2f, +	0x29, 0x88, 0x28, 0xce, 0x8c, 0x5c, 0x88, 0x53, +	0xd1, 0x3b, 0xcc, 0x6a, 0x51, 0xb2, 0xe1, 0x28, +	0x3f, 0x91, 0xb4, 0x0d, 0x00, 0x3a, 0xe3, 0xf8, +	0xc3, 0x8f, 0xd7, 0x96, 0x62, 0x0e, 0x2e, 0xfc, +	0xc8, 0x6c, 0x77, 0xa6, 0x1d, 0x22, 0xc1, 0xb8, +	0xe6, 0x61, 0xd7, 0x67, 0x36, 0x13, 0x7b, 0xbb, +	0x9b, 0x59, 0x09, 0xa6, 0xdf, 0xf7, 0x6b, 0xa3, +	0x40, 0x1a, 0xf5, 0x4f, 0xb4, 0xda, 0xd3, 0xf3, +	0x81, 0x93, 0xc6, 0x18, 0xd9, 0x26, 0xee, 0xac, +	0xf0, 0xaa, 0xdf, 0xc5, 0x9c, 0xca, 0xc2, 0xa2, +	0xcc, 0x7b, 0x5c, 0x24, 0xb0, 0xbc, 0xd0, 0x6a, +	0x4d, 0x89, 0x09, 0xb8, 0x07, 0xfe, 0x87, 0xad, +	0x0a, 0xea, 0xb8, 0x42, 0xf9, 0x5e, 0xb3, 0x3e, +	0x36, 0x4c, 0xaf, 0x75, 0x9e, 0x1c, 0xeb, 0xbd, +	0xbc, 0xbb, 0x80, 0x40, 0xa7, 0x3a, 0x30, 0xbf, +	0xa8, 0x44, 0xf4, 0xeb, 0x38, 0xad, 0x29, 0xba, +	0x23, 0xed, 0x41, 0x0c, 0xea, 0xd2, 0xbb, 0x41, +	0x18, 0xd6, 0xb9, 0xba, 0x65, 0x2b, 0xa3, 0x91, +	0x6d, 0x1f, 0xa9, 0xf4, 0xd1, 0x25, 0x8d, 0x4d, +	0x38, 0xff, 0x64, 0xa0, 0xec, 0xde, 0xa6, 0xb6, +	0x79, 0xab, 0x8e, 0x33, 0x6c, 0x47, 0xde, 0xaf, +	0x94, 0xa4, 0xa5, 0x86, 0x77, 0x55, 0x09, 0x92, +	0x81, 0x31, 0x76, 0xc7, 0x34, 0x22, 0x89, 0x8e, +	0x3d, 0x26, 0x26, 0xd7, 0xfc, 0x1e, 0x16, 0x72, +	0x13, 0x33, 0x63, 0xd5, 0x22, 0xbe, 0xb8, 0x04, +	0x34, 0x84, 0x41, 0xbb, 0x80, 0xd0, 0x9f, 0x46, +	0x48, 0x07, 0xa7, 0xfc, 0x2b, 0x3a, 0x75, 0x55, +	0x8c, 0xc7, 0x6a, 0xbd, 0x7e, 0x46, 0x08, 0x84, +	0x0f, 0xd5, 0x74, 0xc0, 0x82, 0x8e, 0xaa, 0x61, +	0x05, 0x01, 0xb2, 0x47, 0x6e, 0x20, 0x6a, 0x2d, +	0x58, 0x70, 0x48, 0x32, 0xa7, 0x37, 0xd2, 0xb8, +	0x82, 0x1a, 0x51, 0xb9, 0x61, 0xdd, 0xfd, 0x9d, +	0x6b, 0x0e, 0x18, 0x97, 0xf8, 0x45, 0x5f, 0x87, +	0x10, 0xcf, 0x34, 0x72, 0x45, 0x26, 0x49, 0x70, +	0xe7, 0xa3, 0x78, 0xe0, 0x52, 0x89, 0x84, 0x94, +	0x83, 0x82, 0xc2, 0x69, 0x8f, 0xe3, 0xe1, 0x3f, +	0x60, 0x74, 0x88, 0xc4, 0xf7, 0x75, 0x2c, 0xfb, +	0xbd, 0xb6, 0xc4, 0x7e, 0x10, 0x0a, 0x6c, 0x90, +	0x04, 0x9e, 0xc3, 0x3f, 0x59, 0x7c, 0xce, 0x31, +	0x18, 0x60, 0x57, 0x73, 0x46, 0x94, 0x7d, 0x06, +	0xa0, 0x6d, 0x44, 0xec, 0xa2, 0x0a, 0x9e, 0x05, +	0x15, 0xef, 0xca, 0x5c, 0xbf, 0x00, 0xeb, 0xf7, +	0x3d, 0x32, 0xd4, 0xa5, 0xef, 0x49, 0x89, 0x5e, +	0x46, 0xb0, 0xa6, 0x63, 0x5b, 0x8a, 0x73, 0xae, +	0x6f, 0xd5, 0x9d, 0xf8, 0x4f, 0x40, 0xb5, 0xb2, +	0x6e, 0xd3, 0xb6, 0x01, 0xa9, 0x26, 0xa2, 0x21, +	0xcf, 0x33, 0x7a, 0x3a, 0xa4, 0x23, 0x13, 0xb0, +	0x69, 0x6a, 0xee, 0xce, 0xd8, 0x9d, 0x01, 0x1d, +	0x50, 0xc1, 0x30, 0x6c, 0xb1, 0xcd, 0xa0, 0xf0, +	0xf0, 0xa2, 0x64, 0x6f, 0xbb, 0xbf, 0x5e, 0xe6, +	0xab, 0x87, 0xb4, 0x0f, 0x4f, 0x15, 0xaf, 0xb5, +	0x25, 0xa1, 0xb2, 0xd0, 0x80, 0x2c, 0xfb, 0xf9, +	0xfe, 0xd2, 0x33, 0xbb, 0x76, 0xfe, 0x7c, 0xa8, +	0x66, 0xf7, 0xe7, 0x85, 0x9f, 0x1f, 0x85, 0x57, +	0x88, 0xe1, 0xe9, 0x63, 0xe4, 0xd8, 0x1c, 0xa1, +	0xfb, 0xda, 0x44, 0x05, 0x2e, 0x1d, 0x3a, 0x1c, +	0xff, 0xc8, 0x3b, 0xc0, 0xfe, 0xda, 0x22, 0x0b, +	0x43, 0xd6, 0x88, 0x39, 0x4c, 0x4a, 0xa6, 0x69, +	0x18, 0x93, 0x42, 0x4e, 0xb5, 0xcc, 0x66, 0x0d, +	0x09, 0xf8, 0x1e, 0x7c, 0xd3, 0x3c, 0x99, 0x0d, +	0x50, 0x1d, 0x62, 0xe9, 0x57, 0x06, 0xbf, 0x19, +	0x88, 0xdd, 0xad, 0x7b, 0x4f, 0xf9, 0xc7, 0x82, +	0x6d, 0x8d, 0xc8, 0xc4, 0xc5, 0x78, 0x17, 0x20, +	0x15, 0xc5, 0x52, 0x41, 0xcf, 0x5b, 0xd6, 0x7f, +	0x94, 0x02, 0x41, 0xe0, 0x40, 0x22, 0x03, 0x5e, +	0xd1, 0x53, 0xd4, 0x86, 0xd3, 0x2c, 0x9f, 0x0f, +	0x96, 0xe3, 0x6b, 0x9a, 0x76, 0x32, 0x06, 0x47, +	0x4b, 0x11, 0xb3, 0xdd, 0x03, 0x65, 0xbd, 0x9b, +	0x01, 0xda, 0x9c, 0xb9, 0x7e, 0x3f, 0x6a, 0xc4, +	0x7b, 0xea, 0xd4, 0x3c, 0xb9, 0xfb, 0x5c, 0x6b, +	0x64, 0x33, 0x52, 0xba, 0x64, 0x78, 0x8f, 0xa4, +	0xaf, 0x7a, 0x61, 0x8d, 0xbc, 0xc5, 0x73, 0xe9, +	0x6b, 0x58, 0x97, 0x4b, 0xbf, 0x63, 0x22, 0xd3, +	0x37, 0x02, 0x54, 0xc5, 0xb9, 0x16, 0x4a, 0xf0, +	0x19, 0xd8, 0x94, 0x57, 0xb8, 0x8a, 0xb3, 0x16, +	0x3b, 0xd0, 0x84, 0x8e, 0x67, 0xa6, 0xa3, 0x7d, +	0x78, 0xec, 0x00 +}; +static const u8 dec_assoc013[] __initconst = { +	0xb1, 0x69, 0x83, 0x87, 0x30, 0xaa, 0x5d, 0xb8, +	0x77, 0xe8, 0x21, 0xff, 0x06, 0x59, 0x35, 0xce, +	0x75, 0xfe, 0x38, 0xef, 0xb8, 0x91, 0x43, 0x8c, +	0xcf, 0x70, 0xdd, 0x0a, 0x68, 0xbf, 0xd4, 0xbc, +	0x16, 0x76, 0x99, 0x36, 0x1e, 0x58, 0x79, 0x5e, +	0xd4, 0x29, 0xf7, 0x33, 0x93, 0x48, 0xdb, 0x5f, +	0x01, 0xae, 0x9c, 0xb6, 0xe4, 0x88, 0x6d, 0x2b, +	0x76, 0x75, 0xe0, 0xf3, 0x74, 0xe2, 0xc9 +}; +static const u8 dec_nonce013[] __initconst = { +	0x05, 0xa3, 0x93, 0xed, 0x30, 0xc5, 0xa2, 0x06 +}; +static const u8 dec_key013[] __initconst = { +	0xb3, 0x35, 0x50, 0x03, 0x54, 0x2e, 0x40, 0x5e, +	0x8f, 0x59, 0x8e, 0xc5, 0x90, 0xd5, 0x27, 0x2d, +	0xba, 0x29, 0x2e, 0xcb, 0x1b, 0x70, 0x44, 0x1e, +	0x65, 0x91, 0x6e, 0x2a, 0x79, 0x22, 0xda, 0x64 +}; + +static const struct chacha20poly1305_testvec +chacha20poly1305_dec_vectors[] __initconst = { +	{ dec_input001, dec_output001, dec_assoc001, dec_nonce001, dec_key001, +	  sizeof(dec_input001), sizeof(dec_assoc001), sizeof(dec_nonce001) }, +	{ dec_input002, dec_output002, dec_assoc002, dec_nonce002, dec_key002, +	  sizeof(dec_input002), sizeof(dec_assoc002), sizeof(dec_nonce002) }, +	{ dec_input003, dec_output003, dec_assoc003, dec_nonce003, dec_key003, +	  sizeof(dec_input003), sizeof(dec_assoc003), sizeof(dec_nonce003) }, +	{ dec_input004, dec_output004, dec_assoc004, dec_nonce004, dec_key004, +	  sizeof(dec_input004), sizeof(dec_assoc004), sizeof(dec_nonce004) }, +	{ dec_input005, dec_output005, dec_assoc005, dec_nonce005, dec_key005, +	  sizeof(dec_input005), sizeof(dec_assoc005), sizeof(dec_nonce005) }, +	{ dec_input006, dec_output006, dec_assoc006, dec_nonce006, dec_key006, +	  sizeof(dec_input006), sizeof(dec_assoc006), sizeof(dec_nonce006) }, +	{ dec_input007, dec_output007, dec_assoc007, dec_nonce007, dec_key007, +	  sizeof(dec_input007), sizeof(dec_assoc007), sizeof(dec_nonce007) }, +	{ dec_input008, dec_output008, dec_assoc008, dec_nonce008, dec_key008, +	  sizeof(dec_input008), sizeof(dec_assoc008), sizeof(dec_nonce008) }, +	{ dec_input009, dec_output009, dec_assoc009, dec_nonce009, dec_key009, +	  sizeof(dec_input009), sizeof(dec_assoc009), sizeof(dec_nonce009) }, +	{ dec_input010, dec_output010, dec_assoc010, dec_nonce010, dec_key010, +	  sizeof(dec_input010), sizeof(dec_assoc010), sizeof(dec_nonce010) }, +	{ dec_input011, dec_output011, dec_assoc011, dec_nonce011, dec_key011, +	  sizeof(dec_input011), sizeof(dec_assoc011), sizeof(dec_nonce011) }, +	{ dec_input012, dec_output012, dec_assoc012, dec_nonce012, dec_key012, +	  sizeof(dec_input012), sizeof(dec_assoc012), sizeof(dec_nonce012) }, +	{ dec_input013, dec_output013, dec_assoc013, dec_nonce013, dec_key013, +	  sizeof(dec_input013), sizeof(dec_assoc013), sizeof(dec_nonce013), +	  true } +}; + +static const u8 xenc_input001[] __initconst = { +	0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, +	0x2d, 0x44, 0x72, 0x61, 0x66, 0x74, 0x73, 0x20, +	0x61, 0x72, 0x65, 0x20, 0x64, 0x72, 0x61, 0x66, +	0x74, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, +	0x6e, 0x74, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, +	0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, +	0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, +	0x6f, 0x66, 0x20, 0x73, 0x69, 0x78, 0x20, 0x6d, +	0x6f, 0x6e, 0x74, 0x68, 0x73, 0x20, 0x61, 0x6e, +	0x64, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, +	0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, +	0x2c, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, +	0x65, 0x64, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x6f, +	0x62, 0x73, 0x6f, 0x6c, 0x65, 0x74, 0x65, 0x64, +	0x20, 0x62, 0x79, 0x20, 0x6f, 0x74, 0x68, 0x65, +	0x72, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, +	0x6e, 0x74, 0x73, 0x20, 0x61, 0x74, 0x20, 0x61, +	0x6e, 0x79, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, +	0x20, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x69, +	0x6e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x70, 0x72, +	0x69, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, +	0x75, 0x73, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, +	0x72, 0x6e, 0x65, 0x74, 0x2d, 0x44, 0x72, 0x61, +	0x66, 0x74, 0x73, 0x20, 0x61, 0x73, 0x20, 0x72, +	0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, +	0x20, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, +	0x6c, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x20, +	0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, +	0x6d, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, +	0x74, 0x68, 0x61, 0x6e, 0x20, 0x61, 0x73, 0x20, +	0x2f, 0xe2, 0x80, 0x9c, 0x77, 0x6f, 0x72, 0x6b, +	0x20, 0x69, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x67, +	0x72, 0x65, 0x73, 0x73, 0x2e, 0x2f, 0xe2, 0x80, +	0x9d +}; +static const u8 xenc_output001[] __initconst = { +	0x1a, 0x6e, 0x3a, 0xd9, 0xfd, 0x41, 0x3f, 0x77, +	0x54, 0x72, 0x0a, 0x70, 0x9a, 0xa0, 0x29, 0x92, +	0x2e, 0xed, 0x93, 0xcf, 0x0f, 0x71, 0x88, 0x18, +	0x7a, 0x9d, 0x2d, 0x24, 0xe0, 0xf5, 0xea, 0x3d, +	0x55, 0x64, 0xd7, 0xad, 0x2a, 0x1a, 0x1f, 0x7e, +	0x86, 0x6d, 0xb0, 0xce, 0x80, 0x41, 0x72, 0x86, +	0x26, 0xee, 0x84, 0xd7, 0xef, 0x82, 0x9e, 0xe2, +	0x60, 0x9d, 0x5a, 0xfc, 0xf0, 0xe4, 0x19, 0x85, +	0xea, 0x09, 0xc6, 0xfb, 0xb3, 0xa9, 0x50, 0x09, +	0xec, 0x5e, 0x11, 0x90, 0xa1, 0xc5, 0x4e, 0x49, +	0xef, 0x50, 0xd8, 0x8f, 0xe0, 0x78, 0xd7, 0xfd, +	0xb9, 0x3b, 0xc9, 0xf2, 0x91, 0xc8, 0x25, 0xc8, +	0xa7, 0x63, 0x60, 0xce, 0x10, 0xcd, 0xc6, 0x7f, +	0xf8, 0x16, 0xf8, 0xe1, 0x0a, 0xd9, 0xde, 0x79, +	0x50, 0x33, 0xf2, 0x16, 0x0f, 0x17, 0xba, 0xb8, +	0x5d, 0xd8, 0xdf, 0x4e, 0x51, 0xa8, 0x39, 0xd0, +	0x85, 0xca, 0x46, 0x6a, 0x10, 0xa7, 0xa3, 0x88, +	0xef, 0x79, 0xb9, 0xf8, 0x24, 0xf3, 0xe0, 0x71, +	0x7b, 0x76, 0x28, 0x46, 0x3a, 0x3a, 0x1b, 0x91, +	0xb6, 0xd4, 0x3e, 0x23, 0xe5, 0x44, 0x15, 0xbf, +	0x60, 0x43, 0x9d, 0xa4, 0xbb, 0xd5, 0x5f, 0x89, +	0xeb, 0xef, 0x8e, 0xfd, 0xdd, 0xb4, 0x0d, 0x46, +	0xf0, 0x69, 0x23, 0x63, 0xae, 0x94, 0xf5, 0x5e, +	0xa5, 0xad, 0x13, 0x1c, 0x41, 0x76, 0xe6, 0x90, +	0xd6, 0x6d, 0xa2, 0x8f, 0x97, 0x4c, 0xa8, 0x0b, +	0xcf, 0x8d, 0x43, 0x2b, 0x9c, 0x9b, 0xc5, 0x58, +	0xa5, 0xb6, 0x95, 0x9a, 0xbf, 0x81, 0xc6, 0x54, +	0xc9, 0x66, 0x0c, 0xe5, 0x4f, 0x6a, 0x53, 0xa1, +	0xe5, 0x0c, 0xba, 0x31, 0xde, 0x34, 0x64, 0x73, +	0x8a, 0x3b, 0xbd, 0x92, 0x01, 0xdb, 0x71, 0x69, +	0xf3, 0x58, 0x99, 0xbc, 0xd1, 0xcb, 0x4a, 0x05, +	0xe2, 0x58, 0x9c, 0x25, 0x17, 0xcd, 0xdc, 0x83, +	0xb7, 0xff, 0xfb, 0x09, 0x61, 0xad, 0xbf, 0x13, +	0x5b, 0x5e, 0xed, 0x46, 0x82, 0x6f, 0x22, 0xd8, +	0x93, 0xa6, 0x85, 0x5b, 0x40, 0x39, 0x5c, 0xc5, +	0x9c +}; +static const u8 xenc_assoc001[] __initconst = { +	0xf3, 0x33, 0x88, 0x86, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x4e, 0x91 +}; +static const u8 xenc_nonce001[] __initconst = { +	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, +	0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, +	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 +}; +static const u8 xenc_key001[] __initconst = { +	0x1c, 0x92, 0x40, 0xa5, 0xeb, 0x55, 0xd3, 0x8a, +	0xf3, 0x33, 0x88, 0x86, 0x04, 0xf6, 0xb5, 0xf0, +	0x47, 0x39, 0x17, 0xc1, 0x40, 0x2b, 0x80, 0x09, +	0x9d, 0xca, 0x5c, 0xbc, 0x20, 0x70, 0x75, 0xc0 +}; + +static const struct chacha20poly1305_testvec +xchacha20poly1305_enc_vectors[] __initconst = { +	{ xenc_input001, xenc_output001, xenc_assoc001, xenc_nonce001, xenc_key001, +	  sizeof(xenc_input001), sizeof(xenc_assoc001), sizeof(xenc_nonce001) } +}; + +static const u8 xdec_input001[] __initconst = { +	0x1a, 0x6e, 0x3a, 0xd9, 0xfd, 0x41, 0x3f, 0x77, +	0x54, 0x72, 0x0a, 0x70, 0x9a, 0xa0, 0x29, 0x92, +	0x2e, 0xed, 0x93, 0xcf, 0x0f, 0x71, 0x88, 0x18, +	0x7a, 0x9d, 0x2d, 0x24, 0xe0, 0xf5, 0xea, 0x3d, +	0x55, 0x64, 0xd7, 0xad, 0x2a, 0x1a, 0x1f, 0x7e, +	0x86, 0x6d, 0xb0, 0xce, 0x80, 0x41, 0x72, 0x86, +	0x26, 0xee, 0x84, 0xd7, 0xef, 0x82, 0x9e, 0xe2, +	0x60, 0x9d, 0x5a, 0xfc, 0xf0, 0xe4, 0x19, 0x85, +	0xea, 0x09, 0xc6, 0xfb, 0xb3, 0xa9, 0x50, 0x09, +	0xec, 0x5e, 0x11, 0x90, 0xa1, 0xc5, 0x4e, 0x49, +	0xef, 0x50, 0xd8, 0x8f, 0xe0, 0x78, 0xd7, 0xfd, +	0xb9, 0x3b, 0xc9, 0xf2, 0x91, 0xc8, 0x25, 0xc8, +	0xa7, 0x63, 0x60, 0xce, 0x10, 0xcd, 0xc6, 0x7f, +	0xf8, 0x16, 0xf8, 0xe1, 0x0a, 0xd9, 0xde, 0x79, +	0x50, 0x33, 0xf2, 0x16, 0x0f, 0x17, 0xba, 0xb8, +	0x5d, 0xd8, 0xdf, 0x4e, 0x51, 0xa8, 0x39, 0xd0, +	0x85, 0xca, 0x46, 0x6a, 0x10, 0xa7, 0xa3, 0x88, +	0xef, 0x79, 0xb9, 0xf8, 0x24, 0xf3, 0xe0, 0x71, +	0x7b, 0x76, 0x28, 0x46, 0x3a, 0x3a, 0x1b, 0x91, +	0xb6, 0xd4, 0x3e, 0x23, 0xe5, 0x44, 0x15, 0xbf, +	0x60, 0x43, 0x9d, 0xa4, 0xbb, 0xd5, 0x5f, 0x89, +	0xeb, 0xef, 0x8e, 0xfd, 0xdd, 0xb4, 0x0d, 0x46, +	0xf0, 0x69, 0x23, 0x63, 0xae, 0x94, 0xf5, 0x5e, +	0xa5, 0xad, 0x13, 0x1c, 0x41, 0x76, 0xe6, 0x90, +	0xd6, 0x6d, 0xa2, 0x8f, 0x97, 0x4c, 0xa8, 0x0b, +	0xcf, 0x8d, 0x43, 0x2b, 0x9c, 0x9b, 0xc5, 0x58, +	0xa5, 0xb6, 0x95, 0x9a, 0xbf, 0x81, 0xc6, 0x54, +	0xc9, 0x66, 0x0c, 0xe5, 0x4f, 0x6a, 0x53, 0xa1, +	0xe5, 0x0c, 0xba, 0x31, 0xde, 0x34, 0x64, 0x73, +	0x8a, 0x3b, 0xbd, 0x92, 0x01, 0xdb, 0x71, 0x69, +	0xf3, 0x58, 0x99, 0xbc, 0xd1, 0xcb, 0x4a, 0x05, +	0xe2, 0x58, 0x9c, 0x25, 0x17, 0xcd, 0xdc, 0x83, +	0xb7, 0xff, 0xfb, 0x09, 0x61, 0xad, 0xbf, 0x13, +	0x5b, 0x5e, 0xed, 0x46, 0x82, 0x6f, 0x22, 0xd8, +	0x93, 0xa6, 0x85, 0x5b, 0x40, 0x39, 0x5c, 0xc5, +	0x9c +}; +static const u8 xdec_output001[] __initconst = { +	0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, +	0x2d, 0x44, 0x72, 0x61, 0x66, 0x74, 0x73, 0x20, +	0x61, 0x72, 0x65, 0x20, 0x64, 0x72, 0x61, 0x66, +	0x74, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, +	0x6e, 0x74, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, +	0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, +	0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, +	0x6f, 0x66, 0x20, 0x73, 0x69, 0x78, 0x20, 0x6d, +	0x6f, 0x6e, 0x74, 0x68, 0x73, 0x20, 0x61, 0x6e, +	0x64, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x62, 0x65, +	0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, +	0x2c, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, +	0x65, 0x64, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x6f, +	0x62, 0x73, 0x6f, 0x6c, 0x65, 0x74, 0x65, 0x64, +	0x20, 0x62, 0x79, 0x20, 0x6f, 0x74, 0x68, 0x65, +	0x72, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, +	0x6e, 0x74, 0x73, 0x20, 0x61, 0x74, 0x20, 0x61, +	0x6e, 0x79, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, +	0x20, 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x69, +	0x6e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x70, 0x72, +	0x69, 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, +	0x75, 0x73, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, +	0x72, 0x6e, 0x65, 0x74, 0x2d, 0x44, 0x72, 0x61, +	0x66, 0x74, 0x73, 0x20, 0x61, 0x73, 0x20, 0x72, +	0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, +	0x20, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, +	0x6c, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x6f, 0x20, +	0x63, 0x69, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, +	0x6d, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, +	0x74, 0x68, 0x61, 0x6e, 0x20, 0x61, 0x73, 0x20, +	0x2f, 0xe2, 0x80, 0x9c, 0x77, 0x6f, 0x72, 0x6b, +	0x20, 0x69, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x67, +	0x72, 0x65, 0x73, 0x73, 0x2e, 0x2f, 0xe2, 0x80, +	0x9d +}; +static const u8 xdec_assoc001[] __initconst = { +	0xf3, 0x33, 0x88, 0x86, 0x00, 0x00, 0x00, 0x00, +	0x00, 0x00, 0x4e, 0x91 +}; +static const u8 xdec_nonce001[] __initconst = { +	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, +	0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, +	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 +}; +static const u8 xdec_key001[] __initconst = { +	0x1c, 0x92, 0x40, 0xa5, 0xeb, 0x55, 0xd3, 0x8a, +	0xf3, 0x33, 0x88, 0x86, 0x04, 0xf6, 0xb5, 0xf0, +	0x47, 0x39, 0x17, 0xc1, 0x40, 0x2b, 0x80, 0x09, +	0x9d, 0xca, 0x5c, 0xbc, 0x20, 0x70, 0x75, 0xc0 +}; + +static const struct chacha20poly1305_testvec +xchacha20poly1305_dec_vectors[] __initconst = { +	{ xdec_input001, xdec_output001, xdec_assoc001, xdec_nonce001, xdec_key001, +	  sizeof(xdec_input001), sizeof(xdec_assoc001), sizeof(xdec_nonce001) } +}; + +static void __init +chacha20poly1305_selftest_encrypt(u8 *dst, const u8 *src, const size_t src_len, +				  const u8 *ad, const size_t ad_len, +				  const u8 *nonce, const size_t nonce_len, +				  const u8 key[CHACHA20POLY1305_KEY_SIZE]) +{ +	if (nonce_len == 8) +		chacha20poly1305_encrypt(dst, src, src_len, ad, ad_len, +					 get_unaligned_le64(nonce), key); +	else +		BUG(); +} + +static bool __init +decryption_success(bool func_ret, bool expect_failure, int memcmp_result) +{ +	if (expect_failure) +		return !func_ret; +	return func_ret && !memcmp_result; +} + +bool __init chacha20poly1305_selftest(void) +{ +	enum { MAXIMUM_TEST_BUFFER_LEN = 1UL << 12 }; +	size_t i; +	u8 *computed_output = NULL, *heap_src = NULL; +	struct scatterlist sg_src; +	bool success = true, ret; + +	heap_src = kmalloc(MAXIMUM_TEST_BUFFER_LEN, GFP_KERNEL); +	computed_output = kmalloc(MAXIMUM_TEST_BUFFER_LEN, GFP_KERNEL); +	if (!heap_src || !computed_output) { +		pr_err("chacha20poly1305 self-test malloc: FAIL\n"); +		success = false; +		goto out; +	} + +	for (i = 0; i < ARRAY_SIZE(chacha20poly1305_enc_vectors); ++i) { +		memset(computed_output, 0, MAXIMUM_TEST_BUFFER_LEN); +		chacha20poly1305_selftest_encrypt(computed_output, +					chacha20poly1305_enc_vectors[i].input, +					chacha20poly1305_enc_vectors[i].ilen, +					chacha20poly1305_enc_vectors[i].assoc, +					chacha20poly1305_enc_vectors[i].alen, +					chacha20poly1305_enc_vectors[i].nonce, +					chacha20poly1305_enc_vectors[i].nlen, +					chacha20poly1305_enc_vectors[i].key); +		if (memcmp(computed_output, +			   chacha20poly1305_enc_vectors[i].output, +			   chacha20poly1305_enc_vectors[i].ilen + +							POLY1305_DIGEST_SIZE)) { +			pr_err("chacha20poly1305 encryption self-test %zu: FAIL\n", +			       i + 1); +			success = false; +		} +	} + +	for (i = 0; i < ARRAY_SIZE(chacha20poly1305_enc_vectors); ++i) { +		if (chacha20poly1305_enc_vectors[i].nlen != 8) +			continue; +		memcpy(heap_src, chacha20poly1305_enc_vectors[i].input, +		       chacha20poly1305_enc_vectors[i].ilen); +		sg_init_one(&sg_src, heap_src, +			    chacha20poly1305_enc_vectors[i].ilen + POLY1305_DIGEST_SIZE); +		chacha20poly1305_encrypt_sg_inplace(&sg_src, +			chacha20poly1305_enc_vectors[i].ilen, +			chacha20poly1305_enc_vectors[i].assoc, +			chacha20poly1305_enc_vectors[i].alen, +			get_unaligned_le64(chacha20poly1305_enc_vectors[i].nonce), +			chacha20poly1305_enc_vectors[i].key); +		if (memcmp(heap_src, +				   chacha20poly1305_enc_vectors[i].output, +				   chacha20poly1305_enc_vectors[i].ilen + +							POLY1305_DIGEST_SIZE)) { +			pr_err("chacha20poly1305 sg encryption self-test %zu: FAIL\n", +			       i + 1); +			success = false; +		} +	} + +	for (i = 0; i < ARRAY_SIZE(chacha20poly1305_dec_vectors); ++i) { +		memset(computed_output, 0, MAXIMUM_TEST_BUFFER_LEN); +		ret = chacha20poly1305_decrypt(computed_output, +			chacha20poly1305_dec_vectors[i].input, +			chacha20poly1305_dec_vectors[i].ilen, +			chacha20poly1305_dec_vectors[i].assoc, +			chacha20poly1305_dec_vectors[i].alen, +			get_unaligned_le64(chacha20poly1305_dec_vectors[i].nonce), +			chacha20poly1305_dec_vectors[i].key); +		if (!decryption_success(ret, +				chacha20poly1305_dec_vectors[i].failure, +				memcmp(computed_output, +				       chacha20poly1305_dec_vectors[i].output, +				       chacha20poly1305_dec_vectors[i].ilen - +							POLY1305_DIGEST_SIZE))) { +			pr_err("chacha20poly1305 decryption self-test %zu: FAIL\n", +			       i + 1); +			success = false; +		} +	} + +	for (i = 0; i < ARRAY_SIZE(chacha20poly1305_dec_vectors); ++i) { +		memcpy(heap_src, chacha20poly1305_dec_vectors[i].input, +		       chacha20poly1305_dec_vectors[i].ilen); +		sg_init_one(&sg_src, heap_src, +			    chacha20poly1305_dec_vectors[i].ilen); +		ret = chacha20poly1305_decrypt_sg_inplace(&sg_src, +			chacha20poly1305_dec_vectors[i].ilen, +			chacha20poly1305_dec_vectors[i].assoc, +			chacha20poly1305_dec_vectors[i].alen, +			get_unaligned_le64(chacha20poly1305_dec_vectors[i].nonce), +			chacha20poly1305_dec_vectors[i].key); +		if (!decryption_success(ret, +			chacha20poly1305_dec_vectors[i].failure, +			memcmp(heap_src, chacha20poly1305_dec_vectors[i].output, +			       chacha20poly1305_dec_vectors[i].ilen - +							POLY1305_DIGEST_SIZE))) { +			pr_err("chacha20poly1305 sg decryption self-test %zu: FAIL\n", +			       i + 1); +			success = false; +		} +	} + +	for (i = 0; i < ARRAY_SIZE(xchacha20poly1305_enc_vectors); ++i) { +		memset(computed_output, 0, MAXIMUM_TEST_BUFFER_LEN); +		xchacha20poly1305_encrypt(computed_output, +					xchacha20poly1305_enc_vectors[i].input, +					xchacha20poly1305_enc_vectors[i].ilen, +					xchacha20poly1305_enc_vectors[i].assoc, +					xchacha20poly1305_enc_vectors[i].alen, +					xchacha20poly1305_enc_vectors[i].nonce, +					xchacha20poly1305_enc_vectors[i].key); +		if (memcmp(computed_output, +			   xchacha20poly1305_enc_vectors[i].output, +			   xchacha20poly1305_enc_vectors[i].ilen + +							POLY1305_DIGEST_SIZE)) { +			pr_err("xchacha20poly1305 encryption self-test %zu: FAIL\n", +			       i + 1); +			success = false; +		} +	} +	for (i = 0; i < ARRAY_SIZE(xchacha20poly1305_dec_vectors); ++i) { +		memset(computed_output, 0, MAXIMUM_TEST_BUFFER_LEN); +		ret = xchacha20poly1305_decrypt(computed_output, +					xchacha20poly1305_dec_vectors[i].input, +					xchacha20poly1305_dec_vectors[i].ilen, +					xchacha20poly1305_dec_vectors[i].assoc, +					xchacha20poly1305_dec_vectors[i].alen, +					xchacha20poly1305_dec_vectors[i].nonce, +					xchacha20poly1305_dec_vectors[i].key); +		if (!decryption_success(ret, +				xchacha20poly1305_dec_vectors[i].failure, +				memcmp(computed_output, +				       xchacha20poly1305_dec_vectors[i].output, +				       xchacha20poly1305_dec_vectors[i].ilen - +							POLY1305_DIGEST_SIZE))) { +			pr_err("xchacha20poly1305 decryption self-test %zu: FAIL\n", +			       i + 1); +			success = false; +		} +	} + +out: +	kfree(heap_src); +	kfree(computed_output); +	return success; +} diff --git a/lib/crypto/chacha20poly1305.c b/lib/crypto/chacha20poly1305.c new file mode 100644 index 000000000000..6d83cafebc69 --- /dev/null +++ b/lib/crypto/chacha20poly1305.c @@ -0,0 +1,369 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/* + * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + * + * This is an implementation of the ChaCha20Poly1305 AEAD construction. + * + * Information: https://tools.ietf.org/html/rfc8439 + */ + +#include <crypto/algapi.h> +#include <crypto/chacha20poly1305.h> +#include <crypto/chacha.h> +#include <crypto/poly1305.h> +#include <crypto/scatterwalk.h> + +#include <asm/unaligned.h> +#include <linux/kernel.h> +#include <linux/init.h> +#include <linux/mm.h> +#include <linux/module.h> + +#define CHACHA_KEY_WORDS	(CHACHA_KEY_SIZE / sizeof(u32)) + +bool __init chacha20poly1305_selftest(void); + +static void chacha_load_key(u32 *k, const u8 *in) +{ +	k[0] = get_unaligned_le32(in); +	k[1] = get_unaligned_le32(in + 4); +	k[2] = get_unaligned_le32(in + 8); +	k[3] = get_unaligned_le32(in + 12); +	k[4] = get_unaligned_le32(in + 16); +	k[5] = get_unaligned_le32(in + 20); +	k[6] = get_unaligned_le32(in + 24); +	k[7] = get_unaligned_le32(in + 28); +} + +static void xchacha_init(u32 *chacha_state, const u8 *key, const u8 *nonce) +{ +	u32 k[CHACHA_KEY_WORDS]; +	u8 iv[CHACHA_IV_SIZE]; + +	memset(iv, 0, 8); +	memcpy(iv + 8, nonce + 16, 8); + +	chacha_load_key(k, key); + +	/* Compute the subkey given the original key and first 128 nonce bits */ +	chacha_init(chacha_state, k, nonce); +	hchacha_block(chacha_state, k, 20); + +	chacha_init(chacha_state, k, iv); + +	memzero_explicit(k, sizeof(k)); +	memzero_explicit(iv, sizeof(iv)); +} + +static void +__chacha20poly1305_encrypt(u8 *dst, const u8 *src, const size_t src_len, +			   const u8 *ad, const size_t ad_len, u32 *chacha_state) +{ +	const u8 *pad0 = page_address(ZERO_PAGE(0)); +	struct poly1305_desc_ctx poly1305_state; +	union { +		u8 block0[POLY1305_KEY_SIZE]; +		__le64 lens[2]; +	} b; + +	chacha20_crypt(chacha_state, b.block0, pad0, sizeof(b.block0)); +	poly1305_init(&poly1305_state, b.block0); + +	poly1305_update(&poly1305_state, ad, ad_len); +	if (ad_len & 0xf) +		poly1305_update(&poly1305_state, pad0, 0x10 - (ad_len & 0xf)); + +	chacha20_crypt(chacha_state, dst, src, src_len); + +	poly1305_update(&poly1305_state, dst, src_len); +	if (src_len & 0xf) +		poly1305_update(&poly1305_state, pad0, 0x10 - (src_len & 0xf)); + +	b.lens[0] = cpu_to_le64(ad_len); +	b.lens[1] = cpu_to_le64(src_len); +	poly1305_update(&poly1305_state, (u8 *)b.lens, sizeof(b.lens)); + +	poly1305_final(&poly1305_state, dst + src_len); + +	memzero_explicit(chacha_state, CHACHA_STATE_WORDS * sizeof(u32)); +	memzero_explicit(&b, sizeof(b)); +} + +void chacha20poly1305_encrypt(u8 *dst, const u8 *src, const size_t src_len, +			      const u8 *ad, const size_t ad_len, +			      const u64 nonce, +			      const u8 key[CHACHA20POLY1305_KEY_SIZE]) +{ +	u32 chacha_state[CHACHA_STATE_WORDS]; +	u32 k[CHACHA_KEY_WORDS]; +	__le64 iv[2]; + +	chacha_load_key(k, key); + +	iv[0] = 0; +	iv[1] = cpu_to_le64(nonce); + +	chacha_init(chacha_state, k, (u8 *)iv); +	__chacha20poly1305_encrypt(dst, src, src_len, ad, ad_len, chacha_state); + +	memzero_explicit(iv, sizeof(iv)); +	memzero_explicit(k, sizeof(k)); +} +EXPORT_SYMBOL(chacha20poly1305_encrypt); + +void xchacha20poly1305_encrypt(u8 *dst, const u8 *src, const size_t src_len, +			       const u8 *ad, const size_t ad_len, +			       const u8 nonce[XCHACHA20POLY1305_NONCE_SIZE], +			       const u8 key[CHACHA20POLY1305_KEY_SIZE]) +{ +	u32 chacha_state[CHACHA_STATE_WORDS]; + +	xchacha_init(chacha_state, key, nonce); +	__chacha20poly1305_encrypt(dst, src, src_len, ad, ad_len, chacha_state); +} +EXPORT_SYMBOL(xchacha20poly1305_encrypt); + +static bool +__chacha20poly1305_decrypt(u8 *dst, const u8 *src, const size_t src_len, +			   const u8 *ad, const size_t ad_len, u32 *chacha_state) +{ +	const u8 *pad0 = page_address(ZERO_PAGE(0)); +	struct poly1305_desc_ctx poly1305_state; +	size_t dst_len; +	int ret; +	union { +		u8 block0[POLY1305_KEY_SIZE]; +		u8 mac[POLY1305_DIGEST_SIZE]; +		__le64 lens[2]; +	} b; + +	if (unlikely(src_len < POLY1305_DIGEST_SIZE)) +		return false; + +	chacha20_crypt(chacha_state, b.block0, pad0, sizeof(b.block0)); +	poly1305_init(&poly1305_state, b.block0); + +	poly1305_update(&poly1305_state, ad, ad_len); +	if (ad_len & 0xf) +		poly1305_update(&poly1305_state, pad0, 0x10 - (ad_len & 0xf)); + +	dst_len = src_len - POLY1305_DIGEST_SIZE; +	poly1305_update(&poly1305_state, src, dst_len); +	if (dst_len & 0xf) +		poly1305_update(&poly1305_state, pad0, 0x10 - (dst_len & 0xf)); + +	b.lens[0] = cpu_to_le64(ad_len); +	b.lens[1] = cpu_to_le64(dst_len); +	poly1305_update(&poly1305_state, (u8 *)b.lens, sizeof(b.lens)); + +	poly1305_final(&poly1305_state, b.mac); + +	ret = crypto_memneq(b.mac, src + dst_len, POLY1305_DIGEST_SIZE); +	if (likely(!ret)) +		chacha20_crypt(chacha_state, dst, src, dst_len); + +	memzero_explicit(&b, sizeof(b)); + +	return !ret; +} + +bool chacha20poly1305_decrypt(u8 *dst, const u8 *src, const size_t src_len, +			      const u8 *ad, const size_t ad_len, +			      const u64 nonce, +			      const u8 key[CHACHA20POLY1305_KEY_SIZE]) +{ +	u32 chacha_state[CHACHA_STATE_WORDS]; +	u32 k[CHACHA_KEY_WORDS]; +	__le64 iv[2]; +	bool ret; + +	chacha_load_key(k, key); + +	iv[0] = 0; +	iv[1] = cpu_to_le64(nonce); + +	chacha_init(chacha_state, k, (u8 *)iv); +	ret = __chacha20poly1305_decrypt(dst, src, src_len, ad, ad_len, +					 chacha_state); + +	memzero_explicit(chacha_state, sizeof(chacha_state)); +	memzero_explicit(iv, sizeof(iv)); +	memzero_explicit(k, sizeof(k)); +	return ret; +} +EXPORT_SYMBOL(chacha20poly1305_decrypt); + +bool xchacha20poly1305_decrypt(u8 *dst, const u8 *src, const size_t src_len, +			       const u8 *ad, const size_t ad_len, +			       const u8 nonce[XCHACHA20POLY1305_NONCE_SIZE], +			       const u8 key[CHACHA20POLY1305_KEY_SIZE]) +{ +	u32 chacha_state[CHACHA_STATE_WORDS]; + +	xchacha_init(chacha_state, key, nonce); +	return __chacha20poly1305_decrypt(dst, src, src_len, ad, ad_len, +					  chacha_state); +} +EXPORT_SYMBOL(xchacha20poly1305_decrypt); + +static +bool chacha20poly1305_crypt_sg_inplace(struct scatterlist *src, +				       const size_t src_len, +				       const u8 *ad, const size_t ad_len, +				       const u64 nonce, +				       const u8 key[CHACHA20POLY1305_KEY_SIZE], +				       int encrypt) +{ +	const u8 *pad0 = page_address(ZERO_PAGE(0)); +	struct poly1305_desc_ctx poly1305_state; +	u32 chacha_state[CHACHA_STATE_WORDS]; +	struct sg_mapping_iter miter; +	size_t partial = 0; +	unsigned int flags; +	bool ret = true; +	int sl; +	union { +		struct { +			u32 k[CHACHA_KEY_WORDS]; +			__le64 iv[2]; +		}; +		u8 block0[POLY1305_KEY_SIZE]; +		u8 chacha_stream[CHACHA_BLOCK_SIZE]; +		struct { +			u8 mac[2][POLY1305_DIGEST_SIZE]; +		}; +		__le64 lens[2]; +	} b __aligned(16); + +	chacha_load_key(b.k, key); + +	b.iv[0] = 0; +	b.iv[1] = cpu_to_le64(nonce); + +	chacha_init(chacha_state, b.k, (u8 *)b.iv); +	chacha20_crypt(chacha_state, b.block0, pad0, sizeof(b.block0)); +	poly1305_init(&poly1305_state, b.block0); + +	if (unlikely(ad_len)) { +		poly1305_update(&poly1305_state, ad, ad_len); +		if (ad_len & 0xf) +			poly1305_update(&poly1305_state, pad0, 0x10 - (ad_len & 0xf)); +	} + +	flags = SG_MITER_TO_SG; +	if (!preemptible()) +		flags |= SG_MITER_ATOMIC; + +	sg_miter_start(&miter, src, sg_nents(src), flags); + +	for (sl = src_len; sl > 0 && sg_miter_next(&miter); sl -= miter.length) { +		u8 *addr = miter.addr; +		size_t length = min_t(size_t, sl, miter.length); + +		if (!encrypt) +			poly1305_update(&poly1305_state, addr, length); + +		if (unlikely(partial)) { +			size_t l = min(length, CHACHA_BLOCK_SIZE - partial); + +			crypto_xor(addr, b.chacha_stream + partial, l); +			partial = (partial + l) & (CHACHA_BLOCK_SIZE - 1); + +			addr += l; +			length -= l; +		} + +		if (likely(length >= CHACHA_BLOCK_SIZE || length == sl)) { +			size_t l = length; + +			if (unlikely(length < sl)) +				l &= ~(CHACHA_BLOCK_SIZE - 1); +			chacha20_crypt(chacha_state, addr, addr, l); +			addr += l; +			length -= l; +		} + +		if (unlikely(length > 0)) { +			chacha20_crypt(chacha_state, b.chacha_stream, pad0, +				       CHACHA_BLOCK_SIZE); +			crypto_xor(addr, b.chacha_stream, length); +			partial = length; +		} + +		if (encrypt) +			poly1305_update(&poly1305_state, miter.addr, +					min_t(size_t, sl, miter.length)); +	} + +	if (src_len & 0xf) +		poly1305_update(&poly1305_state, pad0, 0x10 - (src_len & 0xf)); + +	b.lens[0] = cpu_to_le64(ad_len); +	b.lens[1] = cpu_to_le64(src_len); +	poly1305_update(&poly1305_state, (u8 *)b.lens, sizeof(b.lens)); + +	if (likely(sl <= -POLY1305_DIGEST_SIZE)) { +		if (encrypt) { +			poly1305_final(&poly1305_state, +				       miter.addr + miter.length + sl); +			ret = true; +		} else { +			poly1305_final(&poly1305_state, b.mac[0]); +			ret = !crypto_memneq(b.mac[0], +					     miter.addr + miter.length + sl, +					     POLY1305_DIGEST_SIZE); +		} +	} + +	sg_miter_stop(&miter); + +	if (unlikely(sl > -POLY1305_DIGEST_SIZE)) { +		poly1305_final(&poly1305_state, b.mac[1]); +		scatterwalk_map_and_copy(b.mac[encrypt], src, src_len, +					 sizeof(b.mac[1]), encrypt); +		ret = encrypt || +		      !crypto_memneq(b.mac[0], b.mac[1], POLY1305_DIGEST_SIZE); +	} + +	memzero_explicit(chacha_state, sizeof(chacha_state)); +	memzero_explicit(&b, sizeof(b)); + +	return ret; +} + +bool chacha20poly1305_encrypt_sg_inplace(struct scatterlist *src, size_t src_len, +					 const u8 *ad, const size_t ad_len, +					 const u64 nonce, +					 const u8 key[CHACHA20POLY1305_KEY_SIZE]) +{ +	return chacha20poly1305_crypt_sg_inplace(src, src_len, ad, ad_len, +						 nonce, key, 1); +} +EXPORT_SYMBOL(chacha20poly1305_encrypt_sg_inplace); + +bool chacha20poly1305_decrypt_sg_inplace(struct scatterlist *src, size_t src_len, +					 const u8 *ad, const size_t ad_len, +					 const u64 nonce, +					 const u8 key[CHACHA20POLY1305_KEY_SIZE]) +{ +	if (unlikely(src_len < POLY1305_DIGEST_SIZE)) +		return false; + +	return chacha20poly1305_crypt_sg_inplace(src, +						 src_len - POLY1305_DIGEST_SIZE, +						 ad, ad_len, nonce, key, 0); +} +EXPORT_SYMBOL(chacha20poly1305_decrypt_sg_inplace); + +static int __init mod_init(void) +{ +	if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) && +	    WARN_ON(!chacha20poly1305_selftest())) +		return -ENODEV; +	return 0; +} + +module_init(mod_init); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("ChaCha20Poly1305 AEAD construction"); +MODULE_AUTHOR("Jason A. Donenfeld <Jason@zx2c4.com>"); diff --git a/lib/crypto/curve25519-fiat32.c b/lib/crypto/curve25519-fiat32.c new file mode 100644 index 000000000000..2fde0ec33dbd --- /dev/null +++ b/lib/crypto/curve25519-fiat32.c @@ -0,0 +1,864 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/* + * Copyright (C) 2015-2016 The fiat-crypto Authors. + * Copyright (C) 2018-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + * + * This is a machine-generated formally verified implementation of Curve25519 + * ECDH from: <https://github.com/mit-plv/fiat-crypto>. Though originally + * machine generated, it has been tweaked to be suitable for use in the kernel. + * It is optimized for 32-bit machines and machines that cannot work efficiently + * with 128-bit integer types. + */ + +#include <asm/unaligned.h> +#include <crypto/curve25519.h> +#include <linux/string.h> + +/* fe means field element. Here the field is \Z/(2^255-19). An element t, + * entries t[0]...t[9], represents the integer t[0]+2^26 t[1]+2^51 t[2]+2^77 + * t[3]+2^102 t[4]+...+2^230 t[9]. + * fe limbs are bounded by 1.125*2^26,1.125*2^25,1.125*2^26,1.125*2^25,etc. + * Multiplication and carrying produce fe from fe_loose. + */ +typedef struct fe { u32 v[10]; } fe; + +/* fe_loose limbs are bounded by 3.375*2^26,3.375*2^25,3.375*2^26,3.375*2^25,etc + * Addition and subtraction produce fe_loose from (fe, fe). + */ +typedef struct fe_loose { u32 v[10]; } fe_loose; + +static __always_inline void fe_frombytes_impl(u32 h[10], const u8 *s) +{ +	/* Ignores top bit of s. */ +	u32 a0 = get_unaligned_le32(s); +	u32 a1 = get_unaligned_le32(s+4); +	u32 a2 = get_unaligned_le32(s+8); +	u32 a3 = get_unaligned_le32(s+12); +	u32 a4 = get_unaligned_le32(s+16); +	u32 a5 = get_unaligned_le32(s+20); +	u32 a6 = get_unaligned_le32(s+24); +	u32 a7 = get_unaligned_le32(s+28); +	h[0] = a0&((1<<26)-1);                    /* 26 used, 32-26 left.   26 */ +	h[1] = (a0>>26) | ((a1&((1<<19)-1))<< 6); /* (32-26) + 19 =  6+19 = 25 */ +	h[2] = (a1>>19) | ((a2&((1<<13)-1))<<13); /* (32-19) + 13 = 13+13 = 26 */ +	h[3] = (a2>>13) | ((a3&((1<< 6)-1))<<19); /* (32-13) +  6 = 19+ 6 = 25 */ +	h[4] = (a3>> 6);                          /* (32- 6)              = 26 */ +	h[5] = a4&((1<<25)-1);                    /*                        25 */ +	h[6] = (a4>>25) | ((a5&((1<<19)-1))<< 7); /* (32-25) + 19 =  7+19 = 26 */ +	h[7] = (a5>>19) | ((a6&((1<<12)-1))<<13); /* (32-19) + 12 = 13+12 = 25 */ +	h[8] = (a6>>12) | ((a7&((1<< 6)-1))<<20); /* (32-12) +  6 = 20+ 6 = 26 */ +	h[9] = (a7>> 6)&((1<<25)-1); /*                                     25 */ +} + +static __always_inline void fe_frombytes(fe *h, const u8 *s) +{ +	fe_frombytes_impl(h->v, s); +} + +static __always_inline u8 /*bool*/ +addcarryx_u25(u8 /*bool*/ c, u32 a, u32 b, u32 *low) +{ +	/* This function extracts 25 bits of result and 1 bit of carry +	 * (26 total), so a 32-bit intermediate is sufficient. +	 */ +	u32 x = a + b + c; +	*low = x & ((1 << 25) - 1); +	return (x >> 25) & 1; +} + +static __always_inline u8 /*bool*/ +addcarryx_u26(u8 /*bool*/ c, u32 a, u32 b, u32 *low) +{ +	/* This function extracts 26 bits of result and 1 bit of carry +	 * (27 total), so a 32-bit intermediate is sufficient. +	 */ +	u32 x = a + b + c; +	*low = x & ((1 << 26) - 1); +	return (x >> 26) & 1; +} + +static __always_inline u8 /*bool*/ +subborrow_u25(u8 /*bool*/ c, u32 a, u32 b, u32 *low) +{ +	/* This function extracts 25 bits of result and 1 bit of borrow +	 * (26 total), so a 32-bit intermediate is sufficient. +	 */ +	u32 x = a - b - c; +	*low = x & ((1 << 25) - 1); +	return x >> 31; +} + +static __always_inline u8 /*bool*/ +subborrow_u26(u8 /*bool*/ c, u32 a, u32 b, u32 *low) +{ +	/* This function extracts 26 bits of result and 1 bit of borrow +	 *(27 total), so a 32-bit intermediate is sufficient. +	 */ +	u32 x = a - b - c; +	*low = x & ((1 << 26) - 1); +	return x >> 31; +} + +static __always_inline u32 cmovznz32(u32 t, u32 z, u32 nz) +{ +	t = -!!t; /* all set if nonzero, 0 if 0 */ +	return (t&nz) | ((~t)&z); +} + +static __always_inline void fe_freeze(u32 out[10], const u32 in1[10]) +{ +	{ const u32 x17 = in1[9]; +	{ const u32 x18 = in1[8]; +	{ const u32 x16 = in1[7]; +	{ const u32 x14 = in1[6]; +	{ const u32 x12 = in1[5]; +	{ const u32 x10 = in1[4]; +	{ const u32 x8 = in1[3]; +	{ const u32 x6 = in1[2]; +	{ const u32 x4 = in1[1]; +	{ const u32 x2 = in1[0]; +	{ u32 x20; u8/*bool*/ x21 = subborrow_u26(0x0, x2, 0x3ffffed, &x20); +	{ u32 x23; u8/*bool*/ x24 = subborrow_u25(x21, x4, 0x1ffffff, &x23); +	{ u32 x26; u8/*bool*/ x27 = subborrow_u26(x24, x6, 0x3ffffff, &x26); +	{ u32 x29; u8/*bool*/ x30 = subborrow_u25(x27, x8, 0x1ffffff, &x29); +	{ u32 x32; u8/*bool*/ x33 = subborrow_u26(x30, x10, 0x3ffffff, &x32); +	{ u32 x35; u8/*bool*/ x36 = subborrow_u25(x33, x12, 0x1ffffff, &x35); +	{ u32 x38; u8/*bool*/ x39 = subborrow_u26(x36, x14, 0x3ffffff, &x38); +	{ u32 x41; u8/*bool*/ x42 = subborrow_u25(x39, x16, 0x1ffffff, &x41); +	{ u32 x44; u8/*bool*/ x45 = subborrow_u26(x42, x18, 0x3ffffff, &x44); +	{ u32 x47; u8/*bool*/ x48 = subborrow_u25(x45, x17, 0x1ffffff, &x47); +	{ u32 x49 = cmovznz32(x48, 0x0, 0xffffffff); +	{ u32 x50 = (x49 & 0x3ffffed); +	{ u32 x52; u8/*bool*/ x53 = addcarryx_u26(0x0, x20, x50, &x52); +	{ u32 x54 = (x49 & 0x1ffffff); +	{ u32 x56; u8/*bool*/ x57 = addcarryx_u25(x53, x23, x54, &x56); +	{ u32 x58 = (x49 & 0x3ffffff); +	{ u32 x60; u8/*bool*/ x61 = addcarryx_u26(x57, x26, x58, &x60); +	{ u32 x62 = (x49 & 0x1ffffff); +	{ u32 x64; u8/*bool*/ x65 = addcarryx_u25(x61, x29, x62, &x64); +	{ u32 x66 = (x49 & 0x3ffffff); +	{ u32 x68; u8/*bool*/ x69 = addcarryx_u26(x65, x32, x66, &x68); +	{ u32 x70 = (x49 & 0x1ffffff); +	{ u32 x72; u8/*bool*/ x73 = addcarryx_u25(x69, x35, x70, &x72); +	{ u32 x74 = (x49 & 0x3ffffff); +	{ u32 x76; u8/*bool*/ x77 = addcarryx_u26(x73, x38, x74, &x76); +	{ u32 x78 = (x49 & 0x1ffffff); +	{ u32 x80; u8/*bool*/ x81 = addcarryx_u25(x77, x41, x78, &x80); +	{ u32 x82 = (x49 & 0x3ffffff); +	{ u32 x84; u8/*bool*/ x85 = addcarryx_u26(x81, x44, x82, &x84); +	{ u32 x86 = (x49 & 0x1ffffff); +	{ u32 x88; addcarryx_u25(x85, x47, x86, &x88); +	out[0] = x52; +	out[1] = x56; +	out[2] = x60; +	out[3] = x64; +	out[4] = x68; +	out[5] = x72; +	out[6] = x76; +	out[7] = x80; +	out[8] = x84; +	out[9] = x88; +	}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} +} + +static __always_inline void fe_tobytes(u8 s[32], const fe *f) +{ +	u32 h[10]; +	fe_freeze(h, f->v); +	s[0] = h[0] >> 0; +	s[1] = h[0] >> 8; +	s[2] = h[0] >> 16; +	s[3] = (h[0] >> 24) | (h[1] << 2); +	s[4] = h[1] >> 6; +	s[5] = h[1] >> 14; +	s[6] = (h[1] >> 22) | (h[2] << 3); +	s[7] = h[2] >> 5; +	s[8] = h[2] >> 13; +	s[9] = (h[2] >> 21) | (h[3] << 5); +	s[10] = h[3] >> 3; +	s[11] = h[3] >> 11; +	s[12] = (h[3] >> 19) | (h[4] << 6); +	s[13] = h[4] >> 2; +	s[14] = h[4] >> 10; +	s[15] = h[4] >> 18; +	s[16] = h[5] >> 0; +	s[17] = h[5] >> 8; +	s[18] = h[5] >> 16; +	s[19] = (h[5] >> 24) | (h[6] << 1); +	s[20] = h[6] >> 7; +	s[21] = h[6] >> 15; +	s[22] = (h[6] >> 23) | (h[7] << 3); +	s[23] = h[7] >> 5; +	s[24] = h[7] >> 13; +	s[25] = (h[7] >> 21) | (h[8] << 4); +	s[26] = h[8] >> 4; +	s[27] = h[8] >> 12; +	s[28] = (h[8] >> 20) | (h[9] << 6); +	s[29] = h[9] >> 2; +	s[30] = h[9] >> 10; +	s[31] = h[9] >> 18; +} + +/* h = f */ +static __always_inline void fe_copy(fe *h, const fe *f) +{ +	memmove(h, f, sizeof(u32) * 10); +} + +static __always_inline void fe_copy_lt(fe_loose *h, const fe *f) +{ +	memmove(h, f, sizeof(u32) * 10); +} + +/* h = 0 */ +static __always_inline void fe_0(fe *h) +{ +	memset(h, 0, sizeof(u32) * 10); +} + +/* h = 1 */ +static __always_inline void fe_1(fe *h) +{ +	memset(h, 0, sizeof(u32) * 10); +	h->v[0] = 1; +} + +static noinline void fe_add_impl(u32 out[10], const u32 in1[10], const u32 in2[10]) +{ +	{ const u32 x20 = in1[9]; +	{ const u32 x21 = in1[8]; +	{ const u32 x19 = in1[7]; +	{ const u32 x17 = in1[6]; +	{ const u32 x15 = in1[5]; +	{ const u32 x13 = in1[4]; +	{ const u32 x11 = in1[3]; +	{ const u32 x9 = in1[2]; +	{ const u32 x7 = in1[1]; +	{ const u32 x5 = in1[0]; +	{ const u32 x38 = in2[9]; +	{ const u32 x39 = in2[8]; +	{ const u32 x37 = in2[7]; +	{ const u32 x35 = in2[6]; +	{ const u32 x33 = in2[5]; +	{ const u32 x31 = in2[4]; +	{ const u32 x29 = in2[3]; +	{ const u32 x27 = in2[2]; +	{ const u32 x25 = in2[1]; +	{ const u32 x23 = in2[0]; +	out[0] = (x5 + x23); +	out[1] = (x7 + x25); +	out[2] = (x9 + x27); +	out[3] = (x11 + x29); +	out[4] = (x13 + x31); +	out[5] = (x15 + x33); +	out[6] = (x17 + x35); +	out[7] = (x19 + x37); +	out[8] = (x21 + x39); +	out[9] = (x20 + x38); +	}}}}}}}}}}}}}}}}}}}} +} + +/* h = f + g + * Can overlap h with f or g. + */ +static __always_inline void fe_add(fe_loose *h, const fe *f, const fe *g) +{ +	fe_add_impl(h->v, f->v, g->v); +} + +static noinline void fe_sub_impl(u32 out[10], const u32 in1[10], const u32 in2[10]) +{ +	{ const u32 x20 = in1[9]; +	{ const u32 x21 = in1[8]; +	{ const u32 x19 = in1[7]; +	{ const u32 x17 = in1[6]; +	{ const u32 x15 = in1[5]; +	{ const u32 x13 = in1[4]; +	{ const u32 x11 = in1[3]; +	{ const u32 x9 = in1[2]; +	{ const u32 x7 = in1[1]; +	{ const u32 x5 = in1[0]; +	{ const u32 x38 = in2[9]; +	{ const u32 x39 = in2[8]; +	{ const u32 x37 = in2[7]; +	{ const u32 x35 = in2[6]; +	{ const u32 x33 = in2[5]; +	{ const u32 x31 = in2[4]; +	{ const u32 x29 = in2[3]; +	{ const u32 x27 = in2[2]; +	{ const u32 x25 = in2[1]; +	{ const u32 x23 = in2[0]; +	out[0] = ((0x7ffffda + x5) - x23); +	out[1] = ((0x3fffffe + x7) - x25); +	out[2] = ((0x7fffffe + x9) - x27); +	out[3] = ((0x3fffffe + x11) - x29); +	out[4] = ((0x7fffffe + x13) - x31); +	out[5] = ((0x3fffffe + x15) - x33); +	out[6] = ((0x7fffffe + x17) - x35); +	out[7] = ((0x3fffffe + x19) - x37); +	out[8] = ((0x7fffffe + x21) - x39); +	out[9] = ((0x3fffffe + x20) - x38); +	}}}}}}}}}}}}}}}}}}}} +} + +/* h = f - g + * Can overlap h with f or g. + */ +static __always_inline void fe_sub(fe_loose *h, const fe *f, const fe *g) +{ +	fe_sub_impl(h->v, f->v, g->v); +} + +static noinline void fe_mul_impl(u32 out[10], const u32 in1[10], const u32 in2[10]) +{ +	{ const u32 x20 = in1[9]; +	{ const u32 x21 = in1[8]; +	{ const u32 x19 = in1[7]; +	{ const u32 x17 = in1[6]; +	{ const u32 x15 = in1[5]; +	{ const u32 x13 = in1[4]; +	{ const u32 x11 = in1[3]; +	{ const u32 x9 = in1[2]; +	{ const u32 x7 = in1[1]; +	{ const u32 x5 = in1[0]; +	{ const u32 x38 = in2[9]; +	{ const u32 x39 = in2[8]; +	{ const u32 x37 = in2[7]; +	{ const u32 x35 = in2[6]; +	{ const u32 x33 = in2[5]; +	{ const u32 x31 = in2[4]; +	{ const u32 x29 = in2[3]; +	{ const u32 x27 = in2[2]; +	{ const u32 x25 = in2[1]; +	{ const u32 x23 = in2[0]; +	{ u64 x40 = ((u64)x23 * x5); +	{ u64 x41 = (((u64)x23 * x7) + ((u64)x25 * x5)); +	{ u64 x42 = ((((u64)(0x2 * x25) * x7) + ((u64)x23 * x9)) + ((u64)x27 * x5)); +	{ u64 x43 = (((((u64)x25 * x9) + ((u64)x27 * x7)) + ((u64)x23 * x11)) + ((u64)x29 * x5)); +	{ u64 x44 = (((((u64)x27 * x9) + (0x2 * (((u64)x25 * x11) + ((u64)x29 * x7)))) + ((u64)x23 * x13)) + ((u64)x31 * x5)); +	{ u64 x45 = (((((((u64)x27 * x11) + ((u64)x29 * x9)) + ((u64)x25 * x13)) + ((u64)x31 * x7)) + ((u64)x23 * x15)) + ((u64)x33 * x5)); +	{ u64 x46 = (((((0x2 * ((((u64)x29 * x11) + ((u64)x25 * x15)) + ((u64)x33 * x7))) + ((u64)x27 * x13)) + ((u64)x31 * x9)) + ((u64)x23 * x17)) + ((u64)x35 * x5)); +	{ u64 x47 = (((((((((u64)x29 * x13) + ((u64)x31 * x11)) + ((u64)x27 * x15)) + ((u64)x33 * x9)) + ((u64)x25 * x17)) + ((u64)x35 * x7)) + ((u64)x23 * x19)) + ((u64)x37 * x5)); +	{ u64 x48 = (((((((u64)x31 * x13) + (0x2 * (((((u64)x29 * x15) + ((u64)x33 * x11)) + ((u64)x25 * x19)) + ((u64)x37 * x7)))) + ((u64)x27 * x17)) + ((u64)x35 * x9)) + ((u64)x23 * x21)) + ((u64)x39 * x5)); +	{ u64 x49 = (((((((((((u64)x31 * x15) + ((u64)x33 * x13)) + ((u64)x29 * x17)) + ((u64)x35 * x11)) + ((u64)x27 * x19)) + ((u64)x37 * x9)) + ((u64)x25 * x21)) + ((u64)x39 * x7)) + ((u64)x23 * x20)) + ((u64)x38 * x5)); +	{ u64 x50 = (((((0x2 * ((((((u64)x33 * x15) + ((u64)x29 * x19)) + ((u64)x37 * x11)) + ((u64)x25 * x20)) + ((u64)x38 * x7))) + ((u64)x31 * x17)) + ((u64)x35 * x13)) + ((u64)x27 * x21)) + ((u64)x39 * x9)); +	{ u64 x51 = (((((((((u64)x33 * x17) + ((u64)x35 * x15)) + ((u64)x31 * x19)) + ((u64)x37 * x13)) + ((u64)x29 * x21)) + ((u64)x39 * x11)) + ((u64)x27 * x20)) + ((u64)x38 * x9)); +	{ u64 x52 = (((((u64)x35 * x17) + (0x2 * (((((u64)x33 * x19) + ((u64)x37 * x15)) + ((u64)x29 * x20)) + ((u64)x38 * x11)))) + ((u64)x31 * x21)) + ((u64)x39 * x13)); +	{ u64 x53 = (((((((u64)x35 * x19) + ((u64)x37 * x17)) + ((u64)x33 * x21)) + ((u64)x39 * x15)) + ((u64)x31 * x20)) + ((u64)x38 * x13)); +	{ u64 x54 = (((0x2 * ((((u64)x37 * x19) + ((u64)x33 * x20)) + ((u64)x38 * x15))) + ((u64)x35 * x21)) + ((u64)x39 * x17)); +	{ u64 x55 = (((((u64)x37 * x21) + ((u64)x39 * x19)) + ((u64)x35 * x20)) + ((u64)x38 * x17)); +	{ u64 x56 = (((u64)x39 * x21) + (0x2 * (((u64)x37 * x20) + ((u64)x38 * x19)))); +	{ u64 x57 = (((u64)x39 * x20) + ((u64)x38 * x21)); +	{ u64 x58 = ((u64)(0x2 * x38) * x20); +	{ u64 x59 = (x48 + (x58 << 0x4)); +	{ u64 x60 = (x59 + (x58 << 0x1)); +	{ u64 x61 = (x60 + x58); +	{ u64 x62 = (x47 + (x57 << 0x4)); +	{ u64 x63 = (x62 + (x57 << 0x1)); +	{ u64 x64 = (x63 + x57); +	{ u64 x65 = (x46 + (x56 << 0x4)); +	{ u64 x66 = (x65 + (x56 << 0x1)); +	{ u64 x67 = (x66 + x56); +	{ u64 x68 = (x45 + (x55 << 0x4)); +	{ u64 x69 = (x68 + (x55 << 0x1)); +	{ u64 x70 = (x69 + x55); +	{ u64 x71 = (x44 + (x54 << 0x4)); +	{ u64 x72 = (x71 + (x54 << 0x1)); +	{ u64 x73 = (x72 + x54); +	{ u64 x74 = (x43 + (x53 << 0x4)); +	{ u64 x75 = (x74 + (x53 << 0x1)); +	{ u64 x76 = (x75 + x53); +	{ u64 x77 = (x42 + (x52 << 0x4)); +	{ u64 x78 = (x77 + (x52 << 0x1)); +	{ u64 x79 = (x78 + x52); +	{ u64 x80 = (x41 + (x51 << 0x4)); +	{ u64 x81 = (x80 + (x51 << 0x1)); +	{ u64 x82 = (x81 + x51); +	{ u64 x83 = (x40 + (x50 << 0x4)); +	{ u64 x84 = (x83 + (x50 << 0x1)); +	{ u64 x85 = (x84 + x50); +	{ u64 x86 = (x85 >> 0x1a); +	{ u32 x87 = ((u32)x85 & 0x3ffffff); +	{ u64 x88 = (x86 + x82); +	{ u64 x89 = (x88 >> 0x19); +	{ u32 x90 = ((u32)x88 & 0x1ffffff); +	{ u64 x91 = (x89 + x79); +	{ u64 x92 = (x91 >> 0x1a); +	{ u32 x93 = ((u32)x91 & 0x3ffffff); +	{ u64 x94 = (x92 + x76); +	{ u64 x95 = (x94 >> 0x19); +	{ u32 x96 = ((u32)x94 & 0x1ffffff); +	{ u64 x97 = (x95 + x73); +	{ u64 x98 = (x97 >> 0x1a); +	{ u32 x99 = ((u32)x97 & 0x3ffffff); +	{ u64 x100 = (x98 + x70); +	{ u64 x101 = (x100 >> 0x19); +	{ u32 x102 = ((u32)x100 & 0x1ffffff); +	{ u64 x103 = (x101 + x67); +	{ u64 x104 = (x103 >> 0x1a); +	{ u32 x105 = ((u32)x103 & 0x3ffffff); +	{ u64 x106 = (x104 + x64); +	{ u64 x107 = (x106 >> 0x19); +	{ u32 x108 = ((u32)x106 & 0x1ffffff); +	{ u64 x109 = (x107 + x61); +	{ u64 x110 = (x109 >> 0x1a); +	{ u32 x111 = ((u32)x109 & 0x3ffffff); +	{ u64 x112 = (x110 + x49); +	{ u64 x113 = (x112 >> 0x19); +	{ u32 x114 = ((u32)x112 & 0x1ffffff); +	{ u64 x115 = (x87 + (0x13 * x113)); +	{ u32 x116 = (u32) (x115 >> 0x1a); +	{ u32 x117 = ((u32)x115 & 0x3ffffff); +	{ u32 x118 = (x116 + x90); +	{ u32 x119 = (x118 >> 0x19); +	{ u32 x120 = (x118 & 0x1ffffff); +	out[0] = x117; +	out[1] = x120; +	out[2] = (x119 + x93); +	out[3] = x96; +	out[4] = x99; +	out[5] = x102; +	out[6] = x105; +	out[7] = x108; +	out[8] = x111; +	out[9] = x114; +	}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} +} + +static __always_inline void fe_mul_ttt(fe *h, const fe *f, const fe *g) +{ +	fe_mul_impl(h->v, f->v, g->v); +} + +static __always_inline void fe_mul_tlt(fe *h, const fe_loose *f, const fe *g) +{ +	fe_mul_impl(h->v, f->v, g->v); +} + +static __always_inline void +fe_mul_tll(fe *h, const fe_loose *f, const fe_loose *g) +{ +	fe_mul_impl(h->v, f->v, g->v); +} + +static noinline void fe_sqr_impl(u32 out[10], const u32 in1[10]) +{ +	{ const u32 x17 = in1[9]; +	{ const u32 x18 = in1[8]; +	{ const u32 x16 = in1[7]; +	{ const u32 x14 = in1[6]; +	{ const u32 x12 = in1[5]; +	{ const u32 x10 = in1[4]; +	{ const u32 x8 = in1[3]; +	{ const u32 x6 = in1[2]; +	{ const u32 x4 = in1[1]; +	{ const u32 x2 = in1[0]; +	{ u64 x19 = ((u64)x2 * x2); +	{ u64 x20 = ((u64)(0x2 * x2) * x4); +	{ u64 x21 = (0x2 * (((u64)x4 * x4) + ((u64)x2 * x6))); +	{ u64 x22 = (0x2 * (((u64)x4 * x6) + ((u64)x2 * x8))); +	{ u64 x23 = ((((u64)x6 * x6) + ((u64)(0x4 * x4) * x8)) + ((u64)(0x2 * x2) * x10)); +	{ u64 x24 = (0x2 * ((((u64)x6 * x8) + ((u64)x4 * x10)) + ((u64)x2 * x12))); +	{ u64 x25 = (0x2 * (((((u64)x8 * x8) + ((u64)x6 * x10)) + ((u64)x2 * x14)) + ((u64)(0x2 * x4) * x12))); +	{ u64 x26 = (0x2 * (((((u64)x8 * x10) + ((u64)x6 * x12)) + ((u64)x4 * x14)) + ((u64)x2 * x16))); +	{ u64 x27 = (((u64)x10 * x10) + (0x2 * ((((u64)x6 * x14) + ((u64)x2 * x18)) + (0x2 * (((u64)x4 * x16) + ((u64)x8 * x12)))))); +	{ u64 x28 = (0x2 * ((((((u64)x10 * x12) + ((u64)x8 * x14)) + ((u64)x6 * x16)) + ((u64)x4 * x18)) + ((u64)x2 * x17))); +	{ u64 x29 = (0x2 * (((((u64)x12 * x12) + ((u64)x10 * x14)) + ((u64)x6 * x18)) + (0x2 * (((u64)x8 * x16) + ((u64)x4 * x17))))); +	{ u64 x30 = (0x2 * (((((u64)x12 * x14) + ((u64)x10 * x16)) + ((u64)x8 * x18)) + ((u64)x6 * x17))); +	{ u64 x31 = (((u64)x14 * x14) + (0x2 * (((u64)x10 * x18) + (0x2 * (((u64)x12 * x16) + ((u64)x8 * x17)))))); +	{ u64 x32 = (0x2 * ((((u64)x14 * x16) + ((u64)x12 * x18)) + ((u64)x10 * x17))); +	{ u64 x33 = (0x2 * ((((u64)x16 * x16) + ((u64)x14 * x18)) + ((u64)(0x2 * x12) * x17))); +	{ u64 x34 = (0x2 * (((u64)x16 * x18) + ((u64)x14 * x17))); +	{ u64 x35 = (((u64)x18 * x18) + ((u64)(0x4 * x16) * x17)); +	{ u64 x36 = ((u64)(0x2 * x18) * x17); +	{ u64 x37 = ((u64)(0x2 * x17) * x17); +	{ u64 x38 = (x27 + (x37 << 0x4)); +	{ u64 x39 = (x38 + (x37 << 0x1)); +	{ u64 x40 = (x39 + x37); +	{ u64 x41 = (x26 + (x36 << 0x4)); +	{ u64 x42 = (x41 + (x36 << 0x1)); +	{ u64 x43 = (x42 + x36); +	{ u64 x44 = (x25 + (x35 << 0x4)); +	{ u64 x45 = (x44 + (x35 << 0x1)); +	{ u64 x46 = (x45 + x35); +	{ u64 x47 = (x24 + (x34 << 0x4)); +	{ u64 x48 = (x47 + (x34 << 0x1)); +	{ u64 x49 = (x48 + x34); +	{ u64 x50 = (x23 + (x33 << 0x4)); +	{ u64 x51 = (x50 + (x33 << 0x1)); +	{ u64 x52 = (x51 + x33); +	{ u64 x53 = (x22 + (x32 << 0x4)); +	{ u64 x54 = (x53 + (x32 << 0x1)); +	{ u64 x55 = (x54 + x32); +	{ u64 x56 = (x21 + (x31 << 0x4)); +	{ u64 x57 = (x56 + (x31 << 0x1)); +	{ u64 x58 = (x57 + x31); +	{ u64 x59 = (x20 + (x30 << 0x4)); +	{ u64 x60 = (x59 + (x30 << 0x1)); +	{ u64 x61 = (x60 + x30); +	{ u64 x62 = (x19 + (x29 << 0x4)); +	{ u64 x63 = (x62 + (x29 << 0x1)); +	{ u64 x64 = (x63 + x29); +	{ u64 x65 = (x64 >> 0x1a); +	{ u32 x66 = ((u32)x64 & 0x3ffffff); +	{ u64 x67 = (x65 + x61); +	{ u64 x68 = (x67 >> 0x19); +	{ u32 x69 = ((u32)x67 & 0x1ffffff); +	{ u64 x70 = (x68 + x58); +	{ u64 x71 = (x70 >> 0x1a); +	{ u32 x72 = ((u32)x70 & 0x3ffffff); +	{ u64 x73 = (x71 + x55); +	{ u64 x74 = (x73 >> 0x19); +	{ u32 x75 = ((u32)x73 & 0x1ffffff); +	{ u64 x76 = (x74 + x52); +	{ u64 x77 = (x76 >> 0x1a); +	{ u32 x78 = ((u32)x76 & 0x3ffffff); +	{ u64 x79 = (x77 + x49); +	{ u64 x80 = (x79 >> 0x19); +	{ u32 x81 = ((u32)x79 & 0x1ffffff); +	{ u64 x82 = (x80 + x46); +	{ u64 x83 = (x82 >> 0x1a); +	{ u32 x84 = ((u32)x82 & 0x3ffffff); +	{ u64 x85 = (x83 + x43); +	{ u64 x86 = (x85 >> 0x19); +	{ u32 x87 = ((u32)x85 & 0x1ffffff); +	{ u64 x88 = (x86 + x40); +	{ u64 x89 = (x88 >> 0x1a); +	{ u32 x90 = ((u32)x88 & 0x3ffffff); +	{ u64 x91 = (x89 + x28); +	{ u64 x92 = (x91 >> 0x19); +	{ u32 x93 = ((u32)x91 & 0x1ffffff); +	{ u64 x94 = (x66 + (0x13 * x92)); +	{ u32 x95 = (u32) (x94 >> 0x1a); +	{ u32 x96 = ((u32)x94 & 0x3ffffff); +	{ u32 x97 = (x95 + x69); +	{ u32 x98 = (x97 >> 0x19); +	{ u32 x99 = (x97 & 0x1ffffff); +	out[0] = x96; +	out[1] = x99; +	out[2] = (x98 + x72); +	out[3] = x75; +	out[4] = x78; +	out[5] = x81; +	out[6] = x84; +	out[7] = x87; +	out[8] = x90; +	out[9] = x93; +	}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} +} + +static __always_inline void fe_sq_tl(fe *h, const fe_loose *f) +{ +	fe_sqr_impl(h->v, f->v); +} + +static __always_inline void fe_sq_tt(fe *h, const fe *f) +{ +	fe_sqr_impl(h->v, f->v); +} + +static __always_inline void fe_loose_invert(fe *out, const fe_loose *z) +{ +	fe t0; +	fe t1; +	fe t2; +	fe t3; +	int i; + +	fe_sq_tl(&t0, z); +	fe_sq_tt(&t1, &t0); +	for (i = 1; i < 2; ++i) +		fe_sq_tt(&t1, &t1); +	fe_mul_tlt(&t1, z, &t1); +	fe_mul_ttt(&t0, &t0, &t1); +	fe_sq_tt(&t2, &t0); +	fe_mul_ttt(&t1, &t1, &t2); +	fe_sq_tt(&t2, &t1); +	for (i = 1; i < 5; ++i) +		fe_sq_tt(&t2, &t2); +	fe_mul_ttt(&t1, &t2, &t1); +	fe_sq_tt(&t2, &t1); +	for (i = 1; i < 10; ++i) +		fe_sq_tt(&t2, &t2); +	fe_mul_ttt(&t2, &t2, &t1); +	fe_sq_tt(&t3, &t2); +	for (i = 1; i < 20; ++i) +		fe_sq_tt(&t3, &t3); +	fe_mul_ttt(&t2, &t3, &t2); +	fe_sq_tt(&t2, &t2); +	for (i = 1; i < 10; ++i) +		fe_sq_tt(&t2, &t2); +	fe_mul_ttt(&t1, &t2, &t1); +	fe_sq_tt(&t2, &t1); +	for (i = 1; i < 50; ++i) +		fe_sq_tt(&t2, &t2); +	fe_mul_ttt(&t2, &t2, &t1); +	fe_sq_tt(&t3, &t2); +	for (i = 1; i < 100; ++i) +		fe_sq_tt(&t3, &t3); +	fe_mul_ttt(&t2, &t3, &t2); +	fe_sq_tt(&t2, &t2); +	for (i = 1; i < 50; ++i) +		fe_sq_tt(&t2, &t2); +	fe_mul_ttt(&t1, &t2, &t1); +	fe_sq_tt(&t1, &t1); +	for (i = 1; i < 5; ++i) +		fe_sq_tt(&t1, &t1); +	fe_mul_ttt(out, &t1, &t0); +} + +static __always_inline void fe_invert(fe *out, const fe *z) +{ +	fe_loose l; +	fe_copy_lt(&l, z); +	fe_loose_invert(out, &l); +} + +/* Replace (f,g) with (g,f) if b == 1; + * replace (f,g) with (f,g) if b == 0. + * + * Preconditions: b in {0,1} + */ +static noinline void fe_cswap(fe *f, fe *g, unsigned int b) +{ +	unsigned i; +	b = 0 - b; +	for (i = 0; i < 10; i++) { +		u32 x = f->v[i] ^ g->v[i]; +		x &= b; +		f->v[i] ^= x; +		g->v[i] ^= x; +	} +} + +/* NOTE: based on fiat-crypto fe_mul, edited for in2=121666, 0, 0.*/ +static __always_inline void fe_mul_121666_impl(u32 out[10], const u32 in1[10]) +{ +	{ const u32 x20 = in1[9]; +	{ const u32 x21 = in1[8]; +	{ const u32 x19 = in1[7]; +	{ const u32 x17 = in1[6]; +	{ const u32 x15 = in1[5]; +	{ const u32 x13 = in1[4]; +	{ const u32 x11 = in1[3]; +	{ const u32 x9 = in1[2]; +	{ const u32 x7 = in1[1]; +	{ const u32 x5 = in1[0]; +	{ const u32 x38 = 0; +	{ const u32 x39 = 0; +	{ const u32 x37 = 0; +	{ const u32 x35 = 0; +	{ const u32 x33 = 0; +	{ const u32 x31 = 0; +	{ const u32 x29 = 0; +	{ const u32 x27 = 0; +	{ const u32 x25 = 0; +	{ const u32 x23 = 121666; +	{ u64 x40 = ((u64)x23 * x5); +	{ u64 x41 = (((u64)x23 * x7) + ((u64)x25 * x5)); +	{ u64 x42 = ((((u64)(0x2 * x25) * x7) + ((u64)x23 * x9)) + ((u64)x27 * x5)); +	{ u64 x43 = (((((u64)x25 * x9) + ((u64)x27 * x7)) + ((u64)x23 * x11)) + ((u64)x29 * x5)); +	{ u64 x44 = (((((u64)x27 * x9) + (0x2 * (((u64)x25 * x11) + ((u64)x29 * x7)))) + ((u64)x23 * x13)) + ((u64)x31 * x5)); +	{ u64 x45 = (((((((u64)x27 * x11) + ((u64)x29 * x9)) + ((u64)x25 * x13)) + ((u64)x31 * x7)) + ((u64)x23 * x15)) + ((u64)x33 * x5)); +	{ u64 x46 = (((((0x2 * ((((u64)x29 * x11) + ((u64)x25 * x15)) + ((u64)x33 * x7))) + ((u64)x27 * x13)) + ((u64)x31 * x9)) + ((u64)x23 * x17)) + ((u64)x35 * x5)); +	{ u64 x47 = (((((((((u64)x29 * x13) + ((u64)x31 * x11)) + ((u64)x27 * x15)) + ((u64)x33 * x9)) + ((u64)x25 * x17)) + ((u64)x35 * x7)) + ((u64)x23 * x19)) + ((u64)x37 * x5)); +	{ u64 x48 = (((((((u64)x31 * x13) + (0x2 * (((((u64)x29 * x15) + ((u64)x33 * x11)) + ((u64)x25 * x19)) + ((u64)x37 * x7)))) + ((u64)x27 * x17)) + ((u64)x35 * x9)) + ((u64)x23 * x21)) + ((u64)x39 * x5)); +	{ u64 x49 = (((((((((((u64)x31 * x15) + ((u64)x33 * x13)) + ((u64)x29 * x17)) + ((u64)x35 * x11)) + ((u64)x27 * x19)) + ((u64)x37 * x9)) + ((u64)x25 * x21)) + ((u64)x39 * x7)) + ((u64)x23 * x20)) + ((u64)x38 * x5)); +	{ u64 x50 = (((((0x2 * ((((((u64)x33 * x15) + ((u64)x29 * x19)) + ((u64)x37 * x11)) + ((u64)x25 * x20)) + ((u64)x38 * x7))) + ((u64)x31 * x17)) + ((u64)x35 * x13)) + ((u64)x27 * x21)) + ((u64)x39 * x9)); +	{ u64 x51 = (((((((((u64)x33 * x17) + ((u64)x35 * x15)) + ((u64)x31 * x19)) + ((u64)x37 * x13)) + ((u64)x29 * x21)) + ((u64)x39 * x11)) + ((u64)x27 * x20)) + ((u64)x38 * x9)); +	{ u64 x52 = (((((u64)x35 * x17) + (0x2 * (((((u64)x33 * x19) + ((u64)x37 * x15)) + ((u64)x29 * x20)) + ((u64)x38 * x11)))) + ((u64)x31 * x21)) + ((u64)x39 * x13)); +	{ u64 x53 = (((((((u64)x35 * x19) + ((u64)x37 * x17)) + ((u64)x33 * x21)) + ((u64)x39 * x15)) + ((u64)x31 * x20)) + ((u64)x38 * x13)); +	{ u64 x54 = (((0x2 * ((((u64)x37 * x19) + ((u64)x33 * x20)) + ((u64)x38 * x15))) + ((u64)x35 * x21)) + ((u64)x39 * x17)); +	{ u64 x55 = (((((u64)x37 * x21) + ((u64)x39 * x19)) + ((u64)x35 * x20)) + ((u64)x38 * x17)); +	{ u64 x56 = (((u64)x39 * x21) + (0x2 * (((u64)x37 * x20) + ((u64)x38 * x19)))); +	{ u64 x57 = (((u64)x39 * x20) + ((u64)x38 * x21)); +	{ u64 x58 = ((u64)(0x2 * x38) * x20); +	{ u64 x59 = (x48 + (x58 << 0x4)); +	{ u64 x60 = (x59 + (x58 << 0x1)); +	{ u64 x61 = (x60 + x58); +	{ u64 x62 = (x47 + (x57 << 0x4)); +	{ u64 x63 = (x62 + (x57 << 0x1)); +	{ u64 x64 = (x63 + x57); +	{ u64 x65 = (x46 + (x56 << 0x4)); +	{ u64 x66 = (x65 + (x56 << 0x1)); +	{ u64 x67 = (x66 + x56); +	{ u64 x68 = (x45 + (x55 << 0x4)); +	{ u64 x69 = (x68 + (x55 << 0x1)); +	{ u64 x70 = (x69 + x55); +	{ u64 x71 = (x44 + (x54 << 0x4)); +	{ u64 x72 = (x71 + (x54 << 0x1)); +	{ u64 x73 = (x72 + x54); +	{ u64 x74 = (x43 + (x53 << 0x4)); +	{ u64 x75 = (x74 + (x53 << 0x1)); +	{ u64 x76 = (x75 + x53); +	{ u64 x77 = (x42 + (x52 << 0x4)); +	{ u64 x78 = (x77 + (x52 << 0x1)); +	{ u64 x79 = (x78 + x52); +	{ u64 x80 = (x41 + (x51 << 0x4)); +	{ u64 x81 = (x80 + (x51 << 0x1)); +	{ u64 x82 = (x81 + x51); +	{ u64 x83 = (x40 + (x50 << 0x4)); +	{ u64 x84 = (x83 + (x50 << 0x1)); +	{ u64 x85 = (x84 + x50); +	{ u64 x86 = (x85 >> 0x1a); +	{ u32 x87 = ((u32)x85 & 0x3ffffff); +	{ u64 x88 = (x86 + x82); +	{ u64 x89 = (x88 >> 0x19); +	{ u32 x90 = ((u32)x88 & 0x1ffffff); +	{ u64 x91 = (x89 + x79); +	{ u64 x92 = (x91 >> 0x1a); +	{ u32 x93 = ((u32)x91 & 0x3ffffff); +	{ u64 x94 = (x92 + x76); +	{ u64 x95 = (x94 >> 0x19); +	{ u32 x96 = ((u32)x94 & 0x1ffffff); +	{ u64 x97 = (x95 + x73); +	{ u64 x98 = (x97 >> 0x1a); +	{ u32 x99 = ((u32)x97 & 0x3ffffff); +	{ u64 x100 = (x98 + x70); +	{ u64 x101 = (x100 >> 0x19); +	{ u32 x102 = ((u32)x100 & 0x1ffffff); +	{ u64 x103 = (x101 + x67); +	{ u64 x104 = (x103 >> 0x1a); +	{ u32 x105 = ((u32)x103 & 0x3ffffff); +	{ u64 x106 = (x104 + x64); +	{ u64 x107 = (x106 >> 0x19); +	{ u32 x108 = ((u32)x106 & 0x1ffffff); +	{ u64 x109 = (x107 + x61); +	{ u64 x110 = (x109 >> 0x1a); +	{ u32 x111 = ((u32)x109 & 0x3ffffff); +	{ u64 x112 = (x110 + x49); +	{ u64 x113 = (x112 >> 0x19); +	{ u32 x114 = ((u32)x112 & 0x1ffffff); +	{ u64 x115 = (x87 + (0x13 * x113)); +	{ u32 x116 = (u32) (x115 >> 0x1a); +	{ u32 x117 = ((u32)x115 & 0x3ffffff); +	{ u32 x118 = (x116 + x90); +	{ u32 x119 = (x118 >> 0x19); +	{ u32 x120 = (x118 & 0x1ffffff); +	out[0] = x117; +	out[1] = x120; +	out[2] = (x119 + x93); +	out[3] = x96; +	out[4] = x99; +	out[5] = x102; +	out[6] = x105; +	out[7] = x108; +	out[8] = x111; +	out[9] = x114; +	}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} +} + +static __always_inline void fe_mul121666(fe *h, const fe_loose *f) +{ +	fe_mul_121666_impl(h->v, f->v); +} + +void curve25519_generic(u8 out[CURVE25519_KEY_SIZE], +			const u8 scalar[CURVE25519_KEY_SIZE], +			const u8 point[CURVE25519_KEY_SIZE]) +{ +	fe x1, x2, z2, x3, z3; +	fe_loose x2l, z2l, x3l; +	unsigned swap = 0; +	int pos; +	u8 e[32]; + +	memcpy(e, scalar, 32); +	curve25519_clamp_secret(e); + +	/* The following implementation was transcribed to Coq and proven to +	 * correspond to unary scalar multiplication in affine coordinates given +	 * that x1 != 0 is the x coordinate of some point on the curve. It was +	 * also checked in Coq that doing a ladderstep with x1 = x3 = 0 gives +	 * z2' = z3' = 0, and z2 = z3 = 0 gives z2' = z3' = 0. The statement was +	 * quantified over the underlying field, so it applies to Curve25519 +	 * itself and the quadratic twist of Curve25519. It was not proven in +	 * Coq that prime-field arithmetic correctly simulates extension-field +	 * arithmetic on prime-field values. The decoding of the byte array +	 * representation of e was not considered. +	 * +	 * Specification of Montgomery curves in affine coordinates: +	 * <https://github.com/mit-plv/fiat-crypto/blob/2456d821825521f7e03e65882cc3521795b0320f/src/Spec/MontgomeryCurve.v#L27> +	 * +	 * Proof that these form a group that is isomorphic to a Weierstrass +	 * curve: +	 * <https://github.com/mit-plv/fiat-crypto/blob/2456d821825521f7e03e65882cc3521795b0320f/src/Curves/Montgomery/AffineProofs.v#L35> +	 * +	 * Coq transcription and correctness proof of the loop +	 * (where scalarbits=255): +	 * <https://github.com/mit-plv/fiat-crypto/blob/2456d821825521f7e03e65882cc3521795b0320f/src/Curves/Montgomery/XZ.v#L118> +	 * <https://github.com/mit-plv/fiat-crypto/blob/2456d821825521f7e03e65882cc3521795b0320f/src/Curves/Montgomery/XZProofs.v#L278> +	 * preconditions: 0 <= e < 2^255 (not necessarily e < order), +	 * fe_invert(0) = 0 +	 */ +	fe_frombytes(&x1, point); +	fe_1(&x2); +	fe_0(&z2); +	fe_copy(&x3, &x1); +	fe_1(&z3); + +	for (pos = 254; pos >= 0; --pos) { +		fe tmp0, tmp1; +		fe_loose tmp0l, tmp1l; +		/* loop invariant as of right before the test, for the case +		 * where x1 != 0: +		 *   pos >= -1; if z2 = 0 then x2 is nonzero; if z3 = 0 then x3 +		 *   is nonzero +		 *   let r := e >> (pos+1) in the following equalities of +		 *   projective points: +		 *   to_xz (r*P)     === if swap then (x3, z3) else (x2, z2) +		 *   to_xz ((r+1)*P) === if swap then (x2, z2) else (x3, z3) +		 *   x1 is the nonzero x coordinate of the nonzero +		 *   point (r*P-(r+1)*P) +		 */ +		unsigned b = 1 & (e[pos / 8] >> (pos & 7)); +		swap ^= b; +		fe_cswap(&x2, &x3, swap); +		fe_cswap(&z2, &z3, swap); +		swap = b; +		/* Coq transcription of ladderstep formula (called from +		 * transcribed loop): +		 * <https://github.com/mit-plv/fiat-crypto/blob/2456d821825521f7e03e65882cc3521795b0320f/src/Curves/Montgomery/XZ.v#L89> +		 * <https://github.com/mit-plv/fiat-crypto/blob/2456d821825521f7e03e65882cc3521795b0320f/src/Curves/Montgomery/XZProofs.v#L131> +		 * x1 != 0 <https://github.com/mit-plv/fiat-crypto/blob/2456d821825521f7e03e65882cc3521795b0320f/src/Curves/Montgomery/XZProofs.v#L217> +		 * x1  = 0 <https://github.com/mit-plv/fiat-crypto/blob/2456d821825521f7e03e65882cc3521795b0320f/src/Curves/Montgomery/XZProofs.v#L147> +		 */ +		fe_sub(&tmp0l, &x3, &z3); +		fe_sub(&tmp1l, &x2, &z2); +		fe_add(&x2l, &x2, &z2); +		fe_add(&z2l, &x3, &z3); +		fe_mul_tll(&z3, &tmp0l, &x2l); +		fe_mul_tll(&z2, &z2l, &tmp1l); +		fe_sq_tl(&tmp0, &tmp1l); +		fe_sq_tl(&tmp1, &x2l); +		fe_add(&x3l, &z3, &z2); +		fe_sub(&z2l, &z3, &z2); +		fe_mul_ttt(&x2, &tmp1, &tmp0); +		fe_sub(&tmp1l, &tmp1, &tmp0); +		fe_sq_tl(&z2, &z2l); +		fe_mul121666(&z3, &tmp1l); +		fe_sq_tl(&x3, &x3l); +		fe_add(&tmp0l, &tmp0, &z3); +		fe_mul_ttt(&z3, &x1, &z2); +		fe_mul_tll(&z2, &tmp1l, &tmp0l); +	} +	/* here pos=-1, so r=e, so to_xz (e*P) === if swap then (x3, z3) +	 * else (x2, z2) +	 */ +	fe_cswap(&x2, &x3, swap); +	fe_cswap(&z2, &z3, swap); + +	fe_invert(&z2, &z2); +	fe_mul_ttt(&x2, &x2, &z2); +	fe_tobytes(out, &x2); + +	memzero_explicit(&x1, sizeof(x1)); +	memzero_explicit(&x2, sizeof(x2)); +	memzero_explicit(&z2, sizeof(z2)); +	memzero_explicit(&x3, sizeof(x3)); +	memzero_explicit(&z3, sizeof(z3)); +	memzero_explicit(&x2l, sizeof(x2l)); +	memzero_explicit(&z2l, sizeof(z2l)); +	memzero_explicit(&x3l, sizeof(x3l)); +	memzero_explicit(&e, sizeof(e)); +} diff --git a/lib/crypto/curve25519-hacl64.c b/lib/crypto/curve25519-hacl64.c new file mode 100644 index 000000000000..771d82dc5f14 --- /dev/null +++ b/lib/crypto/curve25519-hacl64.c @@ -0,0 +1,788 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/* + * Copyright (C) 2016-2017 INRIA and Microsoft Corporation. + * Copyright (C) 2018-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + * + * This is a machine-generated formally verified implementation of Curve25519 + * ECDH from: <https://github.com/mitls/hacl-star>. Though originally machine + * generated, it has been tweaked to be suitable for use in the kernel. It is + * optimized for 64-bit machines that can efficiently work with 128-bit + * integer types. + */ + +#include <asm/unaligned.h> +#include <crypto/curve25519.h> +#include <linux/string.h> + +typedef __uint128_t u128; + +static __always_inline u64 u64_eq_mask(u64 a, u64 b) +{ +	u64 x = a ^ b; +	u64 minus_x = ~x + (u64)1U; +	u64 x_or_minus_x = x | minus_x; +	u64 xnx = x_or_minus_x >> (u32)63U; +	u64 c = xnx - (u64)1U; +	return c; +} + +static __always_inline u64 u64_gte_mask(u64 a, u64 b) +{ +	u64 x = a; +	u64 y = b; +	u64 x_xor_y = x ^ y; +	u64 x_sub_y = x - y; +	u64 x_sub_y_xor_y = x_sub_y ^ y; +	u64 q = x_xor_y | x_sub_y_xor_y; +	u64 x_xor_q = x ^ q; +	u64 x_xor_q_ = x_xor_q >> (u32)63U; +	u64 c = x_xor_q_ - (u64)1U; +	return c; +} + +static __always_inline void modulo_carry_top(u64 *b) +{ +	u64 b4 = b[4]; +	u64 b0 = b[0]; +	u64 b4_ = b4 & 0x7ffffffffffffLLU; +	u64 b0_ = b0 + 19 * (b4 >> 51); +	b[4] = b4_; +	b[0] = b0_; +} + +static __always_inline void fproduct_copy_from_wide_(u64 *output, u128 *input) +{ +	{ +		u128 xi = input[0]; +		output[0] = ((u64)(xi)); +	} +	{ +		u128 xi = input[1]; +		output[1] = ((u64)(xi)); +	} +	{ +		u128 xi = input[2]; +		output[2] = ((u64)(xi)); +	} +	{ +		u128 xi = input[3]; +		output[3] = ((u64)(xi)); +	} +	{ +		u128 xi = input[4]; +		output[4] = ((u64)(xi)); +	} +} + +static __always_inline void +fproduct_sum_scalar_multiplication_(u128 *output, u64 *input, u64 s) +{ +	output[0] += (u128)input[0] * s; +	output[1] += (u128)input[1] * s; +	output[2] += (u128)input[2] * s; +	output[3] += (u128)input[3] * s; +	output[4] += (u128)input[4] * s; +} + +static __always_inline void fproduct_carry_wide_(u128 *tmp) +{ +	{ +		u32 ctr = 0; +		u128 tctr = tmp[ctr]; +		u128 tctrp1 = tmp[ctr + 1]; +		u64 r0 = ((u64)(tctr)) & 0x7ffffffffffffLLU; +		u128 c = ((tctr) >> (51)); +		tmp[ctr] = ((u128)(r0)); +		tmp[ctr + 1] = ((tctrp1) + (c)); +	} +	{ +		u32 ctr = 1; +		u128 tctr = tmp[ctr]; +		u128 tctrp1 = tmp[ctr + 1]; +		u64 r0 = ((u64)(tctr)) & 0x7ffffffffffffLLU; +		u128 c = ((tctr) >> (51)); +		tmp[ctr] = ((u128)(r0)); +		tmp[ctr + 1] = ((tctrp1) + (c)); +	} + +	{ +		u32 ctr = 2; +		u128 tctr = tmp[ctr]; +		u128 tctrp1 = tmp[ctr + 1]; +		u64 r0 = ((u64)(tctr)) & 0x7ffffffffffffLLU; +		u128 c = ((tctr) >> (51)); +		tmp[ctr] = ((u128)(r0)); +		tmp[ctr + 1] = ((tctrp1) + (c)); +	} +	{ +		u32 ctr = 3; +		u128 tctr = tmp[ctr]; +		u128 tctrp1 = tmp[ctr + 1]; +		u64 r0 = ((u64)(tctr)) & 0x7ffffffffffffLLU; +		u128 c = ((tctr) >> (51)); +		tmp[ctr] = ((u128)(r0)); +		tmp[ctr + 1] = ((tctrp1) + (c)); +	} +} + +static __always_inline void fmul_shift_reduce(u64 *output) +{ +	u64 tmp = output[4]; +	u64 b0; +	{ +		u32 ctr = 5 - 0 - 1; +		u64 z = output[ctr - 1]; +		output[ctr] = z; +	} +	{ +		u32 ctr = 5 - 1 - 1; +		u64 z = output[ctr - 1]; +		output[ctr] = z; +	} +	{ +		u32 ctr = 5 - 2 - 1; +		u64 z = output[ctr - 1]; +		output[ctr] = z; +	} +	{ +		u32 ctr = 5 - 3 - 1; +		u64 z = output[ctr - 1]; +		output[ctr] = z; +	} +	output[0] = tmp; +	b0 = output[0]; +	output[0] = 19 * b0; +} + +static __always_inline void fmul_mul_shift_reduce_(u128 *output, u64 *input, +						   u64 *input21) +{ +	u32 i; +	u64 input2i; +	{ +		u64 input2i = input21[0]; +		fproduct_sum_scalar_multiplication_(output, input, input2i); +		fmul_shift_reduce(input); +	} +	{ +		u64 input2i = input21[1]; +		fproduct_sum_scalar_multiplication_(output, input, input2i); +		fmul_shift_reduce(input); +	} +	{ +		u64 input2i = input21[2]; +		fproduct_sum_scalar_multiplication_(output, input, input2i); +		fmul_shift_reduce(input); +	} +	{ +		u64 input2i = input21[3]; +		fproduct_sum_scalar_multiplication_(output, input, input2i); +		fmul_shift_reduce(input); +	} +	i = 4; +	input2i = input21[i]; +	fproduct_sum_scalar_multiplication_(output, input, input2i); +} + +static __always_inline void fmul_fmul(u64 *output, u64 *input, u64 *input21) +{ +	u64 tmp[5] = { input[0], input[1], input[2], input[3], input[4] }; +	{ +		u128 b4; +		u128 b0; +		u128 b4_; +		u128 b0_; +		u64 i0; +		u64 i1; +		u64 i0_; +		u64 i1_; +		u128 t[5] = { 0 }; +		fmul_mul_shift_reduce_(t, tmp, input21); +		fproduct_carry_wide_(t); +		b4 = t[4]; +		b0 = t[0]; +		b4_ = ((b4) & (((u128)(0x7ffffffffffffLLU)))); +		b0_ = ((b0) + (((u128)(19) * (((u64)(((b4) >> (51)))))))); +		t[4] = b4_; +		t[0] = b0_; +		fproduct_copy_from_wide_(output, t); +		i0 = output[0]; +		i1 = output[1]; +		i0_ = i0 & 0x7ffffffffffffLLU; +		i1_ = i1 + (i0 >> 51); +		output[0] = i0_; +		output[1] = i1_; +	} +} + +static __always_inline void fsquare_fsquare__(u128 *tmp, u64 *output) +{ +	u64 r0 = output[0]; +	u64 r1 = output[1]; +	u64 r2 = output[2]; +	u64 r3 = output[3]; +	u64 r4 = output[4]; +	u64 d0 = r0 * 2; +	u64 d1 = r1 * 2; +	u64 d2 = r2 * 2 * 19; +	u64 d419 = r4 * 19; +	u64 d4 = d419 * 2; +	u128 s0 = ((((((u128)(r0) * (r0))) + (((u128)(d4) * (r1))))) + +		   (((u128)(d2) * (r3)))); +	u128 s1 = ((((((u128)(d0) * (r1))) + (((u128)(d4) * (r2))))) + +		   (((u128)(r3 * 19) * (r3)))); +	u128 s2 = ((((((u128)(d0) * (r2))) + (((u128)(r1) * (r1))))) + +		   (((u128)(d4) * (r3)))); +	u128 s3 = ((((((u128)(d0) * (r3))) + (((u128)(d1) * (r2))))) + +		   (((u128)(r4) * (d419)))); +	u128 s4 = ((((((u128)(d0) * (r4))) + (((u128)(d1) * (r3))))) + +		   (((u128)(r2) * (r2)))); +	tmp[0] = s0; +	tmp[1] = s1; +	tmp[2] = s2; +	tmp[3] = s3; +	tmp[4] = s4; +} + +static __always_inline void fsquare_fsquare_(u128 *tmp, u64 *output) +{ +	u128 b4; +	u128 b0; +	u128 b4_; +	u128 b0_; +	u64 i0; +	u64 i1; +	u64 i0_; +	u64 i1_; +	fsquare_fsquare__(tmp, output); +	fproduct_carry_wide_(tmp); +	b4 = tmp[4]; +	b0 = tmp[0]; +	b4_ = ((b4) & (((u128)(0x7ffffffffffffLLU)))); +	b0_ = ((b0) + (((u128)(19) * (((u64)(((b4) >> (51)))))))); +	tmp[4] = b4_; +	tmp[0] = b0_; +	fproduct_copy_from_wide_(output, tmp); +	i0 = output[0]; +	i1 = output[1]; +	i0_ = i0 & 0x7ffffffffffffLLU; +	i1_ = i1 + (i0 >> 51); +	output[0] = i0_; +	output[1] = i1_; +} + +static __always_inline void fsquare_fsquare_times_(u64 *output, u128 *tmp, +						   u32 count1) +{ +	u32 i; +	fsquare_fsquare_(tmp, output); +	for (i = 1; i < count1; ++i) +		fsquare_fsquare_(tmp, output); +} + +static __always_inline void fsquare_fsquare_times(u64 *output, u64 *input, +						  u32 count1) +{ +	u128 t[5]; +	memcpy(output, input, 5 * sizeof(*input)); +	fsquare_fsquare_times_(output, t, count1); +} + +static __always_inline void fsquare_fsquare_times_inplace(u64 *output, +							  u32 count1) +{ +	u128 t[5]; +	fsquare_fsquare_times_(output, t, count1); +} + +static __always_inline void crecip_crecip(u64 *out, u64 *z) +{ +	u64 buf[20] = { 0 }; +	u64 *a0 = buf; +	u64 *t00 = buf + 5; +	u64 *b0 = buf + 10; +	u64 *t01; +	u64 *b1; +	u64 *c0; +	u64 *a; +	u64 *t0; +	u64 *b; +	u64 *c; +	fsquare_fsquare_times(a0, z, 1); +	fsquare_fsquare_times(t00, a0, 2); +	fmul_fmul(b0, t00, z); +	fmul_fmul(a0, b0, a0); +	fsquare_fsquare_times(t00, a0, 1); +	fmul_fmul(b0, t00, b0); +	fsquare_fsquare_times(t00, b0, 5); +	t01 = buf + 5; +	b1 = buf + 10; +	c0 = buf + 15; +	fmul_fmul(b1, t01, b1); +	fsquare_fsquare_times(t01, b1, 10); +	fmul_fmul(c0, t01, b1); +	fsquare_fsquare_times(t01, c0, 20); +	fmul_fmul(t01, t01, c0); +	fsquare_fsquare_times_inplace(t01, 10); +	fmul_fmul(b1, t01, b1); +	fsquare_fsquare_times(t01, b1, 50); +	a = buf; +	t0 = buf + 5; +	b = buf + 10; +	c = buf + 15; +	fmul_fmul(c, t0, b); +	fsquare_fsquare_times(t0, c, 100); +	fmul_fmul(t0, t0, c); +	fsquare_fsquare_times_inplace(t0, 50); +	fmul_fmul(t0, t0, b); +	fsquare_fsquare_times_inplace(t0, 5); +	fmul_fmul(out, t0, a); +} + +static __always_inline void fsum(u64 *a, u64 *b) +{ +	a[0] += b[0]; +	a[1] += b[1]; +	a[2] += b[2]; +	a[3] += b[3]; +	a[4] += b[4]; +} + +static __always_inline void fdifference(u64 *a, u64 *b) +{ +	u64 tmp[5] = { 0 }; +	u64 b0; +	u64 b1; +	u64 b2; +	u64 b3; +	u64 b4; +	memcpy(tmp, b, 5 * sizeof(*b)); +	b0 = tmp[0]; +	b1 = tmp[1]; +	b2 = tmp[2]; +	b3 = tmp[3]; +	b4 = tmp[4]; +	tmp[0] = b0 + 0x3fffffffffff68LLU; +	tmp[1] = b1 + 0x3ffffffffffff8LLU; +	tmp[2] = b2 + 0x3ffffffffffff8LLU; +	tmp[3] = b3 + 0x3ffffffffffff8LLU; +	tmp[4] = b4 + 0x3ffffffffffff8LLU; +	{ +		u64 xi = a[0]; +		u64 yi = tmp[0]; +		a[0] = yi - xi; +	} +	{ +		u64 xi = a[1]; +		u64 yi = tmp[1]; +		a[1] = yi - xi; +	} +	{ +		u64 xi = a[2]; +		u64 yi = tmp[2]; +		a[2] = yi - xi; +	} +	{ +		u64 xi = a[3]; +		u64 yi = tmp[3]; +		a[3] = yi - xi; +	} +	{ +		u64 xi = a[4]; +		u64 yi = tmp[4]; +		a[4] = yi - xi; +	} +} + +static __always_inline void fscalar(u64 *output, u64 *b, u64 s) +{ +	u128 tmp[5]; +	u128 b4; +	u128 b0; +	u128 b4_; +	u128 b0_; +	{ +		u64 xi = b[0]; +		tmp[0] = ((u128)(xi) * (s)); +	} +	{ +		u64 xi = b[1]; +		tmp[1] = ((u128)(xi) * (s)); +	} +	{ +		u64 xi = b[2]; +		tmp[2] = ((u128)(xi) * (s)); +	} +	{ +		u64 xi = b[3]; +		tmp[3] = ((u128)(xi) * (s)); +	} +	{ +		u64 xi = b[4]; +		tmp[4] = ((u128)(xi) * (s)); +	} +	fproduct_carry_wide_(tmp); +	b4 = tmp[4]; +	b0 = tmp[0]; +	b4_ = ((b4) & (((u128)(0x7ffffffffffffLLU)))); +	b0_ = ((b0) + (((u128)(19) * (((u64)(((b4) >> (51)))))))); +	tmp[4] = b4_; +	tmp[0] = b0_; +	fproduct_copy_from_wide_(output, tmp); +} + +static __always_inline void fmul(u64 *output, u64 *a, u64 *b) +{ +	fmul_fmul(output, a, b); +} + +static __always_inline void crecip(u64 *output, u64 *input) +{ +	crecip_crecip(output, input); +} + +static __always_inline void point_swap_conditional_step(u64 *a, u64 *b, +							u64 swap1, u32 ctr) +{ +	u32 i = ctr - 1; +	u64 ai = a[i]; +	u64 bi = b[i]; +	u64 x = swap1 & (ai ^ bi); +	u64 ai1 = ai ^ x; +	u64 bi1 = bi ^ x; +	a[i] = ai1; +	b[i] = bi1; +} + +static __always_inline void point_swap_conditional5(u64 *a, u64 *b, u64 swap1) +{ +	point_swap_conditional_step(a, b, swap1, 5); +	point_swap_conditional_step(a, b, swap1, 4); +	point_swap_conditional_step(a, b, swap1, 3); +	point_swap_conditional_step(a, b, swap1, 2); +	point_swap_conditional_step(a, b, swap1, 1); +} + +static __always_inline void point_swap_conditional(u64 *a, u64 *b, u64 iswap) +{ +	u64 swap1 = 0 - iswap; +	point_swap_conditional5(a, b, swap1); +	point_swap_conditional5(a + 5, b + 5, swap1); +} + +static __always_inline void point_copy(u64 *output, u64 *input) +{ +	memcpy(output, input, 5 * sizeof(*input)); +	memcpy(output + 5, input + 5, 5 * sizeof(*input)); +} + +static __always_inline void addanddouble_fmonty(u64 *pp, u64 *ppq, u64 *p, +						u64 *pq, u64 *qmqp) +{ +	u64 *qx = qmqp; +	u64 *x2 = pp; +	u64 *z2 = pp + 5; +	u64 *x3 = ppq; +	u64 *z3 = ppq + 5; +	u64 *x = p; +	u64 *z = p + 5; +	u64 *xprime = pq; +	u64 *zprime = pq + 5; +	u64 buf[40] = { 0 }; +	u64 *origx = buf; +	u64 *origxprime0 = buf + 5; +	u64 *xxprime0; +	u64 *zzprime0; +	u64 *origxprime; +	xxprime0 = buf + 25; +	zzprime0 = buf + 30; +	memcpy(origx, x, 5 * sizeof(*x)); +	fsum(x, z); +	fdifference(z, origx); +	memcpy(origxprime0, xprime, 5 * sizeof(*xprime)); +	fsum(xprime, zprime); +	fdifference(zprime, origxprime0); +	fmul(xxprime0, xprime, z); +	fmul(zzprime0, x, zprime); +	origxprime = buf + 5; +	{ +		u64 *xx0; +		u64 *zz0; +		u64 *xxprime; +		u64 *zzprime; +		u64 *zzzprime; +		xx0 = buf + 15; +		zz0 = buf + 20; +		xxprime = buf + 25; +		zzprime = buf + 30; +		zzzprime = buf + 35; +		memcpy(origxprime, xxprime, 5 * sizeof(*xxprime)); +		fsum(xxprime, zzprime); +		fdifference(zzprime, origxprime); +		fsquare_fsquare_times(x3, xxprime, 1); +		fsquare_fsquare_times(zzzprime, zzprime, 1); +		fmul(z3, zzzprime, qx); +		fsquare_fsquare_times(xx0, x, 1); +		fsquare_fsquare_times(zz0, z, 1); +		{ +			u64 *zzz; +			u64 *xx; +			u64 *zz; +			u64 scalar; +			zzz = buf + 10; +			xx = buf + 15; +			zz = buf + 20; +			fmul(x2, xx, zz); +			fdifference(zz, xx); +			scalar = 121665; +			fscalar(zzz, zz, scalar); +			fsum(zzz, xx); +			fmul(z2, zzz, zz); +		} +	} +} + +static __always_inline void +ladder_smallloop_cmult_small_loop_step(u64 *nq, u64 *nqpq, u64 *nq2, u64 *nqpq2, +				       u64 *q, u8 byt) +{ +	u64 bit0 = (u64)(byt >> 7); +	u64 bit; +	point_swap_conditional(nq, nqpq, bit0); +	addanddouble_fmonty(nq2, nqpq2, nq, nqpq, q); +	bit = (u64)(byt >> 7); +	point_swap_conditional(nq2, nqpq2, bit); +} + +static __always_inline void +ladder_smallloop_cmult_small_loop_double_step(u64 *nq, u64 *nqpq, u64 *nq2, +					      u64 *nqpq2, u64 *q, u8 byt) +{ +	u8 byt1; +	ladder_smallloop_cmult_small_loop_step(nq, nqpq, nq2, nqpq2, q, byt); +	byt1 = byt << 1; +	ladder_smallloop_cmult_small_loop_step(nq2, nqpq2, nq, nqpq, q, byt1); +} + +static __always_inline void +ladder_smallloop_cmult_small_loop(u64 *nq, u64 *nqpq, u64 *nq2, u64 *nqpq2, +				  u64 *q, u8 byt, u32 i) +{ +	while (i--) { +		ladder_smallloop_cmult_small_loop_double_step(nq, nqpq, nq2, +							      nqpq2, q, byt); +		byt <<= 2; +	} +} + +static __always_inline void ladder_bigloop_cmult_big_loop(u8 *n1, u64 *nq, +							  u64 *nqpq, u64 *nq2, +							  u64 *nqpq2, u64 *q, +							  u32 i) +{ +	while (i--) { +		u8 byte = n1[i]; +		ladder_smallloop_cmult_small_loop(nq, nqpq, nq2, nqpq2, q, +						  byte, 4); +	} +} + +static void ladder_cmult(u64 *result, u8 *n1, u64 *q) +{ +	u64 point_buf[40] = { 0 }; +	u64 *nq = point_buf; +	u64 *nqpq = point_buf + 10; +	u64 *nq2 = point_buf + 20; +	u64 *nqpq2 = point_buf + 30; +	point_copy(nqpq, q); +	nq[0] = 1; +	ladder_bigloop_cmult_big_loop(n1, nq, nqpq, nq2, nqpq2, q, 32); +	point_copy(result, nq); +} + +static __always_inline void format_fexpand(u64 *output, const u8 *input) +{ +	const u8 *x00 = input + 6; +	const u8 *x01 = input + 12; +	const u8 *x02 = input + 19; +	const u8 *x0 = input + 24; +	u64 i0, i1, i2, i3, i4, output0, output1, output2, output3, output4; +	i0 = get_unaligned_le64(input); +	i1 = get_unaligned_le64(x00); +	i2 = get_unaligned_le64(x01); +	i3 = get_unaligned_le64(x02); +	i4 = get_unaligned_le64(x0); +	output0 = i0 & 0x7ffffffffffffLLU; +	output1 = i1 >> 3 & 0x7ffffffffffffLLU; +	output2 = i2 >> 6 & 0x7ffffffffffffLLU; +	output3 = i3 >> 1 & 0x7ffffffffffffLLU; +	output4 = i4 >> 12 & 0x7ffffffffffffLLU; +	output[0] = output0; +	output[1] = output1; +	output[2] = output2; +	output[3] = output3; +	output[4] = output4; +} + +static __always_inline void format_fcontract_first_carry_pass(u64 *input) +{ +	u64 t0 = input[0]; +	u64 t1 = input[1]; +	u64 t2 = input[2]; +	u64 t3 = input[3]; +	u64 t4 = input[4]; +	u64 t1_ = t1 + (t0 >> 51); +	u64 t0_ = t0 & 0x7ffffffffffffLLU; +	u64 t2_ = t2 + (t1_ >> 51); +	u64 t1__ = t1_ & 0x7ffffffffffffLLU; +	u64 t3_ = t3 + (t2_ >> 51); +	u64 t2__ = t2_ & 0x7ffffffffffffLLU; +	u64 t4_ = t4 + (t3_ >> 51); +	u64 t3__ = t3_ & 0x7ffffffffffffLLU; +	input[0] = t0_; +	input[1] = t1__; +	input[2] = t2__; +	input[3] = t3__; +	input[4] = t4_; +} + +static __always_inline void format_fcontract_first_carry_full(u64 *input) +{ +	format_fcontract_first_carry_pass(input); +	modulo_carry_top(input); +} + +static __always_inline void format_fcontract_second_carry_pass(u64 *input) +{ +	u64 t0 = input[0]; +	u64 t1 = input[1]; +	u64 t2 = input[2]; +	u64 t3 = input[3]; +	u64 t4 = input[4]; +	u64 t1_ = t1 + (t0 >> 51); +	u64 t0_ = t0 & 0x7ffffffffffffLLU; +	u64 t2_ = t2 + (t1_ >> 51); +	u64 t1__ = t1_ & 0x7ffffffffffffLLU; +	u64 t3_ = t3 + (t2_ >> 51); +	u64 t2__ = t2_ & 0x7ffffffffffffLLU; +	u64 t4_ = t4 + (t3_ >> 51); +	u64 t3__ = t3_ & 0x7ffffffffffffLLU; +	input[0] = t0_; +	input[1] = t1__; +	input[2] = t2__; +	input[3] = t3__; +	input[4] = t4_; +} + +static __always_inline void format_fcontract_second_carry_full(u64 *input) +{ +	u64 i0; +	u64 i1; +	u64 i0_; +	u64 i1_; +	format_fcontract_second_carry_pass(input); +	modulo_carry_top(input); +	i0 = input[0]; +	i1 = input[1]; +	i0_ = i0 & 0x7ffffffffffffLLU; +	i1_ = i1 + (i0 >> 51); +	input[0] = i0_; +	input[1] = i1_; +} + +static __always_inline void format_fcontract_trim(u64 *input) +{ +	u64 a0 = input[0]; +	u64 a1 = input[1]; +	u64 a2 = input[2]; +	u64 a3 = input[3]; +	u64 a4 = input[4]; +	u64 mask0 = u64_gte_mask(a0, 0x7ffffffffffedLLU); +	u64 mask1 = u64_eq_mask(a1, 0x7ffffffffffffLLU); +	u64 mask2 = u64_eq_mask(a2, 0x7ffffffffffffLLU); +	u64 mask3 = u64_eq_mask(a3, 0x7ffffffffffffLLU); +	u64 mask4 = u64_eq_mask(a4, 0x7ffffffffffffLLU); +	u64 mask = (((mask0 & mask1) & mask2) & mask3) & mask4; +	u64 a0_ = a0 - (0x7ffffffffffedLLU & mask); +	u64 a1_ = a1 - (0x7ffffffffffffLLU & mask); +	u64 a2_ = a2 - (0x7ffffffffffffLLU & mask); +	u64 a3_ = a3 - (0x7ffffffffffffLLU & mask); +	u64 a4_ = a4 - (0x7ffffffffffffLLU & mask); +	input[0] = a0_; +	input[1] = a1_; +	input[2] = a2_; +	input[3] = a3_; +	input[4] = a4_; +} + +static __always_inline void format_fcontract_store(u8 *output, u64 *input) +{ +	u64 t0 = input[0]; +	u64 t1 = input[1]; +	u64 t2 = input[2]; +	u64 t3 = input[3]; +	u64 t4 = input[4]; +	u64 o0 = t1 << 51 | t0; +	u64 o1 = t2 << 38 | t1 >> 13; +	u64 o2 = t3 << 25 | t2 >> 26; +	u64 o3 = t4 << 12 | t3 >> 39; +	u8 *b0 = output; +	u8 *b1 = output + 8; +	u8 *b2 = output + 16; +	u8 *b3 = output + 24; +	put_unaligned_le64(o0, b0); +	put_unaligned_le64(o1, b1); +	put_unaligned_le64(o2, b2); +	put_unaligned_le64(o3, b3); +} + +static __always_inline void format_fcontract(u8 *output, u64 *input) +{ +	format_fcontract_first_carry_full(input); +	format_fcontract_second_carry_full(input); +	format_fcontract_trim(input); +	format_fcontract_store(output, input); +} + +static __always_inline void format_scalar_of_point(u8 *scalar, u64 *point) +{ +	u64 *x = point; +	u64 *z = point + 5; +	u64 buf[10] __aligned(32) = { 0 }; +	u64 *zmone = buf; +	u64 *sc = buf + 5; +	crecip(zmone, z); +	fmul(sc, x, zmone); +	format_fcontract(scalar, sc); +} + +void curve25519_generic(u8 mypublic[CURVE25519_KEY_SIZE], +			const u8 secret[CURVE25519_KEY_SIZE], +			const u8 basepoint[CURVE25519_KEY_SIZE]) +{ +	u64 buf0[10] __aligned(32) = { 0 }; +	u64 *x0 = buf0; +	u64 *z = buf0 + 5; +	u64 *q; +	format_fexpand(x0, basepoint); +	z[0] = 1; +	q = buf0; +	{ +		u8 e[32] __aligned(32) = { 0 }; +		u8 *scalar; +		memcpy(e, secret, 32); +		curve25519_clamp_secret(e); +		scalar = e; +		{ +			u64 buf[15] = { 0 }; +			u64 *nq = buf; +			u64 *x = nq; +			x[0] = 1; +			ladder_cmult(nq, scalar, q); +			format_scalar_of_point(mypublic, nq); +			memzero_explicit(buf, sizeof(buf)); +		} +		memzero_explicit(e, sizeof(e)); +	} +	memzero_explicit(buf0, sizeof(buf0)); +} diff --git a/lib/crypto/curve25519.c b/lib/crypto/curve25519.c new file mode 100644 index 000000000000..0106bebe6900 --- /dev/null +++ b/lib/crypto/curve25519.c @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/* + * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + * + * This is an implementation of the Curve25519 ECDH algorithm, using either + * a 32-bit implementation or a 64-bit implementation with 128-bit integers, + * depending on what is supported by the target compiler. + * + * Information: https://cr.yp.to/ecdh.html + */ + +#include <crypto/curve25519.h> +#include <linux/module.h> +#include <linux/init.h> + +const u8 curve25519_null_point[CURVE25519_KEY_SIZE] __aligned(32) = { 0 }; +const u8 curve25519_base_point[CURVE25519_KEY_SIZE] __aligned(32) = { 9 }; + +EXPORT_SYMBOL(curve25519_null_point); +EXPORT_SYMBOL(curve25519_base_point); +EXPORT_SYMBOL(curve25519_generic); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("Curve25519 scalar multiplication"); +MODULE_AUTHOR("Jason A. Donenfeld <Jason@zx2c4.com>"); diff --git a/lib/crypto/libchacha.c b/lib/crypto/libchacha.c new file mode 100644 index 000000000000..dabc3accae05 --- /dev/null +++ b/lib/crypto/libchacha.c @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * The ChaCha stream cipher (RFC7539) + * + * Copyright (C) 2015 Martin Willi + */ + +#include <linux/kernel.h> +#include <linux/export.h> +#include <linux/module.h> + +#include <crypto/algapi.h> // for crypto_xor_cpy +#include <crypto/chacha.h> + +void chacha_crypt_generic(u32 *state, u8 *dst, const u8 *src, +			  unsigned int bytes, int nrounds) +{ +	/* aligned to potentially speed up crypto_xor() */ +	u8 stream[CHACHA_BLOCK_SIZE] __aligned(sizeof(long)); + +	while (bytes >= CHACHA_BLOCK_SIZE) { +		chacha_block_generic(state, stream, nrounds); +		crypto_xor_cpy(dst, src, stream, CHACHA_BLOCK_SIZE); +		bytes -= CHACHA_BLOCK_SIZE; +		dst += CHACHA_BLOCK_SIZE; +		src += CHACHA_BLOCK_SIZE; +	} +	if (bytes) { +		chacha_block_generic(state, stream, nrounds); +		crypto_xor_cpy(dst, src, stream, bytes); +	} +} +EXPORT_SYMBOL(chacha_crypt_generic); + +MODULE_LICENSE("GPL"); diff --git a/lib/crypto/poly1305.c b/lib/crypto/poly1305.c new file mode 100644 index 000000000000..32ec293c65ae --- /dev/null +++ b/lib/crypto/poly1305.c @@ -0,0 +1,232 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Poly1305 authenticator algorithm, RFC7539 + * + * Copyright (C) 2015 Martin Willi + * + * Based on public domain code by Andrew Moon and Daniel J. Bernstein. + */ + +#include <crypto/internal/poly1305.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <asm/unaligned.h> + +static inline u64 mlt(u64 a, u64 b) +{ +	return a * b; +} + +static inline u32 sr(u64 v, u_char n) +{ +	return v >> n; +} + +static inline u32 and(u32 v, u32 mask) +{ +	return v & mask; +} + +void poly1305_core_setkey(struct poly1305_key *key, const u8 *raw_key) +{ +	/* r &= 0xffffffc0ffffffc0ffffffc0fffffff */ +	key->r[0] = (get_unaligned_le32(raw_key +  0) >> 0) & 0x3ffffff; +	key->r[1] = (get_unaligned_le32(raw_key +  3) >> 2) & 0x3ffff03; +	key->r[2] = (get_unaligned_le32(raw_key +  6) >> 4) & 0x3ffc0ff; +	key->r[3] = (get_unaligned_le32(raw_key +  9) >> 6) & 0x3f03fff; +	key->r[4] = (get_unaligned_le32(raw_key + 12) >> 8) & 0x00fffff; +} +EXPORT_SYMBOL_GPL(poly1305_core_setkey); + +void poly1305_core_blocks(struct poly1305_state *state, +			  const struct poly1305_key *key, const void *src, +			  unsigned int nblocks, u32 hibit) +{ +	u32 r0, r1, r2, r3, r4; +	u32 s1, s2, s3, s4; +	u32 h0, h1, h2, h3, h4; +	u64 d0, d1, d2, d3, d4; + +	if (!nblocks) +		return; + +	r0 = key->r[0]; +	r1 = key->r[1]; +	r2 = key->r[2]; +	r3 = key->r[3]; +	r4 = key->r[4]; + +	s1 = r1 * 5; +	s2 = r2 * 5; +	s3 = r3 * 5; +	s4 = r4 * 5; + +	h0 = state->h[0]; +	h1 = state->h[1]; +	h2 = state->h[2]; +	h3 = state->h[3]; +	h4 = state->h[4]; + +	do { +		/* h += m[i] */ +		h0 += (get_unaligned_le32(src +  0) >> 0) & 0x3ffffff; +		h1 += (get_unaligned_le32(src +  3) >> 2) & 0x3ffffff; +		h2 += (get_unaligned_le32(src +  6) >> 4) & 0x3ffffff; +		h3 += (get_unaligned_le32(src +  9) >> 6) & 0x3ffffff; +		h4 += (get_unaligned_le32(src + 12) >> 8) | (hibit << 24); + +		/* h *= r */ +		d0 = mlt(h0, r0) + mlt(h1, s4) + mlt(h2, s3) + +		     mlt(h3, s2) + mlt(h4, s1); +		d1 = mlt(h0, r1) + mlt(h1, r0) + mlt(h2, s4) + +		     mlt(h3, s3) + mlt(h4, s2); +		d2 = mlt(h0, r2) + mlt(h1, r1) + mlt(h2, r0) + +		     mlt(h3, s4) + mlt(h4, s3); +		d3 = mlt(h0, r3) + mlt(h1, r2) + mlt(h2, r1) + +		     mlt(h3, r0) + mlt(h4, s4); +		d4 = mlt(h0, r4) + mlt(h1, r3) + mlt(h2, r2) + +		     mlt(h3, r1) + mlt(h4, r0); + +		/* (partial) h %= p */ +		d1 += sr(d0, 26);     h0 = and(d0, 0x3ffffff); +		d2 += sr(d1, 26);     h1 = and(d1, 0x3ffffff); +		d3 += sr(d2, 26);     h2 = and(d2, 0x3ffffff); +		d4 += sr(d3, 26);     h3 = and(d3, 0x3ffffff); +		h0 += sr(d4, 26) * 5; h4 = and(d4, 0x3ffffff); +		h1 += h0 >> 26;       h0 = h0 & 0x3ffffff; + +		src += POLY1305_BLOCK_SIZE; +	} while (--nblocks); + +	state->h[0] = h0; +	state->h[1] = h1; +	state->h[2] = h2; +	state->h[3] = h3; +	state->h[4] = h4; +} +EXPORT_SYMBOL_GPL(poly1305_core_blocks); + +void poly1305_core_emit(const struct poly1305_state *state, void *dst) +{ +	u32 h0, h1, h2, h3, h4; +	u32 g0, g1, g2, g3, g4; +	u32 mask; + +	/* fully carry h */ +	h0 = state->h[0]; +	h1 = state->h[1]; +	h2 = state->h[2]; +	h3 = state->h[3]; +	h4 = state->h[4]; + +	h2 += (h1 >> 26);     h1 = h1 & 0x3ffffff; +	h3 += (h2 >> 26);     h2 = h2 & 0x3ffffff; +	h4 += (h3 >> 26);     h3 = h3 & 0x3ffffff; +	h0 += (h4 >> 26) * 5; h4 = h4 & 0x3ffffff; +	h1 += (h0 >> 26);     h0 = h0 & 0x3ffffff; + +	/* compute h + -p */ +	g0 = h0 + 5; +	g1 = h1 + (g0 >> 26);             g0 &= 0x3ffffff; +	g2 = h2 + (g1 >> 26);             g1 &= 0x3ffffff; +	g3 = h3 + (g2 >> 26);             g2 &= 0x3ffffff; +	g4 = h4 + (g3 >> 26) - (1 << 26); g3 &= 0x3ffffff; + +	/* select h if h < p, or h + -p if h >= p */ +	mask = (g4 >> ((sizeof(u32) * 8) - 1)) - 1; +	g0 &= mask; +	g1 &= mask; +	g2 &= mask; +	g3 &= mask; +	g4 &= mask; +	mask = ~mask; +	h0 = (h0 & mask) | g0; +	h1 = (h1 & mask) | g1; +	h2 = (h2 & mask) | g2; +	h3 = (h3 & mask) | g3; +	h4 = (h4 & mask) | g4; + +	/* h = h % (2^128) */ +	put_unaligned_le32((h0 >>  0) | (h1 << 26), dst +  0); +	put_unaligned_le32((h1 >>  6) | (h2 << 20), dst +  4); +	put_unaligned_le32((h2 >> 12) | (h3 << 14), dst +  8); +	put_unaligned_le32((h3 >> 18) | (h4 <<  8), dst + 12); +} +EXPORT_SYMBOL_GPL(poly1305_core_emit); + +void poly1305_init_generic(struct poly1305_desc_ctx *desc, const u8 *key) +{ +	poly1305_core_setkey(desc->r, key); +	desc->s[0] = get_unaligned_le32(key + 16); +	desc->s[1] = get_unaligned_le32(key + 20); +	desc->s[2] = get_unaligned_le32(key + 24); +	desc->s[3] = get_unaligned_le32(key + 28); +	poly1305_core_init(&desc->h); +	desc->buflen = 0; +	desc->sset = true; +	desc->rset = 1; +} +EXPORT_SYMBOL_GPL(poly1305_init_generic); + +void poly1305_update_generic(struct poly1305_desc_ctx *desc, const u8 *src, +			     unsigned int nbytes) +{ +	unsigned int bytes; + +	if (unlikely(desc->buflen)) { +		bytes = min(nbytes, POLY1305_BLOCK_SIZE - desc->buflen); +		memcpy(desc->buf + desc->buflen, src, bytes); +		src += bytes; +		nbytes -= bytes; +		desc->buflen += bytes; + +		if (desc->buflen == POLY1305_BLOCK_SIZE) { +			poly1305_core_blocks(&desc->h, desc->r, desc->buf, 1, 1); +			desc->buflen = 0; +		} +	} + +	if (likely(nbytes >= POLY1305_BLOCK_SIZE)) { +		poly1305_core_blocks(&desc->h, desc->r, src, +				     nbytes / POLY1305_BLOCK_SIZE, 1); +		src += nbytes - (nbytes % POLY1305_BLOCK_SIZE); +		nbytes %= POLY1305_BLOCK_SIZE; +	} + +	if (unlikely(nbytes)) { +		desc->buflen = nbytes; +		memcpy(desc->buf, src, nbytes); +	} +} +EXPORT_SYMBOL_GPL(poly1305_update_generic); + +void poly1305_final_generic(struct poly1305_desc_ctx *desc, u8 *dst) +{ +	__le32 digest[4]; +	u64 f = 0; + +	if (unlikely(desc->buflen)) { +		desc->buf[desc->buflen++] = 1; +		memset(desc->buf + desc->buflen, 0, +		       POLY1305_BLOCK_SIZE - desc->buflen); +		poly1305_core_blocks(&desc->h, desc->r, desc->buf, 1, 0); +	} + +	poly1305_core_emit(&desc->h, digest); + +	/* mac = (h + s) % (2^128) */ +	f = (f >> 32) + le32_to_cpu(digest[0]) + desc->s[0]; +	put_unaligned_le32(f, dst + 0); +	f = (f >> 32) + le32_to_cpu(digest[1]) + desc->s[1]; +	put_unaligned_le32(f, dst + 4); +	f = (f >> 32) + le32_to_cpu(digest[2]) + desc->s[2]; +	put_unaligned_le32(f, dst + 8); +	f = (f >> 32) + le32_to_cpu(digest[3]) + desc->s[3]; +	put_unaligned_le32(f, dst + 12); + +	*desc = (struct poly1305_desc_ctx){}; +} +EXPORT_SYMBOL_GPL(poly1305_final_generic); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Martin Willi <martin@strongswan.org>"); | 
