All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm
@ 2022-06-20 16:41 Taehee Yoo
  2022-06-20 16:41 ` [PATCH 1/2] crypto: Implement " Taehee Yoo
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Taehee Yoo @ 2022-06-20 16:41 UTC (permalink / raw)
  To: linux-crypto, herbert, davem; +Cc: ap420073

This patchset adds a new ARIA(RFC 5794) symmetric cipher algorithm.

Like SEED, the ARIA is a standard cipher algorithm in South Korea.
Especially Government and Banking industry have been using this algorithm.
So the implementation of ARIA will be useful for them and network vendors.

Usecases of this algorithm are TLS[1], and IPSec.
It would be very useful for them if it implements kTLS for ARIA.

It is tested in x86 and MIPS with the tcrypt module.

The first patch is an implementation of ARIA algorithm.
The second patch adds tests for ARIA.

[1] https://datatracker.ietf.org/doc/html/rfc6209

Taehee Yoo (2):
  crypto: Implement ARIA symmetric cipher algorithm
  crypto: add ARIA testmgr tests

 crypto/Kconfig        |   15 +
 crypto/Makefile       |    1 +
 crypto/aria.c         |  288 +++++
 crypto/tcrypt.c       |   38 +-
 crypto/testmgr.c      |   31 +
 crypto/testmgr.h      | 2860 +++++++++++++++++++++++++++++++++++++++++
 include/crypto/aria.h |  461 +++++++
 7 files changed, 3693 insertions(+), 1 deletion(-)
 create mode 100644 crypto/aria.c
 create mode 100644 include/crypto/aria.h

-- 
2.17.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] crypto: Implement ARIA symmetric cipher algorithm
  2022-06-20 16:41 [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm Taehee Yoo
@ 2022-06-20 16:41 ` Taehee Yoo
  2022-06-20 16:41 ` [PATCH 2/2] crypto: add ARIA testmgr tests Taehee Yoo
  2022-06-30  6:39 ` [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm Herbert Xu
  2 siblings, 0 replies; 7+ messages in thread
From: Taehee Yoo @ 2022-06-20 16:41 UTC (permalink / raw)
  To: linux-crypto, herbert, davem; +Cc: ap420073

ARIA(RFC 5794) is a symmetric block cipher algorithm.
This algorithm is being used widely in South Korea as a standard cipher
algorithm.
This code is written based on the ARIA implementation of OpenSSL.
The OpenSSL code is based on the distributed source code[1] by KISA.

ARIA has three key sizes and corresponding rounds.
ARIA128: 12 rounds.
ARIA192: 14 rounds.
ARIA245: 16 rounds.

[1] https://seed.kisa.or.kr/kisa/Board/19/detailView.do (Korean)

Signed-off-by: Taehee Yoo <ap420073@gmail.com>
---
 crypto/Kconfig        |  15 ++
 crypto/Makefile       |   1 +
 crypto/aria.c         | 288 ++++++++++++++++++++++++++
 include/crypto/aria.h | 461 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 765 insertions(+)
 create mode 100644 crypto/aria.c
 create mode 100644 include/crypto/aria.h

diff --git a/crypto/Kconfig b/crypto/Kconfig
index 1d44893a997b..03cc8a9e8908 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -1489,6 +1489,21 @@ config CRYPTO_SEED
 	  See also:
 	  <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
 
+config CRYPTO_ARIA
+	tristate "ARIA cipher algorithm"
+	select CRYPTO_ALGAPI
+	help
+	  ARIA cipher algorithm (RFC5794).
+
+	  ARIA is a standard encryption algorithm of the Republic of Korea.
+	  The ARIA specifies three key sizes and rounds.
+	  128-bit: 12 rounds.
+	  192-bit: 14 rounds.
+	  256-bit: 16 rounds.
+
+	  See also:
+	  <https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do>
+
 config CRYPTO_SERPENT
 	tristate "Serpent cipher algorithm"
 	select CRYPTO_ALGAPI
diff --git a/crypto/Makefile b/crypto/Makefile
index ceaaa9f34145..dfa3e1cdd30c 100644
--- a/crypto/Makefile
+++ b/crypto/Makefile
@@ -147,6 +147,7 @@ obj-$(CONFIG_CRYPTO_TEA) += tea.o
 obj-$(CONFIG_CRYPTO_KHAZAD) += khazad.o
 obj-$(CONFIG_CRYPTO_ANUBIS) += anubis.o
 obj-$(CONFIG_CRYPTO_SEED) += seed.o
+obj-$(CONFIG_CRYPTO_ARIA) += aria.o
 obj-$(CONFIG_CRYPTO_CHACHA20) += chacha_generic.o
 obj-$(CONFIG_CRYPTO_POLY1305) += poly1305_generic.o
 obj-$(CONFIG_CRYPTO_DEFLATE) += deflate.o
diff --git a/crypto/aria.c b/crypto/aria.c
new file mode 100644
index 000000000000..ac3dffac34bb
--- /dev/null
+++ b/crypto/aria.c
@@ -0,0 +1,288 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Cryptographic API.
+ *
+ * ARIA Cipher Algorithm.
+ *
+ * Documentation of ARIA can be found in RFC 5794.
+ * Copyright (c) 2022 Taehee Yoo <ap420073@gmail.com>
+ *
+ * Information for ARIA
+ *     http://210.104.33.10/ARIA/index-e.html (English)
+ *     http://seed.kisa.or.kr/ (Korean)
+ *
+ * Public domain version is distributed above.
+ */
+
+#include <crypto/aria.h>
+
+static void aria_set_encrypt_key(struct aria_ctx *ctx, const u8 *in_key,
+				 unsigned int key_len)
+{
+	const __be32 *key = (const __be32 *)in_key;
+	u32 w0[4], w1[4], w2[4], w3[4];
+	u32 reg0, reg1, reg2, reg3;
+	const u32 *ck;
+	int rkidx = 0;
+
+	ck = &key_rc[(key_len - 16) / 8][0];
+
+	w0[0] = be32_to_cpu(key[0]);
+	w0[1] = be32_to_cpu(key[1]);
+	w0[2] = be32_to_cpu(key[2]);
+	w0[3] = be32_to_cpu(key[3]);
+
+	reg0 = w0[0] ^ ck[0];
+	reg1 = w0[1] ^ ck[1];
+	reg2 = w0[2] ^ ck[2];
+	reg3 = w0[3] ^ ck[3];
+
+	aria_subst_diff_odd(&reg0, &reg1, &reg2, &reg3);
+
+	if (key_len > 16) {
+		w1[0] = be32_to_cpu(key[4]);
+		w1[1] = be32_to_cpu(key[5]);
+		if (key_len > 24) {
+			w1[2] = be32_to_cpu(key[6]);
+			w1[3] = be32_to_cpu(key[7]);
+		} else {
+			w1[2] = 0;
+			w1[3] = 0;
+		}
+	} else {
+		w1[0] = 0;
+		w1[1] = 0;
+		w1[2] = 0;
+		w1[3] = 0;
+	}
+
+	w1[0] ^= reg0;
+	w1[1] ^= reg1;
+	w1[2] ^= reg2;
+	w1[3] ^= reg3;
+
+	reg0 = w1[0];
+	reg1 = w1[1];
+	reg2 = w1[2];
+	reg3 = w1[3];
+
+	reg0 ^= ck[4];
+	reg1 ^= ck[5];
+	reg2 ^= ck[6];
+	reg3 ^= ck[7];
+
+	aria_subst_diff_even(&reg0, &reg1, &reg2, &reg3);
+
+	reg0 ^= w0[0];
+	reg1 ^= w0[1];
+	reg2 ^= w0[2];
+	reg3 ^= w0[3];
+
+	w2[0] = reg0;
+	w2[1] = reg1;
+	w2[2] = reg2;
+	w2[3] = reg3;
+
+	reg0 ^= ck[8];
+	reg1 ^= ck[9];
+	reg2 ^= ck[10];
+	reg3 ^= ck[11];
+
+	aria_subst_diff_odd(&reg0, &reg1, &reg2, &reg3);
+
+	w3[0] = reg0 ^ w1[0];
+	w3[1] = reg1 ^ w1[1];
+	w3[2] = reg2 ^ w1[2];
+	w3[3] = reg3 ^ w1[3];
+
+	aria_gsrk(ctx->enc_key[rkidx], w0, w1, 19);
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w1, w2, 19);
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w2, w3, 19);
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w3, w0, 19);
+
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w0, w1, 31);
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w1, w2, 31);
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w2, w3, 31);
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w3, w0, 31);
+
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w0, w1, 67);
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w1, w2, 67);
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w2, w3, 67);
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w3, w0, 67);
+
+	rkidx++;
+	aria_gsrk(ctx->enc_key[rkidx], w0, w1, 97);
+	if (key_len > 16) {
+		rkidx++;
+		aria_gsrk(ctx->enc_key[rkidx], w1, w2, 97);
+		rkidx++;
+		aria_gsrk(ctx->enc_key[rkidx], w2, w3, 97);
+
+		if (key_len > 24) {
+			rkidx++;
+			aria_gsrk(ctx->enc_key[rkidx], w3, w0, 97);
+
+			rkidx++;
+			aria_gsrk(ctx->enc_key[rkidx], w0, w1, 109);
+		}
+	}
+}
+
+static void aria_set_decrypt_key(struct aria_ctx *ctx)
+{
+	int i;
+
+	for (i = 0; i < 4; i++) {
+		ctx->dec_key[0][i] = ctx->enc_key[ctx->rounds][i];
+		ctx->dec_key[ctx->rounds][i] = ctx->enc_key[0][i];
+	}
+
+	for (i = 1; i < ctx->rounds; i++) {
+		ctx->dec_key[i][0] = aria_m(ctx->enc_key[ctx->rounds - i][0]);
+		ctx->dec_key[i][1] = aria_m(ctx->enc_key[ctx->rounds - i][1]);
+		ctx->dec_key[i][2] = aria_m(ctx->enc_key[ctx->rounds - i][2]);
+		ctx->dec_key[i][3] = aria_m(ctx->enc_key[ctx->rounds - i][3]);
+
+		aria_diff_word(&ctx->dec_key[i][0], &ctx->dec_key[i][1],
+			       &ctx->dec_key[i][2], &ctx->dec_key[i][3]);
+		aria_diff_byte(&ctx->dec_key[i][1],
+			       &ctx->dec_key[i][2], &ctx->dec_key[i][3]);
+		aria_diff_word(&ctx->dec_key[i][0], &ctx->dec_key[i][1],
+			       &ctx->dec_key[i][2], &ctx->dec_key[i][3]);
+	}
+}
+
+static int aria_set_key(struct crypto_tfm *tfm, const u8 *in_key,
+			unsigned int key_len)
+{
+	struct aria_ctx *ctx = crypto_tfm_ctx(tfm);
+
+	if (key_len != 16 && key_len != 24 && key_len != 32)
+		return -EINVAL;
+
+	ctx->key_length = key_len;
+	ctx->rounds = (key_len + 32) / 4;
+
+	aria_set_encrypt_key(ctx, in_key, key_len);
+	aria_set_decrypt_key(ctx);
+
+	return 0;
+}
+
+static void __aria_crypt(struct aria_ctx *ctx, u8 *out, const u8 *in,
+			 u32 key[][ARIA_RD_KEY_WORDS])
+{
+	const __be32 *src = (const __be32 *)in;
+	__be32 *dst = (__be32 *)out;
+	u32 reg0, reg1, reg2, reg3;
+	int rounds, rkidx = 0;
+
+	rounds = ctx->rounds;
+
+	reg0 = be32_to_cpu(src[0]);
+	reg1 = be32_to_cpu(src[1]);
+	reg2 = be32_to_cpu(src[2]);
+	reg3 = be32_to_cpu(src[3]);
+
+	aria_add_round_key(key[rkidx], &reg0, &reg1, &reg2, &reg3);
+	rkidx++;
+
+	aria_subst_diff_odd(&reg0, &reg1, &reg2, &reg3);
+	aria_add_round_key(key[rkidx], &reg0, &reg1, &reg2, &reg3);
+	rkidx++;
+
+	while ((rounds -= 2) > 0) {
+		aria_subst_diff_even(&reg0, &reg1, &reg2, &reg3);
+		aria_add_round_key(key[rkidx], &reg0, &reg1, &reg2, &reg3);
+		rkidx++;
+
+		aria_subst_diff_odd(&reg0, &reg1, &reg2, &reg3);
+		aria_add_round_key(key[rkidx], &reg0, &reg1, &reg2, &reg3);
+		rkidx++;
+	}
+
+	reg0 = key[rkidx][0] ^ make_u32((u8)(x1[get_u8(reg0, 0)]),
+					(u8)(x2[get_u8(reg0, 1)] >> 8),
+					(u8)(s1[get_u8(reg0, 2)]),
+					(u8)(s2[get_u8(reg0, 3)]));
+	reg1 = key[rkidx][1] ^ make_u32((u8)(x1[get_u8(reg1, 0)]),
+					(u8)(x2[get_u8(reg1, 1)] >> 8),
+					(u8)(s1[get_u8(reg1, 2)]),
+					(u8)(s2[get_u8(reg1, 3)]));
+	reg2 = key[rkidx][2] ^ make_u32((u8)(x1[get_u8(reg2, 0)]),
+					(u8)(x2[get_u8(reg2, 1)] >> 8),
+					(u8)(s1[get_u8(reg2, 2)]),
+					(u8)(s2[get_u8(reg2, 3)]));
+	reg3 = key[rkidx][3] ^ make_u32((u8)(x1[get_u8(reg3, 0)]),
+					(u8)(x2[get_u8(reg3, 1)] >> 8),
+					(u8)(s1[get_u8(reg3, 2)]),
+					(u8)(s2[get_u8(reg3, 3)]));
+
+	dst[0] = cpu_to_be32(reg0);
+	dst[1] = cpu_to_be32(reg1);
+	dst[2] = cpu_to_be32(reg2);
+	dst[3] = cpu_to_be32(reg3);
+}
+
+static void aria_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
+{
+	struct aria_ctx *ctx = crypto_tfm_ctx(tfm);
+
+	__aria_crypt(ctx, out, in, ctx->enc_key);
+}
+
+static void aria_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
+{
+	struct aria_ctx *ctx = crypto_tfm_ctx(tfm);
+
+	__aria_crypt(ctx, out, in, ctx->dec_key);
+}
+
+static struct crypto_alg aria_alg = {
+	.cra_name		=	"aria",
+	.cra_driver_name	=	"aria-generic",
+	.cra_priority		=	100,
+	.cra_flags		=	CRYPTO_ALG_TYPE_CIPHER,
+	.cra_blocksize		=	ARIA_BLOCK_SIZE,
+	.cra_ctxsize		=	sizeof(struct aria_ctx),
+	.cra_alignmask		=	3,
+	.cra_module		=	THIS_MODULE,
+	.cra_u			=	{
+		.cipher = {
+			.cia_min_keysize	=	ARIA_MIN_KEY_SIZE,
+			.cia_max_keysize	=	ARIA_MAX_KEY_SIZE,
+			.cia_setkey		=	aria_set_key,
+			.cia_encrypt		=	aria_encrypt,
+			.cia_decrypt		=	aria_decrypt
+		}
+	}
+};
+
+static int __init aria_init(void)
+{
+	return crypto_register_alg(&aria_alg);
+}
+
+static void __exit aria_fini(void)
+{
+	crypto_unregister_alg(&aria_alg);
+}
+
+subsys_initcall(aria_init);
+module_exit(aria_fini);
+
+MODULE_DESCRIPTION("ARIA Cipher Algorithm");
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Taehee Yoo <ap420073@gmail.com>");
+MODULE_ALIAS_CRYPTO("aria");
diff --git a/include/crypto/aria.h b/include/crypto/aria.h
new file mode 100644
index 000000000000..4a86661788e8
--- /dev/null
+++ b/include/crypto/aria.h
@@ -0,0 +1,461 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Cryptographic API.
+ *
+ * ARIA Cipher Algorithm.
+ *
+ * Documentation of ARIA can be found in RFC 5794.
+ * Copyright (c) 2022 Taehee Yoo <ap420073@gmail.com>
+ * Copyright (c) 2022 Taehee Yoo <ap420073@gmail.com>
+ *
+ * Information for ARIA
+ *     http://210.104.33.10/ARIA/index-e.html (English)
+ *     http://seed.kisa.or.kr/ (Korean)
+ *
+ * Public domain version is distributed above.
+ */
+
+#ifndef _CRYPTO_ARIA_H
+#define _CRYPTO_ARIA_H
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/types.h>
+#include <linux/errno.h>
+#include <linux/crypto.h>
+#include <asm/byteorder.h>
+
+#define ARIA_MIN_KEY_SIZE	16
+#define ARIA_MAX_KEY_SIZE	32
+#define ARIA_BLOCK_SIZE		16
+#define ARIA_MAX_RD_KEYS	17
+#define ARIA_RD_KEY_WORDS	(ARIA_BLOCK_SIZE / sizeof(u32))
+
+struct aria_ctx {
+	int key_length;
+	int rounds;
+	u32 enc_key[ARIA_MAX_RD_KEYS][ARIA_RD_KEY_WORDS];
+	u32 dec_key[ARIA_MAX_RD_KEYS][ARIA_RD_KEY_WORDS];
+};
+
+static const u32 key_rc[5][4] = {
+	{ 0x517cc1b7, 0x27220a94, 0xfe13abe8, 0xfa9a6ee0 },
+	{ 0x6db14acc, 0x9e21c820, 0xff28b1d5, 0xef5de2b0 },
+	{ 0xdb92371d, 0x2126e970, 0x03249775, 0x04e8c90e },
+	{ 0x517cc1b7, 0x27220a94, 0xfe13abe8, 0xfa9a6ee0 },
+	{ 0x6db14acc, 0x9e21c820, 0xff28b1d5, 0xef5de2b0 }
+};
+
+static const u32 s1[256] = {
+	0x00636363, 0x007c7c7c, 0x00777777, 0x007b7b7b,
+	0x00f2f2f2, 0x006b6b6b, 0x006f6f6f, 0x00c5c5c5,
+	0x00303030, 0x00010101, 0x00676767, 0x002b2b2b,
+	0x00fefefe, 0x00d7d7d7, 0x00ababab, 0x00767676,
+	0x00cacaca, 0x00828282, 0x00c9c9c9, 0x007d7d7d,
+	0x00fafafa, 0x00595959, 0x00474747, 0x00f0f0f0,
+	0x00adadad, 0x00d4d4d4, 0x00a2a2a2, 0x00afafaf,
+	0x009c9c9c, 0x00a4a4a4, 0x00727272, 0x00c0c0c0,
+	0x00b7b7b7, 0x00fdfdfd, 0x00939393, 0x00262626,
+	0x00363636, 0x003f3f3f, 0x00f7f7f7, 0x00cccccc,
+	0x00343434, 0x00a5a5a5, 0x00e5e5e5, 0x00f1f1f1,
+	0x00717171, 0x00d8d8d8, 0x00313131, 0x00151515,
+	0x00040404, 0x00c7c7c7, 0x00232323, 0x00c3c3c3,
+	0x00181818, 0x00969696, 0x00050505, 0x009a9a9a,
+	0x00070707, 0x00121212, 0x00808080, 0x00e2e2e2,
+	0x00ebebeb, 0x00272727, 0x00b2b2b2, 0x00757575,
+	0x00090909, 0x00838383, 0x002c2c2c, 0x001a1a1a,
+	0x001b1b1b, 0x006e6e6e, 0x005a5a5a, 0x00a0a0a0,
+	0x00525252, 0x003b3b3b, 0x00d6d6d6, 0x00b3b3b3,
+	0x00292929, 0x00e3e3e3, 0x002f2f2f, 0x00848484,
+	0x00535353, 0x00d1d1d1, 0x00000000, 0x00ededed,
+	0x00202020, 0x00fcfcfc, 0x00b1b1b1, 0x005b5b5b,
+	0x006a6a6a, 0x00cbcbcb, 0x00bebebe, 0x00393939,
+	0x004a4a4a, 0x004c4c4c, 0x00585858, 0x00cfcfcf,
+	0x00d0d0d0, 0x00efefef, 0x00aaaaaa, 0x00fbfbfb,
+	0x00434343, 0x004d4d4d, 0x00333333, 0x00858585,
+	0x00454545, 0x00f9f9f9, 0x00020202, 0x007f7f7f,
+	0x00505050, 0x003c3c3c, 0x009f9f9f, 0x00a8a8a8,
+	0x00515151, 0x00a3a3a3, 0x00404040, 0x008f8f8f,
+	0x00929292, 0x009d9d9d, 0x00383838, 0x00f5f5f5,
+	0x00bcbcbc, 0x00b6b6b6, 0x00dadada, 0x00212121,
+	0x00101010, 0x00ffffff, 0x00f3f3f3, 0x00d2d2d2,
+	0x00cdcdcd, 0x000c0c0c, 0x00131313, 0x00ececec,
+	0x005f5f5f, 0x00979797, 0x00444444, 0x00171717,
+	0x00c4c4c4, 0x00a7a7a7, 0x007e7e7e, 0x003d3d3d,
+	0x00646464, 0x005d5d5d, 0x00191919, 0x00737373,
+	0x00606060, 0x00818181, 0x004f4f4f, 0x00dcdcdc,
+	0x00222222, 0x002a2a2a, 0x00909090, 0x00888888,
+	0x00464646, 0x00eeeeee, 0x00b8b8b8, 0x00141414,
+	0x00dedede, 0x005e5e5e, 0x000b0b0b, 0x00dbdbdb,
+	0x00e0e0e0, 0x00323232, 0x003a3a3a, 0x000a0a0a,
+	0x00494949, 0x00060606, 0x00242424, 0x005c5c5c,
+	0x00c2c2c2, 0x00d3d3d3, 0x00acacac, 0x00626262,
+	0x00919191, 0x00959595, 0x00e4e4e4, 0x00797979,
+	0x00e7e7e7, 0x00c8c8c8, 0x00373737, 0x006d6d6d,
+	0x008d8d8d, 0x00d5d5d5, 0x004e4e4e, 0x00a9a9a9,
+	0x006c6c6c, 0x00565656, 0x00f4f4f4, 0x00eaeaea,
+	0x00656565, 0x007a7a7a, 0x00aeaeae, 0x00080808,
+	0x00bababa, 0x00787878, 0x00252525, 0x002e2e2e,
+	0x001c1c1c, 0x00a6a6a6, 0x00b4b4b4, 0x00c6c6c6,
+	0x00e8e8e8, 0x00dddddd, 0x00747474, 0x001f1f1f,
+	0x004b4b4b, 0x00bdbdbd, 0x008b8b8b, 0x008a8a8a,
+	0x00707070, 0x003e3e3e, 0x00b5b5b5, 0x00666666,
+	0x00484848, 0x00030303, 0x00f6f6f6, 0x000e0e0e,
+	0x00616161, 0x00353535, 0x00575757, 0x00b9b9b9,
+	0x00868686, 0x00c1c1c1, 0x001d1d1d, 0x009e9e9e,
+	0x00e1e1e1, 0x00f8f8f8, 0x00989898, 0x00111111,
+	0x00696969, 0x00d9d9d9, 0x008e8e8e, 0x00949494,
+	0x009b9b9b, 0x001e1e1e, 0x00878787, 0x00e9e9e9,
+	0x00cecece, 0x00555555, 0x00282828, 0x00dfdfdf,
+	0x008c8c8c, 0x00a1a1a1, 0x00898989, 0x000d0d0d,
+	0x00bfbfbf, 0x00e6e6e6, 0x00424242, 0x00686868,
+	0x00414141, 0x00999999, 0x002d2d2d, 0x000f0f0f,
+	0x00b0b0b0, 0x00545454, 0x00bbbbbb, 0x00161616
+};
+
+static const u32 s2[256] = {
+	0xe200e2e2, 0x4e004e4e, 0x54005454, 0xfc00fcfc,
+	0x94009494, 0xc200c2c2, 0x4a004a4a, 0xcc00cccc,
+	0x62006262, 0x0d000d0d, 0x6a006a6a, 0x46004646,
+	0x3c003c3c, 0x4d004d4d, 0x8b008b8b, 0xd100d1d1,
+	0x5e005e5e, 0xfa00fafa, 0x64006464, 0xcb00cbcb,
+	0xb400b4b4, 0x97009797, 0xbe00bebe, 0x2b002b2b,
+	0xbc00bcbc, 0x77007777, 0x2e002e2e, 0x03000303,
+	0xd300d3d3, 0x19001919, 0x59005959, 0xc100c1c1,
+	0x1d001d1d, 0x06000606, 0x41004141, 0x6b006b6b,
+	0x55005555, 0xf000f0f0, 0x99009999, 0x69006969,
+	0xea00eaea, 0x9c009c9c, 0x18001818, 0xae00aeae,
+	0x63006363, 0xdf00dfdf, 0xe700e7e7, 0xbb00bbbb,
+	0x00000000, 0x73007373, 0x66006666, 0xfb00fbfb,
+	0x96009696, 0x4c004c4c, 0x85008585, 0xe400e4e4,
+	0x3a003a3a, 0x09000909, 0x45004545, 0xaa00aaaa,
+	0x0f000f0f, 0xee00eeee, 0x10001010, 0xeb00ebeb,
+	0x2d002d2d, 0x7f007f7f, 0xf400f4f4, 0x29002929,
+	0xac00acac, 0xcf00cfcf, 0xad00adad, 0x91009191,
+	0x8d008d8d, 0x78007878, 0xc800c8c8, 0x95009595,
+	0xf900f9f9, 0x2f002f2f, 0xce00cece, 0xcd00cdcd,
+	0x08000808, 0x7a007a7a, 0x88008888, 0x38003838,
+	0x5c005c5c, 0x83008383, 0x2a002a2a, 0x28002828,
+	0x47004747, 0xdb00dbdb, 0xb800b8b8, 0xc700c7c7,
+	0x93009393, 0xa400a4a4, 0x12001212, 0x53005353,
+	0xff00ffff, 0x87008787, 0x0e000e0e, 0x31003131,
+	0x36003636, 0x21002121, 0x58005858, 0x48004848,
+	0x01000101, 0x8e008e8e, 0x37003737, 0x74007474,
+	0x32003232, 0xca00caca, 0xe900e9e9, 0xb100b1b1,
+	0xb700b7b7, 0xab00abab, 0x0c000c0c, 0xd700d7d7,
+	0xc400c4c4, 0x56005656, 0x42004242, 0x26002626,
+	0x07000707, 0x98009898, 0x60006060, 0xd900d9d9,
+	0xb600b6b6, 0xb900b9b9, 0x11001111, 0x40004040,
+	0xec00ecec, 0x20002020, 0x8c008c8c, 0xbd00bdbd,
+	0xa000a0a0, 0xc900c9c9, 0x84008484, 0x04000404,
+	0x49004949, 0x23002323, 0xf100f1f1, 0x4f004f4f,
+	0x50005050, 0x1f001f1f, 0x13001313, 0xdc00dcdc,
+	0xd800d8d8, 0xc000c0c0, 0x9e009e9e, 0x57005757,
+	0xe300e3e3, 0xc300c3c3, 0x7b007b7b, 0x65006565,
+	0x3b003b3b, 0x02000202, 0x8f008f8f, 0x3e003e3e,
+	0xe800e8e8, 0x25002525, 0x92009292, 0xe500e5e5,
+	0x15001515, 0xdd00dddd, 0xfd00fdfd, 0x17001717,
+	0xa900a9a9, 0xbf00bfbf, 0xd400d4d4, 0x9a009a9a,
+	0x7e007e7e, 0xc500c5c5, 0x39003939, 0x67006767,
+	0xfe00fefe, 0x76007676, 0x9d009d9d, 0x43004343,
+	0xa700a7a7, 0xe100e1e1, 0xd000d0d0, 0xf500f5f5,
+	0x68006868, 0xf200f2f2, 0x1b001b1b, 0x34003434,
+	0x70007070, 0x05000505, 0xa300a3a3, 0x8a008a8a,
+	0xd500d5d5, 0x79007979, 0x86008686, 0xa800a8a8,
+	0x30003030, 0xc600c6c6, 0x51005151, 0x4b004b4b,
+	0x1e001e1e, 0xa600a6a6, 0x27002727, 0xf600f6f6,
+	0x35003535, 0xd200d2d2, 0x6e006e6e, 0x24002424,
+	0x16001616, 0x82008282, 0x5f005f5f, 0xda00dada,
+	0xe600e6e6, 0x75007575, 0xa200a2a2, 0xef00efef,
+	0x2c002c2c, 0xb200b2b2, 0x1c001c1c, 0x9f009f9f,
+	0x5d005d5d, 0x6f006f6f, 0x80008080, 0x0a000a0a,
+	0x72007272, 0x44004444, 0x9b009b9b, 0x6c006c6c,
+	0x90009090, 0x0b000b0b, 0x5b005b5b, 0x33003333,
+	0x7d007d7d, 0x5a005a5a, 0x52005252, 0xf300f3f3,
+	0x61006161, 0xa100a1a1, 0xf700f7f7, 0xb000b0b0,
+	0xd600d6d6, 0x3f003f3f, 0x7c007c7c, 0x6d006d6d,
+	0xed00eded, 0x14001414, 0xe000e0e0, 0xa500a5a5,
+	0x3d003d3d, 0x22002222, 0xb300b3b3, 0xf800f8f8,
+	0x89008989, 0xde00dede, 0x71007171, 0x1a001a1a,
+	0xaf00afaf, 0xba00baba, 0xb500b5b5, 0x81008181
+};
+
+static const u32 x1[256] = {
+	0x52520052, 0x09090009, 0x6a6a006a, 0xd5d500d5,
+	0x30300030, 0x36360036, 0xa5a500a5, 0x38380038,
+	0xbfbf00bf, 0x40400040, 0xa3a300a3, 0x9e9e009e,
+	0x81810081, 0xf3f300f3, 0xd7d700d7, 0xfbfb00fb,
+	0x7c7c007c, 0xe3e300e3, 0x39390039, 0x82820082,
+	0x9b9b009b, 0x2f2f002f, 0xffff00ff, 0x87870087,
+	0x34340034, 0x8e8e008e, 0x43430043, 0x44440044,
+	0xc4c400c4, 0xdede00de, 0xe9e900e9, 0xcbcb00cb,
+	0x54540054, 0x7b7b007b, 0x94940094, 0x32320032,
+	0xa6a600a6, 0xc2c200c2, 0x23230023, 0x3d3d003d,
+	0xeeee00ee, 0x4c4c004c, 0x95950095, 0x0b0b000b,
+	0x42420042, 0xfafa00fa, 0xc3c300c3, 0x4e4e004e,
+	0x08080008, 0x2e2e002e, 0xa1a100a1, 0x66660066,
+	0x28280028, 0xd9d900d9, 0x24240024, 0xb2b200b2,
+	0x76760076, 0x5b5b005b, 0xa2a200a2, 0x49490049,
+	0x6d6d006d, 0x8b8b008b, 0xd1d100d1, 0x25250025,
+	0x72720072, 0xf8f800f8, 0xf6f600f6, 0x64640064,
+	0x86860086, 0x68680068, 0x98980098, 0x16160016,
+	0xd4d400d4, 0xa4a400a4, 0x5c5c005c, 0xcccc00cc,
+	0x5d5d005d, 0x65650065, 0xb6b600b6, 0x92920092,
+	0x6c6c006c, 0x70700070, 0x48480048, 0x50500050,
+	0xfdfd00fd, 0xeded00ed, 0xb9b900b9, 0xdada00da,
+	0x5e5e005e, 0x15150015, 0x46460046, 0x57570057,
+	0xa7a700a7, 0x8d8d008d, 0x9d9d009d, 0x84840084,
+	0x90900090, 0xd8d800d8, 0xabab00ab, 0x00000000,
+	0x8c8c008c, 0xbcbc00bc, 0xd3d300d3, 0x0a0a000a,
+	0xf7f700f7, 0xe4e400e4, 0x58580058, 0x05050005,
+	0xb8b800b8, 0xb3b300b3, 0x45450045, 0x06060006,
+	0xd0d000d0, 0x2c2c002c, 0x1e1e001e, 0x8f8f008f,
+	0xcaca00ca, 0x3f3f003f, 0x0f0f000f, 0x02020002,
+	0xc1c100c1, 0xafaf00af, 0xbdbd00bd, 0x03030003,
+	0x01010001, 0x13130013, 0x8a8a008a, 0x6b6b006b,
+	0x3a3a003a, 0x91910091, 0x11110011, 0x41410041,
+	0x4f4f004f, 0x67670067, 0xdcdc00dc, 0xeaea00ea,
+	0x97970097, 0xf2f200f2, 0xcfcf00cf, 0xcece00ce,
+	0xf0f000f0, 0xb4b400b4, 0xe6e600e6, 0x73730073,
+	0x96960096, 0xacac00ac, 0x74740074, 0x22220022,
+	0xe7e700e7, 0xadad00ad, 0x35350035, 0x85850085,
+	0xe2e200e2, 0xf9f900f9, 0x37370037, 0xe8e800e8,
+	0x1c1c001c, 0x75750075, 0xdfdf00df, 0x6e6e006e,
+	0x47470047, 0xf1f100f1, 0x1a1a001a, 0x71710071,
+	0x1d1d001d, 0x29290029, 0xc5c500c5, 0x89890089,
+	0x6f6f006f, 0xb7b700b7, 0x62620062, 0x0e0e000e,
+	0xaaaa00aa, 0x18180018, 0xbebe00be, 0x1b1b001b,
+	0xfcfc00fc, 0x56560056, 0x3e3e003e, 0x4b4b004b,
+	0xc6c600c6, 0xd2d200d2, 0x79790079, 0x20200020,
+	0x9a9a009a, 0xdbdb00db, 0xc0c000c0, 0xfefe00fe,
+	0x78780078, 0xcdcd00cd, 0x5a5a005a, 0xf4f400f4,
+	0x1f1f001f, 0xdddd00dd, 0xa8a800a8, 0x33330033,
+	0x88880088, 0x07070007, 0xc7c700c7, 0x31310031,
+	0xb1b100b1, 0x12120012, 0x10100010, 0x59590059,
+	0x27270027, 0x80800080, 0xecec00ec, 0x5f5f005f,
+	0x60600060, 0x51510051, 0x7f7f007f, 0xa9a900a9,
+	0x19190019, 0xb5b500b5, 0x4a4a004a, 0x0d0d000d,
+	0x2d2d002d, 0xe5e500e5, 0x7a7a007a, 0x9f9f009f,
+	0x93930093, 0xc9c900c9, 0x9c9c009c, 0xefef00ef,
+	0xa0a000a0, 0xe0e000e0, 0x3b3b003b, 0x4d4d004d,
+	0xaeae00ae, 0x2a2a002a, 0xf5f500f5, 0xb0b000b0,
+	0xc8c800c8, 0xebeb00eb, 0xbbbb00bb, 0x3c3c003c,
+	0x83830083, 0x53530053, 0x99990099, 0x61610061,
+	0x17170017, 0x2b2b002b, 0x04040004, 0x7e7e007e,
+	0xbaba00ba, 0x77770077, 0xd6d600d6, 0x26260026,
+	0xe1e100e1, 0x69690069, 0x14140014, 0x63630063,
+	0x55550055, 0x21210021, 0x0c0c000c, 0x7d7d007d
+};
+
+static const u32 x2[256] = {
+	0x30303000, 0x68686800, 0x99999900, 0x1b1b1b00,
+	0x87878700, 0xb9b9b900, 0x21212100, 0x78787800,
+	0x50505000, 0x39393900, 0xdbdbdb00, 0xe1e1e100,
+	0x72727200, 0x09090900, 0x62626200, 0x3c3c3c00,
+	0x3e3e3e00, 0x7e7e7e00, 0x5e5e5e00, 0x8e8e8e00,
+	0xf1f1f100, 0xa0a0a000, 0xcccccc00, 0xa3a3a300,
+	0x2a2a2a00, 0x1d1d1d00, 0xfbfbfb00, 0xb6b6b600,
+	0xd6d6d600, 0x20202000, 0xc4c4c400, 0x8d8d8d00,
+	0x81818100, 0x65656500, 0xf5f5f500, 0x89898900,
+	0xcbcbcb00, 0x9d9d9d00, 0x77777700, 0xc6c6c600,
+	0x57575700, 0x43434300, 0x56565600, 0x17171700,
+	0xd4d4d400, 0x40404000, 0x1a1a1a00, 0x4d4d4d00,
+	0xc0c0c000, 0x63636300, 0x6c6c6c00, 0xe3e3e300,
+	0xb7b7b700, 0xc8c8c800, 0x64646400, 0x6a6a6a00,
+	0x53535300, 0xaaaaaa00, 0x38383800, 0x98989800,
+	0x0c0c0c00, 0xf4f4f400, 0x9b9b9b00, 0xededed00,
+	0x7f7f7f00, 0x22222200, 0x76767600, 0xafafaf00,
+	0xdddddd00, 0x3a3a3a00, 0x0b0b0b00, 0x58585800,
+	0x67676700, 0x88888800, 0x06060600, 0xc3c3c300,
+	0x35353500, 0x0d0d0d00, 0x01010100, 0x8b8b8b00,
+	0x8c8c8c00, 0xc2c2c200, 0xe6e6e600, 0x5f5f5f00,
+	0x02020200, 0x24242400, 0x75757500, 0x93939300,
+	0x66666600, 0x1e1e1e00, 0xe5e5e500, 0xe2e2e200,
+	0x54545400, 0xd8d8d800, 0x10101000, 0xcecece00,
+	0x7a7a7a00, 0xe8e8e800, 0x08080800, 0x2c2c2c00,
+	0x12121200, 0x97979700, 0x32323200, 0xababab00,
+	0xb4b4b400, 0x27272700, 0x0a0a0a00, 0x23232300,
+	0xdfdfdf00, 0xefefef00, 0xcacaca00, 0xd9d9d900,
+	0xb8b8b800, 0xfafafa00, 0xdcdcdc00, 0x31313100,
+	0x6b6b6b00, 0xd1d1d100, 0xadadad00, 0x19191900,
+	0x49494900, 0xbdbdbd00, 0x51515100, 0x96969600,
+	0xeeeeee00, 0xe4e4e400, 0xa8a8a800, 0x41414100,
+	0xdadada00, 0xffffff00, 0xcdcdcd00, 0x55555500,
+	0x86868600, 0x36363600, 0xbebebe00, 0x61616100,
+	0x52525200, 0xf8f8f800, 0xbbbbbb00, 0x0e0e0e00,
+	0x82828200, 0x48484800, 0x69696900, 0x9a9a9a00,
+	0xe0e0e000, 0x47474700, 0x9e9e9e00, 0x5c5c5c00,
+	0x04040400, 0x4b4b4b00, 0x34343400, 0x15151500,
+	0x79797900, 0x26262600, 0xa7a7a700, 0xdedede00,
+	0x29292900, 0xaeaeae00, 0x92929200, 0xd7d7d700,
+	0x84848400, 0xe9e9e900, 0xd2d2d200, 0xbababa00,
+	0x5d5d5d00, 0xf3f3f300, 0xc5c5c500, 0xb0b0b000,
+	0xbfbfbf00, 0xa4a4a400, 0x3b3b3b00, 0x71717100,
+	0x44444400, 0x46464600, 0x2b2b2b00, 0xfcfcfc00,
+	0xebebeb00, 0x6f6f6f00, 0xd5d5d500, 0xf6f6f600,
+	0x14141400, 0xfefefe00, 0x7c7c7c00, 0x70707000,
+	0x5a5a5a00, 0x7d7d7d00, 0xfdfdfd00, 0x2f2f2f00,
+	0x18181800, 0x83838300, 0x16161600, 0xa5a5a500,
+	0x91919100, 0x1f1f1f00, 0x05050500, 0x95959500,
+	0x74747400, 0xa9a9a900, 0xc1c1c100, 0x5b5b5b00,
+	0x4a4a4a00, 0x85858500, 0x6d6d6d00, 0x13131300,
+	0x07070700, 0x4f4f4f00, 0x4e4e4e00, 0x45454500,
+	0xb2b2b200, 0x0f0f0f00, 0xc9c9c900, 0x1c1c1c00,
+	0xa6a6a600, 0xbcbcbc00, 0xececec00, 0x73737300,
+	0x90909000, 0x7b7b7b00, 0xcfcfcf00, 0x59595900,
+	0x8f8f8f00, 0xa1a1a100, 0xf9f9f900, 0x2d2d2d00,
+	0xf2f2f200, 0xb1b1b100, 0x00000000, 0x94949400,
+	0x37373700, 0x9f9f9f00, 0xd0d0d000, 0x2e2e2e00,
+	0x9c9c9c00, 0x6e6e6e00, 0x28282800, 0x3f3f3f00,
+	0x80808000, 0xf0f0f000, 0x3d3d3d00, 0xd3d3d300,
+	0x25252500, 0x8a8a8a00, 0xb5b5b500, 0xe7e7e700,
+	0x42424200, 0xb3b3b300, 0xc7c7c700, 0xeaeaea00,
+	0xf7f7f700, 0x4c4c4c00, 0x11111100, 0x33333300,
+	0x03030300, 0xa2a2a200, 0xacacac00, 0x60606000
+};
+
+static inline u32 rotl32(u32 v, u32 r)
+{
+	return ((v << r) | (v >> (32 - r)));
+}
+
+static inline u32 rotr32(u32 v, u32 r)
+{
+	return ((v >> r) | (v << (32 - r)));
+}
+
+static inline u32 bswap32(u32 v)
+{
+	return ((v << 24) ^
+		(v >> 24) ^
+		((v & 0x0000ff00) << 8) ^
+		((v & 0x00ff0000) >> 8));
+}
+
+static inline u8 get_u8(u32 x, u32 y)
+{
+	return (x >> ((3 - y) * 8));
+}
+
+static inline u32 make_u32(u8 v0, u8 v1, u8 v2, u8 v3)
+{
+	return ((u32)v0 << 24) | ((u32)v1 << 16) | ((u32)v2 <<  8) | ((u32)v3);
+}
+
+static inline u32 aria_m(u32 t0)
+{
+	return rotr32(t0, 8) ^ rotr32(t0 ^ rotr32(t0, 8), 16);
+}
+
+/* S-Box Layer 1 + M */
+static inline void aria_sbox_layer1_with_pre_diff(u32 *t0, u32 *t1, u32 *t2,
+						  u32 *t3)
+{
+	*t0 = s1[get_u8(*t0, 0)] ^
+	      s2[get_u8(*t0, 1)] ^
+	      x1[get_u8(*t0, 2)] ^
+	      x2[get_u8(*t0, 3)];
+	*t1 = s1[get_u8(*t1, 0)] ^
+	      s2[get_u8(*t1, 1)] ^
+	      x1[get_u8(*t1, 2)] ^
+	      x2[get_u8(*t1, 3)];
+	*t2 = s1[get_u8(*t2, 0)] ^
+	      s2[get_u8(*t2, 1)] ^
+	      x1[get_u8(*t2, 2)] ^
+	      x2[get_u8(*t2, 3)];
+	*t3 = s1[get_u8(*t3, 0)] ^
+	      s2[get_u8(*t3, 1)] ^
+	      x1[get_u8(*t3, 2)] ^
+	      x2[get_u8(*t3, 3)];
+}
+
+/* S-Box Layer 2 + M */
+static inline void aria_sbox_layer2_with_pre_diff(u32 *t0, u32 *t1, u32 *t2,
+						  u32 *t3)
+{
+	*t0 = x1[get_u8(*t0, 0)] ^
+	      x2[get_u8(*t0, 1)] ^
+	      s1[get_u8(*t0, 2)] ^
+	      s2[get_u8(*t0, 3)];
+	*t1 = x1[get_u8(*t1, 0)] ^
+	      x2[get_u8(*t1, 1)] ^
+	      s1[get_u8(*t1, 2)] ^
+	      s2[get_u8(*t1, 3)];
+	*t2 = x1[get_u8(*t2, 0)] ^
+	      x2[get_u8(*t2, 1)] ^
+	      s1[get_u8(*t2, 2)] ^
+	      s2[get_u8(*t2, 3)];
+	*t3 = x1[get_u8(*t3, 0)] ^
+	      x2[get_u8(*t3, 1)] ^
+	      s1[get_u8(*t3, 2)] ^
+	      s2[get_u8(*t3, 3)];
+}
+
+/* Word-level diffusion */
+static inline void aria_diff_word(u32 *t0, u32 *t1, u32 *t2, u32 *t3)
+{
+	*t1 ^= *t2;
+	*t2 ^= *t3;
+	*t0 ^= *t1;
+
+	*t3 ^= *t1;
+	*t2 ^= *t0;
+	*t1 ^= *t2;
+}
+
+/* Byte-level diffusion */
+static inline void aria_diff_byte(u32 *t1, u32 *t2, u32 *t3)
+{
+	*t1 = ((*t1 << 8) & 0xff00ff00) ^ ((*t1 >> 8) & 0x00ff00ff);
+	*t2 = rotr32(*t2, 16);
+	*t3 = bswap32(*t3);
+}
+
+/* Key XOR Layer */
+static inline void aria_add_round_key(u32 *rk, u32 *t0, u32 *t1, u32 *t2,
+				      u32 *t3)
+{
+	*t0 ^= rk[0];
+	*t1 ^= rk[1];
+	*t2 ^= rk[2];
+	*t3 ^= rk[3];
+}
+/* Odd round Substitution & Diffusion */
+static inline void aria_subst_diff_odd(u32 *t0, u32 *t1, u32 *t2, u32 *t3)
+{
+	aria_sbox_layer1_with_pre_diff(t0, t1, t2, t3);
+	aria_diff_word(t0, t1, t2, t3);
+	aria_diff_byte(t1, t2, t3);
+	aria_diff_word(t0, t1, t2, t3);
+}
+
+/* Even round Substitution & Diffusion */
+static inline void aria_subst_diff_even(u32 *t0, u32 *t1, u32 *t2, u32 *t3)
+{
+	aria_sbox_layer2_with_pre_diff(t0, t1, t2, t3);
+	aria_diff_word(t0, t1, t2, t3);
+	aria_diff_byte(t3, t0, t1);
+	aria_diff_word(t0, t1, t2, t3);
+}
+
+/* Q, R Macro expanded ARIA GSRK */
+static inline void aria_gsrk(u32 *rk, u32 *x, u32 *y, u32 n)
+{
+	int q = 4 - (n / 32);
+	int r = n % 32;
+
+	rk[0] = (x[0]) ^
+		((y[q % 4]) >> r) ^
+		((y[(q + 3) % 4]) << (32 - r));
+	rk[1] = (x[1]) ^
+		((y[(q + 1) % 4]) >> r) ^
+		((y[q % 4]) << (32 - r));
+	rk[2] = (x[2]) ^
+		((y[(q + 2) % 4]) >> r) ^
+		((y[(q + 1) % 4]) << (32 - r));
+	rk[3] =	(x[3]) ^
+		((y[(q + 3) % 4]) >> r) ^
+		((y[(q + 2) % 4]) << (32 - r));
+}
+
+#endif
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] crypto: add ARIA testmgr tests
  2022-06-20 16:41 [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm Taehee Yoo
  2022-06-20 16:41 ` [PATCH 1/2] crypto: Implement " Taehee Yoo
@ 2022-06-20 16:41 ` Taehee Yoo
  2022-06-30  6:39 ` [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm Herbert Xu
  2 siblings, 0 replies; 7+ messages in thread
From: Taehee Yoo @ 2022-06-20 16:41 UTC (permalink / raw)
  To: linux-crypto, herbert, davem; +Cc: ap420073

It contains ARIA ecb(aria), cbc(aria), cfb(aria), ctr(aria), and gcm(aria).
ecb testvector is from RFC standard.
cbc, cfb, and ctr testvectors are from KISA[1], who developed ARIA
algorithm.
gcm(aria) is from openssl test vector.

[1] https://seed.kisa.or.kr/kisa/kcmvp/EgovVerification.do (Korean)

Signed-off-by: Taehee Yoo <ap420073@gmail.com>
---
 crypto/tcrypt.c  |   38 +-
 crypto/testmgr.c |   31 +
 crypto/testmgr.h | 2860 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 2928 insertions(+), 1 deletion(-)

diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index 2bacf8384f59..835159555e69 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -71,7 +71,7 @@ static const char *check[] = {
 	"blowfish", "twofish", "serpent", "sha384", "sha512", "md4", "aes",
 	"cast6", "arc4", "michael_mic", "deflate", "crc32c", "tea", "xtea",
 	"khazad", "wp512", "wp384", "wp256", "xeta",  "fcrypt",
-	"camellia", "seed", "rmd160",
+	"camellia", "seed", "rmd160", "aria",
 	"lzo", "lzo-rle", "cts", "sha3-224", "sha3-256", "sha3-384",
 	"sha3-512", "streebog256", "streebog512",
 	NULL
@@ -1729,6 +1729,10 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
 		ret += tcrypt_test("ccm(sm4)");
 		break;
 
+	case 57:
+		ret += tcrypt_test("gcm(aria)");
+		break;
+
 	case 100:
 		ret += tcrypt_test("hmac(md5)");
 		break;
@@ -1865,6 +1869,12 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
 		ret += tcrypt_test("cfb(sm4)");
 		ret += tcrypt_test("ctr(sm4)");
 		break;
+	case 192:
+		ret += tcrypt_test("ecb(aria)");
+		ret += tcrypt_test("cbc(aria)");
+		ret += tcrypt_test("cfb(aria)");
+		ret += tcrypt_test("ctr(aria)");
+		break;
 	case 200:
 		test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0,
 				speed_template_16_24_32);
@@ -2186,6 +2196,32 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
 				   16, 16, aead_speed_template_19, num_mb);
 		break;
 
+	case 226:
+		test_cipher_speed("ecb(aria)", ENCRYPT, sec, NULL, 0,
+				  speed_template_16_24_32);
+		test_cipher_speed("ecb(aria)", DECRYPT, sec, NULL, 0,
+				  speed_template_16_24_32);
+		test_cipher_speed("cbc(aria)", ENCRYPT, sec, NULL, 0,
+				  speed_template_16_24_32);
+		test_cipher_speed("cbc(aria)", DECRYPT, sec, NULL, 0,
+				  speed_template_16_24_32);
+		test_cipher_speed("cfb(aria)", ENCRYPT, sec, NULL, 0,
+				  speed_template_16_24_32);
+		test_cipher_speed("cfb(aria)", DECRYPT, sec, NULL, 0,
+				  speed_template_16_24_32);
+		test_cipher_speed("ctr(aria)", ENCRYPT, sec, NULL, 0,
+				  speed_template_16_24_32);
+		test_cipher_speed("ctr(aria)", DECRYPT, sec, NULL, 0,
+				  speed_template_16_24_32);
+		break;
+
+	case 227:
+		test_aead_speed("gcm(aria)", ENCRYPT, sec,
+				NULL, 0, 16, 8, speed_template_16_24_32);
+		test_aead_speed("gcm(aria)", DECRYPT, sec,
+				NULL, 0, 16, 8, speed_template_16_24_32);
+		break;
+
 	case 300:
 		if (alg) {
 			test_hash_speed(alg, sec, generic_hash_speed_template);
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 5801a8f9f713..14bb5fa6adc5 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -4412,6 +4412,12 @@ static const struct alg_test_desc alg_test_descs[] = {
 		.suite = {
 			.cipher = __VECS(anubis_cbc_tv_template)
 		},
+	}, {
+		.alg = "cbc(aria)",
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aria_cbc_tv_template)
+		},
 	}, {
 		.alg = "cbc(blowfish)",
 		.test = alg_test_skcipher,
@@ -4529,6 +4535,12 @@ static const struct alg_test_desc alg_test_descs[] = {
 		.suite = {
 			.cipher = __VECS(aes_cfb_tv_template)
 		},
+	}, {
+		.alg = "cfb(aria)",
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aria_cfb_tv_template)
+		},
 	}, {
 		.alg = "cfb(sm4)",
 		.test = alg_test_skcipher,
@@ -4598,6 +4610,12 @@ static const struct alg_test_desc alg_test_descs[] = {
 		.suite = {
 			.cipher = __VECS(aes_ctr_tv_template)
 		}
+	}, {
+		.alg = "ctr(aria)",
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aria_ctr_tv_template)
+		}
 	}, {
 		.alg = "ctr(blowfish)",
 		.test = alg_test_skcipher,
@@ -4858,6 +4876,12 @@ static const struct alg_test_desc alg_test_descs[] = {
 		.suite = {
 			.cipher = __VECS(arc4_tv_template)
 		}
+	}, {
+		.alg = "ecb(aria)",
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = __VECS(aria_tv_template)
+		}
 	}, {
 		.alg = "ecb(blowfish)",
 		.test = alg_test_skcipher,
@@ -5074,6 +5098,13 @@ static const struct alg_test_desc alg_test_descs[] = {
 		.suite = {
 			.aead = __VECS(aes_gcm_tv_template)
 		}
+	}, {
+		.alg = "gcm(aria)",
+		.generic_driver = "gcm_base(ctr(aria-generic),ghash-generic)",
+		.test = alg_test_aead,
+		.suite = {
+			.aead = __VECS(aria_gcm_tv_template)
+		}
 	}, {
 		.alg = "gcm(sm4)",
 		.generic_driver = "gcm_base(ctr(sm4-generic),ghash-generic)",
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 4d7449fc6a65..7de3e04a4228 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -26457,6 +26457,2866 @@ static const struct cipher_testvec seed_tv_template[] = {
 	}
 };
 
+/*
+ * ARIA test vectors
+ */
+static const struct cipher_testvec aria_tv_template[] = {
+	{
+		.key    = "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
+		.klen   = 16,
+		.ptext  = "\x00\x11\x22\x33\x44\x55\x66\x77"
+			  "\x88\x99\xaa\xbb\xcc\xdd\xee\xff",
+		.ctext  = "\xd7\x18\xfb\xd6\xab\x64\x4c\x73"
+			  "\x9d\xa9\x5f\x3b\xe6\x45\x17\x78",
+		.len    = 16,
+	}, {
+		.key    = "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
+			  "\x10\x11\x12\x13\x14\x15\x16\x17",
+		.klen   = 24,
+		.ptext  = "\x00\x11\x22\x33\x44\x55\x66\x77"
+			  "\x88\x99\xaa\xbb\xcc\xdd\xee\xff",
+		.ctext  = "\x26\x44\x9c\x18\x05\xdb\xe7\xaa"
+			  "\x25\xa4\x68\xce\x26\x3a\x9e\x79",
+		.len    = 16,
+	}, {
+		.key    = "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
+			  "\x10\x11\x12\x13\x14\x15\x16\x17"
+			  "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
+		.klen   = 32,
+		.ptext  = "\x00\x11\x22\x33\x44\x55\x66\x77"
+			  "\x88\x99\xaa\xbb\xcc\xdd\xee\xff",
+		.ctext  = "\xf9\x2b\xd7\xc7\x9f\xb7\x2e\x2f"
+			  "\x2b\x8f\x80\xc1\x97\x2d\x24\xfc",
+		.len    = 16,
+	}
+};
+
+static const struct cipher_testvec aria_cbc_tv_template[] = {
+	{
+		.key	= "\x7c\x95\x0d\x07\xe6\x14\x98\x92"
+			  "\x07\xac\x22\x41\x4d\x23\x27\x37",
+		.klen	= 16,
+		.iv	= "\x9d\xd5\x62\xce\x3d\x07\xd9\x89"
+			  "\xf2\x78\x19\x4b\x65\x39\xc3\xc6",
+		.ptext	= "\xcb\xbf\x47\x35\xc5\x37\xf0\x4e"
+			  "\x85\x19\x21\x72\x33\x00\xde\x28",
+		.ctext	= "\xf4\x80\x89\x89\x4a\x37\xda\x98"
+			  "\x80\x52\x74\x75\xd9\xef\x58\xff",
+		.len	= 16,
+	}, {
+		.key	= "\x8f\xb9\x8d\xc9\xd7\x99\xfe\x7d"
+			  "\xeb\x14\xaa\x65\xaf\x8c\x38\x1a",
+		.klen	= 16,
+		.iv	= "\xb1\x67\x46\x57\x0c\x64\x65\xf2"
+			  "\x8c\x2f\x65\x11\x12\x33\xd4\x9a",
+		.ptext	= "\x3a\xaf\xc1\xeb\x3c\x0c\xc5\xcc"
+			  "\x10\x6e\x45\xa1\xd6\x89\xf1\xe5"
+			  "\x74\xb6\x90\xd3\x81\x45\x00\x66"
+			  "\x62\x15\x78\x84\xb2\x63\x11\x76",
+		.ctext	= "\x3d\x7d\x3a\xeb\x23\x85\x3e\x72"
+			  "\x12\x45\xbb\x5b\x42\x99\xec\xa0"
+			  "\xa2\xbe\x75\xd6\xb1\xd8\xea\x6f"
+			  "\x97\xfe\xfd\xcc\xfc\x08\x38\x00",
+		.len	= 32,
+	}, {
+		.key	= "\xe8\xe0\x85\x9c\x33\x06\x36\x5f"
+			  "\xa9\xab\x72\x66\xa1\xd7\xf5\x0d",
+		.klen	= 16,
+		.iv	= "\x5d\xd3\xaf\x13\xed\x82\xc8\x92"
+			  "\x4f\xf4\xe2\x35\xdb\x39\x9e\xa5",
+		.ptext	= "\xdf\x73\x61\x44\x86\x2f\x58\x1e"
+			  "\xfe\xf6\xb9\x1d\xd9\x1e\x4c\x7c"
+			  "\xb4\xe6\x2b\x7d\x17\xc3\xc6\x5f"
+			  "\x9d\xf4\x29\x8a\x55\x5c\x82\x0e"
+			  "\x67\x91\xdd\x4b\xfb\x31\x33\xf1"
+			  "\x56\x75\xa3\x2c\x46\x08\xff\x18",
+		.ctext	= "\x85\x07\x8c\x88\x70\x7b\x39\xb8"
+			  "\xfd\x1d\xa1\xd0\x89\x5f\x3f\x85"
+			  "\x18\x5a\xde\x64\xbd\x54\xd5\x67"
+			  "\xd1\x27\x4c\x98\x82\x76\xea\x22"
+			  "\x52\x98\x79\xb4\x1d\xe8\x16\xd0"
+			  "\xc6\xea\xf7\xbb\x38\x89\xf2\x5d",
+		.len	= 48,
+	}, {
+		.key	= "\xc1\x19\x8a\x7b\xc9\xaf\x00\xb3"
+			  "\x92\x3c\xd7\xed\xe7\x76\xc5\x98",
+		.klen	= 16,
+		.iv	= "\xca\x62\x82\x1a\x5b\xb1\xcf\xc1"
+			  "\xfb\x50\xb7\xfc\xb0\x3b\x15\xcb",
+		.ptext	= "\xcb\x92\x56\x74\xc9\xee\x80\x78"
+			  "\x78\xf5\x73\xc5\x5b\x2c\x70\x2d"
+			  "\x4e\x0d\xd7\x17\x6d\x5a\x35\x74"
+			  "\x33\xb0\x7d\xf5\xdf\x5f\x96\x7b"
+			  "\x1c\x79\x16\xd0\xe0\x29\x4e\x94"
+			  "\x95\x46\x86\x7a\x77\x28\x89\xb4"
+			  "\x3d\xbb\x65\xab\xfb\xd1\x6c\xf4"
+			  "\x47\xbd\x7e\x7f\x9b\x1d\x8b\x12",
+		.ctext	= "\x69\xd2\x56\xdf\xa8\x1a\x97\xbd"
+			  "\x69\xb5\xbb\x6b\x29\x1d\x5f\x0f"
+			  "\xdf\x5f\x63\xc0\x83\x0b\xd7\xb1"
+			  "\x31\x2d\xbf\x73\xe1\xe5\x5d\x0e"
+			  "\x0c\x8d\xc4\x8a\xa9\xbd\x5f\xc7"
+			  "\xb5\x61\xa0\x2b\x90\x64\x1a\xde"
+			  "\xd2\xe1\x61\xb9\xce\xf4\x0b\x1c"
+			  "\x9c\x43\x69\x6d\xb2\x32\x98\x44",
+		.len	= 64,
+	}, {
+		.key	= "\xfa\xf7\x53\xf6\xd6\x08\x70\xf1"
+			  "\x32\x58\x97\x74\x04\x12\x1b\x14",
+		.klen	= 16,
+		.iv	= "\xdd\x93\xb2\x3e\xcb\xc1\x7c\x27"
+			  "\x7f\x9e\x41\x03\xab\x1d\xfb\x77",
+		.ptext	= "\xae\x34\x94\x50\x73\x32\xf0\x75"
+			  "\x96\x53\x2e\x1a\xc9\x91\x2b\x37"
+			  "\x77\xbe\x48\x39\xa7\xd0\x6e\xf7"
+			  "\x22\x7c\x4f\xe7\xd8\x06\xee\x92"
+			  "\x80\x57\x61\x45\x7f\x50\xd5\x0a"
+			  "\x0b\x5e\xd4\xd6\x90\x4e\xc3\x04"
+			  "\x52\x63\xaf\x02\x55\xa6\x49\x4b"
+			  "\x7a\x7e\x2e\x95\xea\x80\x6c\x4b"
+			  "\xb7\x88\x42\x3d\xc1\x09\x28\x97"
+			  "\xd7\xa1\x0f\x0f\x1f\xf1\xea\x63",
+		.ctext	= "\x6b\x83\x00\xf1\x79\xb2\x23\xbf"
+			  "\x17\x26\x8a\xef\xd3\xe1\x0e\x82"
+			  "\x5b\xc7\xde\x3e\x39\x72\x2d\xb0"
+			  "\xad\x25\x3b\xe6\x3b\x9f\xe9\x4b"
+			  "\x6e\xe8\x77\xf5\x9d\x7d\x00\xae"
+			  "\x73\x7b\x81\xff\xe3\x55\x8e\x90"
+			  "\xdf\xe4\xcd\xd5\xdc\x16\x8b\x7a"
+			  "\xe5\x04\x92\x18\xff\xcc\x63\x1b"
+			  "\x53\xf3\x26\x44\x5c\x48\x1d\xa2"
+			  "\x1f\x3f\xe0\x8b\x8f\x6f\xc2\x38",
+		.len	= 80,
+	}, {
+		.key	= "\xb8\xab\x6d\x03\x9d\xec\x15\x0a"
+			  "\xcd\xcd\x68\x73\xa9\x35\x7e\x8a",
+		.klen	= 16,
+		.iv	= "\x9d\xf1\xc0\xa0\x02\x06\xf0\x03"
+			  "\x43\x45\x6a\x2e\x3f\x21\xa9\x3c",
+		.ptext	= "\xef\xbe\x0c\xa3\x49\x4a\xda\x1e"
+			  "\x64\x90\x85\xeb\xdc\xca\x2b\x37"
+			  "\x78\xb7\x62\xd7\x0a\xee\x35\x38"
+			  "\x97\x72\x6a\x99\xb8\x86\x07\x77"
+			  "\x40\xc3\x14\x49\x1f\x67\xa1\x6e"
+			  "\x87\xf0\x0b\x64\x4d\xea\x7c\x3a"
+			  "\x91\x05\xb1\x48\xa1\x6a\x00\x1d"
+			  "\x1b\x4f\x99\xb9\x52\xc9\x0c\xfd"
+			  "\xf3\xe2\x0b\x5f\xe9\xec\x71\xe2"
+			  "\x7d\x15\x84\x46\xc2\x3b\x77\x7b"
+			  "\x30\x01\x34\x5c\x8f\x22\x58\x9a"
+			  "\x17\x05\x7e\xf6\xd5\x92\xc0\xb4",
+		.ctext	= "\x79\x50\x9b\x34\xd7\x22\x9a\x72"
+			  "\x61\xd7\xd8\xa9\xdb\xcf\x2f\xb0"
+			  "\x81\x11\xe3\xed\xa0\xe4\xbd\x8d"
+			  "\xe6\xf2\x52\x52\x40\xec\x9f\x3b"
+			  "\xd4\x48\xc6\xdf\xfd\x36\x90\x8a"
+			  "\x2f\x3b\xb0\xfb\xf4\x2b\x99\xa5"
+			  "\xb2\x39\xc7\x52\x57\x2b\xbc\xd7"
+			  "\x3f\x06\x10\x15\x2e\xf7\xaa\x79"
+			  "\xd6\x6a\xe5\x4e\x2d\x0f\x5f\xaf"
+			  "\xf9\x5a\x63\x28\x33\xf0\x85\x8a"
+			  "\x06\x45\xce\x73\xaa\x96\x1d\xcc"
+			  "\x6e\xb9\x25\xb8\x4c\xfe\xeb\x64",
+		.len	= 96,
+	}, {
+		.key	= "\x50\x45\x7b\x4c\x6d\x80\x53\x62"
+			  "\x90\x26\x77\xf8\x04\x65\x26\xe3",
+		.klen	= 16,
+		.iv	= "\x9d\xd3\x73\x7b\x9b\xbd\x45\x97"
+			  "\xd2\xbb\xa1\xb9\x08\x88\x2c\x85",
+		.ptext	= "\x9f\x11\xeb\x78\x74\xcc\x4e\xd6"
+			  "\x06\x4b\x6d\xe4\xdb\x11\x91\x58"
+			  "\x1f\xa4\xf6\x0e\x8f\xe4\xcf\xfc"
+			  "\x95\x9a\x8b\x68\xb4\x54\x57\x58"
+			  "\x27\x71\xe4\x4b\xc5\x78\x6a\x26"
+			  "\x28\xae\xed\x71\x0e\xe7\xbf\xc3"
+			  "\xff\x9c\x46\x7b\x31\x3e\xff\xb1"
+			  "\xa8\xca\xc3\x6d\xa1\x9e\x49\x16"
+			  "\x31\x8b\xed\x2d\x2a\x2b\xaf\x3b"
+			  "\x3e\x74\x7f\x07\x67\x8e\xb8\x0d"
+			  "\x86\xe2\xea\x2c\x4a\x74\xdc\x9f"
+			  "\x53\x72\xd1\x2e\x97\x0d\x0b\xa5"
+			  "\x05\x87\x8e\x86\x69\x8d\x26\xfb"
+			  "\x90\xc8\xab\x0e\xac\xaf\x84\x1c",
+		.ctext	= "\x3c\x91\xab\x71\xe4\x77\x3e\xb0"
+			  "\x7f\x20\x2e\xd0\xe1\xbe\xfd\x3c"
+			  "\x06\x6c\x36\x75\x46\x27\xfd\x2d"
+			  "\xba\x0f\xf0\x3c\x6d\x1e\x4b\x20"
+			  "\xe9\x5e\x30\xd8\x03\xc6\xa0\x86"
+			  "\xa8\xc7\xa4\x7f\x0e\x1f\x35\x55"
+			  "\x24\x53\x02\xd5\x77\x30\x73\xdc"
+			  "\xa5\xaf\x19\x92\x5b\x36\x86\x0e"
+			  "\xcf\xf2\x5c\x00\xde\x92\xbf\x89"
+			  "\x76\x46\xd5\x26\xb1\x8d\xa4\xef"
+			  "\x61\x7e\x78\xb4\x68\xf5\x5b\x1d"
+			  "\x39\x65\x32\x3a\xad\xff\x8b\x37"
+			  "\x60\xc2\x8a\xaf\x48\x96\x8b\x9f"
+			  "\x12\x6c\x70\x77\x95\xf3\x58\xb0",
+		.len	= 112,
+	}, {
+		.key	= "\xf9\x9f\x6a\x87\xa1\x2d\x6e\xac"
+			  "\xde\xbb\x3e\x15\x5e\x49\xa4\xef",
+		.klen	= 16,
+		.iv	= "\xeb\x8e\x4f\xbe\x4b\x47\xd6\x4f"
+			  "\x65\xd0\xfa\xee\xa6\xf1\x2c\xda",
+		.ptext	= "\xa3\xfa\x4f\xf6\x00\x12\xbe\xc1"
+			  "\x90\xcc\x91\x88\xbd\xfb\x1c\xdb"
+			  "\x2b\xc8\xb9\x3d\x98\x01\xc8\x1f"
+			  "\x07\xb4\xf3\x10\x1d\xfd\xb7\x2e"
+			  "\xcb\x1c\x1f\xe0\x2d\xca\xd3\xc7"
+			  "\xb2\xce\x52\xf1\x7e\xcb\x7c\x50"
+			  "\x0c\x5c\x53\x6b\x18\x62\x02\x54"
+			  "\xbc\x9d\x1f\xda\xd9\x7a\x2d\xff"
+			  "\xb8\x2c\x65\xad\xf1\xfe\xb6\xa4"
+			  "\x8c\xe8\x0a\xb7\x67\x60\xcb\x38"
+			  "\xd7\x72\xa5\xb1\x92\x13\x8e\xd4"
+			  "\xcd\xb3\x04\xb5\xa1\x11\x96\x37"
+			  "\xb3\x53\xa6\xc4\x14\x56\x6d\x42"
+			  "\x66\x43\x40\x42\x41\x63\x11\x7a"
+			  "\xd5\x34\x38\x75\xd0\xbc\x74\x89"
+			  "\x82\x1d\x2c\x0a\x3e\x6a\xfb\xbd",
+		.ctext	= "\x09\x58\xf3\x22\xe5\x10\xf6\x3d"
+			  "\xba\xb1\xfa\x5a\x16\xfe\xc5\x32"
+			  "\x3d\x34\x59\x2e\x81\xde\x99\x2f"
+			  "\xeb\x6a\x97\x86\x1f\x47\x8d\xe6"
+			  "\x87\x79\x0e\xfe\xa4\xca\x09\xdc"
+			  "\x24\x9b\xbb\xb1\x90\x33\xce\xd7"
+			  "\x62\xfd\xfd\xa3\x65\x50\x07\x7c"
+			  "\x4c\xa2\x10\xc7\x32\x0a\x0d\x5e"
+			  "\x22\x29\x40\x71\xe5\xcc\x3a\x5b"
+			  "\x5b\x53\x51\xa5\x5b\xc1\x76\x05"
+			  "\x84\x6e\xe3\x58\x2b\xf2\x28\x76"
+			  "\x5c\x66\x90\xfe\x63\x30\x1c\x45"
+			  "\x26\x34\x80\xfe\x76\x87\x5b\xb1"
+			  "\x63\x10\x09\xf6\x9d\x35\xcb\xee"
+			  "\x3c\x60\x9d\x77\x5b\x36\x70\x09"
+			  "\x4b\x63\x63\x90\x97\x3a\x6c\x8a",
+		.len	= 128,
+	}, {
+		.key	= "\x04\xb9\x6c\x8f\x5e\x79\x02\x87"
+			  "\x88\x06\x7c\xfa\xd3\x7b\x56\xfe",
+		.klen	= 16,
+		.iv	= "\x4b\xc8\x93\x20\x98\x04\xba\x5a"
+			  "\x22\x04\x1f\x3f\x79\x2c\x63\x79",
+		.ptext	= "\xf3\x85\x3e\x75\x97\x10\x7c\x5d"
+			  "\x39\x5a\x46\x47\xe7\x51\xa3\xac"
+			  "\x84\x56\x3f\x1b\xb3\x93\x6a\x2e"
+			  "\xf7\x8f\x63\xbe\x18\xff\xd7\x53"
+			  "\xc8\xe0\xa5\xde\x86\xc2\xe4\xab"
+			  "\xc3\x67\x27\x91\x43\x8c\xff\x6c"
+			  "\xc7\x07\xc2\xcd\xe9\x12\x8b\xef"
+			  "\x47\xe7\x82\xed\xe3\x8d\x5e\x33"
+			  "\xca\xf1\x28\x32\xf4\x38\x41\x59"
+			  "\x6c\x54\xa6\x40\xb0\xd5\x73\x26"
+			  "\x5b\x02\xa6\x9d\x01\x29\x26\x84"
+			  "\x5b\x33\x04\x36\xa4\x7b\x00\x01"
+			  "\x42\xe1\x4f\xda\xa9\x1a\x9b\x4e"
+			  "\x7d\x4a\x4c\xbc\xf6\xd4\x06\xc2"
+			  "\x89\x70\x72\xf5\xc5\x7f\x42\xd5"
+			  "\x7b\x9c\x6f\x00\x21\x74\xc5\xa5"
+			  "\x78\xd7\xa2\x3c\x6d\x0f\xfb\x74"
+			  "\x3d\x70\x9f\x6d\xdd\x30\xc0\x28",
+		.ctext	= "\xc0\x49\x98\xb9\xf6\x58\xeb\x56"
+			  "\x36\x76\x7a\x40\x7c\x27\x80\x62"
+			  "\xe3\xcb\x9c\x87\x2c\x03\xc2\x0c"
+			  "\x82\x00\x50\xd2\xe4\x61\x4d\x54"
+			  "\x88\x10\x6f\x0a\xb4\x25\x57\xba"
+			  "\xf0\x07\xe3\x55\x06\xb3\x72\xe9"
+			  "\x2f\x9f\x1e\x50\xa8\x15\x69\x71"
+			  "\xe3\xe5\x50\x32\xe5\xe0\x47\x0f"
+			  "\x3a\xaa\x7d\xc0\x09\x0e\xdb\x1a"
+			  "\xae\xb6\xa5\x87\x63\xd6\xbe\x8b"
+			  "\xb2\x3d\x10\x1e\xb3\x68\xcf\x8a"
+			  "\xe5\xa8\x89\xa9\xfe\x79\x13\x77"
+			  "\xc4\x3f\x6f\x9f\xdd\x76\x5b\xf2"
+			  "\x05\x67\x8a\x58\xb4\x31\xac\x64"
+			  "\x6f\xc4\xc1\x6b\x08\x79\x3f\xe5"
+			  "\x1c\x9a\x66\x3f\x7d\x1f\x18\xb1"
+			  "\x07\xa5\x7b\x4f\x2c\x43\x33\x84"
+			  "\xab\x1b\xc0\x7d\x49\x2f\x27\x9b",
+		.len	= 144,
+	}, {
+		.key	= "\x99\x79\xaf\x3c\xfb\xbd\xe7\xca"
+			  "\xee\x4a\x4d\xb2\x23\x1e\xb6\x07",
+		.klen	= 16,
+		.iv	= "\xb4\xfc\xaa\xc1\x08\xbf\x68\xb2"
+			  "\xf6\xef\x29\xbc\x2d\x92\xa9\x40",
+		.ptext	= "\xd3\x44\xe4\xd9\x6c\x8a\x1d\x4b"
+			  "\xfe\x64\x25\xb6\x72\x21\xda\x10"
+			  "\x3e\x77\xee\xd1\x41\xd3\xea\xf0"
+			  "\xee\xee\x72\x0f\xad\xa1\xca\xf3"
+			  "\x7e\xfa\x99\x36\xe0\x8f\xed\x40"
+			  "\xf1\x12\x80\x73\xd6\x26\x3a\xa6"
+			  "\x5d\x71\xf6\xd5\xe1\xf3\x89\x16"
+			  "\x6f\x96\x00\xcf\x26\x06\x2a\x27"
+			  "\xe4\xc2\x57\xba\x1f\x74\x5e\x91"
+			  "\x10\x7e\xe5\x51\x17\xd5\xdc\xb2"
+			  "\x5b\x12\x4b\x33\xb1\xc6\x4e\x0d"
+			  "\xbf\x0e\x5d\x65\x61\x68\xd1\xc5"
+			  "\x4b\xc5\xa4\xcd\xf0\xe0\x79\x26"
+			  "\xa3\xcd\xdc\xb8\xfc\xd5\xca\x1d"
+			  "\x7e\x81\x74\x55\x76\xf5\x40\xbb"
+			  "\x26\x7f\x11\x37\x23\x70\xc8\xb6"
+			  "\xfc\x2b\x0b\xd7\x1c\x7b\x45\xe7"
+			  "\xf2\x2a\xed\x10\x4f\xcf\x0c\xcd"
+			  "\x0f\xe7\xf9\xa1\xfb\x27\x67\x09"
+			  "\xee\x11\xa2\xaf\x37\xc6\x16\xe0",
+		.ctext	= "\x60\xce\x9a\xdb\xb2\xe8\xa2\x64"
+			  "\x35\x9c\x5b\x97\x21\x9b\x95\x89"
+			  "\x7b\x89\x15\x01\x97\x8b\xec\x9b"
+			  "\xb9\xce\x7d\xb9\x9d\xcc\xd0\xa0"
+			  "\xda\x39\x5d\xfd\xb9\x51\xe7\x2f"
+			  "\xe7\x9b\x73\x1b\x07\xfb\xfd\xbb"
+			  "\xce\x84\x68\x76\x12\xc9\x6c\x38"
+			  "\xc0\xdc\x67\x96\x5e\x63\xcf\xe5"
+			  "\x57\x84\x7a\x14\x8c\xab\x38\x94"
+			  "\x1c\x27\xc3\xe0\x03\x58\xfe\x98"
+			  "\x97\xfc\x96\xba\x65\x87\x1e\x44"
+			  "\xf8\x00\x91\x6a\x14\x05\xf3\xf9"
+			  "\x8e\x3e\x7a\x3c\x41\x96\x15\x4f"
+			  "\xa8\xc0\x73\x1f\x1b\xeb\xaf\xec"
+			  "\xc4\x5a\x35\xed\x42\x2f\x47\xea"
+			  "\xfd\x2f\x29\xf6\x0f\x58\x8b\x3d"
+			  "\x15\x81\xe3\xa4\xa6\x5f\x33\x33"
+			  "\xe9\x0d\x06\x4f\x7f\x89\x2c\x3d"
+			  "\x18\x45\x1f\xd1\xc5\x74\xf7\x52"
+			  "\x2f\x9b\x72\x3d\x1f\xad\x12\x1b",
+		.len	= 160,
+	}, {
+		.key	= "\x7f\x92\xd5\x06\x30\x6b\xc0\x23"
+			  "\x87\xa8\x8e\x6d\xc7\xc5\xd7\xf1"
+			  "\x5f\xce\x89\xb3\xd5\x7f\x7f\xf0",
+		.klen	= 24,
+		.iv	= "\xfd\xab\x56\xa6\x6e\xda\x7c\x57"
+			  "\x36\x36\x89\x09\xcd\xa8\xd3\x91",
+		.ptext	= "\x48\x3e\x3c\x11\xcf\xd0\x4f\xc0"
+			  "\x51\xe3\x8c\xe9\x76\xcd\xff\x37",
+		.ctext	= "\x2d\x8f\x39\x71\x0a\x2c\xc9\x93"
+			  "\xb6\x1a\x5c\x53\x06\x4d\xaa\xcf",
+		.len	= 16,
+	}, {
+		.key	= "\xd6\x1a\x18\x2f\x68\x2f\xb6\xfe"
+			  "\x3d\x2d\x85\x75\x6e\x18\x8a\x52"
+			  "\x53\x39\xfc\xc1\xf5\xc0\x56\x22",
+		.klen	= 24,
+		.iv	= "\xc6\xae\xaa\x0d\x90\xf2\x38\x93"
+			  "\xac\xd2\x3f\xc7\x74\x8d\x13\x7e",
+		.ptext	= "\xfa\x3f\x70\x52\xfb\x04\x0e\xed"
+			  "\x0e\x60\x75\x84\x21\xdf\x13\xa1"
+			  "\x26\xf8\x8c\x26\x0a\x37\x51\x8f"
+			  "\xe7\x9c\x74\x77\x7a\x3e\xbb\x5d",
+		.ctext	= "\xc1\x53\x86\xf8\x60\x5d\x72\x59"
+			  "\x7e\xdf\xc8\xdb\x85\xd6\x9f\x2a"
+			  "\xa1\xda\xe5\x85\x78\x4f\x1b\x6f"
+			  "\x58\xf3\x2b\xff\x34\xe4\x97\x4e",
+		.len	= 32,
+	}, {
+		.key	= "\xd7\x33\xf3\xa9\x5b\xb4\x86\xea"
+			  "\xe3\x7d\x50\x62\x3b\x73\xaf\xc4"
+			  "\xda\x89\xd9\x3c\xcc\xe4\x73\xb0",
+		.klen	= 24,
+		.iv	= "\xef\x3e\x5f\x46\x62\x88\xd5\x26"
+			  "\x3b\xd3\xb5\x81\x78\x70\x1b\xd2",
+		.ptext	= "\x39\x56\x34\x63\x2c\xc5\x51\x13"
+			  "\x48\x29\x3a\x58\xbe\x41\xc5\x80"
+			  "\x2c\x80\xa7\x3c\x14\xb4\x89\x5e"
+			  "\x8e\xe5\x5f\xe2\x39\x80\xf5\x2b"
+			  "\x77\xb5\xca\x90\xda\x1d\x22\x17"
+			  "\xd9\xa0\x57\x80\xc8\x96\x70\x86",
+		.ctext	= "\x25\x5f\x66\x15\xb5\x62\xfb\x55"
+			  "\xb3\x77\xa1\x7d\x03\xba\x86\x0a"
+			  "\x0d\x5b\xbb\x06\xe9\xe2\xa8\x41"
+			  "\xa3\x58\xd6\x4b\xcb\x7f\xd0\x15"
+			  "\x3b\x02\x74\x5d\x4c\x4c\xb0\xa5"
+			  "\x06\xc9\x59\x53\x2a\x36\xeb\x59",
+		.len	= 48,
+	}, {
+		.key	= "\x07\x2c\xf4\x61\x79\x09\x01\x8f"
+			  "\x37\x32\x98\xd4\x86\x2b\x3b\x80"
+			  "\x07\x60\xba\xf0\x2e\xc3\x4a\x57",
+		.klen	= 24,
+		.iv	= "\xf5\xb5\xd7\xbf\xd2\x2a\x9b\x4a"
+			  "\xe6\x08\xf0\xbe\x77\xd1\x62\x40",
+		.ptext	= "\xa0\x82\x09\x60\x47\xbb\x16\x56"
+			  "\x50\x1f\xab\x8b\x10\xfe\xf0\x5c"
+			  "\x05\x32\x63\x1a\xc4\x46\x6f\x55"
+			  "\x32\xde\x41\x5a\xf7\x52\xd7\xfa"
+			  "\x30\x9d\x59\x8d\x64\x76\xad\x37"
+			  "\xba\xbc\x46\x6a\x69\x17\x3c\xac"
+			  "\x6f\xdd\xa2\x9b\x86\x32\x14\x2e"
+			  "\x54\x74\x8f\x3d\xe2\xd6\x85\x44",
+		.ctext	= "\x91\x02\xa9\xd3\x4b\x9a\x8f\xe6"
+			  "\x9f\xe4\x51\x57\xc9\x42\xda\x68"
+			  "\xca\xf6\x54\x51\x90\xec\x20\x2e"
+			  "\xab\x25\x6c\xd9\x8b\x99\xa6\x1c"
+			  "\x72\xc9\x01\xd6\xbc\x2b\x26\x78"
+			  "\x42\x00\x84\x0a\xdd\xa8\xd9\xb5"
+			  "\xc6\xc8\x30\xb6\xab\xea\x71\x84"
+			  "\xb2\x57\x97\x32\xdb\x35\x23\xd8",
+		.len	= 64,
+	}, {
+		.key	= "\x4f\x4a\x31\x64\xc6\xa5\x29\xaa"
+			  "\xad\xfd\x32\x94\x1f\x56\x57\xd1"
+			  "\x9d\x7e\x3d\x49\x00\x36\xb1\x5d",
+		.klen	= 24,
+		.iv	= "\xb2\x92\x83\x70\x1e\xa3\x97\xa6"
+			  "\x65\x53\x39\xeb\x53\x8f\xb1\x38",
+		.ptext	= "\x91\xac\x17\x11\x1c\x03\x69\x53"
+			  "\xf5\xdf\xdb\x2c\x1b\x9a\x6e\x6b"
+			  "\xb6\x02\xc4\xfa\x95\x01\x33\xa8"
+			  "\xda\x7e\x18\x2c\xf4\x7e\x6e\x67"
+			  "\xce\x8f\x9f\xea\x46\x66\x99\xb8"
+			  "\xe1\xc7\x25\x4d\xbd\xa5\x74\xdf"
+			  "\xc7\x8b\xfb\xe3\x2d\x3a\x82\xd3"
+			  "\x17\x94\x77\x2f\x92\xb8\x87\xc2"
+			  "\xcc\x6f\x70\x26\x87\xc7\x10\x8a"
+			  "\xc8\xfd\xc2\xb3\xcf\xa0\xeb\x41",
+		.ctext	= "\x28\x23\x3a\x4a\x18\xb7\xb6\x05"
+			  "\xd4\x1b\x6a\x9e\xa7\xf2\x38\x01"
+			  "\x78\xd3\xb0\x1b\x95\x68\x59\xf1"
+			  "\xc0\xed\x30\x46\x2e\xb9\xa6\xdc"
+			  "\xde\xef\xa6\x85\x19\xfc\x4d\x36"
+			  "\x5d\x24\x92\x62\x75\x32\x76\x6d"
+			  "\x6d\xa9\x07\xe1\x4f\x59\x84\x1a"
+			  "\x68\x9a\x07\x48\xd3\x86\xf6\xf1"
+			  "\x5b\xf9\x35\xec\x7c\xaf\x47\x13"
+			  "\x9c\xc9\x33\x12\x10\x2f\x94\x8a",
+		.len	= 80,
+	}, {
+		.key	= "\x4c\xf4\xd0\x34\xd0\x95\xab\xae"
+			  "\x82\x5c\xfd\xfa\x13\x86\x25\xce"
+			  "\xf4\x13\x32\xcd\xc6\x6d\xf6\x50",
+		.klen	= 24,
+		.iv	= "\x12\x4a\x5b\x66\x3a\xd3\xfb\x1a"
+			  "\xaf\x06\xea\xf4\x65\x59\xd6\xc2",
+		.ptext	= "\x84\xa0\x53\x97\x61\x30\x70\x15"
+			  "\xac\x45\x8e\xe8\xeb\xa1\x72\x93"
+			  "\x26\x76\x98\x6f\xe4\x86\xca\xf0"
+			  "\x57\x89\xf2\x2b\xd4\xcf\x2d\x95"
+			  "\x86\x26\x20\x0e\x62\xfe\x8f\x1e"
+			  "\x5d\xcb\x2b\x7e\xdd\xab\xac\xda"
+			  "\x6e\x49\x20\xd5\xb7\x01\x83\x4e"
+			  "\xac\x45\x8f\xe1\x05\x3f\xd5\xb1"
+			  "\xee\xb7\x0d\x65\x00\x38\xab\x71"
+			  "\x70\x6e\xb3\x97\x86\xd3\xcd\xad"
+			  "\x51\x8b\x9c\xa0\x9a\x8b\x4c\xb9"
+			  "\x16\x01\x6a\x1f\xdf\xf0\xf9\x9e",
+		.ctext	= "\x38\x5b\x16\xef\xb8\x8c\x74\x7a"
+			  "\x55\x17\x71\xa7\x7d\x34\xd7\x6a"
+			  "\xc6\x31\x55\x6f\xbb\x61\xf4\x12"
+			  "\x81\x8c\x91\x0d\x10\xdb\xd5\x22"
+			  "\x77\x36\x32\xb6\x77\xb1\x5e\x21"
+			  "\xb5\xec\xf9\x64\x04\x90\x6f\xc6"
+			  "\x8a\x86\x23\xb5\xfe\xa4\xb6\x84"
+			  "\x91\xa1\x60\xe3\xd7\xf3\xb9\xda"
+			  "\x96\x23\x4a\xb3\xab\x75\x84\x04"
+			  "\x15\x1a\xbb\xe8\x02\x1e\x80\x7c"
+			  "\xc1\x93\x01\x0f\x5c\x4a\xde\x85"
+			  "\xbb\x93\x05\x66\x53\x74\x40\x56",
+		.len	= 96,
+	}, {
+		.key	= "\x25\x1b\xc2\xa6\x21\x25\xeb\x97"
+			  "\x4b\xf6\xcb\x3b\xcd\x61\xfd\x94"
+			  "\x37\x03\xb3\xd9\x74\x6e\x4d\xbb",
+		.klen	= 24,
+		.iv	= "\xfd\x87\x2b\xec\x4c\x2c\xbf\xe2"
+			  "\x94\x1a\xe6\xd9\xaf\x0e\x78\x17",
+		.ptext	= "\x58\x2b\x1d\x73\x9a\x9c\x63\x18"
+			  "\x88\x7a\x0e\x87\x2f\xf0\xb0\xdb"
+			  "\xc9\x9d\x79\x51\x34\x39\x4f\x07"
+			  "\xa2\x7c\x21\x04\x91\x3b\x79\x79"
+			  "\xfe\xd5\x51\x46\xd5\xcd\x28\xc0"
+			  "\xad\xb8\x55\xb2\xb2\x5a\x9a\xa2"
+			  "\xe2\x0c\xfc\x55\x7d\x60\xd2\x95"
+			  "\xb6\x08\x1d\x31\xaf\xf4\x17\x46"
+			  "\xa4\xbb\x0f\xbd\x67\x3c\x73\x15"
+			  "\x0c\x85\x2f\x62\xe5\xf4\x35\x96"
+			  "\xb1\x9b\x5d\x00\x10\xe9\x70\x12"
+			  "\x3a\x87\x7f\x67\xf1\x81\x7a\x05"
+			  "\xb4\xa6\xfe\xdf\x36\x31\x6d\x9e"
+			  "\x0e\xa9\x44\xa0\xb0\x05\xa9\x41",
+		.ctext	= "\x4b\x56\xe0\xc2\x65\x2f\x7c\x6f"
+			  "\xee\x22\xeb\x34\x1c\xa5\xb7\xc8"
+			  "\x35\xd7\x51\xfd\x6a\xf4\xdd\xc3"
+			  "\x38\xf4\xfc\x9d\x2e\xc2\x77\xb7"
+			  "\x93\x8e\x8c\xb3\x44\x9b\xaf\xbb"
+			  "\x99\xb9\xa8\x38\x1c\xfe\x63\xfb"
+			  "\x1f\xa0\xaa\x35\x29\x7b\x87\x49"
+			  "\x8e\x93\xa5\xb8\x5a\x85\x37\xa7"
+			  "\x67\x69\x49\xbd\xc3\xfa\x89\x1c"
+			  "\xf5\x60\x9b\xe7\x71\x96\x95\xd9"
+			  "\x0b\x98\xe6\x74\x1d\xa3\xd9\x89"
+			  "\x03\xe4\xf6\x66\xb3\x73\xb1\xac"
+			  "\x9f\xee\x8f\xc2\x96\xcc\x97\x78"
+			  "\x1b\x96\x63\x64\x00\x9c\x2d\x29",
+		.len	= 112,
+	}, {
+		.key	= "\x9c\x14\x44\x5a\xd5\x1c\x50\x08"
+			  "\x95\xc2\xf2\xaf\x3f\x29\xc9\x3e"
+			  "\x95\x5e\xc6\xb4\x2b\xf4\x3e\xe3",
+		.klen	= 24,
+		.iv	= "\x1b\xeb\x3d\x73\xfb\xd7\x1e\x2b"
+			  "\x0c\x3d\x58\x6c\xb4\x41\x9b\xfe",
+		.ptext	= "\x2f\x7e\x1c\x10\x81\x36\x2d\x79"
+			  "\xaf\xab\x10\x44\x2e\xcc\x0d\x6c"
+			  "\x9c\x14\xc2\xe4\xae\xb0\xbb\xda"
+			  "\x6a\xe0\x42\x3d\x96\x9f\x78\x7d"
+			  "\x70\x86\xa5\x92\x9f\xee\xcd\x3f"
+			  "\x6a\x55\x84\x98\x28\x03\x02\xc2"
+			  "\xf7\xec\x7a\xfa\xb1\xd9\xa8\xd8"
+			  "\x1c\xc3\xaa\xd5\x61\x7f\x10\x0c"
+			  "\xc0\xa1\x36\x3d\x81\x9a\xd2\x17"
+			  "\x2e\x23\xc9\xb7\xff\xdf\x47\x6c"
+			  "\x96\x3b\x0e\xbd\xec\x9a\x0e\xad"
+			  "\x8c\xaf\x36\x3d\xff\x29\x8b\x33"
+			  "\x87\x96\x77\x1a\x10\x81\x63\x8a"
+			  "\x63\xde\x88\xa9\x9d\xa9\x01\xf2"
+			  "\xdf\xc9\x25\x35\x48\x3a\x15\xdf"
+			  "\x20\x6b\x91\x7c\x56\xe5\x10\x7a",
+		.ctext	= "\x4d\x35\x70\xf1\x25\x02\x1d\x7f"
+			  "\x9e\x0f\x5b\x4b\x65\xab\xcc\x6b"
+			  "\x62\xab\x2b\xfa\xc0\x66\xee\x56"
+			  "\xb4\x66\x95\x22\x84\x39\xd8\x3f"
+			  "\x74\xba\x4f\x3f\xcd\xef\xcf\xf6"
+			  "\x76\xeb\x9e\x8a\xec\x9c\x31\xa0"
+			  "\x3e\x0c\xf9\xfa\x57\x90\xb4\x02"
+			  "\xac\xc8\x28\xda\xa0\x05\xb7\x7e"
+			  "\x75\x9c\x79\x36\xa9\x2f\x1a\x36"
+			  "\x56\x77\xda\x74\xc7\xb3\xdf\xf3"
+			  "\xb9\x83\x10\xf3\x6b\xe1\xdf\xcb"
+			  "\x11\x70\xb1\xa0\x68\x48\x26\x95"
+			  "\x10\x91\x94\xf3\xe9\x82\xb4\x8a"
+			  "\xaa\xde\xf8\x9f\xce\x82\x47\x18"
+			  "\x37\x5d\xda\x34\x74\x4d\x36\xbd"
+			  "\xa5\x6c\xa4\xb3\x70\xad\x00\xbd",
+		.len	= 128,
+	}, {
+		.key	= "\x2d\x2e\x0f\x30\x32\xed\xa9\x1f"
+			  "\x71\x4e\x68\x77\xe8\xa8\x5b\xdd"
+			  "\x3c\x5e\x68\x6b\xab\x03\xe4\xf8",
+		.klen	= 24,
+		.iv	= "\x42\xc1\x61\x9a\x50\xfb\xc7\x6a"
+			  "\x1a\x31\xa7\x87\xd0\x24\xcb\x5e",
+		.ptext	= "\xc0\x3b\x12\x28\xca\x26\x7b\xb3"
+			  "\x14\xc1\x7f\x66\xff\x3b\xa4\x80"
+			  "\x59\x77\x4f\xa0\xd4\xb2\xd9\x8a"
+			  "\xb6\x67\xe6\x28\xd3\x6f\xf2\xcf"
+			  "\xb8\x6d\x2d\xc4\x2a\x69\x89\xff"
+			  "\xcf\xbb\x11\x2e\x2a\x2b\x7c\xfd"
+			  "\xcd\x56\x02\x95\xc9\x54\x6e\x62"
+			  "\x6a\x97\x75\x1a\x21\x16\x46\xfb"
+			  "\xc2\xab\x62\x54\xef\xba\xae\x46"
+			  "\xd4\x14\xc6\xcc\x16\x1b\x95\xf9"
+			  "\x05\x26\x23\x81\x19\x27\xad\x7b"
+			  "\x9c\x8b\xfb\x65\xa4\x61\xee\x69"
+			  "\x44\xbf\x59\xde\x03\x61\x11\x12"
+			  "\x8d\x94\x48\x47\xa9\x52\x16\xfb"
+			  "\x6b\xaf\x59\x6d\xab\x74\xbf\x5c"
+			  "\xb6\x09\x21\x12\x42\x98\x13\xa1"
+			  "\xa8\x6f\xb9\x6d\x4d\xa6\xdc\xea"
+			  "\x61\x02\x3c\xa7\xcd\x1a\x28\x8c",
+		.ctext	= "\xa1\x4a\x83\xb2\xe0\xef\x3d\x94"
+			  "\xa4\x34\x66\x93\xb4\x89\x4e\x12"
+			  "\xe5\x61\xc9\xea\xe0\x16\x96\x1a"
+			  "\x3e\x94\x20\x81\xd4\x12\x7f\xf4"
+			  "\xb8\x3f\xc9\xe2\x99\xb5\x0f\x9e"
+			  "\x71\x86\x4f\x13\x78\x4e\xf1\x51"
+			  "\xd4\x7d\x6e\x47\x31\x9a\xd8\xf7"
+			  "\xb9\xb1\x17\xd0\xbd\xbf\x72\x86"
+			  "\xb4\x58\x85\xf0\x05\x67\xc4\x00"
+			  "\xca\xcb\xa7\x1a\x1d\x88\x29\xf4"
+			  "\xe2\xf6\xdd\x5a\x3e\x5a\xbb\x29"
+			  "\x48\x5a\x4a\x18\xcd\x5c\xf1\x09"
+			  "\x5b\xbe\x1a\x43\x12\xc5\x6e\x6e"
+			  "\x5e\x6d\x3b\x22\xf7\x58\xbd\xc8"
+			  "\xb1\x04\xaf\x44\x9c\x2b\x98\x5a"
+			  "\x14\xb7\x35\xb8\x9a\xce\x32\x28"
+			  "\x1f\x8d\x08\x8a\xb9\x82\xf0\xa5"
+			  "\x6a\x37\x29\xb6\x29\x3a\x53\x5e",
+		.len	= 144,
+	}, {
+		.key	= "\x66\xb8\x4d\x60\x67\x82\xcc\x8d"
+			  "\x1e\xda\x8f\x28\xe5\x02\xdc\x2c"
+			  "\x54\x84\x2a\x06\xb5\xd1\x34\x57",
+		.klen	= 24,
+		.iv	= "\xb8\x28\x4d\xf5\x69\xb9\xf3\x33"
+			  "\x5e\x0b\xa6\x62\x35\x9b\xfb\x97",
+		.ptext	= "\x3e\xc6\xec\xaf\x74\xe8\x72\x91"
+			  "\xb2\xc6\x56\xb3\x23\x29\x43\xe0"
+			  "\xfb\xcc\x21\x38\x64\x78\x9e\x78"
+			  "\xbb\x6e\x0d\x7b\xfd\x05\x74\x01"
+			  "\x7c\x94\xe0\xb0\xd7\x92\xfc\x58"
+			  "\x28\xfc\xe2\x7b\x7f\xf7\x31\x0d"
+			  "\x90\xb7\x60\x78\xa8\x9f\x52\xe3"
+			  "\xe6\xaa\x2a\xb4\xa7\x09\x60\x53"
+			  "\x42\x0e\x15\x31\xf6\x48\xa3\x0a"
+			  "\x20\xf0\x79\x67\xb1\x83\x26\x66"
+			  "\xe0\xb1\xb3\xbd\x1c\x76\x36\xfd"
+			  "\x45\x87\xa4\x14\x1b\xef\xe7\x16"
+			  "\xf7\xfa\x30\x3d\xb9\x52\x8f\x2e"
+			  "\x01\x68\xc1\x7d\xa2\x15\x49\x74"
+			  "\x53\x82\xc2\x10\xa8\x45\x73\x4d"
+			  "\x41\xcc\x24\xa3\x42\xff\x30\xd1"
+			  "\x02\x21\xdc\xd9\x08\xf7\xe7\x4c"
+			  "\x33\x2d\x62\xc7\x38\xf5\xc2\xbe"
+			  "\x52\xf1\x34\x78\x34\x53\x30\x5b"
+			  "\x43\x43\x51\x6a\x02\x81\x64\x0c",
+		.ctext	= "\xd9\xed\xc8\xc7\x66\xcd\x06\xc5"
+			  "\xc1\x25\x9b\xf5\x14\x71\x1d\x69"
+			  "\xc9\x7c\x04\x40\xab\xc0\x44\xf4"
+			  "\xa1\xe6\x57\x8b\x35\x62\x4e\x3f"
+			  "\xce\x4a\x99\xcd\x95\xc4\xd1\xf3"
+			  "\xbc\x25\xa2\x18\xe6\xd1\xf7\xc0"
+			  "\x13\x98\x60\x4c\x5c\xb1\x4f\x7a"
+			  "\xbc\x45\x12\x52\xe8\x71\xb0\xf1"
+			  "\x18\xef\x6f\x8a\x63\x35\x17\xae"
+			  "\x90\x31\x41\x9d\xf4\xdc\x35\xcc"
+			  "\x49\x72\x10\x11\x3b\xe3\x40\x7a"
+			  "\x8e\x21\x39\xd0\x5b\x82\xb1\xe9"
+			  "\x0c\x37\x5a\x7c\x11\xcb\x96\xd9"
+			  "\xd4\x1c\x47\x4b\x70\xcb\xca\x08"
+			  "\x5f\x71\xe9\x48\xf6\x29\xd8\xbb"
+			  "\x5c\xad\x9b\x23\x9f\x62\xaf\xef"
+			  "\x8e\xd8\x99\x1d\x60\xad\xc3\x6f"
+			  "\xed\x06\x1a\xec\xfa\xc0\x0f\x0d"
+			  "\xb7\x00\x02\x45\x7c\x94\x23\xb6"
+			  "\xd7\x26\x6a\x16\x62\xc4\xd9\xee",
+		.len	= 160,
+	}, {
+		.key	= "\x7f\x92\xd5\x06\x30\x6b\xc0\x23"
+			  "\x87\xa8\x8e\x6d\xc7\xc5\xd7\xf1"
+			  "\x5f\xce\x89\xb3\xd5\x7f\x7f\xf0"
+			  "\xfd\xab\x56\xa6\x6e\xda\x7c\x57",
+		.klen	= 32,
+		.iv	= "\x36\x36\x89\x09\xcd\xa8\xd3\x91"
+			  "\x48\x3e\x3c\x11\xcf\xd0\x4f\xc0",
+		.ptext	= "\x51\xe3\x8c\xe9\x76\xcd\xff\x37"
+			  "\xd6\x1a\x18\x2f\x68\x2f\xb6\xfe",
+		.ctext	= "\x05\x31\x46\x6d\xb8\xf4\x92\x64"
+			  "\x46\xfd\x0d\x96\x60\x01\xd7\x94",
+		.len	= 16,
+	}, {
+		.key	= "\x3d\x2d\x85\x75\x6e\x18\x8a\x52"
+			  "\x53\x39\xfc\xc1\xf5\xc0\x56\x22"
+			  "\xc6\xae\xaa\x0d\x90\xf2\x38\x93"
+			  "\xac\xd2\x3f\xc7\x74\x8d\x13\x7e",
+		.klen	= 32,
+		.iv	= "\xfa\x3f\x70\x52\xfb\x04\x0e\xed"
+			  "\x0e\x60\x75\x84\x21\xdf\x13\xa1",
+		.ptext	= "\x26\xf8\x8c\x26\x0a\x37\x51\x8f"
+			  "\xe7\x9c\x74\x77\x7a\x3e\xbb\x5d"
+			  "\xd7\x33\xf3\xa9\x5b\xb4\x86\xea"
+			  "\xe3\x7d\x50\x62\x3b\x73\xaf\xc4",
+		.ctext	= "\x24\x36\xe4\x14\xb7\xe1\x56\x8a"
+			  "\xf3\xc5\xaf\x0e\xa7\xeb\xbd\xcd"
+			  "\x2d\xe9\xd7\x19\xae\x24\x5d\x3b"
+			  "\x1d\xfb\xdc\x21\xb3\x1a\x37\x0b",
+		.len	= 32,
+	}, {
+		.key	= "\xda\x89\xd9\x3c\xcc\xe4\x73\xb0"
+			  "\xef\x3e\x5f\x46\x62\x88\xd5\x26"
+			  "\x3b\xd3\xb5\x81\x78\x70\x1b\xd2"
+			  "\x39\x56\x34\x63\x2c\xc5\x51\x13",
+		.klen	= 32,
+		.iv	= "\x48\x29\x3a\x58\xbe\x41\xc5\x80"
+			  "\x2c\x80\xa7\x3c\x14\xb4\x89\x5e",
+		.ptext	= "\x8e\xe5\x5f\xe2\x39\x80\xf5\x2b"
+			  "\x77\xb5\xca\x90\xda\x1d\x22\x17"
+			  "\xd9\xa0\x57\x80\xc8\x96\x70\x86"
+			  "\x07\x2c\xf4\x61\x79\x09\x01\x8f"
+			  "\x37\x32\x98\xd4\x86\x2b\x3b\x80"
+			  "\x07\x60\xba\xf0\x2e\xc3\x4a\x57",
+		.ctext	= "\x2e\x73\x60\xec\xd3\x95\x78\xe8"
+			  "\x0f\x98\x1a\xc2\x92\x49\x0b\x49"
+			  "\x71\x42\xf4\xb0\xaa\x8b\xf8\x53"
+			  "\x16\xab\x6d\x74\xc0\xda\xab\xcd"
+			  "\x85\x52\x11\x20\x2c\x59\x16\x00"
+			  "\x26\x47\x4a\xea\x08\x5f\x38\x68",
+		.len	= 48,
+	}, {
+		.key	= "\xf5\xb5\xd7\xbf\xd2\x2a\x9b\x4a"
+			  "\xe6\x08\xf0\xbe\x77\xd1\x62\x40"
+			  "\xa0\x82\x09\x60\x47\xbb\x16\x56"
+			  "\x50\x1f\xab\x8b\x10\xfe\xf0\x5c",
+		.klen	= 32,
+		.iv	= "\x05\x32\x63\x1a\xc4\x46\x6f\x55"
+			  "\x32\xde\x41\x5a\xf7\x52\xd7\xfa",
+		.ptext	= "\x30\x9d\x59\x8d\x64\x76\xad\x37"
+			  "\xba\xbc\x46\x6a\x69\x17\x3c\xac"
+			  "\x6f\xdd\xa2\x9b\x86\x32\x14\x2e"
+			  "\x54\x74\x8f\x3d\xe2\xd6\x85\x44"
+			  "\x4f\x4a\x31\x64\xc6\xa5\x29\xaa"
+			  "\xad\xfd\x32\x94\x1f\x56\x57\xd1"
+			  "\x9d\x7e\x3d\x49\x00\x36\xb1\x5d"
+			  "\xb2\x92\x83\x70\x1e\xa3\x97\xa6",
+		.ctext	= "\xfb\xd3\xc3\x8b\xf7\x89\xcc\x31"
+			  "\xb1\x7f\xc3\x91\xdc\x04\xc6\xd7"
+			  "\x33\xbd\xe0\xee\x0c\xd5\x70\xed"
+			  "\x1b\x1d\xad\x49\x6f\x5c\xa1\x68"
+			  "\xd7\x03\xc9\x65\xa7\x90\x30\x2b"
+			  "\x26\xeb\xf4\x7a\xac\xcc\x03\xe1"
+			  "\x6a\xe5\xdb\x23\x10\x8a\xcd\x70"
+			  "\x39\x4d\x7a\xc9\xcd\x62\xd1\x65",
+		.len	= 64,
+	}, {
+		.key	= "\x65\x53\x39\xeb\x53\x8f\xb1\x38"
+			  "\x91\xac\x17\x11\x1c\x03\x69\x53"
+			  "\xf5\xdf\xdb\x2c\x1b\x9a\x6e\x6b"
+			  "\xb6\x02\xc4\xfa\x95\x01\x33\xa8",
+		.klen	= 32,
+		.iv	= "\xda\x7e\x18\x2c\xf4\x7e\x6e\x67"
+			  "\xce\x8f\x9f\xea\x46\x66\x99\xb8",
+		.ptext	= "\xe1\xc7\x25\x4d\xbd\xa5\x74\xdf"
+			  "\xc7\x8b\xfb\xe3\x2d\x3a\x82\xd3"
+			  "\x17\x94\x77\x2f\x92\xb8\x87\xc2"
+			  "\xcc\x6f\x70\x26\x87\xc7\x10\x8a"
+			  "\xc8\xfd\xc2\xb3\xcf\xa0\xeb\x41"
+			  "\x4c\xf4\xd0\x34\xd0\x95\xab\xae"
+			  "\x82\x5c\xfd\xfa\x13\x86\x25\xce"
+			  "\xf4\x13\x32\xcd\xc6\x6d\xf6\x50"
+			  "\x12\x4a\x5b\x66\x3a\xd3\xfb\x1a"
+			  "\xaf\x06\xea\xf4\x65\x59\xd6\xc2",
+		.ctext	= "\xa2\x51\x28\xc2\x5e\x58\x1c\xaf"
+			  "\x84\x92\x1c\xe1\x92\xf0\xf9\x9e"
+			  "\xf2\xb3\xc6\x2b\x34\xd2\x8d\xa0"
+			  "\xb3\xd7\x87\x56\xeb\xd9\x32\x6a"
+			  "\xca\x90\x28\x26\x49\x34\xca\x41"
+			  "\xce\xc5\x9e\xd6\xfe\x57\x71\x3c"
+			  "\x98\xaf\xdd\xfc\x7d\xdf\x26\x7e"
+			  "\xb7\x9c\xd5\x15\xe5\x81\x7a\x4f"
+			  "\x4f\x4f\xe5\x77\xf2\x2e\x67\x68"
+			  "\x52\xc1\xac\x28\x2c\x88\xf4\x38",
+		.len	= 80,
+	}, {
+		.key	= "\x84\xa0\x53\x97\x61\x30\x70\x15"
+			  "\xac\x45\x8e\xe8\xeb\xa1\x72\x93"
+			  "\x26\x76\x98\x6f\xe4\x86\xca\xf0"
+			  "\x57\x89\xf2\x2b\xd4\xcf\x2d\x95",
+		.klen	= 32,
+		.iv	= "\x86\x26\x20\x0e\x62\xfe\x8f\x1e"
+			  "\x5d\xcb\x2b\x7e\xdd\xab\xac\xda",
+		.ptext	= "\x6e\x49\x20\xd5\xb7\x01\x83\x4e"
+			  "\xac\x45\x8f\xe1\x05\x3f\xd5\xb1"
+			  "\xee\xb7\x0d\x65\x00\x38\xab\x71"
+			  "\x70\x6e\xb3\x97\x86\xd3\xcd\xad"
+			  "\x51\x8b\x9c\xa0\x9a\x8b\x4c\xb9"
+			  "\x16\x01\x6a\x1f\xdf\xf0\xf9\x9e"
+			  "\x25\x1b\xc2\xa6\x21\x25\xeb\x97"
+			  "\x4b\xf6\xcb\x3b\xcd\x61\xfd\x94"
+			  "\x37\x03\xb3\xd9\x74\x6e\x4d\xbb"
+			  "\xfd\x87\x2b\xec\x4c\x2c\xbf\xe2"
+			  "\x94\x1a\xe6\xd9\xaf\x0e\x78\x17"
+			  "\x58\x2b\x1d\x73\x9a\x9c\x63\x18",
+		.ctext	= "\xd1\xce\xbe\xe0\x4a\x6e\x6d\x7f"
+			  "\x89\x19\x28\xb1\xca\xe8\xc1\x9c"
+			  "\x8c\x0b\x7d\x63\xfe\xff\x3d\xf4"
+			  "\x65\x9e\xd6\xe7\x2f\x5a\xc1\x31"
+			  "\x1e\xe7\x59\x27\x54\x92\xcc\xaa"
+			  "\x5b\x3d\xeb\xe7\x96\xc1\x49\x54"
+			  "\x18\xf3\x14\xaa\x56\x03\x28\x53"
+			  "\xaa\x0a\x91\xdf\x92\x96\x9b\x06"
+			  "\x1a\x24\x02\x09\xe7\xa6\xdc\x75"
+			  "\xeb\x00\x1d\xf5\xf2\xa7\x4a\x9d"
+			  "\x75\x80\xb7\x47\x63\xfc\xad\x18"
+			  "\x85\x5f\xfc\x64\x03\x72\x38\xe7",
+		.len	= 96,
+	}, {
+		.key	= "\x88\x7a\x0e\x87\x2f\xf0\xb0\xdb"
+			  "\xc9\x9d\x79\x51\x34\x39\x4f\x07"
+			  "\xa2\x7c\x21\x04\x91\x3b\x79\x79"
+			  "\xfe\xd5\x51\x46\xd5\xcd\x28\xc0",
+		.klen	= 32,
+		.iv	= "\xad\xb8\x55\xb2\xb2\x5a\x9a\xa2"
+			  "\xe2\x0c\xfc\x55\x7d\x60\xd2\x95",
+		.ptext	= "\xb6\x08\x1d\x31\xaf\xf4\x17\x46"
+			  "\xa4\xbb\x0f\xbd\x67\x3c\x73\x15"
+			  "\x0c\x85\x2f\x62\xe5\xf4\x35\x96"
+			  "\xb1\x9b\x5d\x00\x10\xe9\x70\x12"
+			  "\x3a\x87\x7f\x67\xf1\x81\x7a\x05"
+			  "\xb4\xa6\xfe\xdf\x36\x31\x6d\x9e"
+			  "\x0e\xa9\x44\xa0\xb0\x05\xa9\x41"
+			  "\x9c\x14\x44\x5a\xd5\x1c\x50\x08"
+			  "\x95\xc2\xf2\xaf\x3f\x29\xc9\x3e"
+			  "\x95\x5e\xc6\xb4\x2b\xf4\x3e\xe3"
+			  "\x1b\xeb\x3d\x73\xfb\xd7\x1e\x2b"
+			  "\x0c\x3d\x58\x6c\xb4\x41\x9b\xfe"
+			  "\x2f\x7e\x1c\x10\x81\x36\x2d\x79"
+			  "\xaf\xab\x10\x44\x2e\xcc\x0d\x6c",
+		.ctext	= "\x0b\x07\xdc\x6a\x47\x45\xd2\xb0"
+			  "\xa3\xf2\x42\x2f\xa4\x79\x6b\x4c"
+			  "\x53\x9c\x8a\x2f\x48\x9c\xf2\x89"
+			  "\x73\x8b\xdd\x97\xde\x41\x06\xc8"
+			  "\x8a\x30\x7a\xa9\x90\x4a\x43\xd0"
+			  "\xd5\xee\x16\x51\x44\xda\xe4\xb8"
+			  "\xe8\x5f\x6f\xef\x84\xf3\x44\x43"
+			  "\xbd\xdc\xc3\xdf\x65\x2b\xaf\xf6"
+			  "\xfe\xd0\x4a\x5b\x30\x47\x8c\xaf"
+			  "\x8d\xed\x2d\x91\xa1\x03\x9a\x80"
+			  "\x58\xdd\xaa\x8f\x3b\x6b\x39\x10"
+			  "\xe5\x92\xbc\xac\xaa\x25\xa1\x13"
+			  "\x7e\xaa\x03\x83\x05\x83\x11\xfe"
+			  "\x19\x5f\x04\x01\x48\x00\x3b\x58",
+		.len	= 112,
+	}, {
+		.key	= "\x9c\x14\xc2\xe4\xae\xb0\xbb\xda"
+			  "\x6a\xe0\x42\x3d\x96\x9f\x78\x7d"
+			  "\x70\x86\xa5\x92\x9f\xee\xcd\x3f"
+			  "\x6a\x55\x84\x98\x28\x03\x02\xc2",
+		.klen	= 32,
+		.iv	= "\xf7\xec\x7a\xfa\xb1\xd9\xa8\xd8"
+			  "\x1c\xc3\xaa\xd5\x61\x7f\x10\x0c",
+		.ptext	= "\xc0\xa1\x36\x3d\x81\x9a\xd2\x17"
+			  "\x2e\x23\xc9\xb7\xff\xdf\x47\x6c"
+			  "\x96\x3b\x0e\xbd\xec\x9a\x0e\xad"
+			  "\x8c\xaf\x36\x3d\xff\x29\x8b\x33"
+			  "\x87\x96\x77\x1a\x10\x81\x63\x8a"
+			  "\x63\xde\x88\xa9\x9d\xa9\x01\xf2"
+			  "\xdf\xc9\x25\x35\x48\x3a\x15\xdf"
+			  "\x20\x6b\x91\x7c\x56\xe5\x10\x7a"
+			  "\x2d\x2e\x0f\x30\x32\xed\xa9\x1f"
+			  "\x71\x4e\x68\x77\xe8\xa8\x5b\xdd"
+			  "\x3c\x5e\x68\x6b\xab\x03\xe4\xf8"
+			  "\x42\xc1\x61\x9a\x50\xfb\xc7\x6a"
+			  "\x1a\x31\xa7\x87\xd0\x24\xcb\x5e"
+			  "\xc0\x3b\x12\x28\xca\x26\x7b\xb3"
+			  "\x14\xc1\x7f\x66\xff\x3b\xa4\x80"
+			  "\x59\x77\x4f\xa0\xd4\xb2\xd9\x8a",
+		.ctext	= "\xfe\xba\x8f\x68\x47\x55\xaa\x61"
+			  "\x48\xdd\xf3\x7c\xc4\xdc\xa6\x93"
+			  "\x4e\x72\x3f\xc7\xd0\x2b\x9b\xac"
+			  "\xc1\xb5\x95\xf8\x8e\x75\x62\x0c"
+			  "\x05\x6a\x90\x76\x35\xed\x73\xf2"
+			  "\x0f\x44\x3d\xaf\xd4\x00\xeb\x1d"
+			  "\xad\x27\xf2\x2f\x55\x65\x91\x0f"
+			  "\xe4\x04\x9c\xfb\x8a\x18\x22\x8e"
+			  "\x21\xbe\x93\x09\xdd\x3e\x93\x34"
+			  "\x60\x82\xcd\xff\x42\x10\xed\x43"
+			  "\x3a\x4b\xb8\x5c\x6c\xa8\x9e\x1c"
+			  "\x95\x6a\x17\xa7\xa3\xe0\x7d\xdb"
+			  "\x6e\xca\xaf\xc1\x1f\xb2\x86\x15"
+			  "\xf0\xc1\x55\x72\xf2\x74\x44\xeb"
+			  "\x09\x09\x83\x8b\x2c\xc9\x63\x13"
+			  "\x99\xe3\xe1\x4b\x5c\xf7\xb1\x04",
+		.len	= 128,
+	}, {
+		.key	= "\xb6\x67\xe6\x28\xd3\x6f\xf2\xcf"
+			  "\xb8\x6d\x2d\xc4\x2a\x69\x89\xff"
+			  "\xcf\xbb\x11\x2e\x2a\x2b\x7c\xfd"
+			  "\xcd\x56\x02\x95\xc9\x54\x6e\x62",
+		.klen	= 32,
+		.iv	= "\x6a\x97\x75\x1a\x21\x16\x46\xfb"
+			  "\xc2\xab\x62\x54\xef\xba\xae\x46",
+		.ptext	= "\xd4\x14\xc6\xcc\x16\x1b\x95\xf9"
+			  "\x05\x26\x23\x81\x19\x27\xad\x7b"
+			  "\x9c\x8b\xfb\x65\xa4\x61\xee\x69"
+			  "\x44\xbf\x59\xde\x03\x61\x11\x12"
+			  "\x8d\x94\x48\x47\xa9\x52\x16\xfb"
+			  "\x6b\xaf\x59\x6d\xab\x74\xbf\x5c"
+			  "\xb6\x09\x21\x12\x42\x98\x13\xa1"
+			  "\xa8\x6f\xb9\x6d\x4d\xa6\xdc\xea"
+			  "\x61\x02\x3c\xa7\xcd\x1a\x28\x8c"
+			  "\x66\xb8\x4d\x60\x67\x82\xcc\x8d"
+			  "\x1e\xda\x8f\x28\xe5\x02\xdc\x2c"
+			  "\x54\x84\x2a\x06\xb5\xd1\x34\x57"
+			  "\xb8\x28\x4d\xf5\x69\xb9\xf3\x33"
+			  "\x5e\x0b\xa6\x62\x35\x9b\xfb\x97"
+			  "\x3e\xc6\xec\xaf\x74\xe8\x72\x91"
+			  "\xb2\xc6\x56\xb3\x23\x29\x43\xe0"
+			  "\xfb\xcc\x21\x38\x64\x78\x9e\x78"
+			  "\xbb\x6e\x0d\x7b\xfd\x05\x74\x01",
+		.ctext	= "\xa5\x19\x33\xad\x2d\x1a\x7b\x34"
+			  "\xb0\x21\x68\x0e\x20\x11\x7a\x37"
+			  "\xef\x35\x33\x64\x31\x0a\x42\x77"
+			  "\x2c\x7f\x1a\x34\xd6\x93\x2d\xe9"
+			  "\x26\xb9\x15\xec\x4f\x83\xbd\x48"
+			  "\x5b\xe9\x63\xea\x10\x3b\xec\xfb"
+			  "\xb0\x5e\x81\x90\xf0\x07\x43\xc4"
+			  "\xda\x54\x69\x98\x13\x5d\x93\x16"
+			  "\xca\x06\x81\x64\x36\xbe\x36\xa2"
+			  "\xd4\xd8\x48\x63\xc7\x53\x39\x93"
+			  "\x6d\x6b\xd6\x49\x00\x72\x5e\x02"
+			  "\xc7\x88\x61\x0f\x10\x88\xd4\x9e"
+			  "\x17\x81\xa4\xdc\x43\x4e\x83\x43"
+			  "\xd4\xc3\xd7\x25\x9a\xd4\x76\xde"
+			  "\x88\xe3\x98\x5a\x0e\x80\x23\xfb"
+			  "\x49\xb3\x83\xf6\xb9\x16\x00\x06"
+			  "\xa5\x06\x24\x17\x65\xbb\x68\xa9"
+			  "\x56\x6d\xeb\xcd\x3c\x14\xd2\x64",
+		.len	= 144,
+	}, {
+		.key	= "\x7c\x94\xe0\xb0\xd7\x92\xfc\x58"
+			  "\x28\xfc\xe2\x7b\x7f\xf7\x31\x0d"
+			  "\x90\xb7\x60\x78\xa8\x9f\x52\xe3"
+			  "\xe6\xaa\x2a\xb4\xa7\x09\x60\x53",
+		.klen	= 32,
+		.iv	= "\x42\x0e\x15\x31\xf6\x48\xa3\x0a"
+			  "\x20\xf0\x79\x67\xb1\x83\x26\x66",
+		.ptext	= "\xe0\xb1\xb3\xbd\x1c\x76\x36\xfd"
+			  "\x45\x87\xa4\x14\x1b\xef\xe7\x16"
+			  "\xf7\xfa\x30\x3d\xb9\x52\x8f\x2e"
+			  "\x01\x68\xc1\x7d\xa2\x15\x49\x74"
+			  "\x53\x82\xc2\x10\xa8\x45\x73\x4d"
+			  "\x41\xcc\x24\xa3\x42\xff\x30\xd1"
+			  "\x02\x21\xdc\xd9\x08\xf7\xe7\x4c"
+			  "\x33\x2d\x62\xc7\x38\xf5\xc2\xbe"
+			  "\x52\xf1\x34\x78\x34\x53\x30\x5b"
+			  "\x43\x43\x51\x6a\x02\x81\x64\x0c"
+			  "\xcd\x4b\xbf\x0f\xcb\x81\xd4\xec"
+			  "\x1e\x07\x05\x4d\x5c\x6b\xba\xcc"
+			  "\x43\xc7\xb1\xfe\xa8\xe9\x96\xb0"
+			  "\xb1\xb2\xd4\x70\x44\xbc\xaa\x50"
+			  "\xbf\x3f\x81\xe6\xea\x36\x7d\x97"
+			  "\x2a\xbd\x52\x16\xf7\xbe\x59\x27"
+			  "\x8f\xcc\xe3\xa9\xec\x4f\xcd\xd3"
+			  "\xf4\xe2\x54\xbe\xf1\xf9\x2b\x23"
+			  "\x40\xc7\xcb\x67\x4d\x5f\x0b\xd4"
+			  "\xbf\x19\xf0\x2a\xef\x37\xc6\x56",
+		.ctext	= "\x0a\x69\xd8\x67\x33\x2a\x2f\xa9"
+			  "\x26\x79\x65\xd6\x75\x1e\x98\xe8"
+			  "\x52\x56\x32\xbf\x67\x71\xf4\x01"
+			  "\xb1\x6f\xef\xf9\xc9\xad\xb3\x49"
+			  "\x7a\x4f\x24\x9a\xae\x06\x62\x26"
+			  "\x3e\xe4\xa7\x6f\x5a\xbf\xe9\x52"
+			  "\x13\x01\x74\x8b\x6e\xb1\x65\x24"
+			  "\xaa\x8d\xbb\x54\x21\x20\x60\xa4"
+			  "\xb7\xa5\xf9\x4e\x7b\xf5\x0b\x70"
+			  "\xd2\xb9\xdc\x9b\xdb\x2c\xb2\x43"
+			  "\xf7\x71\x30\xa5\x13\x6f\x16\x75"
+			  "\xd0\xdf\x72\xae\xe4\xed\xc1\xa3"
+			  "\x81\xe0\xd5\xc0\x0e\x62\xe8\xe5"
+			  "\x86\x2c\x37\xde\xf8\xb0\x21\xe4"
+			  "\xcd\xa6\x76\x9b\xa1\x56\xd3\x67"
+			  "\x70\x69\xd6\x5d\xc7\x65\x19\x59"
+			  "\x43\x9c\xca\x32\xe9\xd1\x48\x92"
+			  "\x71\x79\x87\x73\x24\xcb\xc0\x0f"
+			  "\x23\x3b\x8f\x51\x8a\xb3\x3a\x9c"
+			  "\x74\xa4\x19\xa7\xe4\x4f\x6b\x32",
+		.len	= 160,
+	}
+};
+
+static const struct cipher_testvec aria_ctr_tv_template[] = {
+	{
+		.key	= "\x7f\x92\xd5\x06\x30\x6b\xc0\x23"
+			  "\x87\xa8\x8e\x6d\xc7\xc5\xd7\xf1",
+		.klen	= 16,
+		.iv	= "\x5f\xce\x89\xb3\xd5\x7f\x7f\xf0"
+			  "\xfd\xab\x56\xa6\x6e\xda\x7c\x57",
+		.ptext	= "\x36\x36\x89\x09\xcd\xa8\xd3\x91"
+			  "\x48\x3e\x3c\x11\xcf\xd0\x4f\xc0",
+		.ctext	= "\x19\x28\xb5\xf2\x1c\xbc\xf8\xaf"
+			  "\xb9\xae\x1b\x23\x4f\xe1\x6e\x40",
+		.len	= 16,
+	}, {
+		.key	= "\x51\xe3\x8c\xe9\x76\xcd\xff\x37"
+			  "\xd6\x1a\x18\x2f\x68\x2f\xb6\xfe",
+		.klen	= 16,
+		.iv	= "\x3d\x2d\x85\x75\x6e\x18\x8a\x52"
+			  "\x53\x39\xfc\xc1\xf5\xc0\x56\x22",
+		.ptext	= "\xc6\xae\xaa\x0d\x90\xf2\x38\x93"
+			  "\xac\xd2\x3f\xc7\x74\x8d\x13\x7e"
+			  "\xfa\x3f\x70\x52\xfb\x04\x0e\xed"
+			  "\x0e\x60\x75\x84\x21\xdf\x13\xa1",
+		.ctext	= "\x3f\x8c\xa9\x19\xd6\xb4\xfb\xed"
+			  "\x9c\x6d\xaa\x1b\xe1\xc1\xe6\xa8"
+			  "\xa9\x0a\x63\xd3\xa2\x1e\x6b\xa8"
+			  "\x52\x97\x1e\x81\x34\x6f\x98\x0e",
+		.len	= 32,
+	}, {
+		.key	= "\x26\xf8\x8c\x26\x0a\x37\x51\x8f"
+			  "\xe7\x9c\x74\x77\x7a\x3e\xbb\x5d",
+		.klen	= 16,
+		.iv	= "\xd7\x33\xf3\xa9\x5b\xb4\x86\xea"
+			  "\xe3\x7d\x50\x62\x3b\x73\xaf\xc4",
+		.ptext	= "\xda\x89\xd9\x3c\xcc\xe4\x73\xb0"
+			  "\xef\x3e\x5f\x46\x62\x88\xd5\x26"
+			  "\x3b\xd3\xb5\x81\x78\x70\x1b\xd2"
+			  "\x39\x56\x34\x63\x2c\xc5\x51\x13"
+			  "\x48\x29\x3a\x58\xbe\x41\xc5\x80"
+			  "\x2c\x80\xa7\x3c\x14\xb4\x89\x5e",
+		.ctext	= "\x28\xd8\xa7\xf8\x74\x98\x00\xfc"
+			  "\xd6\x48\xad\xbd\xbe\x3f\x0e\x7b"
+			  "\x3d\x46\xfd\xde\x3e\x4f\x12\x43"
+			  "\xac\x85\xda\xff\x70\x24\x44\x9d"
+			  "\x1e\xf8\x9f\x30\xba\xca\xe0\x97"
+			  "\x03\x6d\xe1\x1d\xc7\x21\x79\x37",
+		.len	= 48,
+	}, {
+		.key	= "\x8e\xe5\x5f\xe2\x39\x80\xf5\x2b"
+			  "\x77\xb5\xca\x90\xda\x1d\x22\x17",
+		.klen	= 16,
+		.iv	= "\xd9\xa0\x57\x80\xc8\x96\x70\x86"
+			  "\x07\x2c\xf4\x61\x79\x09\x01\x8f",
+		.ptext	= "\x37\x32\x98\xd4\x86\x2b\x3b\x80"
+			  "\x07\x60\xba\xf0\x2e\xc3\x4a\x57"
+			  "\xf5\xb5\xd7\xbf\xd2\x2a\x9b\x4a"
+			  "\xe6\x08\xf0\xbe\x77\xd1\x62\x40"
+			  "\xa0\x82\x09\x60\x47\xbb\x16\x56"
+			  "\x50\x1f\xab\x8b\x10\xfe\xf0\x5c"
+			  "\x05\x32\x63\x1a\xc4\x46\x6f\x55"
+			  "\x32\xde\x41\x5a\xf7\x52\xd7\xfa",
+		.ctext	= "\x29\x31\x55\xd2\xe5\x0b\x81\x39"
+			  "\xf9\xbc\x63\xe2\xfa\x26\x99\xde"
+			  "\xde\x18\x93\x68\x81\x7b\x0a\x4d"
+			  "\xf6\x03\xe1\xee\xf9\x0e\x1f\xe8"
+			  "\xa8\x80\x81\x46\xdc\x24\x43\x3f"
+			  "\xff\xfe\x8c\x3e\x17\x0a\x6d\xa2"
+			  "\x47\x55\x62\xa0\x03\x4e\x48\x67"
+			  "\xa2\x64\xc0\x9b\x6c\xa4\xfd\x6a",
+		.len	= 64,
+	}, {
+		.key	= "\x30\x9d\x59\x8d\x64\x76\xad\x37"
+			  "\xba\xbc\x46\x6a\x69\x17\x3c\xac",
+		.klen	= 16,
+		.iv	= "\x6f\xdd\xa2\x9b\x86\x32\x14\x2e"
+			  "\x54\x74\x8f\x3d\xe2\xd6\x85\x44",
+		.ptext	= "\x4f\x4a\x31\x64\xc6\xa5\x29\xaa"
+			  "\xad\xfd\x32\x94\x1f\x56\x57\xd1"
+			  "\x9d\x7e\x3d\x49\x00\x36\xb1\x5d"
+			  "\xb2\x92\x83\x70\x1e\xa3\x97\xa6"
+			  "\x65\x53\x39\xeb\x53\x8f\xb1\x38"
+			  "\x91\xac\x17\x11\x1c\x03\x69\x53"
+			  "\xf5\xdf\xdb\x2c\x1b\x9a\x6e\x6b"
+			  "\xb6\x02\xc4\xfa\x95\x01\x33\xa8"
+			  "\xda\x7e\x18\x2c\xf4\x7e\x6e\x67"
+			  "\xce\x8f\x9f\xea\x46\x66\x99\xb8",
+		.ctext	= "\x38\xbc\xf5\x9d\x0e\x26\xa6\x18"
+			  "\x95\x0b\x23\x54\x09\xa1\xf9\x46"
+			  "\x12\xf1\x42\x57\xa1\xaa\x52\xfa"
+			  "\x8a\xbd\xf2\x03\x63\x4e\xbc\xf7"
+			  "\x21\xea\xed\xca\xdd\x42\x41\x94"
+			  "\xe4\x6c\x07\x06\x19\x59\x30\xff"
+			  "\x8c\x9d\x51\xbf\x2c\x2e\x5b\xa5"
+			  "\x7d\x11\xec\x6b\x21\x08\x12\x18"
+			  "\xe4\xdf\x5a\xfd\xa6\x5f\xee\x2f"
+			  "\x5c\x24\xb7\xea\xc1\xcd\x6d\x68",
+		.len	= 80,
+	}, {
+		.key	= "\xe1\xc7\x25\x4d\xbd\xa5\x74\xdf"
+			  "\xc7\x8b\xfb\xe3\x2d\x3a\x82\xd3",
+		.klen	= 16,
+		.iv	= "\x17\x94\x77\x2f\x92\xb8\x87\xc2"
+			  "\xcc\x6f\x70\x26\x87\xc7\x10\x8a",
+		.ptext	= "\xc8\xfd\xc2\xb3\xcf\xa0\xeb\x41"
+			  "\x4c\xf4\xd0\x34\xd0\x95\xab\xae"
+			  "\x82\x5c\xfd\xfa\x13\x86\x25\xce"
+			  "\xf4\x13\x32\xcd\xc6\x6d\xf6\x50"
+			  "\x12\x4a\x5b\x66\x3a\xd3\xfb\x1a"
+			  "\xaf\x06\xea\xf4\x65\x59\xd6\xc2"
+			  "\x84\xa0\x53\x97\x61\x30\x70\x15"
+			  "\xac\x45\x8e\xe8\xeb\xa1\x72\x93"
+			  "\x26\x76\x98\x6f\xe4\x86\xca\xf0"
+			  "\x57\x89\xf2\x2b\xd4\xcf\x2d\x95"
+			  "\x86\x26\x20\x0e\x62\xfe\x8f\x1e"
+			  "\x5d\xcb\x2b\x7e\xdd\xab\xac\xda",
+		.ctext	= "\xdf\x79\x58\x30\x6f\x47\x12\x78"
+			  "\x04\xb2\x0b\x1a\x62\x22\xe2\x9f"
+			  "\xfe\xc2\xf5\x6d\x9e\x0e\x2e\x56"
+			  "\x76\x01\x7f\x25\x8f\x6e\xc5\xf3"
+			  "\x91\xff\xcd\x67\xc6\xae\x0b\x01"
+			  "\x4d\x5f\x40\x25\x88\xc5\xe0\x3d"
+			  "\x37\x62\x12\x58\xfe\xc5\x4a\x21"
+			  "\x4a\x86\x8d\x94\xdd\xfd\xe6\xf6"
+			  "\x1e\xa6\x78\x4f\x90\x66\xda\xe4"
+			  "\x4e\x64\xa8\x05\xc6\xd8\x7d\xfb"
+			  "\xac\xc9\x1d\x14\xb5\xb0\xfa\x9c"
+			  "\xe8\x84\xef\x87\xbe\xb4\x2a\x87",
+		.len	= 96,
+	}, {
+		.key	= "\x6e\x49\x20\xd5\xb7\x01\x83\x4e"
+			  "\xac\x45\x8f\xe1\x05\x3f\xd5\xb1",
+		.klen	= 16,
+		.iv	= "\xee\xb7\x0d\x65\x00\x38\xab\x71"
+			  "\x70\x6e\xb3\x97\x86\xd3\xcd\xad",
+		.ptext	= "\x51\x8b\x9c\xa0\x9a\x8b\x4c\xb9"
+			  "\x16\x01\x6a\x1f\xdf\xf0\xf9\x9e"
+			  "\x25\x1b\xc2\xa6\x21\x25\xeb\x97"
+			  "\x4b\xf6\xcb\x3b\xcd\x61\xfd\x94"
+			  "\x37\x03\xb3\xd9\x74\x6e\x4d\xbb"
+			  "\xfd\x87\x2b\xec\x4c\x2c\xbf\xe2"
+			  "\x94\x1a\xe6\xd9\xaf\x0e\x78\x17"
+			  "\x58\x2b\x1d\x73\x9a\x9c\x63\x18"
+			  "\x88\x7a\x0e\x87\x2f\xf0\xb0\xdb"
+			  "\xc9\x9d\x79\x51\x34\x39\x4f\x07"
+			  "\xa2\x7c\x21\x04\x91\x3b\x79\x79"
+			  "\xfe\xd5\x51\x46\xd5\xcd\x28\xc0"
+			  "\xad\xb8\x55\xb2\xb2\x5a\x9a\xa2"
+			  "\xe2\x0c\xfc\x55\x7d\x60\xd2\x95",
+		.ctext	= "\xe4\x25\x0d\x22\xeb\xbe\x5e\x90"
+			  "\x01\xe5\xae\xc9\x94\xbd\x93\x89"
+			  "\x5f\x98\xf1\x46\x6a\x50\x3b\xa2"
+			  "\x79\xd9\xe4\x9c\x9a\xde\xf2\x8c"
+			  "\x25\x49\x4c\xda\xb4\x2c\x76\xab"
+			  "\x0a\xa8\x51\xaf\xc0\x62\x1b\xe9"
+			  "\xe9\x7a\x35\x6a\x4b\x1f\x48\x00"
+			  "\xeb\x24\x1d\x5e\xdd\x06\x09\x23"
+			  "\x2a\xfa\x8f\x3b\x3e\x9e\x14\x6f"
+			  "\x2a\x3c\xef\x6d\x73\x67\xdd\x6c"
+			  "\xc8\xa5\x57\xc8\x02\xb6\x9a\xe8"
+			  "\x8d\xcf\x10\xfa\x3e\x9c\x4d\xeb"
+			  "\x44\xd2\x05\x31\x40\x94\x77\x87"
+			  "\xf0\x83\xb5\xd2\x2a\x9c\xbc\xe4",
+		.len	= 112,
+	}, {
+		.key	= "\xb6\x08\x1d\x31\xaf\xf4\x17\x46"
+			  "\xa4\xbb\x0f\xbd\x67\x3c\x73\x15",
+		.klen	= 16,
+		.iv	= "\x0c\x85\x2f\x62\xe5\xf4\x35\x96"
+			  "\xb1\x9b\x5d\x00\x10\xe9\x70\x12",
+		.ptext	= "\x3a\x87\x7f\x67\xf1\x81\x7a\x05"
+			  "\xb4\xa6\xfe\xdf\x36\x31\x6d\x9e"
+			  "\x0e\xa9\x44\xa0\xb0\x05\xa9\x41"
+			  "\x9c\x14\x44\x5a\xd5\x1c\x50\x08"
+			  "\x95\xc2\xf2\xaf\x3f\x29\xc9\x3e"
+			  "\x95\x5e\xc6\xb4\x2b\xf4\x3e\xe3"
+			  "\x1b\xeb\x3d\x73\xfb\xd7\x1e\x2b"
+			  "\x0c\x3d\x58\x6c\xb4\x41\x9b\xfe"
+			  "\x2f\x7e\x1c\x10\x81\x36\x2d\x79"
+			  "\xaf\xab\x10\x44\x2e\xcc\x0d\x6c"
+			  "\x9c\x14\xc2\xe4\xae\xb0\xbb\xda"
+			  "\x6a\xe0\x42\x3d\x96\x9f\x78\x7d"
+			  "\x70\x86\xa5\x92\x9f\xee\xcd\x3f"
+			  "\x6a\x55\x84\x98\x28\x03\x02\xc2"
+			  "\xf7\xec\x7a\xfa\xb1\xd9\xa8\xd8"
+			  "\x1c\xc3\xaa\xd5\x61\x7f\x10\x0c",
+		.ctext	= "\xa7\x4c\x96\x55\x7c\x07\xce\xb2"
+			  "\x6f\x63\x9f\xc6\x8b\x6f\xc6\x4a"
+			  "\x2c\x47\x8d\x99\xdf\x65\x75\x96"
+			  "\xb7\x1d\x50\x5b\x57\x4a\x69\xcc"
+			  "\xc9\x3a\x18\x8a\xd1\xab\x70\x4a"
+			  "\xa3\x13\x80\xdd\x48\xc0\x6a\x7d"
+			  "\x21\xa8\x22\x06\x32\x47\xc0\x16"
+			  "\x1f\x9a\xc0\x21\x33\x66\xf2\xd8"
+			  "\x69\x79\xae\x02\x82\x3f\xaf\xa6"
+			  "\x98\xdb\xcd\x2a\xe5\x12\x39\x80"
+			  "\x8a\xc1\x73\x99\xe5\xe4\x17\xe3"
+			  "\x56\xc2\x43\xa6\x41\x6b\xb2\xa4"
+			  "\x9f\x81\xc4\xe9\xf4\x29\x65\x50"
+			  "\x69\x81\x80\x4b\x86\xab\x5e\x30"
+			  "\xd0\x81\x9d\x6f\x24\x59\x42\xc7"
+			  "\x6d\x5e\x41\xb8\xf5\x99\xc2\xae",
+		.len	= 128,
+	}, {
+		.key	= "\xc0\xa1\x36\x3d\x81\x9a\xd2\x17"
+			  "\x2e\x23\xc9\xb7\xff\xdf\x47\x6c",
+		.klen	= 16,
+		.iv	= "\x96\x3b\x0e\xbd\xec\x9a\x0e\xad"
+			  "\x8c\xaf\x36\x3d\xff\x29\x8b\x33",
+		.ptext	= "\x87\x96\x77\x1a\x10\x81\x63\x8a"
+			  "\x63\xde\x88\xa9\x9d\xa9\x01\xf2"
+			  "\xdf\xc9\x25\x35\x48\x3a\x15\xdf"
+			  "\x20\x6b\x91\x7c\x56\xe5\x10\x7a"
+			  "\x2d\x2e\x0f\x30\x32\xed\xa9\x1f"
+			  "\x71\x4e\x68\x77\xe8\xa8\x5b\xdd"
+			  "\x3c\x5e\x68\x6b\xab\x03\xe4\xf8"
+			  "\x42\xc1\x61\x9a\x50\xfb\xc7\x6a"
+			  "\x1a\x31\xa7\x87\xd0\x24\xcb\x5e"
+			  "\xc0\x3b\x12\x28\xca\x26\x7b\xb3"
+			  "\x14\xc1\x7f\x66\xff\x3b\xa4\x80"
+			  "\x59\x77\x4f\xa0\xd4\xb2\xd9\x8a"
+			  "\xb6\x67\xe6\x28\xd3\x6f\xf2\xcf"
+			  "\xb8\x6d\x2d\xc4\x2a\x69\x89\xff"
+			  "\xcf\xbb\x11\x2e\x2a\x2b\x7c\xfd"
+			  "\xcd\x56\x02\x95\xc9\x54\x6e\x62"
+			  "\x6a\x97\x75\x1a\x21\x16\x46\xfb"
+			  "\xc2\xab\x62\x54\xef\xba\xae\x46",
+		.ctext	= "\x11\x7f\xea\x49\xaf\x24\x52\xa2"
+			  "\xde\x60\x99\x58\x23\xf9\x9e\x91"
+			  "\x73\xd5\x9a\xcb\xdd\x10\xcd\x68"
+			  "\xb8\x9e\xef\xa4\xe9\x2d\xf0\x27"
+			  "\x44\xd4\x9a\xd6\xb6\x9c\x7a\xec"
+			  "\x17\x17\xea\xa7\x8e\xa8\x40\x6b"
+			  "\x43\x3d\x50\x59\x0f\x74\x1b\x9e"
+			  "\x03\xed\x4f\x2f\xb8\xda\xef\xc3"
+			  "\x3f\x29\xb3\xf4\x5c\xcd\xce\x3c"
+			  "\xba\xfb\xc6\xd1\x1d\x6f\x61\x3a"
+			  "\x2b\xbd\xde\x30\xc5\x53\xe0\x6e"
+			  "\xbe\xae\x2f\x81\x13\x0f\xd2\xd5"
+			  "\x14\xda\xd3\x60\x9c\xf8\x00\x86"
+			  "\xe9\x97\x3e\x05\xb3\x95\xb3\x21"
+			  "\x1f\x3c\x56\xef\xcb\x32\x49\x5c"
+			  "\x89\xf1\x34\xe4\x8d\x7f\xde\x01"
+			  "\x1f\xd9\x25\x6d\x34\x1d\x6b\x71"
+			  "\xc9\xa9\xd6\x14\x1a\xf1\x44\x59",
+		.len	= 144,
+	}, {
+		.key	= "\xd4\x14\xc6\xcc\x16\x1b\x95\xf9"
+			  "\x05\x26\x23\x81\x19\x27\xad\x7b",
+		.klen	= 16,
+		.iv	= "\x9c\x8b\xfb\x65\xa4\x61\xee\x69"
+			  "\x44\xbf\x59\xde\x03\x61\x11\x12",
+		.ptext	= "\x8d\x94\x48\x47\xa9\x52\x16\xfb"
+			  "\x6b\xaf\x59\x6d\xab\x74\xbf\x5c"
+			  "\xb6\x09\x21\x12\x42\x98\x13\xa1"
+			  "\xa8\x6f\xb9\x6d\x4d\xa6\xdc\xea"
+			  "\x61\x02\x3c\xa7\xcd\x1a\x28\x8c"
+			  "\x66\xb8\x4d\x60\x67\x82\xcc\x8d"
+			  "\x1e\xda\x8f\x28\xe5\x02\xdc\x2c"
+			  "\x54\x84\x2a\x06\xb5\xd1\x34\x57"
+			  "\xb8\x28\x4d\xf5\x69\xb9\xf3\x33"
+			  "\x5e\x0b\xa6\x62\x35\x9b\xfb\x97"
+			  "\x3e\xc6\xec\xaf\x74\xe8\x72\x91"
+			  "\xb2\xc6\x56\xb3\x23\x29\x43\xe0"
+			  "\xfb\xcc\x21\x38\x64\x78\x9e\x78"
+			  "\xbb\x6e\x0d\x7b\xfd\x05\x74\x01"
+			  "\x7c\x94\xe0\xb0\xd7\x92\xfc\x58"
+			  "\x28\xfc\xe2\x7b\x7f\xf7\x31\x0d"
+			  "\x90\xb7\x60\x78\xa8\x9f\x52\xe3"
+			  "\xe6\xaa\x2a\xb4\xa7\x09\x60\x53"
+			  "\x42\x0e\x15\x31\xf6\x48\xa3\x0a"
+			  "\x20\xf0\x79\x67\xb1\x83\x26\x66",
+		.ctext	= "\x5b\xc0\xe8\x17\xa4\xf9\xea\xce"
+			  "\x9e\xf9\xe0\xb1\xac\x37\xe9\x41"
+			  "\x0b\x57\xc6\x55\x54\x50\xfa\xa9"
+			  "\x60\xaf\x7a\x4e\x98\x56\xde\x81"
+			  "\x14\xfc\xac\x21\x81\x3e\xf4\x0f"
+			  "\x40\x92\x30\xa8\x16\x88\x1a\xc3"
+			  "\xf1\x39\xbd\x0a\xb9\x44\xc8\x67"
+			  "\x8c\xaa\x2b\x45\x8b\x5b\x7b\x24"
+			  "\xd5\xd8\x9e\xd3\x59\xa5\xd7\x69"
+			  "\xdf\xf4\x50\xf9\x5f\x4f\x44\x1f"
+			  "\x2c\x75\x68\x6e\x3a\xa8\xae\x4b"
+			  "\x84\xf0\x42\x6c\xc0\x3c\x42\xaf"
+			  "\x87\x2b\x89\xe9\x51\x69\x16\x63"
+			  "\xc5\x62\x13\x05\x4c\xb2\xa9\x69"
+			  "\x01\x14\x73\x88\x8e\x41\x47\xb6"
+			  "\x68\x74\xbc\xe9\xad\xda\x94\xa1"
+			  "\x0c\x12\x8e\xd4\x38\x15\x02\x97"
+			  "\x27\x72\x4d\xdf\x61\xcc\x86\x3d"
+			  "\xd6\x32\x4a\xc3\xa9\x4c\x35\x4f"
+			  "\x5b\x91\x7d\x5c\x79\x59\xb3\xd5",
+		.len	= 160,
+	}, {
+		.key	= "\x7f\x92\xd5\x06\x30\x6b\xc0\x23"
+			  "\x87\xa8\x8e\x6d\xc7\xc5\xd7\xf1"
+			  "\x5f\xce\x89\xb3\xd5\x7f\x7f\xf0",
+		.klen	= 24,
+		.iv	= "\xfd\xab\x56\xa6\x6e\xda\x7c\x57"
+			  "\x36\x36\x89\x09\xcd\xa8\xd3\x91",
+		.ptext	= "\x48\x3e\x3c\x11\xcf\xd0\x4f\xc0"
+			  "\x51\xe3\x8c\xe9\x76\xcd\xff\x37",
+		.ctext	= "\xa4\x12\x2f\xc4\xf0\x6d\xd9\x46"
+			  "\xe4\xe6\xd1\x0b\x6d\x14\xf0\x8f",
+		.len	= 16,
+	}, {
+		.key	= "\xd6\x1a\x18\x2f\x68\x2f\xb6\xfe"
+			  "\x3d\x2d\x85\x75\x6e\x18\x8a\x52"
+			  "\x53\x39\xfc\xc1\xf5\xc0\x56\x22",
+		.klen	= 24,
+		.iv	= "\xc6\xae\xaa\x0d\x90\xf2\x38\x93"
+			  "\xac\xd2\x3f\xc7\x74\x8d\x13\x7e",
+		.ptext	= "\xfa\x3f\x70\x52\xfb\x04\x0e\xed"
+			  "\x0e\x60\x75\x84\x21\xdf\x13\xa1"
+			  "\x26\xf8\x8c\x26\x0a\x37\x51\x8f"
+			  "\xe7\x9c\x74\x77\x7a\x3e\xbb\x5d",
+		.ctext	= "\x80\x2b\xf0\x88\xb9\x4b\x8d\xf5"
+			  "\xc3\x0e\x15\x5b\xea\x5d\x5b\xa8"
+			  "\x07\x95\x78\x72\xc0\xb9\xbf\x25"
+			  "\x33\x22\xd1\x05\x56\x46\x62\x25",
+		.len	= 32,
+	}, {
+		.key	= "\xd7\x33\xf3\xa9\x5b\xb4\x86\xea"
+			  "\xe3\x7d\x50\x62\x3b\x73\xaf\xc4"
+			  "\xda\x89\xd9\x3c\xcc\xe4\x73\xb0",
+		.klen	= 24,
+		.iv	= "\xef\x3e\x5f\x46\x62\x88\xd5\x26"
+			  "\x3b\xd3\xb5\x81\x78\x70\x1b\xd2",
+		.ptext	= "\x39\x56\x34\x63\x2c\xc5\x51\x13"
+			  "\x48\x29\x3a\x58\xbe\x41\xc5\x80"
+			  "\x2c\x80\xa7\x3c\x14\xb4\x89\x5e"
+			  "\x8e\xe5\x5f\xe2\x39\x80\xf5\x2b"
+			  "\x77\xb5\xca\x90\xda\x1d\x22\x17"
+			  "\xd9\xa0\x57\x80\xc8\x96\x70\x86",
+		.ctext	= "\x65\x01\x3c\xb0\xac\x4c\x63\xb6"
+			  "\xe7\xf1\xf4\x61\x35\xf4\x36\xde"
+			  "\x7f\x85\xba\x41\xa8\xb0\x27\x11"
+			  "\x86\x2c\x71\x16\x05\x1d\xcf\x70"
+			  "\x35\xef\x23\x17\xfc\xed\x3f\x1a"
+			  "\x8e\xb3\xe5\xdb\x90\xb4\xb8\x35",
+		.len	= 48,
+	}, {
+		.key	= "\x07\x2c\xf4\x61\x79\x09\x01\x8f"
+			  "\x37\x32\x98\xd4\x86\x2b\x3b\x80"
+			  "\x07\x60\xba\xf0\x2e\xc3\x4a\x57",
+		.klen	= 24,
+		.iv	= "\xf5\xb5\xd7\xbf\xd2\x2a\x9b\x4a"
+			  "\xe6\x08\xf0\xbe\x77\xd1\x62\x40",
+		.ptext	= "\xa0\x82\x09\x60\x47\xbb\x16\x56"
+			  "\x50\x1f\xab\x8b\x10\xfe\xf0\x5c"
+			  "\x05\x32\x63\x1a\xc4\x46\x6f\x55"
+			  "\x32\xde\x41\x5a\xf7\x52\xd7\xfa"
+			  "\x30\x9d\x59\x8d\x64\x76\xad\x37"
+			  "\xba\xbc\x46\x6a\x69\x17\x3c\xac"
+			  "\x6f\xdd\xa2\x9b\x86\x32\x14\x2e"
+			  "\x54\x74\x8f\x3d\xe2\xd6\x85\x44",
+		.ctext	= "\x5a\xfb\xb1\x2c\x6e\xe5\xb8\xe0"
+			  "\x80\xb6\x77\xa8\xfe\x10\x3a\x99"
+			  "\x00\x8e\x30\x23\x7d\x50\x87\xda"
+			  "\xc6\x46\x73\x37\x8b\xf1\xab\x26"
+			  "\x2d\xa8\x0c\xa8\x9e\x77\xee\xfc"
+			  "\x78\x4f\x03\x0f\xeb\xc6\x03\x34"
+			  "\xb9\x9c\x4f\x59\x55\xc5\x99\x47"
+			  "\xd4\x7e\xe8\x06\x43\x5f\xa1\x6b",
+		.len	= 64,
+	}, {
+		.key	= "\x4f\x4a\x31\x64\xc6\xa5\x29\xaa"
+			  "\xad\xfd\x32\x94\x1f\x56\x57\xd1"
+			  "\x9d\x7e\x3d\x49\x00\x36\xb1\x5d",
+		.klen	= 24,
+		.iv	= "\xb2\x92\x83\x70\x1e\xa3\x97\xa6"
+			  "\x65\x53\x39\xeb\x53\x8f\xb1\x38",
+		.ptext	= "\x91\xac\x17\x11\x1c\x03\x69\x53"
+			  "\xf5\xdf\xdb\x2c\x1b\x9a\x6e\x6b"
+			  "\xb6\x02\xc4\xfa\x95\x01\x33\xa8"
+			  "\xda\x7e\x18\x2c\xf4\x7e\x6e\x67"
+			  "\xce\x8f\x9f\xea\x46\x66\x99\xb8"
+			  "\xe1\xc7\x25\x4d\xbd\xa5\x74\xdf"
+			  "\xc7\x8b\xfb\xe3\x2d\x3a\x82\xd3"
+			  "\x17\x94\x77\x2f\x92\xb8\x87\xc2"
+			  "\xcc\x6f\x70\x26\x87\xc7\x10\x8a"
+			  "\xc8\xfd\xc2\xb3\xcf\xa0\xeb\x41",
+		.ctext	= "\xc9\x5f\xe0\x60\x61\x38\x7e\x79"
+			  "\x52\x68\x64\x8f\x55\x9b\x6b\x72"
+			  "\xbf\x09\xef\x2f\xb2\x92\xbb\xa3"
+			  "\xe1\x6a\xeb\xe6\x4e\x7c\x5d\xe0"
+			  "\x6a\x4b\xd0\x57\x3b\x28\x8a\x83"
+			  "\x75\xd4\x5a\x2e\xd1\x9a\x57\xe3"
+			  "\xc5\x43\x36\xde\x02\xac\x2c\x75"
+			  "\xea\x33\x3a\x7e\x5d\xb8\xf6\x12"
+			  "\x42\xbd\x06\x8a\x09\x6b\xd6\xb6"
+			  "\x25\x59\xcd\xbd\x17\xeb\x69\xb3",
+		.len	= 80,
+	}, {
+		.key	= "\x4c\xf4\xd0\x34\xd0\x95\xab\xae"
+			  "\x82\x5c\xfd\xfa\x13\x86\x25\xce"
+			  "\xf4\x13\x32\xcd\xc6\x6d\xf6\x50",
+		.klen	= 24,
+		.iv	= "\x12\x4a\x5b\x66\x3a\xd3\xfb\x1a"
+			  "\xaf\x06\xea\xf4\x65\x59\xd6\xc2",
+		.ptext	= "\x84\xa0\x53\x97\x61\x30\x70\x15"
+			  "\xac\x45\x8e\xe8\xeb\xa1\x72\x93"
+			  "\x26\x76\x98\x6f\xe4\x86\xca\xf0"
+			  "\x57\x89\xf2\x2b\xd4\xcf\x2d\x95"
+			  "\x86\x26\x20\x0e\x62\xfe\x8f\x1e"
+			  "\x5d\xcb\x2b\x7e\xdd\xab\xac\xda"
+			  "\x6e\x49\x20\xd5\xb7\x01\x83\x4e"
+			  "\xac\x45\x8f\xe1\x05\x3f\xd5\xb1"
+			  "\xee\xb7\x0d\x65\x00\x38\xab\x71"
+			  "\x70\x6e\xb3\x97\x86\xd3\xcd\xad"
+			  "\x51\x8b\x9c\xa0\x9a\x8b\x4c\xb9"
+			  "\x16\x01\x6a\x1f\xdf\xf0\xf9\x9e",
+		.ctext	= "\x03\x2c\x39\x24\x99\xb5\xf6\x79"
+			  "\x91\x89\xb7\xf8\x89\x68\x37\x9d"
+			  "\xe7\x4d\x7d\x1c\x36\xae\x98\xd2"
+			  "\xbf\x2a\xa4\x30\x38\x30\xe7\x5d"
+			  "\xbb\x00\x09\x40\x34\xa4\xef\x82"
+			  "\x23\xca\x0e\xb3\x71\x80\x29\x0a"
+			  "\xa9\x0b\x26\x65\x9a\x12\xbf\x18"
+			  "\xfb\xf8\xe4\xc2\x62\x57\x18\xfb"
+			  "\x1e\x98\xea\x5b\xf6\xd6\x7c\x52"
+			  "\x7a\xba\x0e\x6a\x54\x19\xb6\xfa"
+			  "\xe5\xd7\x60\x40\xb0\x1a\xf1\x09"
+			  "\x70\x96\x23\x49\x98\xfc\x79\xd2",
+		.len	= 96,
+	}, {
+		.key	= "\x25\x1b\xc2\xa6\x21\x25\xeb\x97"
+			  "\x4b\xf6\xcb\x3b\xcd\x61\xfd\x94"
+			  "\x37\x03\xb3\xd9\x74\x6e\x4d\xbb",
+		.klen	= 24,
+		.iv	= "\xfd\x87\x2b\xec\x4c\x2c\xbf\xe2"
+			  "\x94\x1a\xe6\xd9\xaf\x0e\x78\x17",
+		.ptext	= "\x58\x2b\x1d\x73\x9a\x9c\x63\x18"
+			  "\x88\x7a\x0e\x87\x2f\xf0\xb0\xdb"
+			  "\xc9\x9d\x79\x51\x34\x39\x4f\x07"
+			  "\xa2\x7c\x21\x04\x91\x3b\x79\x79"
+			  "\xfe\xd5\x51\x46\xd5\xcd\x28\xc0"
+			  "\xad\xb8\x55\xb2\xb2\x5a\x9a\xa2"
+			  "\xe2\x0c\xfc\x55\x7d\x60\xd2\x95"
+			  "\xb6\x08\x1d\x31\xaf\xf4\x17\x46"
+			  "\xa4\xbb\x0f\xbd\x67\x3c\x73\x15"
+			  "\x0c\x85\x2f\x62\xe5\xf4\x35\x96"
+			  "\xb1\x9b\x5d\x00\x10\xe9\x70\x12"
+			  "\x3a\x87\x7f\x67\xf1\x81\x7a\x05"
+			  "\xb4\xa6\xfe\xdf\x36\x31\x6d\x9e"
+			  "\x0e\xa9\x44\xa0\xb0\x05\xa9\x41",
+		.ctext	= "\xd4\x9a\x04\x54\x05\xd2\xe6\x3f"
+			  "\xb0\xa4\x36\x5e\x1e\x9c\x35\xb0"
+			  "\xa6\x62\x35\x47\xf4\x4d\x08\x9e"
+			  "\x1c\x22\x91\x8e\x7f\x00\xa6\x3e"
+			  "\x0a\x04\x42\x0f\xc4\xa6\x5d\xe2"
+			  "\x49\x4c\x61\x12\xea\x9d\x7d\x7c"
+			  "\xfa\x93\x74\x6b\x79\x8c\xdb\xc6"
+			  "\x47\xf6\xea\x84\x3e\x97\x7d\x87"
+			  "\x40\x38\x92\xc7\x44\xef\xdf\x63"
+			  "\x29\xe4\x5b\x3a\x87\x22\xa1\x3f"
+			  "\x2b\x31\xb1\xa4\x0d\xea\xf3\x0b"
+			  "\xd7\x4f\xb6\x9c\xba\x40\xa3\x2f"
+			  "\x21\x2b\x05\xe4\xca\xef\x87\x04"
+			  "\xe6\xd0\x29\x2c\x29\x26\x57\xcd",
+		.len	= 112,
+	}, {
+		.key	= "\x9c\x14\x44\x5a\xd5\x1c\x50\x08"
+			  "\x95\xc2\xf2\xaf\x3f\x29\xc9\x3e"
+			  "\x95\x5e\xc6\xb4\x2b\xf4\x3e\xe3",
+		.klen	= 24,
+		.iv	= "\x1b\xeb\x3d\x73\xfb\xd7\x1e\x2b"
+			  "\x0c\x3d\x58\x6c\xb4\x41\x9b\xfe",
+		.ptext	= "\x2f\x7e\x1c\x10\x81\x36\x2d\x79"
+			  "\xaf\xab\x10\x44\x2e\xcc\x0d\x6c"
+			  "\x9c\x14\xc2\xe4\xae\xb0\xbb\xda"
+			  "\x6a\xe0\x42\x3d\x96\x9f\x78\x7d"
+			  "\x70\x86\xa5\x92\x9f\xee\xcd\x3f"
+			  "\x6a\x55\x84\x98\x28\x03\x02\xc2"
+			  "\xf7\xec\x7a\xfa\xb1\xd9\xa8\xd8"
+			  "\x1c\xc3\xaa\xd5\x61\x7f\x10\x0c"
+			  "\xc0\xa1\x36\x3d\x81\x9a\xd2\x17"
+			  "\x2e\x23\xc9\xb7\xff\xdf\x47\x6c"
+			  "\x96\x3b\x0e\xbd\xec\x9a\x0e\xad"
+			  "\x8c\xaf\x36\x3d\xff\x29\x8b\x33"
+			  "\x87\x96\x77\x1a\x10\x81\x63\x8a"
+			  "\x63\xde\x88\xa9\x9d\xa9\x01\xf2"
+			  "\xdf\xc9\x25\x35\x48\x3a\x15\xdf"
+			  "\x20\x6b\x91\x7c\x56\xe5\x10\x7a",
+		.ctext	= "\xbc\x57\x2a\x88\x0a\xd0\x06\x4f"
+			  "\xdb\x7b\x03\x9f\x97\x1a\x20\xfe"
+			  "\xdb\xdc\x8e\x7b\x68\x13\xc8\xf5"
+			  "\x06\xe3\xe0\x7e\xd3\x51\x21\x86"
+			  "\x4f\x32\xdb\x78\xe3\x26\xbe\x34"
+			  "\x52\x4c\x4e\x6b\x85\x52\x63\x8b"
+			  "\x8c\x5c\x0e\x33\xf5\xa3\x88\x2d"
+			  "\x04\xdc\x01\x2d\xbe\xa1\x48\x6d"
+			  "\x50\xf4\x16\xb1\xd7\x4d\x1e\x99"
+			  "\xa8\x1d\x54\xcb\x13\xf9\x85\x51"
+			  "\x18\x9f\xef\x45\x62\x5d\x48\xe5"
+			  "\x0c\x54\xf7\x7b\x33\x18\xce\xb0"
+			  "\xd5\x82\x1b\xe2\x91\xae\xdc\x09"
+			  "\xe2\x97\xa8\x27\x13\x78\xc6\xb8"
+			  "\x20\x06\x1a\x71\x5a\xb3\xbc\x1b"
+			  "\x69\x1f\xcd\x57\x70\xa7\x1e\x35",
+		.len	= 128,
+	}, {
+		.key	= "\x2d\x2e\x0f\x30\x32\xed\xa9\x1f"
+			  "\x71\x4e\x68\x77\xe8\xa8\x5b\xdd"
+			  "\x3c\x5e\x68\x6b\xab\x03\xe4\xf8",
+		.klen	= 24,
+		.iv	= "\x42\xc1\x61\x9a\x50\xfb\xc7\x6a"
+			  "\x1a\x31\xa7\x87\xd0\x24\xcb\x5e",
+		.ptext	= "\xc0\x3b\x12\x28\xca\x26\x7b\xb3"
+			  "\x14\xc1\x7f\x66\xff\x3b\xa4\x80"
+			  "\x59\x77\x4f\xa0\xd4\xb2\xd9\x8a"
+			  "\xb6\x67\xe6\x28\xd3\x6f\xf2\xcf"
+			  "\xb8\x6d\x2d\xc4\x2a\x69\x89\xff"
+			  "\xcf\xbb\x11\x2e\x2a\x2b\x7c\xfd"
+			  "\xcd\x56\x02\x95\xc9\x54\x6e\x62"
+			  "\x6a\x97\x75\x1a\x21\x16\x46\xfb"
+			  "\xc2\xab\x62\x54\xef\xba\xae\x46"
+			  "\xd4\x14\xc6\xcc\x16\x1b\x95\xf9"
+			  "\x05\x26\x23\x81\x19\x27\xad\x7b"
+			  "\x9c\x8b\xfb\x65\xa4\x61\xee\x69"
+			  "\x44\xbf\x59\xde\x03\x61\x11\x12"
+			  "\x8d\x94\x48\x47\xa9\x52\x16\xfb"
+			  "\x6b\xaf\x59\x6d\xab\x74\xbf\x5c"
+			  "\xb6\x09\x21\x12\x42\x98\x13\xa1"
+			  "\xa8\x6f\xb9\x6d\x4d\xa6\xdc\xea"
+			  "\x61\x02\x3c\xa7\xcd\x1a\x28\x8c",
+		.ctext	= "\xd7\xb4\xfc\xcc\x1f\xf7\xfc\x7d"
+			  "\x69\xfa\xcb\x01\x60\xf3\x5a\x14"
+			  "\x88\xf7\xea\x43\xaa\x47\xf1\x8a"
+			  "\x4e\xd0\x3c\x50\x58\x35\x95\x21"
+			  "\x5f\xcc\x73\x0b\x97\xa0\x2c\x6b"
+			  "\x70\x4d\x3d\xa8\x21\xbe\xfc\xec"
+			  "\xb6\x55\xf0\x48\x2b\x11\xcc\x4b"
+			  "\xda\xf7\x09\xd9\x18\x7b\x4f\x00"
+			  "\x76\x40\xe0\x7d\x33\xcf\x4f\x77"
+			  "\x91\x97\x63\xfa\x72\xba\x5c\x3d"
+			  "\xcf\x2e\xb8\x19\x56\x4a\xa5\x02"
+			  "\xc3\xb1\x80\xa8\x57\x03\x32\x57"
+			  "\xa8\xe1\x65\xf7\xd3\x52\xc5\xcf"
+			  "\x55\x1e\x34\xe3\x77\xab\x83\xdb"
+			  "\xaf\xd3\x8a\xcc\x96\x1c\xc9\x73"
+			  "\xd9\x0b\xb6\x4c\x31\xac\x2c\x82"
+			  "\xb8\xb4\xc8\xe1\xa5\x71\xcc\xb3"
+			  "\x7e\x85\xb8\xfa\x6b\xef\x41\x24",
+		.len	= 144,
+	}, {
+		.key	= "\x66\xb8\x4d\x60\x67\x82\xcc\x8d"
+			  "\x1e\xda\x8f\x28\xe5\x02\xdc\x2c"
+			  "\x54\x84\x2a\x06\xb5\xd1\x34\x57",
+		.klen	= 24,
+		.iv	= "\xb8\x28\x4d\xf5\x69\xb9\xf3\x33"
+			  "\x5e\x0b\xa6\x62\x35\x9b\xfb\x97",
+		.ptext	= "\x3e\xc6\xec\xaf\x74\xe8\x72\x91"
+			  "\xb2\xc6\x56\xb3\x23\x29\x43\xe0"
+			  "\xfb\xcc\x21\x38\x64\x78\x9e\x78"
+			  "\xbb\x6e\x0d\x7b\xfd\x05\x74\x01"
+			  "\x7c\x94\xe0\xb0\xd7\x92\xfc\x58"
+			  "\x28\xfc\xe2\x7b\x7f\xf7\x31\x0d"
+			  "\x90\xb7\x60\x78\xa8\x9f\x52\xe3"
+			  "\xe6\xaa\x2a\xb4\xa7\x09\x60\x53"
+			  "\x42\x0e\x15\x31\xf6\x48\xa3\x0a"
+			  "\x20\xf0\x79\x67\xb1\x83\x26\x66"
+			  "\xe0\xb1\xb3\xbd\x1c\x76\x36\xfd"
+			  "\x45\x87\xa4\x14\x1b\xef\xe7\x16"
+			  "\xf7\xfa\x30\x3d\xb9\x52\x8f\x2e"
+			  "\x01\x68\xc1\x7d\xa2\x15\x49\x74"
+			  "\x53\x82\xc2\x10\xa8\x45\x73\x4d"
+			  "\x41\xcc\x24\xa3\x42\xff\x30\xd1"
+			  "\x02\x21\xdc\xd9\x08\xf7\xe7\x4c"
+			  "\x33\x2d\x62\xc7\x38\xf5\xc2\xbe"
+			  "\x52\xf1\x34\x78\x34\x53\x30\x5b"
+			  "\x43\x43\x51\x6a\x02\x81\x64\x0c",
+		.ctext	= "\x71\xf6\x96\x02\x07\x71\x1a\x08"
+			  "\x7c\xfe\x33\xc4\xc9\xbe\xe2\xed"
+			  "\xf8\x46\x69\xce\x1b\xdc\xd3\x05"
+			  "\x7a\xec\x26\x4d\x27\x2a\x49\x36"
+			  "\x85\xe1\x5d\xd3\x91\xd7\x68\xb8"
+			  "\x55\xa5\x27\x55\x2d\xc1\x78\x27"
+			  "\x0c\x49\x0a\x24\x3b\x76\x3f\x5f"
+			  "\x29\x1c\x37\x2f\x30\xfc\x50\xcb"
+			  "\xe2\x54\x26\x7d\x97\xa7\xf3\x58"
+			  "\x15\xe1\x4c\xeb\x35\xc9\xd1\x1e"
+			  "\x7e\x7d\xa0\xe5\x62\xa5\x2d\xf6"
+			  "\x77\xb0\xef\x13\x55\xb4\x66\x2c"
+			  "\x3b\x50\x1b\x4d\xc2\x64\xce\xc6"
+			  "\xfe\xf2\xad\xfe\x26\x73\x36\x66"
+			  "\x0c\x2f\x10\x35\x97\x3c\x9c\x98"
+			  "\xc1\x90\xa8\x82\xd7\xc6\x31\x68"
+			  "\xcf\x77\xa8\x5b\xdf\xf9\x5a\x8e"
+			  "\x84\xb5\x0b\x6e\x5b\xec\x36\x89"
+			  "\x0b\xb1\xbf\xb9\x70\x02\x5c\x22"
+			  "\xc3\xd5\xc1\xc6\xfd\x07\xdb\x70",
+		.len	= 160,
+	}, {
+		.key	= "\x82\x8e\x9e\x06\x7b\xc2\xe9\xb3"
+			  "\x06\xa3\xfa\x99\x42\x67\x87\xac"
+			  "\x21\xc7\xb0\x98\x6c\xf8\x26\x57"
+			  "\x08\xdd\x92\x02\x77\x7b\x35\xe7",
+		.klen	= 32,
+		.iv	= "\xa1\xad\xcb\xdd\xd5\x19\xb6\xd4"
+			  "\x0b\x62\x58\xb0\x6c\xa0\xc1\x58",
+		.ptext	= "\x14\x0d\x8a\x09\x16\x00\x00\xf1"
+			  "\xc0\x20\x86\xf9\x21\xd1\x34\xe2",
+		.ctext	= "\x05\xe3\x34\xaf\x6c\x83\x14\x8b"
+			  "\x9d\x1c\xd6\x87\x74\x91\xdf\x17",
+		.len	= 16,
+	}, {
+		.key	= "\xc9\xf3\xc4\x93\xd0\xcc\xaf\xb1"
+			  "\x1a\x42\x93\x71\xd8\x4e\xd8\xaa"
+			  "\x52\xad\x93\x2f\xe5\xd9\xaa\x5b"
+			  "\x47\x37\x3a\xed\x13\x92\x35\x16",
+		.klen	= 32,
+		.iv	= "\x81\xc8\x50\xd1\x74\xc3\x1c\x73"
+			  "\xbb\xab\x72\x83\x90\x5a\x15\xcb",
+		.ptext	= "\x65\x11\x93\xaf\xe1\x69\x6c\xbe"
+			  "\x25\x8c\x76\x87\x53\xa4\x80\xae"
+			  "\x51\x94\x36\x3f\xca\xe7\x45\x41"
+			  "\x76\x05\xbf\x8f\x9c\xad\xc0\xe3",
+		.ctext	= "\x6b\x00\x6e\x49\x7a\x6d\xe3\x04"
+			  "\x4e\xf7\x9f\x8a\x1f\x14\xbd\xb1"
+			  "\x51\xbf\x13\x9f\x29\x95\x51\x16"
+			  "\xd0\x23\x9a\x1a\x45\xc2\xc3\xd1",
+		.len	= 32,
+	}, {
+		.key	= "\xd5\x9f\x52\x34\x12\x99\x8e\x42"
+			  "\xe0\x85\x04\x6f\xeb\xf1\x5d\xd0"
+			  "\xc1\xbf\x3f\x84\xd9\x1e\x71\x44"
+			  "\xd4\xb9\x40\x3c\x02\x2e\x21\x19",
+		.klen	= 32,
+		.iv	= "\x28\xc1\x97\x64\x81\x52\x57\x0e"
+			  "\x02\x8c\xab\x4c\xe2\x60\x14\xa5",
+		.ptext	= "\x5a\xb1\x33\x48\xaa\x51\xe9\xa4"
+			  "\x5c\x2d\xbe\x33\xcc\xc4\x7f\x96"
+			  "\xe8\xde\x2b\xe7\x35\x7a\x11\x4b"
+			  "\x13\x08\x32\xc6\x41\xd8\xec\x54"
+			  "\xa3\xd3\xda\x35\x43\x69\xf6\x88"
+			  "\x97\xca\x00\x1b\x02\x59\x24\x82",
+		.ctext	= "\x03\xaf\x76\xbd\x5e\x5b\xca\xc0"
+			  "\xae\x44\xa2\x2f\xc2\x76\x2f\x50"
+			  "\xfa\x94\x94\x5a\x48\x9d\x9c\x38"
+			  "\xc9\x75\xc9\xb2\x56\x0a\x2d\x91"
+			  "\xb8\xe8\x4e\xaa\xcb\x51\x9b\x6a"
+			  "\x20\x9b\x2b\xc5\xb0\x18\x9d\x01",
+		.len	= 48,
+	}, {
+		.key	= "\x9c\x5d\xd7\x66\x36\xfa\x02\x20"
+			  "\x99\x61\x62\x86\x0f\x43\x2e\x05"
+			  "\x25\x8b\xfb\xf1\xae\x4c\xde\x18"
+			  "\x0b\xf8\xd0\x9d\xaa\xd4\x56\x04",
+		.klen	= 32,
+		.iv	= "\xcd\xa8\x61\x89\x8d\xbb\x72\xb6"
+			  "\x1e\xfe\x03\x34\x54\x88\x23\xe2",
+		.ptext	= "\x66\x42\x60\x24\xf3\xe4\xe9\x7e"
+			  "\x42\x20\xf4\x61\xce\x1c\x5e\x44"
+			  "\x02\x26\x91\xf7\x41\xa4\xab\x34"
+			  "\x29\x49\xdd\x78\x19\x8f\x10\x10"
+			  "\xf0\x61\xcf\x77\x18\x17\x61\xdf"
+			  "\xc4\xa8\x35\x0e\x75\x1b\x84\x6b"
+			  "\xc3\x3f\x31\x59\x5a\x9c\xf4\xc3"
+			  "\x43\xa9\xb7\xf8\x65\x40\x40\xba",
+		.ctext	= "\xb6\x41\x55\x8f\xeb\x16\x1e\x4c"
+			  "\x81\xa0\x85\x6c\xf0\x07\xa5\x2a"
+			  "\x19\x91\xed\x3e\xd6\x30\x8c\xca"
+			  "\x5d\x0f\x58\xca\xd2\x8a\xac\xa2"
+			  "\x2b\x86\x4f\xb5\x85\x4d\xac\x6d"
+			  "\xe5\x39\x1b\x02\x23\x89\x4e\x4f"
+			  "\x02\x00\xe8\x1b\x40\x85\x21\x2b"
+			  "\xc6\xb1\x98\xed\x70\xb3\xf8\xc3",
+		.len	= 64,
+	}, {
+		.key	= "\x4b\x4e\x11\x91\x27\xcf\x8c\x66"
+			  "\x17\xfa\x5b\x4c\xa8\xb8\x0f\xa1"
+			  "\x99\x5b\x07\x56\xe1\x8d\x94\x8b"
+			  "\xf2\x86\x5a\x5f\x40\x83\xfa\x06",
+		.klen	= 32,
+		.iv	= "\xfd\x73\xee\x1c\x27\xf3\xb4\x38"
+			  "\xc5\x7c\x2e\xc5\x6e\xdb\x49\x0d",
+		.ptext	= "\x0a\xe2\xdd\x97\xdd\x5e\xd4\xb3"
+			  "\xc1\x49\x8f\x53\xb2\x40\x85\x1c"
+			  "\x90\x37\x2d\xbd\x21\x6b\x1f\x80"
+			  "\x56\x98\x76\x1e\xcf\x6c\x78\xd8"
+			  "\xa0\x3c\x79\xc3\x56\xf7\xfc\x64"
+			  "\x35\x58\x1c\x7c\xc4\x5f\x2a\x25"
+			  "\x8c\x01\x98\x1e\x1c\x1f\x15\x64"
+			  "\x50\xb5\xfa\x02\xd3\x54\xe5\x29"
+			  "\xe3\xd2\xa3\x83\x54\x40\x54\xc5"
+			  "\xd8\x1c\xc9\x84\x7d\xc8\x31\x49",
+		.ctext	= "\x53\x2a\xa8\xa0\x15\xaf\x2f\xc4"
+			  "\x7d\x31\xb4\x61\x80\x5f\xd1\xb6"
+			  "\x7c\xca\x86\xb9\x28\x6e\xb6\x2b"
+			  "\xe3\x4b\x7e\xea\xb3\x4f\xa2\xa2"
+			  "\x4e\x8f\xbe\x22\x66\xb3\x92\xbc"
+			  "\x70\x91\xaf\xa6\x09\x5d\xe2\x05"
+			  "\x38\x62\xd3\x6e\x07\x63\x91\xad"
+			  "\x48\x5a\x42\xe7\xdc\x0d\xb1\xe3"
+			  "\x92\x88\x64\xee\x93\xaa\xaf\x31"
+			  "\x68\x57\x35\x8d\x54\x2c\xfa\xb1",
+		.len	= 80,
+	}, {
+		.key	= "\x77\x3b\xf5\xe7\x20\xf7\xe0\x0c"
+			  "\x3d\x3a\x83\x17\x83\x79\xd8\x29"
+			  "\x5a\x0a\x25\x7f\xe0\x21\x23\xff"
+			  "\x31\xfd\x60\x10\xe6\x63\xe2\xaf",
+		.klen	= 32,
+		.iv	= "\xdb\x4c\x0d\xc0\x36\xdb\xc7\xa1"
+			  "\xa4\x91\xd9\x05\xe6\xc4\x98\x00",
+		.ptext	= "\x8d\x4d\xc6\x5e\x01\x82\xb3\x39"
+			  "\xc8\x64\xa7\xcb\x05\x19\x84\x80"
+			  "\x3f\x9c\xa8\x4f\x64\xb3\x11\x4b"
+			  "\x0e\x21\xc4\x75\x04\x1d\x6f\xd5"
+			  "\x04\x04\x4d\xc9\xc0\x4b\x4a\x9c"
+			  "\x26\xb7\x68\x5a\xe4\xd0\x61\xe3"
+			  "\x2c\x93\x8e\x3f\xb4\x67\x07\x31"
+			  "\x02\x52\x0c\x0f\xe6\x6d\xa3\xd0"
+			  "\x48\x95\x83\x67\x23\x64\x31\x50"
+			  "\xd2\x5f\x69\x68\x8b\x71\xbf\x01"
+			  "\x29\x99\x86\x36\x2e\xdf\xf1\x7c"
+			  "\x08\x8c\x78\x7a\x93\x9a\x7d\x1b",
+		.ctext	= "\x92\x90\x48\x2f\x3a\x6b\x68\x43"
+			  "\x28\x9b\x7d\x1e\x46\x28\xd8\x58"
+			  "\xd9\x1e\x44\xd7\x24\x91\x65\xb1"
+			  "\x15\xde\xc4\x63\xf1\xb1\x34\x9e"
+			  "\xae\x8c\x51\x94\xc5\x22\x65\x8d"
+			  "\x3d\x85\xf5\x34\x5f\x04\x68\x95"
+			  "\xf2\x66\x62\xbb\xc8\x3f\xe4\x0a"
+			  "\x8a\xb2\x70\xc0\x77\xd5\x96\xef"
+			  "\x9e\x39\x3a\x3e\x0d\x2b\xf9\xfe"
+			  "\xa9\xbc\x00\xba\xc5\x43\xd7\x70"
+			  "\x2f\xef\x1e\x1e\x93\xc2\x5d\xf1"
+			  "\xb5\x50\xb8\xf5\xee\xf4\x26\x6f",
+		.len	= 96,
+	}, {
+		.key	= "\xe0\x6a\x30\xe1\x35\xb5\xb0\x7c"
+			  "\x54\xc5\x73\x9b\x00\xe5\xe7\x02"
+			  "\xbe\x16\x59\xdc\xd9\x03\x17\x53"
+			  "\xa8\x37\xd1\x5f\x13\x8e\x45\xdb",
+		.klen	= 32,
+		.iv	= "\x54\xe9\x1c\xde\xfb\x26\x0e\x48"
+			  "\x35\x50\x4d\x9b\x4d\x12\x21\x0d",
+		.ptext	= "\x73\x72\xcf\xdb\xbd\xbc\xc0\xdf"
+			  "\x6b\xbb\xdf\x65\x6f\x2f\x43\x3b"
+			  "\x2d\x7c\x0e\x07\x7f\xa0\x95\xdd"
+			  "\xfc\x67\xc1\x11\x7a\xe2\xb5\x4a"
+			  "\xd1\x15\xb0\xd8\xe2\xf0\x35\x48"
+			  "\xd8\x81\x6a\x35\xae\x67\xbf\x61"
+			  "\xf2\x8a\xcf\x04\xc8\x09\x8b\x63"
+			  "\x31\x74\x95\xa5\x8d\x3c\xea\xe2"
+			  "\x5f\x67\xc4\x7e\x51\x88\xbf\xb5"
+			  "\x78\xef\x3a\x76\xd8\x1d\x00\x75"
+			  "\x2b\x7b\x28\x7c\xde\x4b\x39\x01"
+			  "\x5d\xde\x92\xfe\x90\x07\x09\xfd"
+			  "\xa5\xd1\xd3\x72\x11\x6d\xa4\x4e"
+			  "\xd1\x6e\x16\xd1\xf6\x39\x4f\xa0",
+		.ctext	= "\x3b\xc5\xee\xfc\x05\xaf\xa6\xb7"
+			  "\xfe\x12\x24\x79\x31\xad\x32\xb5"
+			  "\xfb\x71\x9b\x02\xad\xf4\x94\x20"
+			  "\x25\x7b\xdb\xdf\x97\x99\xca\xea"
+			  "\xc4\xed\x32\x26\x6b\xc8\xd4\x7b"
+			  "\x5b\x55\xfa\xf9\x5b\xab\x88\xdb"
+			  "\x48\xfe\x67\xd5\x5a\x47\x81\x4e"
+			  "\x3e\x1e\x83\xca\x1d\x04\xe1\xb5"
+			  "\x6c\x1b\xbd\xf2\x2d\xf1\xae\x75"
+			  "\x09\x6a\xf8\xb2\xc3\x27\xee\x08"
+			  "\x66\x94\x72\xc0\x2b\x12\x47\x23"
+			  "\x4d\xde\xb4\xca\xf7\x66\xca\x14"
+			  "\xe7\x68\x1b\xfb\x48\x70\x3e\x4c"
+			  "\x43\xbb\x88\x32\x25\xff\x77\x6a",
+		.len	= 112,
+	}, {
+		.key	= "\x60\xb6\xde\x17\xca\x4c\xe7\xe0"
+			  "\x07\x0d\x80\xc5\x8a\x2d\x5a\xc2"
+			  "\x2c\xb9\xa4\x5f\x2a\x85\x2c\x3d"
+			  "\x6d\x67\xc8\xee\x0f\xa2\xf4\x09",
+		.klen	= 32,
+		.iv	= "\x1a\xa5\xbc\x7e\x93\xf6\xdd\x28"
+			  "\xb7\x69\x27\xa1\x84\x95\x25\x5a",
+		.ptext	= "\x7b\x88\x00\xeb\xa5\xba\xa1\xa7"
+			  "\xd4\x40\x16\x74\x2b\x42\x37\xda"
+			  "\xe0\xaf\x89\x59\x41\x2f\x62\x00"
+			  "\xf5\x5a\x4e\x3b\x85\x27\xb2\xed"
+			  "\x1b\xa7\xaf\xbe\x89\xf3\x49\xb7"
+			  "\x8c\x63\xc9\x0c\x52\x00\x5f\x38"
+			  "\x3b\x3c\x0c\x4f\xdd\xe1\xbf\x90"
+			  "\x4a\x48\xbf\x3a\x95\xcb\x48\xa2"
+			  "\x92\x7c\x79\x81\xde\x18\x6e\x92"
+			  "\x1f\x36\xa9\x5d\x8d\xc4\xb6\x4d"
+			  "\xb2\xb4\x0e\x09\x6d\xf3\x3d\x01"
+			  "\x3d\x9b\x40\x47\xbc\x69\x31\xa1"
+			  "\x6a\x71\x26\xdc\xac\x10\x56\x63"
+			  "\x15\x23\x7d\x10\xe3\x76\x82\x41"
+			  "\xcd\x80\x57\x2f\xfc\x4d\x22\x7b"
+			  "\x57\xbb\x9a\x0a\x03\xe9\xb3\x13",
+		.ctext	= "\x37\x0d\x47\x21\xbc\x28\x0b\xf7"
+			  "\x85\x5f\x60\x57\xf2\x7f\x92\x20"
+			  "\x5f\xa7\xf6\xf4\xa6\xf5\xdf\x1e"
+			  "\xae\x8e\xeb\x97\xfc\xce\x6a\x25"
+			  "\x6d\x6a\x5b\xd1\x99\xf6\x27\x77"
+			  "\x52\x0c\xf1\xd7\x94\xa0\x67\x5d"
+			  "\x60\x35\xb0\x6d\x01\x45\x52\xc8"
+			  "\x05\xd8\x7f\x69\xaf\x8e\x68\x05"
+			  "\xa8\xa5\x24\x2f\x95\xef\xf1\xd2"
+			  "\x8c\x45\x12\xc5\x7a\xcf\xbb\x99"
+			  "\x25\xaa\xa3\x9b\x3f\xf1\xfc\x9d"
+			  "\xfa\x2c\x26\x9b\x92\x47\x61\x6b"
+			  "\x63\x1e\x41\x67\xcb\xb7\x0f\x52"
+			  "\x70\xd4\x0d\x7e\xef\x34\xa2\x75"
+			  "\x4f\x6a\x55\x9c\x2b\x4a\x02\xdd"
+			  "\x96\x5d\xcb\xca\x45\xa1\xec\xaa",
+		.len	= 128,
+	}, {
+		.key	= "\x2a\xed\x7d\x76\xfc\xc5\x49\x50"
+			  "\xf4\x90\x0f\xcc\x5d\xff\x0c\x3c"
+			  "\x14\x06\xaf\x68\x8f\xd7\xb6\x25"
+			  "\x1e\x10\x95\x2a\x71\x33\x17\x20",
+		.klen	= 32,
+		.iv	= "\x5b\x58\x47\xf8\xd5\x1e\x91\x81"
+			  "\x46\xe7\x25\x3a\x02\x45\x9c\x65",
+		.ptext	= "\x10\xaf\xde\x5c\x30\x79\x43\x28"
+			  "\x1c\x03\xf8\x50\x0f\x30\xa5\xef"
+			  "\x84\x19\x4c\x09\x40\x03\x75\x1f"
+			  "\x92\x8f\x88\x01\xda\x31\x7a\xe4"
+			  "\x48\xe3\xab\xb4\xe6\x1b\x0f\xac"
+			  "\xd9\xfa\x8d\x23\xe4\xc6\xa4\xa9"
+			  "\x2d\x9a\x54\x52\x44\x5c\x3c\x52"
+			  "\x61\xf0\x00\xca\xed\xab\xed\xe2"
+			  "\x44\x0b\xe0\x18\xba\xa5\x63\xd8"
+			  "\xdc\x5e\x1a\x4c\xf8\xde\x5e\x75"
+			  "\xdf\x42\x27\x7b\xe9\x11\x2f\x41"
+			  "\x3a\x72\x54\x3d\x44\x9c\x3e\x87"
+			  "\x8d\x8d\x43\x2f\xb2\xff\x87\xd4"
+			  "\xad\x98\x68\x72\x53\x61\x19\x7c"
+			  "\x20\x79\x8c\x2b\x37\x0b\x96\x15"
+			  "\xa5\x7d\x4e\x01\xe6\xea\xb6\xfa"
+			  "\xaa\xd3\x9d\xa2\xd9\x11\xc3\xc9"
+			  "\xd4\x0e\x3f\x3e\xfe\x35\x1e\xe5",
+		.ctext	= "\xb0\x2b\x75\x5f\x33\x1b\x05\x49"
+			  "\x06\xf1\x43\x91\xc2\x85\xfa\xac"
+			  "\x3f\x47\xf3\x89\x73\xb2\x0e\xa4"
+			  "\x30\xcb\x87\x39\x53\x5d\x36\x89"
+			  "\x77\xd9\x17\x01\x95\xa6\xe9\x71"
+			  "\x51\x53\xd9\x4f\xa6\xc2\x79\x3d"
+			  "\x2e\x50\x90\x52\x0d\x27\x1a\x46"
+			  "\xf1\xe8\x6e\x7e\x7b\x32\xe5\x22"
+			  "\x22\x1f\xba\x5e\xcf\x25\x6b\x26"
+			  "\x76\xf0\xca\x8e\xdd\x5b\xd3\x09"
+			  "\x6f\x82\x08\x56\x1f\x51\x72\x57"
+			  "\xca\xd1\x60\x07\xfb\x9f\x71\x54"
+			  "\x0f\xf6\x48\x71\xfa\x8f\xcb\xdd"
+			  "\xce\xd3\x16\xcd\xae\x0e\x67\x5e"
+			  "\xea\x8d\xa2\x4a\x4f\x11\xc8\xc8"
+			  "\x2f\x04\xfe\xa8\x2a\x07\x1c\xb1"
+			  "\x77\x39\xda\x8b\xd9\x5c\x94\x6c"
+			  "\x4d\x4d\x13\x51\x6f\x07\x06\x5b",
+		.len	= 144,
+	}, {
+		.key	= "\x7b\xa7\x4d\x0a\x37\x30\xb9\xf5"
+			  "\x2a\x79\xb4\xbf\xdb\x7f\x9b\x64"
+			  "\x23\x43\xb5\x18\x34\xc4\x5f\xdf"
+			  "\xd9\x2a\x66\x58\x00\x44\xb5\xd9",
+		.klen	= 32,
+		.iv	= "\x75\x34\x30\xc1\xf0\x69\xdf\x0a"
+			  "\x52\xce\x4f\x1e\x2c\x41\x35\xec",
+		.ptext	= "\x81\x47\x55\x3a\xcd\xfe\xa2\x3d"
+			  "\x45\x53\xa7\x67\x61\x74\x25\x80"
+			  "\x98\x89\xfe\xf8\x6a\x9f\x51\x7c"
+			  "\xa4\xe4\xe7\xc7\xe0\x1a\xce\xbb"
+			  "\x4b\x46\x43\xb0\xab\xa8\xd6\x0c"
+			  "\xa0\xf0\xc8\x13\x29\xaf\xb8\x01"
+			  "\x6b\x0c\x7e\x56\xae\xb8\x58\x72"
+			  "\xa9\x24\x44\x61\xff\xf1\xac\xf8"
+			  "\x09\xa8\x48\x21\xd6\xab\x41\x73"
+			  "\x70\x6b\x92\x06\x61\xdc\xb4\x85"
+			  "\x76\x26\x7a\x84\xc3\x9e\x3a\x14"
+			  "\xe7\xf4\x2d\x95\x92\xad\x18\xcc"
+			  "\x44\xd4\x2c\x36\x57\xed\x2b\x9b"
+			  "\x3f\x2b\xcd\xe5\x11\xe3\x62\x33"
+			  "\x42\x3f\xb8\x2a\xb1\x37\x3f\x8b"
+			  "\xe8\xbd\x6b\x0b\x9f\x38\x5a\x5f"
+			  "\x82\x34\xb7\x96\x35\x58\xde\xab"
+			  "\x94\x98\x41\x5b\x3f\xac\x0a\x34"
+			  "\x56\xc0\x02\xef\x81\x6d\xb1\xff"
+			  "\x34\xe8\xc7\x6a\x31\x79\xba\xd8",
+		.ctext	= "\x4e\x00\x7c\x52\x45\x76\xf9\x3d"
+			  "\x1a\xd1\x72\xbc\xb9\x0f\xa9\xfb"
+			  "\x0e\x5b\xe2\x3c\xc7\xae\x92\xf6"
+			  "\xb8\x0b\x0a\x95\x40\xe9\x7f\xe0"
+			  "\x54\x10\xf9\xf6\x23\x1f\x51\xc8"
+			  "\x16\x8b\x2e\x79\xe1\x8c\x0b\x43"
+			  "\xe5\xeb\xb5\x9d\x1e\xc3\x28\x07"
+			  "\x5c\x8d\xb1\xe7\x80\xd3\xce\x62"
+			  "\x8d\xf8\x31\x1f\x29\x8b\x90\xee"
+			  "\xe5\xc3\xfa\x16\xc4\xf0\xc3\x99"
+			  "\xe9\x5e\x19\xba\x37\xb8\xc0\x87"
+			  "\xb5\xc6\xc9\x31\xcb\x6e\x30\xce"
+			  "\x03\x1d\xfe\xce\x08\x32\x00\xeb"
+			  "\x86\xc4\xfb\x48\x01\xda\x93\x73"
+			  "\xcc\xb7\xae\x4e\x94\x20\xeb\xc7"
+			  "\xe3\x33\x4c\xeb\xed\xe2\xfc\x86"
+			  "\x0e\x73\x32\xf9\x1b\xf3\x25\xf3"
+			  "\x74\xad\xd1\xf4\x2c\x45\xa4\xfd"
+			  "\x52\x40\xa2\x4e\xa5\x62\xf6\x02"
+			  "\xbb\xb0\xe3\x23\x86\x67\xb8\xf6",
+		.len	= 160,
+	}
+};
+
+static const struct cipher_testvec aria_cfb_tv_template[] = {
+	{
+		.key	= "\x7f\x92\xd5\x06\x30\x6b\xc0\x23"
+			  "\x87\xa8\x8e\x6d\xc7\xc5\xd7\xf1",
+		.klen	= 16,
+		.iv	= "\x5f\xce\x89\xb3\xd5\x7f\x7f\xf0"
+			  "\xfd\xab\x56\xa6\x6e\xda\x7c\x57",
+		.ptext	= "\x36\x36\x89\x09\xcd\xa8\xd3\x91"
+			  "\x48\x3e\x3c\x11\xcf\xd0\x4f\xc0",
+		.ctext	= "\x19\x28\xb5\xf2\x1c\xbc\xf8\xaf"
+			  "\xb9\xae\x1b\x23\x4f\xe1\x6e\x40",
+	}, {
+		.key	= "\x51\xe3\x8c\xe9\x76\xcd\xff\x37"
+			  "\xd6\x1a\x18\x2f\x68\x2f\xb6\xfe",
+		.klen	= 16,
+		.iv	= "\x3d\x2d\x85\x75\x6e\x18\x8a\x52"
+			  "\x53\x39\xfc\xc1\xf5\xc0\x56\x22",
+		.ptext	= "\xc6\xae\xaa\x0d\x90\xf2\x38\x93"
+			  "\xac\xd2\x3f\xc7\x74\x8d\x13\x7e"
+			  "\xfa\x3f\x70\x52\xfb\x04\x0e\xed"
+			  "\x0e\x60\x75\x84\x21\xdf\x13\xa1",
+		.ctext	= "\x3f\x8c\xa9\x19\xd6\xb4\xfb\xed"
+			  "\x9c\x6d\xaa\x1b\xe1\xc1\xe6\xa8"
+			  "\x47\x35\x7d\xa3\x96\x7d\x53\x60"
+			  "\xa9\x33\x9c\x34\xae\x7d\x7c\x74",
+		.len	= 32,
+	}, {
+		.key	= "\x26\xf8\x8c\x26\x0a\x37\x51\x8f"
+			  "\xe7\x9c\x74\x77\x7a\x3e\xbb\x5d",
+		.klen	= 16,
+		.iv	= "\xd7\x33\xf3\xa9\x5b\xb4\x86\xea"
+			  "\xe3\x7d\x50\x62\x3b\x73\xaf\xc4",
+		.ptext	= "\xda\x89\xd9\x3c\xcc\xe4\x73\xb0"
+			  "\xef\x3e\x5f\x46\x62\x88\xd5\x26"
+			  "\x3b\xd3\xb5\x81\x78\x70\x1b\xd2"
+			  "\x39\x56\x34\x63\x2c\xc5\x51\x13"
+			  "\x48\x29\x3a\x58\xbe\x41\xc5\x80"
+			  "\x2c\x80\xa7\x3c\x14\xb4\x89\x5e",
+		.ctext	= "\x28\xd8\xa7\xf8\x74\x98\x00\xfc"
+			  "\xd6\x48\xad\xbd\xbe\x3f\x0e\x7b"
+			  "\xa3\xec\x03\x6a\xfb\xc9\x01\x83"
+			  "\xb3\x2f\xda\x5e\x66\xa0\xc3\xec"
+			  "\xe9\xd4\x72\x2a\xa2\x90\x41\xcf"
+			  "\xde\x30\x79\xc3\x82\x10\x51\xe1",
+		.len	= 48,
+	}, {
+		.key	= "\x8e\xe5\x5f\xe2\x39\x80\xf5\x2b"
+			  "\x77\xb5\xca\x90\xda\x1d\x22\x17",
+		.klen	= 16,
+		.iv	= "\xd9\xa0\x57\x80\xc8\x96\x70\x86"
+			  "\x07\x2c\xf4\x61\x79\x09\x01\x8f",
+		.ptext	= "\x37\x32\x98\xd4\x86\x2b\x3b\x80"
+			  "\x07\x60\xba\xf0\x2e\xc3\x4a\x57"
+			  "\xf5\xb5\xd7\xbf\xd2\x2a\x9b\x4a"
+			  "\xe6\x08\xf0\xbe\x77\xd1\x62\x40"
+			  "\xa0\x82\x09\x60\x47\xbb\x16\x56"
+			  "\x50\x1f\xab\x8b\x10\xfe\xf0\x5c"
+			  "\x05\x32\x63\x1a\xc4\x46\x6f\x55"
+			  "\x32\xde\x41\x5a\xf7\x52\xd7\xfa",
+		.ctext	= "\x29\x31\x55\xd2\xe5\x0b\x81\x39"
+			  "\xf9\xbc\x63\xe2\xfa\x26\x99\xde"
+			  "\x5c\xd3\x0a\x56\xe5\xfc\x83\xdd"
+			  "\xab\x26\x90\x7d\xa8\x0f\x01\xa6"
+			  "\x0e\x01\xdc\x1f\xfa\xa7\xdd\x09"
+			  "\xf9\xbf\x12\xf4\xc6\x9f\xbd\x57"
+			  "\x23\x68\x54\x0f\xe0\xcf\x1c\x6d"
+			  "\xe1\x5e\x0b\x4a\x1e\x71\x1d\xaa",
+		.len	= 64,
+	}, {
+		.key	= "\x30\x9d\x59\x8d\x64\x76\xad\x37"
+			  "\xba\xbc\x46\x6a\x69\x17\x3c\xac",
+		.klen	= 16,
+		.iv	= "\x6f\xdd\xa2\x9b\x86\x32\x14\x2e"
+			  "\x54\x74\x8f\x3d\xe2\xd6\x85\x44",
+		.ptext	= "\x4f\x4a\x31\x64\xc6\xa5\x29\xaa"
+			  "\xad\xfd\x32\x94\x1f\x56\x57\xd1"
+			  "\x9d\x7e\x3d\x49\x00\x36\xb1\x5d"
+			  "\xb2\x92\x83\x70\x1e\xa3\x97\xa6"
+			  "\x65\x53\x39\xeb\x53\x8f\xb1\x38"
+			  "\x91\xac\x17\x11\x1c\x03\x69\x53"
+			  "\xf5\xdf\xdb\x2c\x1b\x9a\x6e\x6b"
+			  "\xb6\x02\xc4\xfa\x95\x01\x33\xa8"
+			  "\xda\x7e\x18\x2c\xf4\x7e\x6e\x67"
+			  "\xce\x8f\x9f\xea\x46\x66\x99\xb8",
+		.ctext	= "\x38\xbc\xf5\x9d\x0e\x26\xa6\x18"
+			  "\x95\x0b\x23\x54\x09\xa1\xf9\x46"
+			  "\x7a\x31\xa0\xd7\x4a\xec\xb3\x10"
+			  "\x8a\x8e\x99\x78\x6c\x6e\x76\xf2"
+			  "\x63\x8a\x3b\x90\xaa\xd5\x64\x65"
+			  "\x5a\x52\xb0\x36\x4c\xce\xed\xc7"
+			  "\x51\x3c\x06\xb0\xee\x54\xec\x10"
+			  "\xc0\x5f\xfd\xa9\x44\x9a\x29\x32"
+			  "\x19\x79\x7d\x2b\x14\x26\x96\x13"
+			  "\x9d\xa5\x61\xbd\xb6\x72\x37\x26",
+		.len	= 80,
+	}, {
+		.key	= "\xe1\xc7\x25\x4d\xbd\xa5\x74\xdf"
+			  "\xc7\x8b\xfb\xe3\x2d\x3a\x82\xd3",
+		.klen	= 16,
+		.iv	= "\x17\x94\x77\x2f\x92\xb8\x87\xc2"
+			  "\xcc\x6f\x70\x26\x87\xc7\x10\x8a",
+		.ptext	= "\xc8\xfd\xc2\xb3\xcf\xa0\xeb\x41"
+			  "\x4c\xf4\xd0\x34\xd0\x95\xab\xae"
+			  "\x82\x5c\xfd\xfa\x13\x86\x25\xce"
+			  "\xf4\x13\x32\xcd\xc6\x6d\xf6\x50"
+			  "\x12\x4a\x5b\x66\x3a\xd3\xfb\x1a"
+			  "\xaf\x06\xea\xf4\x65\x59\xd6\xc2"
+			  "\x84\xa0\x53\x97\x61\x30\x70\x15"
+			  "\xac\x45\x8e\xe8\xeb\xa1\x72\x93"
+			  "\x26\x76\x98\x6f\xe4\x86\xca\xf0"
+			  "\x57\x89\xf2\x2b\xd4\xcf\x2d\x95"
+			  "\x86\x26\x20\x0e\x62\xfe\x8f\x1e"
+			  "\x5d\xcb\x2b\x7e\xdd\xab\xac\xda",
+		.ctext	= "\xdf\x79\x58\x30\x6f\x47\x12\x78"
+			  "\x04\xb2\x0b\x1a\x62\x22\xe2\x9f"
+			  "\xfe\x90\x50\x41\x1b\x6a\x6a\x9c"
+			  "\x4e\x77\x8f\xca\xd1\x68\x31\xcd"
+			  "\x41\x82\xa5\x5b\xc0\x08\x2b\x37"
+			  "\x62\xec\x95\xf1\x56\x12\x38\x66"
+			  "\x84\x82\x72\xda\x00\x21\x96\x82"
+			  "\x33\xd4\x99\xaa\xb9\xeb\xd5\xc3"
+			  "\x2b\xa8\xf7\xdc\x13\x0e\x21\x9f"
+			  "\x4b\xf9\x42\x58\xa8\x39\x10\xd5"
+			  "\x86\xa5\xc6\x78\x3b\x34\x05\x03"
+			  "\x54\x43\x2b\x80\xa9\x53\x4d\x0e",
+		.len	= 96,
+	}, {
+		.key	= "\x6e\x49\x20\xd5\xb7\x01\x83\x4e"
+			  "\xac\x45\x8f\xe1\x05\x3f\xd5\xb1",
+		.klen	= 16,
+		.iv	= "\xee\xb7\x0d\x65\x00\x38\xab\x71"
+			  "\x70\x6e\xb3\x97\x86\xd3\xcd\xad",
+		.ptext	= "\x51\x8b\x9c\xa0\x9a\x8b\x4c\xb9"
+			  "\x16\x01\x6a\x1f\xdf\xf0\xf9\x9e"
+			  "\x25\x1b\xc2\xa6\x21\x25\xeb\x97"
+			  "\x4b\xf6\xcb\x3b\xcd\x61\xfd\x94"
+			  "\x37\x03\xb3\xd9\x74\x6e\x4d\xbb"
+			  "\xfd\x87\x2b\xec\x4c\x2c\xbf\xe2"
+			  "\x94\x1a\xe6\xd9\xaf\x0e\x78\x17"
+			  "\x58\x2b\x1d\x73\x9a\x9c\x63\x18"
+			  "\x88\x7a\x0e\x87\x2f\xf0\xb0\xdb"
+			  "\xc9\x9d\x79\x51\x34\x39\x4f\x07"
+			  "\xa2\x7c\x21\x04\x91\x3b\x79\x79"
+			  "\xfe\xd5\x51\x46\xd5\xcd\x28\xc0"
+			  "\xad\xb8\x55\xb2\xb2\x5a\x9a\xa2"
+			  "\xe2\x0c\xfc\x55\x7d\x60\xd2\x95",
+		.ctext	= "\xe4\x25\x0d\x22\xeb\xbe\x5e\x90"
+			  "\x01\xe5\xae\xc9\x94\xbd\x93\x89"
+			  "\x5e\x5a\x5a\x2f\xf6\xdf\xf8\x16"
+			  "\xd3\xb2\xed\x29\x51\xe2\x75\xb0"
+			  "\x1a\x48\xb5\xe6\xd3\x58\x40\xc7"
+			  "\x6f\x6f\xcf\x57\x82\x43\x5a\x36"
+			  "\xef\x27\xe1\x34\x85\x01\xec\x98"
+			  "\x00\xbd\x94\x6f\x12\x39\xa8\x13"
+			  "\xfe\x3c\x39\xc0\xc6\xe1\xcc\x05"
+			  "\x0e\xd5\xc9\xda\xbd\xdd\xdb\xaa"
+			  "\x5a\xaa\x8e\xe8\xa8\x0a\xc5\x18"
+			  "\xb4\x1d\x13\x81\xc9\xc4\xaa\x61"
+			  "\xa9\xbd\xaa\x03\x12\x93\xbb\xed"
+			  "\x0c\x6e\xbd\x1c\x05\x16\x8a\x59",
+		.len	= 112,
+	}, {
+		.key	= "\xb6\x08\x1d\x31\xaf\xf4\x17\x46"
+			  "\xa4\xbb\x0f\xbd\x67\x3c\x73\x15",
+		.klen	= 16,
+		.iv	= "\x0c\x85\x2f\x62\xe5\xf4\x35\x96"
+			  "\xb1\x9b\x5d\x00\x10\xe9\x70\x12",
+		.ptext	= "\x3a\x87\x7f\x67\xf1\x81\x7a\x05"
+			  "\xb4\xa6\xfe\xdf\x36\x31\x6d\x9e"
+			  "\x0e\xa9\x44\xa0\xb0\x05\xa9\x41"
+			  "\x9c\x14\x44\x5a\xd5\x1c\x50\x08"
+			  "\x95\xc2\xf2\xaf\x3f\x29\xc9\x3e"
+			  "\x95\x5e\xc6\xb4\x2b\xf4\x3e\xe3"
+			  "\x1b\xeb\x3d\x73\xfb\xd7\x1e\x2b"
+			  "\x0c\x3d\x58\x6c\xb4\x41\x9b\xfe"
+			  "\x2f\x7e\x1c\x10\x81\x36\x2d\x79"
+			  "\xaf\xab\x10\x44\x2e\xcc\x0d\x6c"
+			  "\x9c\x14\xc2\xe4\xae\xb0\xbb\xda"
+			  "\x6a\xe0\x42\x3d\x96\x9f\x78\x7d"
+			  "\x70\x86\xa5\x92\x9f\xee\xcd\x3f"
+			  "\x6a\x55\x84\x98\x28\x03\x02\xc2"
+			  "\xf7\xec\x7a\xfa\xb1\xd9\xa8\xd8"
+			  "\x1c\xc3\xaa\xd5\x61\x7f\x10\x0c",
+		.ctext	= "\xa7\x4c\x96\x55\x7c\x07\xce\xb2"
+			  "\x6f\x63\x9f\xc6\x8b\x6f\xc6\x4a"
+			  "\x85\xf2\x4b\xdf\x62\x0c\x6c\x8d"
+			  "\x13\x5d\xd3\x40\x58\xa6\xf9\x03"
+			  "\xd9\xf2\x48\x4e\x12\x64\x9a\x55"
+			  "\xa2\xa3\xd0\x19\xe5\x5b\xaa\x62"
+			  "\x7b\xe9\x2a\x23\xab\xb5\xa6\xcf"
+			  "\x53\x59\x70\xc6\xb8\x92\x12\x3b"
+			  "\x93\x68\x24\xba\x7d\xd6\xc0\x5b"
+			  "\x06\x2e\x7f\x2e\x32\x5d\x42\x9c"
+			  "\x13\x8e\x92\x3c\x99\x20\x32\x2b"
+			  "\x4a\x41\xb2\x4a\x81\xe8\x6e\x7f"
+			  "\x5b\x8e\xca\x4d\xd7\x29\x96\xde"
+			  "\x30\x9c\xa6\x84\x90\xe7\xc2\xae"
+			  "\xf4\x7e\x73\x32\x4c\x25\xec\xef"
+			  "\x58\x69\x63\x3f\x4e\x71\x4b\x1c",
+		.len	= 128,
+	}, {
+		.key	= "\xc0\xa1\x36\x3d\x81\x9a\xd2\x17"
+			  "\x2e\x23\xc9\xb7\xff\xdf\x47\x6c",
+		.klen	= 16,
+		.iv	= "\x96\x3b\x0e\xbd\xec\x9a\x0e\xad"
+			  "\x8c\xaf\x36\x3d\xff\x29\x8b\x33",
+		.ptext	= "\x87\x96\x77\x1a\x10\x81\x63\x8a"
+			  "\x63\xde\x88\xa9\x9d\xa9\x01\xf2"
+			  "\xdf\xc9\x25\x35\x48\x3a\x15\xdf"
+			  "\x20\x6b\x91\x7c\x56\xe5\x10\x7a"
+			  "\x2d\x2e\x0f\x30\x32\xed\xa9\x1f"
+			  "\x71\x4e\x68\x77\xe8\xa8\x5b\xdd"
+			  "\x3c\x5e\x68\x6b\xab\x03\xe4\xf8"
+			  "\x42\xc1\x61\x9a\x50\xfb\xc7\x6a"
+			  "\x1a\x31\xa7\x87\xd0\x24\xcb\x5e"
+			  "\xc0\x3b\x12\x28\xca\x26\x7b\xb3"
+			  "\x14\xc1\x7f\x66\xff\x3b\xa4\x80"
+			  "\x59\x77\x4f\xa0\xd4\xb2\xd9\x8a"
+			  "\xb6\x67\xe6\x28\xd3\x6f\xf2\xcf"
+			  "\xb8\x6d\x2d\xc4\x2a\x69\x89\xff"
+			  "\xcf\xbb\x11\x2e\x2a\x2b\x7c\xfd"
+			  "\xcd\x56\x02\x95\xc9\x54\x6e\x62"
+			  "\x6a\x97\x75\x1a\x21\x16\x46\xfb"
+			  "\xc2\xab\x62\x54\xef\xba\xae\x46",
+		.ctext	= "\x11\x7f\xea\x49\xaf\x24\x52\xa2"
+			  "\xde\x60\x99\x58\x23\xf9\x9e\x91"
+			  "\x94\x52\x31\xa3\x28\x07\x14\xad"
+			  "\x00\x24\x4a\x4a\xe7\x18\xd7\x24"
+			  "\xcc\x8b\x66\x53\x82\x65\x31\xa5"
+			  "\x54\x76\x59\x0b\x69\x6f\x90\x2c"
+			  "\x8d\xa5\x2b\x61\x05\x80\xfb\xe0"
+			  "\xf9\x6e\xaf\xb9\xc4\x15\x67\xcc"
+			  "\x15\xce\xa0\xc0\xf2\xae\xa6\x15"
+			  "\x24\x9a\xe5\xcb\x09\x42\xcf\x41"
+			  "\x95\xa4\x8d\xbf\xe8\xb8\x40\xcd"
+			  "\xb0\x33\x2c\xb3\xc4\xdd\xf9\x45"
+			  "\xda\xb2\xeb\xb3\xf8\xfa\x7f\xe3"
+			  "\xc0\x3a\x98\xe7\x17\x4a\x0c\x60"
+			  "\xb2\x22\xba\x3b\x21\x85\x27\x56"
+			  "\xe0\xb2\xf7\x2a\x59\xb1\x56\x20"
+			  "\x0b\xa9\x13\x73\xe0\x6f\x61\x32"
+			  "\xa5\x38\x14\xb3\xe3\xaa\x70\x44",
+		.len	= 144,
+	}, {
+		.key	= "\xd4\x14\xc6\xcc\x16\x1b\x95\xf9"
+			  "\x05\x26\x23\x81\x19\x27\xad\x7b",
+		.klen	= 16,
+		.iv	= "\x9c\x8b\xfb\x65\xa4\x61\xee\x69"
+			  "\x44\xbf\x59\xde\x03\x61\x11\x12",
+		.ptext	= "\x8d\x94\x48\x47\xa9\x52\x16\xfb"
+			  "\x6b\xaf\x59\x6d\xab\x74\xbf\x5c"
+			  "\xb6\x09\x21\x12\x42\x98\x13\xa1"
+			  "\xa8\x6f\xb9\x6d\x4d\xa6\xdc\xea"
+			  "\x61\x02\x3c\xa7\xcd\x1a\x28\x8c"
+			  "\x66\xb8\x4d\x60\x67\x82\xcc\x8d"
+			  "\x1e\xda\x8f\x28\xe5\x02\xdc\x2c"
+			  "\x54\x84\x2a\x06\xb5\xd1\x34\x57"
+			  "\xb8\x28\x4d\xf5\x69\xb9\xf3\x33"
+			  "\x5e\x0b\xa6\x62\x35\x9b\xfb\x97"
+			  "\x3e\xc6\xec\xaf\x74\xe8\x72\x91"
+			  "\xb2\xc6\x56\xb3\x23\x29\x43\xe0"
+			  "\xfb\xcc\x21\x38\x64\x78\x9e\x78"
+			  "\xbb\x6e\x0d\x7b\xfd\x05\x74\x01"
+			  "\x7c\x94\xe0\xb0\xd7\x92\xfc\x58"
+			  "\x28\xfc\xe2\x7b\x7f\xf7\x31\x0d"
+			  "\x90\xb7\x60\x78\xa8\x9f\x52\xe3"
+			  "\xe6\xaa\x2a\xb4\xa7\x09\x60\x53"
+			  "\x42\x0e\x15\x31\xf6\x48\xa3\x0a"
+			  "\x20\xf0\x79\x67\xb1\x83\x26\x66",
+		.ctext	= "\x5b\xc0\xe8\x17\xa4\xf9\xea\xce"
+			  "\x9e\xf9\xe0\xb1\xac\x37\xe9\x41"
+			  "\xc8\x06\xf9\x1c\x1a\xfc\xe8\x7a"
+			  "\x38\xf2\x80\x66\xc2\x70\x59\x4e"
+			  "\xe0\x32\x5b\x27\x39\xf5\xfb\x03"
+			  "\xc8\xaf\xd6\x7e\x57\xc7\xc6\x71"
+			  "\xd9\xd0\x48\x39\xb1\x0d\xa8\x1a"
+			  "\x23\x8a\x3d\x05\xe2\x90\x7e\x18"
+			  "\xd7\x20\x04\x3b\x82\x76\x3f\xaa"
+			  "\xc2\x89\xb6\x9e\x14\x2f\x46\xcd"
+			  "\x51\x9b\xa8\x7b\x62\x7b\x9c\x17"
+			  "\xc4\xe1\x8b\x3f\xb5\x4d\xac\x66"
+			  "\x49\xf6\xb6\x4c\x3e\x16\x46\xb0"
+			  "\xca\x04\xef\x72\x5c\x03\x0a\xe5"
+			  "\x2f\x4e\x36\x38\x36\x9f\xf4\xe2"
+			  "\x81\x7a\x4c\xdf\x36\x27\xd5\x9d"
+			  "\x03\xad\x1d\x3a\xe9\x2a\x99\xb0"
+			  "\x2c\xba\x13\x75\xc8\x37\x97\x11"
+			  "\xf4\x15\x0f\xb7\x75\x26\xa1\x14"
+			  "\x79\xec\x1f\xab\xd2\x10\x8c\x5f",
+		.len	= 160,
+	}, {
+		.key	= "\x7f\x92\xd5\x06\x30\x6b\xc0\x23"
+			  "\x87\xa8\x8e\x6d\xc7\xc5\xd7\xf1"
+			  "\x5f\xce\x89\xb3\xd5\x7f\x7f\xf0",
+		.klen	= 24,
+		.iv	= "\xfd\xab\x56\xa6\x6e\xda\x7c\x57"
+			  "\x36\x36\x89\x09\xcd\xa8\xd3\x91",
+		.ptext	= "\x48\x3e\x3c\x11\xcf\xd0\x4f\xc0"
+			  "\x51\xe3\x8c\xe9\x76\xcd\xff\x37",
+		.ctext	= "\xa4\x12\x2f\xc4\xf0\x6d\xd9\x46"
+			  "\xe4\xe6\xd1\x0b\x6d\x14\xf0\x8f",
+		.len	= 16,
+	}, {
+		.key	= "\xd6\x1a\x18\x2f\x68\x2f\xb6\xfe"
+			  "\x3d\x2d\x85\x75\x6e\x18\x8a\x52"
+			  "\x53\x39\xfc\xc1\xf5\xc0\x56\x22",
+		.klen	= 24,
+		.iv	= "\xc6\xae\xaa\x0d\x90\xf2\x38\x93"
+			  "\xac\xd2\x3f\xc7\x74\x8d\x13\x7e",
+		.ptext	= "\xfa\x3f\x70\x52\xfb\x04\x0e\xed"
+			  "\x0e\x60\x75\x84\x21\xdf\x13\xa1"
+			  "\x26\xf8\x8c\x26\x0a\x37\x51\x8f"
+			  "\xe7\x9c\x74\x77\x7a\x3e\xbb\x5d",
+		.ctext	= "\x80\x2b\xf0\x88\xb9\x4b\x8d\xf5"
+			  "\xc3\x0e\x15\x5b\xea\x5d\x5b\xa8"
+			  "\x52\xe7\x83\x3c\xa1\x51\x1c\x1f"
+			  "\x38\xd9\x7c\x88\x3c\x3a\xcd\x3e",
+		.len	= 32,
+	}, {
+		.key	= "\xd7\x33\xf3\xa9\x5b\xb4\x86\xea"
+			  "\xe3\x7d\x50\x62\x3b\x73\xaf\xc4"
+			  "\xda\x89\xd9\x3c\xcc\xe4\x73\xb0",
+		.klen	= 24,
+		.iv	= "\xef\x3e\x5f\x46\x62\x88\xd5\x26"
+			  "\x3b\xd3\xb5\x81\x78\x70\x1b\xd2",
+		.ptext	= "\x39\x56\x34\x63\x2c\xc5\x51\x13"
+			  "\x48\x29\x3a\x58\xbe\x41\xc5\x80"
+			  "\x2c\x80\xa7\x3c\x14\xb4\x89\x5e"
+			  "\x8e\xe5\x5f\xe2\x39\x80\xf5\x2b"
+			  "\x77\xb5\xca\x90\xda\x1d\x22\x17"
+			  "\xd9\xa0\x57\x80\xc8\x96\x70\x86",
+		.ctext	= "\x65\x01\x3c\xb0\xac\x4c\x63\xb6"
+			  "\xe7\xf1\xf4\x61\x35\xf4\x36\xde"
+			  "\xeb\x0f\x8c\x34\xd1\x78\xb4\x00"
+			  "\xb2\xc1\x7c\x28\xb2\xb7\xbb\xa3"
+			  "\xc6\xb7\x27\xf7\x6d\x56\x79\xfa"
+			  "\x61\x57\xba\x30\x6f\x56\xe9\x8c",
+		.len	= 48,
+	}, {
+		.key	= "\x07\x2c\xf4\x61\x79\x09\x01\x8f"
+			  "\x37\x32\x98\xd4\x86\x2b\x3b\x80"
+			  "\x07\x60\xba\xf0\x2e\xc3\x4a\x57",
+		.klen	= 24,
+		.iv	= "\xf5\xb5\xd7\xbf\xd2\x2a\x9b\x4a"
+			  "\xe6\x08\xf0\xbe\x77\xd1\x62\x40",
+		.ptext	= "\xa0\x82\x09\x60\x47\xbb\x16\x56"
+			  "\x50\x1f\xab\x8b\x10\xfe\xf0\x5c"
+			  "\x05\x32\x63\x1a\xc4\x46\x6f\x55"
+			  "\x32\xde\x41\x5a\xf7\x52\xd7\xfa"
+			  "\x30\x9d\x59\x8d\x64\x76\xad\x37"
+			  "\xba\xbc\x46\x6a\x69\x17\x3c\xac"
+			  "\x6f\xdd\xa2\x9b\x86\x32\x14\x2e"
+			  "\x54\x74\x8f\x3d\xe2\xd6\x85\x44",
+		.ctext	= "\x5a\xfb\xb1\x2c\x6e\xe5\xb8\xe0"
+			  "\x80\xb6\x77\xa8\xfe\x10\x3a\x99"
+			  "\xbf\xc0\x2a\xfe\x6f\x38\xf2\x1d"
+			  "\x53\x6c\x05\x83\xb1\x13\x00\x87"
+			  "\x92\x92\x42\x70\xcf\x9f\xf7\x8f"
+			  "\x53\x55\x18\x6f\x35\x68\x35\x50"
+			  "\x3a\xc8\x45\x3e\xa3\xf1\x33\x2e"
+			  "\xa1\x65\x42\xe2\x6d\x31\x8c\x4b",
+		.len	= 64,
+	}, {
+		.key	= "\x4f\x4a\x31\x64\xc6\xa5\x29\xaa"
+			  "\xad\xfd\x32\x94\x1f\x56\x57\xd1"
+			  "\x9d\x7e\x3d\x49\x00\x36\xb1\x5d",
+		.klen	= 24,
+		.iv	= "\xb2\x92\x83\x70\x1e\xa3\x97\xa6"
+			  "\x65\x53\x39\xeb\x53\x8f\xb1\x38",
+		.ptext	= "\x91\xac\x17\x11\x1c\x03\x69\x53"
+			  "\xf5\xdf\xdb\x2c\x1b\x9a\x6e\x6b"
+			  "\xb6\x02\xc4\xfa\x95\x01\x33\xa8"
+			  "\xda\x7e\x18\x2c\xf4\x7e\x6e\x67"
+			  "\xce\x8f\x9f\xea\x46\x66\x99\xb8"
+			  "\xe1\xc7\x25\x4d\xbd\xa5\x74\xdf"
+			  "\xc7\x8b\xfb\xe3\x2d\x3a\x82\xd3"
+			  "\x17\x94\x77\x2f\x92\xb8\x87\xc2"
+			  "\xcc\x6f\x70\x26\x87\xc7\x10\x8a"
+			  "\xc8\xfd\xc2\xb3\xcf\xa0\xeb\x41",
+		.ctext	= "\xc9\x5f\xe0\x60\x61\x38\x7e\x79"
+			  "\x52\x68\x64\x8f\x55\x9b\x6b\x72"
+			  "\xa5\x17\x61\xb7\xce\x02\xa9\xa4"
+			  "\x5c\x73\x45\x33\xd1\x07\x5e\xdc"
+			  "\xe5\xbe\xa7\xde\x69\xa0\x97\x98"
+			  "\x02\xef\xa4\x67\x51\x60\x69\x4f"
+			  "\x03\xf5\xa8\x5f\x03\x69\xbc\xc2"
+			  "\x34\x59\x7e\xd4\xd2\xb3\x32\x2f"
+			  "\x0c\xb4\x37\xca\xc4\xc7\x93\xf4"
+			  "\xa4\xab\x01\x3f\x91\x29\x55\x98",
+		.len	= 80,
+	}, {
+		.key	= "\x4c\xf4\xd0\x34\xd0\x95\xab\xae"
+			  "\x82\x5c\xfd\xfa\x13\x86\x25\xce"
+			  "\xf4\x13\x32\xcd\xc6\x6d\xf6\x50",
+		.klen	= 24,
+		.iv	= "\x12\x4a\x5b\x66\x3a\xd3\xfb\x1a"
+			  "\xaf\x06\xea\xf4\x65\x59\xd6\xc2",
+		.ptext	= "\x84\xa0\x53\x97\x61\x30\x70\x15"
+			  "\xac\x45\x8e\xe8\xeb\xa1\x72\x93"
+			  "\x26\x76\x98\x6f\xe4\x86\xca\xf0"
+			  "\x57\x89\xf2\x2b\xd4\xcf\x2d\x95"
+			  "\x86\x26\x20\x0e\x62\xfe\x8f\x1e"
+			  "\x5d\xcb\x2b\x7e\xdd\xab\xac\xda"
+			  "\x6e\x49\x20\xd5\xb7\x01\x83\x4e"
+			  "\xac\x45\x8f\xe1\x05\x3f\xd5\xb1"
+			  "\xee\xb7\x0d\x65\x00\x38\xab\x71"
+			  "\x70\x6e\xb3\x97\x86\xd3\xcd\xad"
+			  "\x51\x8b\x9c\xa0\x9a\x8b\x4c\xb9"
+			  "\x16\x01\x6a\x1f\xdf\xf0\xf9\x9e",
+		.ctext	= "\x03\x2c\x39\x24\x99\xb5\xf6\x79"
+			  "\x91\x89\xb7\xf8\x89\x68\x37\x9d"
+			  "\xa2\x80\x95\x74\x87\x64\xb9\xeb"
+			  "\x85\x28\x92\x9a\x6e\xd3\x3b\x50"
+			  "\x4c\x80\x5b\xe4\xf2\x7e\xda\x2a"
+			  "\xd4\xf8\xcb\xe3\x6f\xdf\xae\x0e"
+			  "\xc5\x6c\x0b\x49\x2e\x29\x1c\xf2"
+			  "\x3f\x44\x44\x12\x67\xa6\xff\x44"
+			  "\xe0\xec\xd8\xf7\x32\xde\x21\x15"
+			  "\xab\x8f\x98\x4d\xed\xb0\x42\xfd"
+			  "\x83\x94\xe2\xcc\x69\x6d\xe8\xdb"
+			  "\x62\x93\x1f\xd0\xf4\x8c\x62\xc0",
+		.len	= 96,
+	}, {
+		.key	= "\x25\x1b\xc2\xa6\x21\x25\xeb\x97"
+			  "\x4b\xf6\xcb\x3b\xcd\x61\xfd\x94"
+			  "\x37\x03\xb3\xd9\x74\x6e\x4d\xbb",
+		.klen	= 24,
+		.iv	= "\xfd\x87\x2b\xec\x4c\x2c\xbf\xe2"
+			  "\x94\x1a\xe6\xd9\xaf\x0e\x78\x17",
+		.ptext	= "\x58\x2b\x1d\x73\x9a\x9c\x63\x18"
+			  "\x88\x7a\x0e\x87\x2f\xf0\xb0\xdb"
+			  "\xc9\x9d\x79\x51\x34\x39\x4f\x07"
+			  "\xa2\x7c\x21\x04\x91\x3b\x79\x79"
+			  "\xfe\xd5\x51\x46\xd5\xcd\x28\xc0"
+			  "\xad\xb8\x55\xb2\xb2\x5a\x9a\xa2"
+			  "\xe2\x0c\xfc\x55\x7d\x60\xd2\x95"
+			  "\xb6\x08\x1d\x31\xaf\xf4\x17\x46"
+			  "\xa4\xbb\x0f\xbd\x67\x3c\x73\x15"
+			  "\x0c\x85\x2f\x62\xe5\xf4\x35\x96"
+			  "\xb1\x9b\x5d\x00\x10\xe9\x70\x12"
+			  "\x3a\x87\x7f\x67\xf1\x81\x7a\x05"
+			  "\xb4\xa6\xfe\xdf\x36\x31\x6d\x9e"
+			  "\x0e\xa9\x44\xa0\xb0\x05\xa9\x41",
+		.ctext	= "\xd4\x9a\x04\x54\x05\xd2\xe6\x3f"
+			  "\xb0\xa4\x36\x5e\x1e\x9c\x35\xb0"
+			  "\xc0\x89\xbd\x1c\xaa\x45\xa6\xc8"
+			  "\x16\x68\x4a\x06\x93\x67\x88\xd7"
+			  "\x72\x6e\x48\x0a\x17\xa3\x52\x8b"
+			  "\x96\x5f\x41\xf6\x17\x64\x55\x8b"
+			  "\xac\xce\xf6\x8c\xce\xd2\xd4\xd4"
+			  "\x8d\x92\x32\xe0\x0d\xb4\xf7\x4a"
+			  "\x90\xaf\x7b\x85\x21\x46\x2e\xa6"
+			  "\x9e\xac\x0d\x22\xf2\x26\xf6\xd3"
+			  "\x27\xcd\x59\xa0\xe2\xbb\x22\xcd"
+			  "\x35\xb6\x28\x45\x0a\x46\xb0\x3a"
+			  "\xac\x3e\xd3\x5b\xc6\x54\xa2\xa3"
+			  "\x6d\xbb\xb3\xcd\xc5\x64\x62\x92",
+		.len	= 112,
+	}, {
+		.key	= "\x9c\x14\x44\x5a\xd5\x1c\x50\x08"
+			  "\x95\xc2\xf2\xaf\x3f\x29\xc9\x3e"
+			  "\x95\x5e\xc6\xb4\x2b\xf4\x3e\xe3",
+		.klen	= 24,
+		.iv	= "\x1b\xeb\x3d\x73\xfb\xd7\x1e\x2b"
+			  "\x0c\x3d\x58\x6c\xb4\x41\x9b\xfe",
+		.ptext	= "\x2f\x7e\x1c\x10\x81\x36\x2d\x79"
+			  "\xaf\xab\x10\x44\x2e\xcc\x0d\x6c"
+			  "\x9c\x14\xc2\xe4\xae\xb0\xbb\xda"
+			  "\x6a\xe0\x42\x3d\x96\x9f\x78\x7d"
+			  "\x70\x86\xa5\x92\x9f\xee\xcd\x3f"
+			  "\x6a\x55\x84\x98\x28\x03\x02\xc2"
+			  "\xf7\xec\x7a\xfa\xb1\xd9\xa8\xd8"
+			  "\x1c\xc3\xaa\xd5\x61\x7f\x10\x0c"
+			  "\xc0\xa1\x36\x3d\x81\x9a\xd2\x17"
+			  "\x2e\x23\xc9\xb7\xff\xdf\x47\x6c"
+			  "\x96\x3b\x0e\xbd\xec\x9a\x0e\xad"
+			  "\x8c\xaf\x36\x3d\xff\x29\x8b\x33"
+			  "\x87\x96\x77\x1a\x10\x81\x63\x8a"
+			  "\x63\xde\x88\xa9\x9d\xa9\x01\xf2"
+			  "\xdf\xc9\x25\x35\x48\x3a\x15\xdf"
+			  "\x20\x6b\x91\x7c\x56\xe5\x10\x7a",
+		.ctext	= "\xbc\x57\x2a\x88\x0a\xd0\x06\x4f"
+			  "\xdb\x7b\x03\x9f\x97\x1a\x20\xfe"
+			  "\x15\x91\xb4\xed\x5d\x78\x89\x2a"
+			  "\x67\x6b\x9c\x47\x36\xc2\x80\x0e"
+			  "\x03\x8d\x6f\xfc\x94\xc7\xc5\xc2"
+			  "\xeb\x43\x74\x5d\xfe\xc4\x5a\xa1"
+			  "\x80\x51\x8a\x63\xd1\x27\x1b\x0a"
+			  "\x88\x2c\xc4\x7f\x1a\xa3\x28\xe5"
+			  "\xfd\xd0\x8a\xd4\x36\xa6\x19\xd5"
+			  "\xff\x41\x7a\x8b\x6e\x9a\x97\x14"
+			  "\x2a\xc8\xd0\xb8\xa3\x8e\x64\x32"
+			  "\xb7\x2d\x76\x9b\x3b\xe2\x3f\x91"
+			  "\xb4\x64\xbf\x59\x67\x14\xc3\xf5"
+			  "\xa8\x92\x4b\x85\xdf\x80\xcb\xb5"
+			  "\xc7\x80\xf9\x4a\xbc\xed\x67\x5a"
+			  "\x0b\x58\x65\x1f\xc9\x6e\x9b\x0a",
+		.len	= 128,
+	}, {
+		.key	= "\x2d\x2e\x0f\x30\x32\xed\xa9\x1f"
+			  "\x71\x4e\x68\x77\xe8\xa8\x5b\xdd"
+			  "\x3c\x5e\x68\x6b\xab\x03\xe4\xf8",
+		.klen	= 24,
+		.iv	= "\x42\xc1\x61\x9a\x50\xfb\xc7\x6a"
+			  "\x1a\x31\xa7\x87\xd0\x24\xcb\x5e",
+		.ptext	= "\xc0\x3b\x12\x28\xca\x26\x7b\xb3"
+			  "\x14\xc1\x7f\x66\xff\x3b\xa4\x80"
+			  "\x59\x77\x4f\xa0\xd4\xb2\xd9\x8a"
+			  "\xb6\x67\xe6\x28\xd3\x6f\xf2\xcf"
+			  "\xb8\x6d\x2d\xc4\x2a\x69\x89\xff"
+			  "\xcf\xbb\x11\x2e\x2a\x2b\x7c\xfd"
+			  "\xcd\x56\x02\x95\xc9\x54\x6e\x62"
+			  "\x6a\x97\x75\x1a\x21\x16\x46\xfb"
+			  "\xc2\xab\x62\x54\xef\xba\xae\x46"
+			  "\xd4\x14\xc6\xcc\x16\x1b\x95\xf9"
+			  "\x05\x26\x23\x81\x19\x27\xad\x7b"
+			  "\x9c\x8b\xfb\x65\xa4\x61\xee\x69"
+			  "\x44\xbf\x59\xde\x03\x61\x11\x12"
+			  "\x8d\x94\x48\x47\xa9\x52\x16\xfb"
+			  "\x6b\xaf\x59\x6d\xab\x74\xbf\x5c"
+			  "\xb6\x09\x21\x12\x42\x98\x13\xa1"
+			  "\xa8\x6f\xb9\x6d\x4d\xa6\xdc\xea"
+			  "\x61\x02\x3c\xa7\xcd\x1a\x28\x8c",
+		.ctext	= "\xd7\xb4\xfc\xcc\x1f\xf7\xfc\x7d"
+			  "\x69\xfa\xcb\x01\x60\xf3\x5a\x14"
+			  "\xfe\x8c\x4e\xfa\x09\xb5\x0d\xda"
+			  "\xff\xdd\xba\xdf\xa3\x6b\x3a\x87"
+			  "\x21\xbb\xf8\x62\x14\x22\xdd\x9b"
+			  "\x92\x23\xaa\xd7\xcc\xb2\x15\xd0"
+			  "\xbd\x81\x95\x24\xc2\xc6\x53\x5b"
+			  "\xf7\x3c\xa0\xf7\x36\xbc\xbf\xf3"
+			  "\xfc\x1c\x6e\xe0\x71\x8d\xa1\x3d"
+			  "\x8e\x1a\xc5\xba\xd5\x68\xd4\x7a"
+			  "\xe0\x4f\x0a\x14\x89\x0b\xa6\x2f"
+			  "\x18\xc5\x38\x76\xf1\xe7\x5c\xae"
+			  "\x7a\xbb\x27\x1c\xf0\x7c\x6c\x14"
+			  "\x07\xb7\x49\x6e\x29\x04\x38\x31"
+			  "\x91\xe8\x1d\x0f\xfc\x3b\xb8\x20"
+			  "\x58\x64\x11\xa1\xf5\xba\xa3\x62"
+			  "\x92\xcf\x44\x63\x2c\xe8\x10\xb5"
+			  "\xf0\x97\x86\xcb\x5f\xc1\x80\x7a",
+		.len	= 144,
+	}, {
+		.key	= "\x66\xb8\x4d\x60\x67\x82\xcc\x8d"
+			  "\x1e\xda\x8f\x28\xe5\x02\xdc\x2c"
+			  "\x54\x84\x2a\x06\xb5\xd1\x34\x57",
+		.klen	= 24,
+		.iv	= "\xb8\x28\x4d\xf5\x69\xb9\xf3\x33"
+			  "\x5e\x0b\xa6\x62\x35\x9b\xfb\x97",
+		.ptext	= "\x3e\xc6\xec\xaf\x74\xe8\x72\x91"
+			  "\xb2\xc6\x56\xb3\x23\x29\x43\xe0"
+			  "\xfb\xcc\x21\x38\x64\x78\x9e\x78"
+			  "\xbb\x6e\x0d\x7b\xfd\x05\x74\x01"
+			  "\x7c\x94\xe0\xb0\xd7\x92\xfc\x58"
+			  "\x28\xfc\xe2\x7b\x7f\xf7\x31\x0d"
+			  "\x90\xb7\x60\x78\xa8\x9f\x52\xe3"
+			  "\xe6\xaa\x2a\xb4\xa7\x09\x60\x53"
+			  "\x42\x0e\x15\x31\xf6\x48\xa3\x0a"
+			  "\x20\xf0\x79\x67\xb1\x83\x26\x66"
+			  "\xe0\xb1\xb3\xbd\x1c\x76\x36\xfd"
+			  "\x45\x87\xa4\x14\x1b\xef\xe7\x16"
+			  "\xf7\xfa\x30\x3d\xb9\x52\x8f\x2e"
+			  "\x01\x68\xc1\x7d\xa2\x15\x49\x74"
+			  "\x53\x82\xc2\x10\xa8\x45\x73\x4d"
+			  "\x41\xcc\x24\xa3\x42\xff\x30\xd1"
+			  "\x02\x21\xdc\xd9\x08\xf7\xe7\x4c"
+			  "\x33\x2d\x62\xc7\x38\xf5\xc2\xbe"
+			  "\x52\xf1\x34\x78\x34\x53\x30\x5b"
+			  "\x43\x43\x51\x6a\x02\x81\x64\x0c",
+		.ctext	= "\x71\xf6\x96\x02\x07\x71\x1a\x08"
+			  "\x7c\xfe\x33\xc4\xc9\xbe\xe2\xed"
+			  "\xd0\xcc\x5d\x27\x75\xb4\x5d\x8d"
+			  "\x24\x03\xe4\x96\x31\x94\x0e\x38"
+			  "\x14\x4f\xad\x16\x58\x0d\x73\xdc"
+			  "\xbe\x5b\xcb\x38\xeb\x4d\xbc\x9a"
+			  "\x44\x69\x7a\x12\x91\x14\x52\xfa"
+			  "\xd2\xa2\xc5\x66\xd7\xaf\x4d\xb9"
+			  "\xb1\x58\x24\x10\xde\x6a\xee\x7e"
+			  "\x45\xf3\x76\xea\x47\x8a\xe6\x96"
+			  "\x41\xf2\x96\x2d\x3c\xec\xcf\xc6"
+			  "\x1d\xf4\x26\xc0\xea\x90\x27\x6e"
+			  "\x87\xef\xb5\x39\x38\xdb\xad\xbf"
+			  "\x57\x9a\x1d\xbc\x1d\xe5\x16\x91"
+			  "\x41\x45\xbe\x67\x6c\x42\x0f\xad"
+			  "\xcf\xfb\xcd\xf1\x4c\xd8\x73\xe7"
+			  "\x24\x3b\xd7\x03\xeb\xd1\xb1\x1b"
+			  "\x7d\xc9\x3d\x34\xd7\xb8\x69\x03"
+			  "\x76\x95\x32\x26\xed\x88\x76\x89"
+			  "\x13\xc6\xc8\xa6\x60\xf9\x73\x4d",
+		.len	= 160,
+	}, {
+		.key	= "\x82\x8e\x9e\x06\x7b\xc2\xe9\xb3"
+			  "\x06\xa3\xfa\x99\x42\x67\x87\xac"
+			  "\x21\xc7\xb0\x98\x6c\xf8\x26\x57"
+			  "\x08\xdd\x92\x02\x77\x7b\x35\xe7",
+		.klen	= 32,
+		.iv	= "\xa1\xad\xcb\xdd\xd5\x19\xb6\xd4"
+			  "\x0b\x62\x58\xb0\x6c\xa0\xc1\x58",
+		.ptext	= "\x14\x0d\x8a\x09\x16\x00\x00\xf1"
+			  "\xc0\x20\x86\xf9\x21\xd1\x34\xe2",
+		.ctext	= "\x05\xe3\x34\xaf\x6c\x83\x14\x8b"
+			  "\x9d\x1c\xd6\x87\x74\x91\xdf\x17",
+		.len	= 16,
+	}, {
+		.key	= "\xc9\xf3\xc4\x93\xd0\xcc\xaf\xb1"
+			  "\x1a\x42\x93\x71\xd8\x4e\xd8\xaa"
+			  "\x52\xad\x93\x2f\xe5\xd9\xaa\x5b"
+			  "\x47\x37\x3a\xed\x13\x92\x35\x16",
+		.klen	= 32,
+		.iv	= "\x81\xc8\x50\xd1\x74\xc3\x1c\x73"
+			  "\xbb\xab\x72\x83\x90\x5a\x15\xcb",
+		.ptext	= "\x65\x11\x93\xaf\xe1\x69\x6c\xbe"
+			  "\x25\x8c\x76\x87\x53\xa4\x80\xae"
+			  "\x51\x94\x36\x3f\xca\xe7\x45\x41"
+			  "\x76\x05\xbf\x8f\x9c\xad\xc0\xe3",
+		.ctext	= "\x6B\x00\x6E\x49\x7A\x6D\xE3\x04"
+			  "\x4E\xF7\x9F\x8A\x1F\x14\xBD\xB1"
+			  "\xD3\x5D\xA4\x30\x26\x85\x85\xEF"
+			  "\x12\xBC\xC7\xA1\x65\x82\xA7\x74",
+		.len	= 32,
+	}, {
+		.key	= "\xd5\x9f\x52\x34\x12\x99\x8e\x42"
+			  "\xe0\x85\x04\x6f\xeb\xf1\x5d\xd0"
+			  "\xc1\xbf\x3f\x84\xd9\x1e\x71\x44"
+			  "\xd4\xb9\x40\x3c\x02\x2e\x21\x19",
+		.klen	= 32,
+		.iv	= "\x28\xc1\x97\x64\x81\x52\x57\x0e"
+			  "\x02\x8c\xab\x4c\xe2\x60\x14\xa5",
+		.ptext	= "\x5a\xb1\x33\x48\xaa\x51\xe9\xa4"
+			  "\x5c\x2d\xbe\x33\xcc\xc4\x7f\x96"
+			  "\xe8\xde\x2b\xe7\x35\x7a\x11\x4b"
+			  "\x13\x08\x32\xc6\x41\xd8\xec\x54"
+			  "\xa3\xd3\xda\x35\x43\x69\xf6\x88"
+			  "\x97\xca\x00\x1b\x02\x59\x24\x82",
+		.ctext	= "\x03\xaf\x76\xbd\x5e\x5b\xca\xc0"
+			  "\xae\x44\xa2\x2f\xc2\x76\x2f\x50"
+			  "\x6a\x73\x28\xf2\xba\xe8\xb2\xb8"
+			  "\x43\x61\x41\x92\xff\xac\xcb\xa6"
+			  "\x84\x31\xe3\x34\xd0\x37\x81\xab"
+			  "\x2b\x0e\x97\x3c\x4a\x2d\xa4\x83",
+		.len	= 48,
+	}, {
+		.key	= "\x9c\x5d\xd7\x66\x36\xfa\x02\x20"
+			  "\x99\x61\x62\x86\x0f\x43\x2e\x05"
+			  "\x25\x8b\xfb\xf1\xae\x4c\xde\x18"
+			  "\x0b\xf8\xd0\x9d\xaa\xd4\x56\x04",
+		.klen	= 32,
+		.iv	= "\xcd\xa8\x61\x89\x8d\xbb\x72\xb6"
+			  "\x1e\xfe\x03\x34\x54\x88\x23\xe2",
+		.ptext	= "\x66\x42\x60\x24\xf3\xe4\xe9\x7e"
+			  "\x42\x20\xf4\x61\xce\x1c\x5e\x44"
+			  "\x02\x26\x91\xf7\x41\xa4\xab\x34"
+			  "\x29\x49\xdd\x78\x19\x8f\x10\x10"
+			  "\xf0\x61\xcf\x77\x18\x17\x61\xdf"
+			  "\xc4\xa8\x35\x0e\x75\x1b\x84\x6b"
+			  "\xc3\x3f\x31\x59\x5a\x9c\xf4\xc3"
+			  "\x43\xa9\xb7\xf8\x65\x40\x40\xba",
+		.ctext	= "\xb6\x41\x55\x8f\xeb\x16\x1e\x4c"
+			  "\x81\xa0\x85\x6c\xf0\x07\xa5\x2a"
+			  "\x12\x0f\x1d\xb2\xaa\xba\x85\x0f"
+			  "\xa6\x27\x1a\x91\xa6\xc5\x8c\x2a"
+			  "\xde\x8d\x3a\xa9\x8b\xcf\x24\xf1"
+			  "\x82\x51\x6b\xc8\x01\xd7\x7b\x89"
+			  "\x6c\xfc\xb1\x96\x6c\xa2\xd7\x1f"
+			  "\x4b\x7a\xd9\x8d\x34\xaa\xa0\x8a",
+		.len	= 64,
+	}, {
+		.key	= "\x4b\x4e\x11\x91\x27\xcf\x8c\x66"
+			  "\x17\xfa\x5b\x4c\xa8\xb8\x0f\xa1"
+			  "\x99\x5b\x07\x56\xe1\x8d\x94\x8b"
+			  "\xf2\x86\x5a\x5f\x40\x83\xfa\x06",
+		.klen	= 32,
+		.iv	= "\xfd\x73\xee\x1c\x27\xf3\xb4\x38"
+			  "\xc5\x7c\x2e\xc5\x6e\xdb\x49\x0d",
+		.ptext	= "\x0a\xe2\xdd\x97\xdd\x5e\xd4\xb3"
+			  "\xc1\x49\x8f\x53\xb2\x40\x85\x1c"
+			  "\x90\x37\x2d\xbd\x21\x6b\x1f\x80"
+			  "\x56\x98\x76\x1e\xcf\x6c\x78\xd8"
+			  "\xa0\x3c\x79\xc3\x56\xf7\xfc\x64"
+			  "\x35\x58\x1c\x7c\xc4\x5f\x2a\x25"
+			  "\x8c\x01\x98\x1e\x1c\x1f\x15\x64"
+			  "\x50\xb5\xfa\x02\xd3\x54\xe5\x29"
+			  "\xe3\xd2\xa3\x83\x54\x40\x54\xc5"
+			  "\xd8\x1c\xc9\x84\x7d\xc8\x31\x49",
+		.ctext	= "\x53\x2a\xa8\xa0\x15\xaf\x2f\xc4"
+			  "\x7d\x31\xb4\x61\x80\x5f\xd1\xb6"
+			  "\xa4\x29\x40\x72\x1b\xb2\x96\xb7"
+			  "\x4d\x5e\x5b\x53\x44\xa4\xf1\xe9"
+			  "\xf0\x27\x2f\x26\x84\x66\x13\xa4"
+			  "\xb2\x19\x55\xb1\x18\xf3\x69\xfd"
+			  "\xb0\x2f\x08\x3f\xa5\x41\xe2\x34"
+			  "\x5e\x63\x57\x0e\xef\x17\x78\xbc"
+			  "\xc3\x65\x7c\xbe\x6b\xa3\xa3\xef"
+			  "\x58\x05\x30\x5a\x08\xbd\xf7\x0e",
+		.len	= 80,
+	}, {
+		.key	= "\x77\x3b\xf5\xe7\x20\xf7\xe0\x0c"
+			  "\x3d\x3a\x83\x17\x83\x79\xd8\x29"
+			  "\x5a\x0a\x25\x7f\xe0\x21\x23\xff"
+			  "\x31\xfd\x60\x10\xe6\x63\xe2\xaf",
+		.klen	= 32,
+		.iv	= "\xdb\x4c\x0d\xc0\x36\xdb\xc7\xa1"
+			  "\xa4\x91\xd9\x05\xe6\xc4\x98\x00",
+		.ptext	= "\x8d\x4d\xc6\x5e\x01\x82\xb3\x39"
+			  "\xc8\x64\xa7\xcb\x05\x19\x84\x80"
+			  "\x3f\x9c\xa8\x4f\x64\xb3\x11\x4b"
+			  "\x0e\x21\xc4\x75\x04\x1d\x6f\xd5"
+			  "\x04\x04\x4d\xc9\xc0\x4b\x4a\x9c"
+			  "\x26\xb7\x68\x5a\xe4\xd0\x61\xe3"
+			  "\x2c\x93\x8e\x3f\xb4\x67\x07\x31"
+			  "\x02\x52\x0c\x0f\xe6\x6d\xa3\xd0"
+			  "\x48\x95\x83\x67\x23\x64\x31\x50"
+			  "\xd2\x5f\x69\x68\x8b\x71\xbf\x01"
+			  "\x29\x99\x86\x36\x2e\xdf\xf1\x7c"
+			  "\x08\x8c\x78\x7a\x93\x9a\x7d\x1b",
+		.ctext	= "\x92\x90\x48\x2f\x3a\x6b\x68\x43"
+			  "\x28\x9b\x7d\x1e\x46\x28\xd8\x58"
+			  "\x0f\x47\x8b\xb5\x83\x35\x35\x3e"
+			  "\xdf\x59\x3d\xb3\x47\xfc\xfc\x52"
+			  "\x86\xeb\xb3\x58\x54\xd5\x0a\xb4"
+			  "\xad\xbd\x5c\x09\xfc\x08\xc2\x01"
+			  "\x5e\x9b\x30\x11\xc4\x40\x2e\x32"
+			  "\x9c\xa0\xf1\xfd\xae\xd4\x75\x5e"
+			  "\x52\xd9\x19\x4d\xc1\xd4\xb6\x19"
+			  "\x88\xfb\x29\x17\x15\xbb\x60\xd6"
+			  "\x5a\xe9\x82\x89\xaf\x30\x4e\xd4"
+			  "\x47\xde\x86\x88\x95\x4c\x13\x59",
+		.len	= 96,
+	}, {
+		.key	= "\xe0\x6a\x30\xe1\x35\xb5\xb0\x7c"
+			  "\x54\xc5\x73\x9b\x00\xe5\xe7\x02"
+			  "\xbe\x16\x59\xdc\xd9\x03\x17\x53"
+			  "\xa8\x37\xd1\x5f\x13\x8e\x45\xdb",
+		.klen	= 32,
+		.iv	= "\x54\xe9\x1c\xde\xfb\x26\x0e\x48"
+			  "\x35\x50\x4d\x9b\x4d\x12\x21\x0d",
+		.ptext	= "\x73\x72\xcf\xdb\xbd\xbc\xc0\xdf"
+			  "\x6b\xbb\xdf\x65\x6f\x2f\x43\x3b"
+			  "\x2d\x7c\x0e\x07\x7f\xa0\x95\xdd"
+			  "\xfc\x67\xc1\x11\x7a\xe2\xb5\x4a"
+			  "\xd1\x15\xb0\xd8\xe2\xf0\x35\x48"
+			  "\xd8\x81\x6a\x35\xae\x67\xbf\x61"
+			  "\xf2\x8a\xcf\x04\xc8\x09\x8b\x63"
+			  "\x31\x74\x95\xa5\x8d\x3c\xea\xe2"
+			  "\x5f\x67\xc4\x7e\x51\x88\xbf\xb5"
+			  "\x78\xef\x3a\x76\xd8\x1d\x00\x75"
+			  "\x2b\x7b\x28\x7c\xde\x4b\x39\x01"
+			  "\x5d\xde\x92\xfe\x90\x07\x09\xfd"
+			  "\xa5\xd1\xd3\x72\x11\x6d\xa4\x4e"
+			  "\xd1\x6e\x16\xd1\xf6\x39\x4f\xa0",
+		.ctext	= "\x3b\xc5\xee\xfc\x05\xaf\xa6\xb7"
+			  "\xfe\x12\x24\x79\x31\xad\x32\xb5"
+			  "\x64\x5a\x17\xc9\xbf\x1f\xdc\xce"
+			  "\x8d\x73\x00\x71\xd9\xfb\xd2\xe6"
+			  "\xc3\x54\xb4\xf3\x36\xe8\x89\x12"
+			  "\x5a\x32\x0b\xa6\xec\x5f\x89\xe7"
+			  "\xe8\x34\x92\xa6\xce\xde\x8f\xf9"
+			  "\x4f\xda\xed\x61\x8e\xb2\x81\xbe"
+			  "\xf2\x15\x85\xbe\xa1\x5f\x19\x85"
+			  "\x71\x7e\xda\x46\x59\xed\x5d\xb0"
+			  "\xd9\x68\x97\xe0\xcd\x1d\x1b\x65"
+			  "\xf5\xc9\x44\xe2\xb4\x42\x17\x7c"
+			  "\xe7\x58\xf3\x2f\xcf\xbe\x5c\x66"
+			  "\xaa\xd3\x61\xa5\x9a\x79\xbb\xa0",
+		.len	= 112,
+	}, {
+		.key	= "\x60\xb6\xde\x17\xca\x4c\xe7\xe0"
+			  "\x07\x0d\x80\xc5\x8a\x2d\x5a\xc2"
+			  "\x2c\xb9\xa4\x5f\x2a\x85\x2c\x3d"
+			  "\x6d\x67\xc8\xee\x0f\xa2\xf4\x09",
+		.klen	= 32,
+		.iv	= "\x1a\xa5\xbc\x7e\x93\xf6\xdd\x28"
+			  "\xb7\x69\x27\xa1\x84\x95\x25\x5a",
+		.ptext	= "\x7b\x88\x00\xeb\xa5\xba\xa1\xa7"
+			  "\xd4\x40\x16\x74\x2b\x42\x37\xda"
+			  "\xe0\xaf\x89\x59\x41\x2f\x62\x00"
+			  "\xf5\x5a\x4e\x3b\x85\x27\xb2\xed"
+			  "\x1b\xa7\xaf\xbe\x89\xf3\x49\xb7"
+			  "\x8c\x63\xc9\x0c\x52\x00\x5f\x38"
+			  "\x3b\x3c\x0c\x4f\xdd\xe1\xbf\x90"
+			  "\x4a\x48\xbf\x3a\x95\xcb\x48\xa2"
+			  "\x92\x7c\x79\x81\xde\x18\x6e\x92"
+			  "\x1f\x36\xa9\x5d\x8d\xc4\xb6\x4d"
+			  "\xb2\xb4\x0e\x09\x6d\xf3\x3d\x01"
+			  "\x3d\x9b\x40\x47\xbc\x69\x31\xa1"
+			  "\x6a\x71\x26\xdc\xac\x10\x56\x63"
+			  "\x15\x23\x7d\x10\xe3\x76\x82\x41"
+			  "\xcd\x80\x57\x2f\xfc\x4d\x22\x7b"
+			  "\x57\xbb\x9a\x0a\x03\xe9\xb3\x13",
+		.ctext	= "\x37\x0d\x47\x21\xbc\x28\x0b\xf7"
+			  "\x85\x5f\x60\x57\xf2\x7f\x92\x20"
+			  "\x53\x1a\xbf\xd1\x7f\x8c\x39\x29"
+			  "\x0e\x18\xab\x0c\x00\x92\xd3\x68"
+			  "\x60\x56\x3b\x00\xef\xf8\x02\xfa"
+			  "\xcb\x92\x1a\x91\xe1\xf0\x4f\x8a"
+			  "\xc6\x4f\x65\x16\x71\x8b\x5d\xd5"
+			  "\x79\xa9\x6d\x68\x1b\x59\xe7\x2a"
+			  "\x1c\xd0\x5d\xfb\x06\x3b\x15\x72"
+			  "\xa8\xd1\x59\x9a\xb2\x6c\xf2\xd5"
+			  "\x19\xef\xde\x03\x4c\x75\x65\x38"
+			  "\x5b\xda\xc9\xf0\x44\x99\xb2\x6e"
+			  "\x78\xfb\x85\x5a\x92\x91\x1a\x0a"
+			  "\x13\x0c\x1b\x1c\xbe\xbe\x46\x6e"
+			  "\x73\xff\xc2\x6e\xb9\x06\x16\x7e"
+			  "\xf6\xc0\x01\x30\x34\x56\x46\x55",
+		.len	= 128,
+	}, {
+		.key	= "\x2a\xed\x7d\x76\xfc\xc5\x49\x50"
+			  "\xf4\x90\x0f\xcc\x5d\xff\x0c\x3c"
+			  "\x14\x06\xaf\x68\x8f\xd7\xb6\x25"
+			  "\x1e\x10\x95\x2a\x71\x33\x17\x20",
+		.klen	= 32,
+		.iv	= "\x5b\x58\x47\xf8\xd5\x1e\x91\x81"
+			  "\x46\xe7\x25\x3a\x02\x45\x9c\x65",
+		.ptext	= "\x10\xaf\xde\x5c\x30\x79\x43\x28"
+			  "\x1c\x03\xf8\x50\x0f\x30\xa5\xef"
+			  "\x84\x19\x4c\x09\x40\x03\x75\x1f"
+			  "\x92\x8f\x88\x01\xda\x31\x7a\xe4"
+			  "\x48\xe3\xab\xb4\xe6\x1b\x0f\xac"
+			  "\xd9\xfa\x8d\x23\xe4\xc6\xa4\xa9"
+			  "\x2d\x9a\x54\x52\x44\x5c\x3c\x52"
+			  "\x61\xf0\x00\xca\xed\xab\xed\xe2"
+			  "\x44\x0b\xe0\x18\xba\xa5\x63\xd8"
+			  "\xdc\x5e\x1a\x4c\xf8\xde\x5e\x75"
+			  "\xdf\x42\x27\x7b\xe9\x11\x2f\x41"
+			  "\x3a\x72\x54\x3d\x44\x9c\x3e\x87"
+			  "\x8d\x8d\x43\x2f\xb2\xff\x87\xd4"
+			  "\xad\x98\x68\x72\x53\x61\x19\x7c"
+			  "\x20\x79\x8c\x2b\x37\x0b\x96\x15"
+			  "\xa5\x7d\x4e\x01\xe6\xea\xb6\xfa"
+			  "\xaa\xd3\x9d\xa2\xd9\x11\xc3\xc9"
+			  "\xd4\x0e\x3f\x3e\xfe\x35\x1e\xe5",
+		.ctext	= "\xb0\x2b\x75\x5f\x33\x1b\x05\x49"
+			  "\x06\xf1\x43\x91\xc2\x85\xfa\xac"
+			  "\x74\xd5\x8c\xc9\x47\x6e\x5a\xf6"
+			  "\x69\x33\x4c\xcb\x2f\x36\x4b\x41"
+			  "\xec\x05\x69\xab\x7f\x42\xc9\xd2"
+			  "\x26\x64\x51\x9e\x3d\x65\x35\xf0"
+			  "\x8d\x5e\x8a\xb1\xee\xdf\x1a\x98"
+			  "\x36\xd2\x37\x49\x5b\xe2\x57\x00"
+			  "\x1d\x72\x7e\xe8\x38\x11\x83\x15"
+			  "\xc7\x4e\x65\xa4\x2c\x9e\x6a\x3e"
+			  "\xb4\x78\x3f\xe9\x91\x5d\x06\xa9"
+			  "\xf1\xfc\x6b\x08\xe5\x2b\x2a\x99"
+			  "\x65\xa7\x2e\x47\xf9\xc2\xb1\x8b"
+			  "\x88\x2f\xb7\x62\x84\x63\x94\x00"
+			  "\x49\xa7\xd0\x2b\x54\x7a\x69\xb3"
+			  "\x04\x66\xfc\x97\x40\x92\xd1\xb8"
+			  "\xb4\x2a\x9e\xdb\x31\xcd\x48\x84"
+			  "\x29\x3b\x02\xac\xb8\x54\x95\xb4",
+		.len	= 144,
+	}, {
+		.key	= "\x7b\xa7\x4d\x0a\x37\x30\xb9\xf5"
+			  "\x2a\x79\xb4\xbf\xdb\x7f\x9b\x64"
+			  "\x23\x43\xb5\x18\x34\xc4\x5f\xdf"
+			  "\xd9\x2a\x66\x58\x00\x44\xb5\xd9",
+		.klen	= 32,
+		.iv	= "\x75\x34\x30\xc1\xf0\x69\xdf\x0a"
+			  "\x52\xce\x4f\x1e\x2c\x41\x35\xec",
+		.ptext	= "\x81\x47\x55\x3a\xcd\xfe\xa2\x3d"
+			  "\x45\x53\xa7\x67\x61\x74\x25\x80"
+			  "\x98\x89\xfe\xf8\x6a\x9f\x51\x7c"
+			  "\xa4\xe4\xe7\xc7\xe0\x1a\xce\xbb"
+			  "\x4b\x46\x43\xb0\xab\xa8\xd6\x0c"
+			  "\xa0\xf0\xc8\x13\x29\xaf\xb8\x01"
+			  "\x6b\x0c\x7e\x56\xae\xb8\x58\x72"
+			  "\xa9\x24\x44\x61\xff\xf1\xac\xf8"
+			  "\x09\xa8\x48\x21\xd6\xab\x41\x73"
+			  "\x70\x6b\x92\x06\x61\xdc\xb4\x85"
+			  "\x76\x26\x7a\x84\xc3\x9e\x3a\x14"
+			  "\xe7\xf4\x2d\x95\x92\xad\x18\xcc"
+			  "\x44\xd4\x2c\x36\x57\xed\x2b\x9b"
+			  "\x3f\x2b\xcd\xe5\x11\xe3\x62\x33"
+			  "\x42\x3f\xb8\x2a\xb1\x37\x3f\x8b"
+			  "\xe8\xbd\x6b\x0b\x9f\x38\x5a\x5f"
+			  "\x82\x34\xb7\x96\x35\x58\xde\xab"
+			  "\x94\x98\x41\x5b\x3f\xac\x0a\x34"
+			  "\x56\xc0\x02\xef\x81\x6d\xb1\xff"
+			  "\x34\xe8\xc7\x6a\x31\x79\xba\xd8",
+		.ctext	= "\x4e\x00\x7c\x52\x45\x76\xf9\x3d"
+			  "\x1a\xd1\x72\xbc\xb9\x0f\xa9\xfb"
+			  "\x0a\xf5\xe8\x11\x66\x8b\xad\x68"
+			  "\x5a\x2e\xbf\x09\x33\x9d\xb6\x67"
+			  "\xe5\xcb\x0a\xe0\xac\xed\x73\x4b"
+			  "\xbb\x15\xde\xd8\xab\x33\x28\x5f"
+			  "\x96\x07\x3c\x28\x79\x88\x84\xc7"
+			  "\x13\xf7\x0d\xa5\x97\x3b\xd9\xb1"
+			  "\xf2\x65\xb0\xac\xbb\x8a\x97\xd1"
+			  "\x70\x3a\x91\x65\xc8\x39\x04\xe7"
+			  "\x1a\x9c\x80\x65\x2b\x69\x4b\xdc"
+			  "\xdc\xc7\xf1\x31\xda\xab\xb4\xd7"
+			  "\x46\x2e\x1d\xc9\x2e\xe9\x46\xec"
+			  "\xa4\xa1\x91\x6b\x4a\x09\xf9\x39"
+			  "\x7b\x7d\x6d\xf5\x43\x7f\xcc\x74"
+			  "\x96\xfa\x48\xd0\xe1\x74\x24\xd0"
+			  "\x19\x22\x24\x84\x2b\x12\x10\x46"
+			  "\x90\xbd\xa9\x93\xb7\xf7\x36\xd4"
+			  "\x48\xc7\x32\x83\x8c\xa9\xcd\x5a"
+			  "\x2f\x05\x33\xc1\x5b\x50\x70\xc4",
+		.len	= 160,
+	}
+};
+
+static const struct aead_testvec aria_gcm_tv_template[] = {
+	{
+		.key	= "\xe9\x1e\x5e\x75\xda\x65\x55\x4a"
+			  "\x48\x18\x1f\x38\x46\x34\x95\x62",
+		.klen	= 16,
+		.iv	= "\x00\x00\x20\xe8\xf5\xeb\x00\x00"
+			  "\x00\x00\x31\x5e",
+		.assoc	= "\x80\x08\x31\x5e\xbf\x2e\x6f\xe0"
+			  "\x20\xe8\xf5\xeb",
+		.alen	= 12,
+		.ptext	= "\xf5\x7a\xf5\xfd\x4a\xe1\x95\x62"
+			  "\x97\x6e\xc5\x7a\x5a\x7a\xd5\x5a"
+			  "\x5a\xf5\xc5\xe5\xc5\xfd\xf5\xc5"
+			  "\x5a\xd5\x7a\x4a\x72\x72\xd5\x72"
+			  "\x62\xe9\x72\x95\x66\xed\x66\xe9"
+			  "\x7a\xc5\x4a\x4a\x5a\x7a\xd5\xe1"
+			  "\x5a\xe5\xfd\xd5\xfd\x5a\xc5\xd5"
+			  "\x6a\xe5\x6a\xd5\xc5\x72\xd5\x4a"
+			  "\xe5\x4a\xc5\x5a\x95\x6a\xfd\x6a"
+			  "\xed\x5a\x4a\xc5\x62\x95\x7a\x95"
+			  "\x16\x99\x16\x91\xd5\x72\xfd\x14"
+			  "\xe9\x7a\xe9\x62\xed\x7a\x9f\x4a"
+			  "\x95\x5a\xf5\x72\xe1\x62\xf5\x7a"
+			  "\x95\x66\x66\xe1\x7a\xe1\xf5\x4a"
+			  "\x95\xf5\x66\xd5\x4a\x66\xe1\x6e"
+			  "\x4a\xfd\x6a\x9f\x7a\xe1\xc5\xc5"
+			  "\x5a\xe5\xd5\x6a\xfd\xe9\x16\xc5"
+			  "\xe9\x4a\x6e\xc5\x66\x95\xe1\x4a"
+			  "\xfd\xe1\x14\x84\x16\xe9\x4a\xd5"
+			  "\x7a\xc5\x14\x6e\xd5\x9d\x1c\xc5",
+		.plen	= 160,
+		.ctext	= "\x4d\x8a\x9a\x06\x75\x55\x0c\x70"
+			  "\x4b\x17\xd8\xc9\xdd\xc8\x1a\x5c"
+			  "\xd6\xf7\xda\x34\xf2\xfe\x1b\x3d"
+			  "\xb7\xcb\x3d\xfb\x96\x97\x10\x2e"
+			  "\xa0\xf3\xc1\xfc\x2d\xbc\x87\x3d"
+			  "\x44\xbc\xee\xae\x8e\x44\x42\x97"
+			  "\x4b\xa2\x1f\xf6\x78\x9d\x32\x72"
+			  "\x61\x3f\xb9\x63\x1a\x7c\xf3\xf1"
+			  "\x4b\xac\xbe\xb4\x21\x63\x3a\x90"
+			  "\xff\xbe\x58\xc2\xfa\x6b\xdc\xa5"
+			  "\x34\xf1\x0d\x0d\xe0\x50\x2c\xe1"
+			  "\xd5\x31\xb6\x33\x6e\x58\x87\x82"
+			  "\x78\x53\x1e\x5c\x22\xbc\x6c\x85"
+			  "\xbb\xd7\x84\xd7\x8d\x9e\x68\x0a"
+			  "\xa1\x90\x31\xaa\xf8\x91\x01\xd6"
+			  "\x69\xd7\xa3\x96\x5c\x1f\x7e\x16"
+			  "\x22\x9d\x74\x63\xe0\x53\x5f\x4e"
+			  "\x25\x3f\x5d\x18\x18\x7d\x40\xb8"
+			  "\xae\x0f\x56\x4b\xd9\x70\xb5\xe7"
+			  "\xe2\xad\xfb\x21\x1e\x89\xa9\x53"
+			  "\x5a\xba\xce\x3f\x37\xf5\xa7\x36"
+			  "\xf4\xbe\x98\x4b\xbf\xfb\xed\xc1",
+		.clen	= 176,
+	}, {
+		.key	= "\x0c\x5f\xfd\x37\xa1\x1e\xdc\x42"
+			  "\xc3\x25\x28\x7f\xc0\x60\x4f\x2e"
+			  "\x3e\x8c\xd5\x67\x1a\x00\xfe\x32"
+			  "\x16\xaa\x5e\xb1\x05\x78\x3b\x54",
+		.klen	= 32,
+		.iv	= "\x00\x00\x20\xe8\xf5\xeb\x00\x00"
+			  "\x00\x00\x31\x5e",
+		.assoc	= "\x80\x08\x31\x5e\xbf\x2e\x6f\xe0"
+			  "\x20\xe8\xf5\xeb",
+		.alen	= 12,
+		.ptext	= "\xf5\x7a\xf5\xfd\x4a\xe1\x95\x62"
+			  "\x97\x6e\xc5\x7a\x5a\x7a\xd5\x5a"
+			  "\x5a\xf5\xc5\xe5\xc5\xfd\xf5\xc5"
+			  "\x5a\xd5\x7a\x4a\x72\x72\xd5\x72"
+			  "\x62\xe9\x72\x95\x66\xed\x66\xe9"
+			  "\x7a\xc5\x4a\x4a\x5a\x7a\xd5\xe1"
+			  "\x5a\xe5\xfd\xd5\xfd\x5a\xc5\xd5"
+			  "\x6a\xe5\x6a\xd5\xc5\x72\xd5\x4a"
+			  "\xe5\x4a\xc5\x5a\x95\x6a\xfd\x6a"
+			  "\xed\x5a\x4a\xc5\x62\x95\x7a\x95"
+			  "\x16\x99\x16\x91\xd5\x72\xfd\x14"
+			  "\xe9\x7a\xe9\x62\xed\x7a\x9f\x4a"
+			  "\x95\x5a\xf5\x72\xe1\x62\xf5\x7a"
+			  "\x95\x66\x66\xe1\x7a\xe1\xf5\x4a"
+			  "\x95\xf5\x66\xd5\x4a\x66\xe1\x6e"
+			  "\x4a\xfd\x6a\x9f\x7a\xe1\xc5\xc5"
+			  "\x5a\xe5\xd5\x6a\xfd\xe9\x16\xc5"
+			  "\xe9\x4a\x6e\xc5\x66\x95\xe1\x4a"
+			  "\xfd\xe1\x14\x84\x16\xe9\x4a\xd5"
+			  "\x7a\xc5\x14\x6e\xd5\x9d\x1c\xc5",
+		.plen	= 160,
+		.ctext	= "\x6f\x9e\x4b\xcb\xc8\xc8\x5f\xc0"
+			  "\x12\x8f\xb1\xe4\xa0\xa2\x0c\xb9"
+			  "\x93\x2f\xf7\x45\x81\xf5\x4f\xc0"
+			  "\x13\xdd\x05\x4b\x19\xf9\x93\x71"
+			  "\x42\x5b\x35\x2d\x97\xd3\xf3\x37"
+			  "\xb9\x0b\x63\xd1\xb0\x82\xad\xee"
+			  "\xea\x9d\x2d\x73\x91\x89\x7d\x59"
+			  "\x1b\x98\x5e\x55\xfb\x50\xcb\x53"
+			  "\x50\xcf\x7d\x38\xdc\x27\xdd\xa1"
+			  "\x27\xc0\x78\xa1\x49\xc8\xeb\x98"
+			  "\x08\x3d\x66\x36\x3a\x46\xe3\x72"
+			  "\x6a\xf2\x17\xd3\xa0\x02\x75\xad"
+			  "\x5b\xf7\x72\xc7\x61\x0e\xa4\xc2"
+			  "\x30\x06\x87\x8f\x0e\xe6\x9a\x83"
+			  "\x97\x70\x31\x69\xa4\x19\x30\x3f"
+			  "\x40\xb7\x2e\x45\x73\x71\x4d\x19"
+			  "\xe2\x69\x7d\xf6\x1e\x7c\x72\x52"
+			  "\xe5\xab\xc6\xba\xde\x87\x6a\xc4"
+			  "\x96\x1b\xfa\xc4\xd5\xe8\x67\xaf"
+			  "\xca\x35\x1a\x48\xae\xd5\x28\x22"
+			  "\xe2\x10\xd6\xce\xd2\xcf\x43\x0f"
+			  "\xf8\x41\x47\x29\x15\xe7\xef\x48",
+		.clen	= 176,
+	}
+};
+
 static const struct cipher_testvec chacha20_tv_template[] = {
 	{ /* RFC7539 A.2. Test Vector #1 */
 		.key	= "\x00\x00\x00\x00\x00\x00\x00\x00"
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm
  2022-06-20 16:41 [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm Taehee Yoo
  2022-06-20 16:41 ` [PATCH 1/2] crypto: Implement " Taehee Yoo
  2022-06-20 16:41 ` [PATCH 2/2] crypto: add ARIA testmgr tests Taehee Yoo
@ 2022-06-30  6:39 ` Herbert Xu
  2022-06-30  7:13   ` Taehee Yoo
  2 siblings, 1 reply; 7+ messages in thread
From: Herbert Xu @ 2022-06-30  6:39 UTC (permalink / raw)
  To: Taehee Yoo; +Cc: linux-crypto, davem, ap420073

Taehee Yoo <ap420073@gmail.com> wrote:
> This patchset adds a new ARIA(RFC 5794) symmetric cipher algorithm.
> 
> Like SEED, the ARIA is a standard cipher algorithm in South Korea.
> Especially Government and Banking industry have been using this algorithm.
> So the implementation of ARIA will be useful for them and network vendors.
> 
> Usecases of this algorithm are TLS[1], and IPSec.
> It would be very useful for them if it implements kTLS for ARIA.

You haven't added any glue to use this for IPsec.  Unless there is
an in-kernel user we won't add any new algorithms.

Thanks,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm
  2022-06-30  6:39 ` [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm Herbert Xu
@ 2022-06-30  7:13   ` Taehee Yoo
  2022-06-30  7:16     ` Herbert Xu
  0 siblings, 1 reply; 7+ messages in thread
From: Taehee Yoo @ 2022-06-30  7:13 UTC (permalink / raw)
  To: Herbert Xu; +Cc: linux-crypto, davem

On 6/30/22 15:39, Herbert Xu wrote:

Hi Herbert,
Thank you so much for your review!

 > Taehee Yoo <ap420073@gmail.com> wrote:
 >> This patchset adds a new ARIA(RFC 5794) symmetric cipher algorithm.
 >>
 >> Like SEED, the ARIA is a standard cipher algorithm in South Korea.
 >> Especially Government and Banking industry have been using this 
algorithm.
 >> So the implementation of ARIA will be useful for them and network 
vendors.
 >>
 >> Usecases of this algorithm are TLS[1], and IPSec.
 >> It would be very useful for them if it implements kTLS for ARIA.
 >
 > You haven't added any glue to use this for IPsec.  Unless there is
 > an in-kernel user we won't add any new algorithms.
 >
 > Thanks,

Unfortunately, IPsec draft[1] is expired so I think adding the 
aria-IPsec feature is not our rule as far as I know even if there are 
already  users in South Korea.
So, my plan is to add the kTLS feature because aria-TLS[2] is now standard.
So, Is it okay to add the aria-kTLS feature into the v2 patch, instead 
of aria-IPsec?

[1] https://datatracker.ietf.org/doc/draft-nsri-ipsecme-aria-ipsec/
[2] https://datatracker.ietf.org/doc/html/rfc6209

Thanks,
Taehee Yoo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm
  2022-06-30  7:13   ` Taehee Yoo
@ 2022-06-30  7:16     ` Herbert Xu
  2022-06-30  7:22       ` Taehee Yoo
  0 siblings, 1 reply; 7+ messages in thread
From: Herbert Xu @ 2022-06-30  7:16 UTC (permalink / raw)
  To: Taehee Yoo; +Cc: linux-crypto, davem

On Thu, Jun 30, 2022 at 04:13:19PM +0900, Taehee Yoo wrote:
>
> So, my plan is to add the kTLS feature because aria-TLS[2] is now standard.
> So, Is it okay to add the aria-kTLS feature into the v2 patch, instead of
> aria-IPsec?

Sure.  As long as the kTLS people are happy to add this then it's
good to go.

Cheers,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm
  2022-06-30  7:16     ` Herbert Xu
@ 2022-06-30  7:22       ` Taehee Yoo
  0 siblings, 0 replies; 7+ messages in thread
From: Taehee Yoo @ 2022-06-30  7:22 UTC (permalink / raw)
  To: Herbert Xu; +Cc: linux-crypto, davem

On 6/30/22 16:16, Herbert Xu wrote:
 > On Thu, Jun 30, 2022 at 04:13:19PM +0900, Taehee Yoo wrote:
 >>
 >> So, my plan is to add the kTLS feature because aria-TLS[2] is now 
standard.
 >> So, Is it okay to add the aria-kTLS feature into the v2 patch, 
instead of
 >> aria-IPsec?
 >
 > Sure.  As long as the kTLS people are happy to add this then it's
 > good to go.
 >
 > Cheers,

I will add aria-kTLS feature into the v2 patch and I will send it to 
both the crypto and netdev mailing list after some tests.

Thanks a lot!
Taehee Yoo

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-06-30  7:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-20 16:41 [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm Taehee Yoo
2022-06-20 16:41 ` [PATCH 1/2] crypto: Implement " Taehee Yoo
2022-06-20 16:41 ` [PATCH 2/2] crypto: add ARIA testmgr tests Taehee Yoo
2022-06-30  6:39 ` [PATCH 0/2] crypto: Introduce ARIA symmetric cipher algorithm Herbert Xu
2022-06-30  7:13   ` Taehee Yoo
2022-06-30  7:16     ` Herbert Xu
2022-06-30  7:22       ` Taehee Yoo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.