summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorOndrej Mosnacek <omosnacek@gmail.com>2018-05-11 14:19:10 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2018-05-19 00:15:01 +0800
commit4feb4c597a989fad2896a69d31b56cb46a448acf (patch)
tree7710e91bae440610ee3cfb4d17c51eecf6072228 /crypto
parent396be41f16fd05af6c914eeb2c96e0cc2dadf28c (diff)
crypto: testmgr - Add test vectors for MORUS
This patch adds test vectors for MORUS-640 and MORUS-1280. The test vectors were generated using the reference implementation from SUPERCOP (see code comments for more details). Signed-off-by: Ondrej Mosnacek <omosnacek@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/testmgr.c18
-rw-r--r--crypto/testmgr.h3400
2 files changed, 3418 insertions, 0 deletions
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 0c9844a16246..41a5f42d4104 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -3363,6 +3363,24 @@ static const struct alg_test_desc alg_test_descs[] = {
.hash = __VECS(michael_mic_tv_template)
}
}, {
+ .alg = "morus1280",
+ .test = alg_test_aead,
+ .suite = {
+ .aead = {
+ .enc = __VECS(morus1280_enc_tv_template),
+ .dec = __VECS(morus1280_dec_tv_template),
+ }
+ }
+ }, {
+ .alg = "morus640",
+ .test = alg_test_aead,
+ .suite = {
+ .aead = {
+ .enc = __VECS(morus640_enc_tv_template),
+ .dec = __VECS(morus640_dec_tv_template),
+ }
+ }
+ }, {
.alg = "ofb(aes)",
.test = alg_test_skcipher,
.fips_allowed = 1,
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index a62d03b291b9..552d8f00d85b 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -30213,6 +30213,3406 @@ static const struct aead_testvec aegis256_dec_tv_template[] = {
};
/*
+ * MORUS-640 test vectors - generated via reference implementation from
+ * SUPERCOP (https://bench.cr.yp.to/supercop.html):
+ *
+ * https://bench.cr.yp.to/supercop/supercop-20170228.tar.xz
+ * (see crypto_aead/morus640128v2/)
+ */
+static const struct aead_testvec morus640_enc_tv_template[] = {
+ {
+ .key = "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00",
+ .klen = 16,
+ .iv = "\x0f\xc9\x8e\x67\x44\x9e\xaa\x86"
+ "\x20\x36\x2c\x24\xfe\xc9\x30\x81",
+ .assoc = "",
+ .alen = 0,
+ .input = "",
+ .ilen = 0,
+ .result = "\x89\x62\x7d\xf3\x07\x9d\x52\x05"
+ "\x53\xc3\x04\x60\x93\xb4\x37\x9a",
+ .rlen = 16,
+ }, {
+ .key = "\x3c\x24\x39\x9f\x10\x7b\xa8\x1b"
+ "\x80\xda\xb2\x91\xf9\x24\xc2\x06",
+ .klen = 16,
+ .iv = "\x4b\xed\xc8\x07\x54\x1a\x52\xa2"
+ "\xa1\x10\xde\xb5\xf8\xed\xf3\x87",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x69",
+ .ilen = 1,
+ .result = "\xa8\x8d\xe4\x90\xb5\x50\x8f\x78"
+ "\xb6\x10\x9a\x59\x5f\x61\x37\x70"
+ "\x09",
+ .rlen = 17,
+ }, {
+ .key = "\x79\x49\x73\x3e\x20\xf7\x51\x37"
+ "\x01\xb4\x64\x22\xf3\x48\x85\x0c",
+ .klen = 16,
+ .iv = "\x88\x12\x01\xa6\x64\x96\xfb\xbe"
+ "\x22\xea\x90\x47\xf2\x11\xb5\x8e",
+ .assoc = "",
+ .alen = 0,
+ .input = "\xa6\xa4\x1e\x76\xec\xd4\x50\xcc"
+ "\x62\x58\xe9\x8f\xef\xa4\x17",
+ .ilen = 15,
+ .result = "\x76\xdd\xb9\x05\x3d\xce\x61\x38"
+ "\xf3\xef\xf7\xe5\xd7\xfd\x70\xa5"
+ "\xcf\x9d\x64\xb8\x0a\x9f\xfd\x8b"
+ "\xd4\x6e\xfe\xd9\xc8\x63\x4b",
+ .rlen = 31,
+ }, {
+ .key = "\xb5\x6e\xad\xdd\x30\x72\xfa\x53"
+ "\x82\x8e\x16\xb4\xed\x6d\x47\x12",
+ .klen = 16,
+ .iv = "\xc4\x37\x3b\x45\x74\x11\xa4\xda"
+ "\xa2\xc5\x42\xd8\xec\x36\x78\x94",
+ .assoc = "",
+ .alen = 0,
+ .input = "\xe2\xc9\x58\x15\xfc\x4f\xf8\xe8"
+ "\xe3\x32\x9b\x21\xe9\xc8\xd9\x97",
+ .ilen = 16,
+ .result = "\xdc\x72\xe8\x14\xfb\x63\xad\x72"
+ "\x1f\x57\x9a\x1f\x88\x81\xdb\xd6"
+ "\xc1\x91\x9d\xb9\x25\xc4\x99\x4c"
+ "\x97\xcd\x8a\x0c\x9d\x68\x00\x1c",
+ .rlen = 32,
+ }, {
+ .key = "\xf2\x92\xe6\x7d\x40\xee\xa3\x6f"
+ "\x03\x68\xc8\x45\xe7\x91\x0a\x18",
+ .klen = 16,
+ .iv = "\x01\x5c\x75\xe5\x84\x8d\x4d\xf6"
+ "\x23\x9f\xf4\x6a\xe6\x5a\x3b\x9a",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x1f\xee\x92\xb4\x0c\xcb\xa1\x04"
+ "\x64\x0c\x4d\xb2\xe3\xec\x9c\x9d"
+ "\x09",
+ .ilen = 17,
+ .result = "\x6b\x4f\x3b\x90\x9a\xa2\xb3\x82"
+ "\x0a\xb8\x55\xee\xeb\x73\x4d\x7f"
+ "\x54\x11\x3a\x8a\x31\xa3\xb5\xf2"
+ "\xcd\x49\xdb\xf3\xee\x26\xbd\xa2"
+ "\x0d",
+ .rlen = 33,
+ }, {
+ .key = "\x2e\xb7\x20\x1c\x50\x6a\x4b\x8b"
+ "\x84\x42\x7a\xd7\xe1\xb5\xcd\x1f",
+ .klen = 16,
+ .iv = "\x3d\x80\xae\x84\x94\x09\xf6\x12"
+ "\xa4\x79\xa6\xfb\xe0\x7f\xfd\xa0",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x5c\x13\xcb\x54\x1c\x47\x4a\x1f"
+ "\xe5\xe6\xff\x44\xdd\x11\x5f\xa3"
+ "\x33\xdd\xc2\xf8\xdd\x18\x2b\x93"
+ "\x57\x05\x01\x1c\x66\x22\xd3",
+ .ilen = 31,
+ .result = "\x59\xd1\x0f\x6b\xee\x27\x84\x92"
+ "\xb7\xa9\xb5\xdd\x02\xa4\x12\xa5"
+ "\x50\x32\xb4\x9a\x2e\x35\x83\x55"
+ "\x36\x12\x12\xed\xa3\x31\xc5\x30"
+ "\xa7\xe2\x4a\x6d\x05\x59\x43\x91"
+ "\x75\xfa\x6c\x17\xc6\x73\xca",
+ .rlen = 47,
+ }, {
+ .key = "\x6b\xdc\x5a\xbb\x60\xe5\xf4\xa6"
+ "\x05\x1d\x2c\x68\xdb\xda\x8f\x25",
+ .klen = 16,
+ .iv = "\x7a\xa5\xe8\x23\xa4\x84\x9e\x2d"
+ "\x25\x53\x58\x8c\xda\xa3\xc0\xa6",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x98\x37\x05\xf3\x2c\xc2\xf3\x3b"
+ "\x66\xc0\xb1\xd5\xd7\x35\x21\xaa"
+ "\x5d\x9f\xce\x7c\xe2\xb8\xad\xad"
+ "\x19\x33\xe0\xf4\x40\x81\x72\x28",
+ .ilen = 32,
+ .result = "\xdb\x49\x68\x0f\x91\x5b\x21\xb1"
+ "\xcf\x50\xb2\x4c\x32\xe1\xa6\x69"
+ "\xc0\xfb\x44\x1f\xa0\x9a\xeb\x39"
+ "\x1b\xde\x68\x38\xcc\x27\x52\xc5"
+ "\xf6\x3e\x74\xea\x66\x5b\x5f\x0c"
+ "\x65\x9e\x58\xe6\x52\xa2\xfe\x59",
+ .rlen = 48,
+ }, {
+ .key = "\xa7\x00\x93\x5b\x70\x61\x9d\xc2"
+ "\x86\xf7\xde\xfa\xd5\xfe\x52\x2b",
+ .klen = 16,
+ .iv = "\xb6\xca\x22\xc3\xb4\x00\x47\x49"
+ "\xa6\x2d\x0a\x1e\xd4\xc7\x83\xad",
+ .assoc = "\xc5",
+ .alen = 1,
+ .input = "",
+ .ilen = 0,
+ .result = "\x56\xe7\x24\x52\xdd\x95\x60\x5b"
+ "\x09\x48\x39\x69\x9c\xb3\x62\x46",
+ .rlen = 16,
+ }, {
+ .key = "\xe4\x25\xcd\xfa\x80\xdd\x46\xde"
+ "\x07\xd1\x90\x8b\xcf\x23\x15\x31",
+ .klen = 16,
+ .iv = "\xf3\xee\x5c\x62\xc4\x7c\xf0\x65"
+ "\x27\x08\xbd\xaf\xce\xec\x45\xb3",
+ .assoc = "\x02\xb8\xea\xca\x09\x1b\x9a\xec"
+ "\x47\x3e\xe9\xd4\xcc\xb5\x76",
+ .alen = 15,
+ .input = "",
+ .ilen = 0,
+ .result = "\xdd\xfa\x6c\x1f\x5d\x86\x87\x01"
+ "\x13\xe5\x73\x46\x46\xf2\x5c\xe1",
+ .rlen = 16,
+ }, {
+ .key = "\x20\x4a\x07\x99\x91\x58\xee\xfa"
+ "\x88\xab\x42\x1c\xc9\x47\xd7\x38",
+ .klen = 16,
+ .iv = "\x2f\x13\x95\x01\xd5\xf7\x99\x81"
+ "\xa8\xe2\x6f\x41\xc8\x10\x08\xb9",
+ .assoc = "\x3f\xdc\x24\x69\x19\x96\x43\x08"
+ "\xc8\x18\x9b\x65\xc6\xd9\x39\x3b",
+ .alen = 16,
+ .input = "",
+ .ilen = 0,
+ .result = "\xa6\x1b\xb9\xd7\x5e\x3c\xcf\xac"
+ "\xa9\x21\x45\x0b\x16\x52\xf7\xe1",
+ .rlen = 16,
+ }, {
+ .key = "\x5d\x6f\x41\x39\xa1\xd4\x97\x16"
+ "\x09\x85\xf4\xae\xc3\x6b\x9a\x3e",
+ .klen = 16,
+ .iv = "\x6c\x38\xcf\xa1\xe5\x73\x41\x9d"
+ "\x29\xbc\x21\xd2\xc2\x35\xcb\xbf",
+ .assoc = "\x7b\x01\x5d\x08\x29\x12\xec\x24"
+ "\x49\xf3\x4d\xf7\xc0\xfe\xfb\x41"
+ "\x3c",
+ .alen = 17,
+ .input = "",
+ .ilen = 0,
+ .result = "\x15\xff\xde\x3b\x34\xfc\xf6\xf9"
+ "\xbb\xa8\x62\xad\x0a\xf5\x48\x60",
+ .rlen = 16,
+ }, {
+ .key = "\x99\x93\x7a\xd8\xb1\x50\x40\x31"
+ "\x8a\x60\xa6\x3f\xbd\x90\x5d\x44",
+ .klen = 16,
+ .iv = "\xa8\x5c\x09\x40\xf5\xef\xea\xb8"
+ "\xaa\x96\xd3\x64\xbc\x59\x8d\xc6",
+ .assoc = "\xb8\x26\x97\xa8\x39\x8e\x94\x3f"
+ "\xca\xcd\xff\x88\xba\x22\xbe\x47"
+ "\x67\xba\x85\xf1\xbb\x30\x56\x26"
+ "\xaf\x0b\x02\x38\xcc\x44\xa7",
+ .alen = 31,
+ .input = "",
+ .ilen = 0,
+ .result = "\xd2\x9d\xf8\x3b\xd7\x84\xe9\x2d"
+ "\x4b\xef\x75\x16\x0a\x99\xae\x6b",
+ .rlen = 16,
+ }, {
+ .key = "\xd6\xb8\xb4\x77\xc1\xcb\xe9\x4d"
+ "\x0a\x3a\x58\xd1\xb7\xb4\x1f\x4a",
+ .klen = 16,
+ .iv = "\xe5\x81\x42\xdf\x05\x6a\x93\xd4"
+ "\x2b\x70\x85\xf5\xb6\x7d\x50\xcc",
+ .assoc = "\xf4\x4a\xd1\x47\x49\x09\x3d\x5b"
+ "\x4b\xa7\xb1\x19\xb4\x46\x81\x4d"
+ "\x91\x7c\x91\x75\xc0\xd0\xd8\x40"
+ "\x71\x39\xe1\x10\xa6\xa3\x46\x7a",
+ .alen = 32,
+ .input = "",
+ .ilen = 0,
+ .result = "\xe4\x8d\xa7\xa7\x45\xc1\x31\x4f"
+ "\xce\xfb\xaf\xd6\xc2\xe6\xee\xc0",
+ .rlen = 16,
+ }, {
+ .key = "\x12\xdd\xee\x17\xd1\x47\x92\x69"
+ "\x8b\x14\x0a\x62\xb1\xd9\xe2\x50",
+ .klen = 16,
+ .iv = "\x22\xa6\x7c\x7f\x15\xe6\x3c\xf0"
+ "\xac\x4b\x37\x86\xb0\xa2\x13\xd2",
+ .assoc = "\x31",
+ .alen = 1,
+ .input = "\x40",
+ .ilen = 1,
+ .result = "\xe2\x67\x38\x4f\xb9\xad\x7d\x38"
+ "\x01\xfe\x84\x14\x85\xf8\xd1\xe3"
+ "\x22",
+ .rlen = 17,
+ }, {
+ .key = "\x4f\x01\x27\xb6\xe1\xc3\x3a\x85"
+ "\x0c\xee\xbc\xf4\xab\xfd\xa5\x57",
+ .klen = 16,
+ .iv = "\x5e\xcb\xb6\x1e\x25\x62\xe4\x0c"
+ "\x2d\x25\xe9\x18\xaa\xc6\xd5\xd8",
+ .assoc = "\x6d\x94\x44\x86\x69\x00\x8f\x93"
+ "\x4d\x5b\x15\x3c\xa8\x8f\x06",
+ .alen = 15,
+ .input = "\x7c\x5d\xd3\xee\xad\x9f\x39\x1a"
+ "\x6d\x92\x42\x61\xa7\x58\x37",
+ .ilen = 15,
+ .result = "\x77\x32\x61\xeb\xb4\x33\x29\x92"
+ "\x29\x95\xc5\x8e\x85\x76\xab\xfc"
+ "\x07\x95\xa7\x44\x74\xf7\x22\xff"
+ "\xd8\xd8\x36\x3d\x8a\x7f\x9e",
+ .rlen = 31,
+ }, {
+ .key = "\x8b\x26\x61\x55\xf1\x3e\xe3\xa1"
+ "\x8d\xc8\x6e\x85\xa5\x21\x67\x5d",
+ .klen = 16,
+ .iv = "\x9b\xef\xf0\xbd\x35\xdd\x8d\x28"
+ "\xad\xff\x9b\xa9\xa4\xeb\x98\xdf",
+ .assoc = "\xaa\xb8\x7e\x25\x79\x7c\x37\xaf"
+ "\xce\x36\xc7\xce\xa2\xb4\xc9\x60",
+ .alen = 16,
+ .input = "\xb9\x82\x0c\x8d\xbd\x1b\xe2\x36"
+ "\xee\x6c\xf4\xf2\xa1\x7d\xf9\xe2",
+ .ilen = 16,
+ .result = "\xd8\xfd\x44\x45\xf6\x42\x12\x38"
+ "\xf2\x0b\xea\x4f\x9e\x11\x61\x07"
+ "\x48\x67\x98\x18\x9b\xd0\x0c\x59"
+ "\x67\xa4\x11\xb3\x2b\xd6\xc1\x70",
+ .rlen = 32,
+ }, {
+ .key = "\xc8\x4b\x9b\xf5\x01\xba\x8c\xbd"
+ "\x0e\xa3\x21\x16\x9f\x46\x2a\x63",
+ .klen = 16,
+ .iv = "\xd7\x14\x29\x5d\x45\x59\x36\x44"
+ "\x2e\xd9\x4d\x3b\x9e\x0f\x5b\xe5",
+ .assoc = "\xe6\xdd\xb8\xc4\x89\xf8\xe0\xca"
+ "\x4f\x10\x7a\x5f\x9c\xd8\x8b\x66"
+ "\x3b",
+ .alen = 17,
+ .input = "\xf5\xa6\x46\x2c\xce\x97\x8a\x51"
+ "\x6f\x46\xa6\x83\x9b\xa1\xbc\xe8"
+ "\x05",
+ .ilen = 17,
+ .result = "\xb1\xab\x53\x4e\xc7\x40\x16\xb6"
+ "\x71\x3a\x00\x9f\x41\x88\xb0\xb2"
+ "\x71\x83\x85\x5f\xc8\x79\x0a\x99"
+ "\x99\xdc\x89\x1c\x88\xd2\x3e\xf9"
+ "\x83",
+ .rlen = 33,
+ }, {
+ .key = "\x05\x70\xd5\x94\x12\x36\x35\xd8"
+ "\x8f\x7d\xd3\xa8\x99\x6a\xed\x69",
+ .klen = 16,
+ .iv = "\x14\x39\x63\xfc\x56\xd5\xdf\x5f"
+ "\xaf\xb3\xff\xcc\x98\x33\x1d\xeb",
+ .assoc = "\x23\x02\xf1\x64\x9a\x73\x89\xe6"
+ "\xd0\xea\x2c\xf1\x96\xfc\x4e\x6d"
+ "\x65\x48\xcb\x0a\xda\xf0\x62\xc0"
+ "\x38\x1d\x3b\x4a\xe9\x7e\x62",
+ .alen = 31,
+ .input = "\x32\xcb\x80\xcc\xde\x12\x33\x6d"
+ "\xf0\x20\x58\x15\x95\xc6\x7f\xee"
+ "\x2f\xf9\x4e\x2c\x1b\x98\x43\xc7"
+ "\x68\x28\x73\x40\x9f\x96\x4a",
+ .ilen = 31,
+ .result = "\x29\xc4\xf0\x03\xc1\x86\xdf\x06"
+ "\x5c\x7b\xef\x64\x87\x00\xd1\x37"
+ "\xa7\x08\xbc\x7f\x8f\x41\x54\xd0"
+ "\x3e\xf1\xc3\xa2\x96\x84\xdd\x2a"
+ "\x2d\x21\x30\xf9\x02\xdb\x06\x0c"
+ "\xf1\x5a\x66\x69\xe0\xca\x83",
+ .rlen = 47,
+ }, {
+ .key = "\x41\x94\x0e\x33\x22\xb1\xdd\xf4"
+ "\x10\x57\x85\x39\x93\x8f\xaf\x70",
+ .klen = 16,
+ .iv = "\x50\x5d\x9d\x9b\x66\x50\x88\x7b"
+ "\x30\x8e\xb1\x5e\x92\x58\xe0\xf1",
+ .assoc = "\x5f\x27\x2b\x03\xaa\xef\x32\x02"
+ "\x50\xc4\xde\x82\x90\x21\x11\x73"
+ "\x8f\x0a\xd6\x8f\xdf\x90\xe4\xda"
+ "\xf9\x4a\x1a\x23\xc3\xdd\x02\x81",
+ .alen = 32,
+ .input = "\x6e\xf0\xba\x6b\xee\x8e\xdc\x89"
+ "\x71\xfb\x0a\xa6\x8f\xea\x41\xf4"
+ "\x5a\xbb\x59\xb0\x20\x38\xc5\xe0"
+ "\x29\x56\x52\x19\x79\xf5\xe9\x37",
+ .ilen = 32,
+ .result = "\xe2\x2e\x44\xdf\xd3\x60\x6d\xb2"
+ "\x70\x57\x37\xc5\xc2\x4f\x8d\x14"
+ "\xc6\xbf\x8b\xec\xf5\x62\x67\xf2"
+ "\x2f\xa1\xe6\xd6\xa7\xb1\x8c\x54"
+ "\xe5\x6b\x49\xf9\x6e\x90\xc3\xaa"
+ "\x7a\x00\x2e\x4d\x7f\x31\x2e\x81",
+ .rlen = 48,
+ }, {
+ .key = "\x7e\xb9\x48\xd3\x32\x2d\x86\x10"
+ "\x91\x31\x37\xcb\x8d\xb3\x72\x76",
+ .klen = 16,
+ .iv = "\x8d\x82\xd6\x3b\x76\xcc\x30\x97"
+ "\xb1\x68\x63\xef\x8c\x7c\xa3\xf7",
+ .assoc = "\x9c\x4b\x65\xa2\xba\x6b\xdb\x1e"
+ "\xd1\x9e\x90\x13\x8a\x45\xd3\x79"
+ "\xba\xcd\xe2\x13\xe4\x30\x66\xf4"
+ "\xba\x78\xf9\xfb\x9d\x3c\xa1\x58"
+ "\x1a",
+ .alen = 33,
+ .input = "\xab\x14\xf3\x0a\xfe\x0a\x85\xa5"
+ "\xf2\xd5\xbc\x38\x89\x0e\x04\xfb"
+ "\x84\x7d\x65\x34\x25\xd8\x47\xfa"
+ "\xeb\x83\x31\xf1\x54\x54\x89\x0d"
+ "\x9d\x4d\x54\x51\x84\x61\xf6\x8e"
+ "\x03\x31\xf2\x25\x16\xcc\xaa\xc6"
+ "\x75\x73\x20\x30\x59\x54\xb2\xf0"
+ "\x3a\x4b\xe0\x23\x8e\xa6\x08\x35"
+ "\x8a",
+ .ilen = 65,
+ .result = "\xc7\xca\x26\x61\x57\xee\xa2\xb9"
+ "\xb1\x37\xde\x95\x06\x90\x11\x08"
+ "\x4d\x30\x9f\x24\xc0\x56\xb7\xe1"
+ "\x0b\x9f\xd2\x57\xe9\xd2\xb1\x76"
+ "\x56\x9a\xb4\x58\xc5\x08\xfc\xb5"
+ "\xf2\x31\x9b\xc9\xcd\xb3\x64\xdb"
+ "\x6f\x50\xbf\xf4\x73\x9d\xfb\x6b"
+ "\xef\x35\x25\x48\xed\xcf\x29\xa8"
+ "\xac\xc3\xb9\xcb\x61\x8f\x73\x92"
+ "\x2c\x7a\x6f\xda\xf9\x09\x6f\xe1"
+ "\xc4",
+ .rlen = 81,
+ }, {
+ .key = "\xba\xde\x82\x72\x42\xa9\x2f\x2c"
+ "\x12\x0b\xe9\x5c\x87\xd7\x35\x7c",
+ .klen = 16,
+ .iv = "\xc9\xa7\x10\xda\x86\x48\xd9\xb3"
+ "\x32\x42\x15\x80\x85\xa1\x65\xfe",
+ .assoc = "\xd8\x70\x9f\x42\xca\xe6\x83\x3a"
+ "\x52\x79\x42\xa5\x84\x6a\x96\x7f"
+ "\xe4\x8f\xed\x97\xe9\xd0\xe8\x0d"
+ "\x7c\xa6\xd8\xd4\x77\x9b\x40\x2e"
+ "\x28\xce\x57\x34\xcd\x6e\x84\x4c"
+ "\x17\x3c\xe1\xb2\xa8\x0b\xbb\xf1"
+ "\x96\x41\x0d\x69\xe8\x54\x0a\xc8"
+ "\x15\x4e\x91\x92\x89\x4b\xb7\x9b"
+ "\x21",
+ .alen = 65,
+ .input = "\xe8\x39\x2d\xaa\x0e\x85\x2d\xc1"
+ "\x72\xaf\x6e\xc9\x82\x33\xc7\x01"
+ "\xaf\x40\x70\xb8\x2a\x78\xc9\x14"
+ "\xac\xb1\x10\xca\x2e\xb3\x28\xe4"
+ "\xac",
+ .ilen = 33,
+ .result = "\x57\xcd\x3d\x46\xc5\xf9\x68\x3b"
+ "\x2c\x0f\xb4\x7e\x7b\x64\x3e\x40"
+ "\xf3\x78\x63\x34\x89\x79\x39\x6b"
+ "\x61\x64\x4a\x9a\xfa\x70\xa4\xd3"
+ "\x54\x0b\xea\x05\xa6\x95\x64\xed"
+ "\x3d\x69\xa2\x0c\x27\x56\x2f\x34"
+ "\x66",
+ .rlen = 49,
+ }, {
+ .key = "\xf7\x02\xbb\x11\x52\x24\xd8\x48"
+ "\x93\xe6\x9b\xee\x81\xfc\xf7\x82",
+ .klen = 16,
+ .iv = "\x06\xcc\x4a\x79\x96\xc3\x82\xcf"
+ "\xb3\x1c\xc7\x12\x7f\xc5\x28\x04",
+ .assoc = "\x15\x95\xd8\xe1\xda\x62\x2c\x56"
+ "\xd3\x53\xf4\x36\x7e\x8e\x59\x85",
+ .alen = 16,
+ .input = "\x24\x5e\x67\x49\x1e\x01\xd6\xdd"
+ "\xf3\x89\x20\x5b\x7c\x57\x89\x07",
+ .ilen = 16,
+ .result = "\xfc\x85\x06\x28\x8f\xe8\x23\x1f"
+ "\x33\x98\x87\xde\x08\xb6\xb6\xae"
+ "\x3e\xa4\xf8\x19\xf1\x92\x60\x39"
+ "\xb9\x6b\x3f\xdf\xc8\xcb\x30",
+ .rlen = 31,
+ }, {
+ .key = "\x33\x27\xf5\xb1\x62\xa0\x80\x63"
+ "\x14\xc0\x4d\x7f\x7b\x20\xba\x89",
+ .klen = 16,
+ .iv = "\x42\xf0\x84\x19\xa6\x3f\x2b\xea"
+ "\x34\xf6\x79\xa3\x79\xe9\xeb\x0a",
+ .assoc = "\x51\xb9\x12\x80\xea\xde\xd5\x71"
+ "\x54\x2d\xa6\xc8\x78\xb2\x1b\x8c",
+ .alen = 16,
+ .input = "\x61\x83\xa0\xe8\x2e\x7d\x7f\xf8"
+ "\x74\x63\xd2\xec\x76\x7c\x4c\x0d",
+ .ilen = 16,
+ .result = "\x74\x7d\x70\x07\xe9\xba\x01\xee"
+ "\x6c\xc6\x6f\x50\x25\x33\xbe\x50"
+ "\x17\xb8\x17\x62\xed\x80\xa2\xf5"
+ "\x03\xde\x85\x71\x5d\x34",
+ .rlen = 30,
+ }, {
+ .key = "\x70\x4c\x2f\x50\x72\x1c\x29\x7f"
+ "\x95\x9a\xff\x10\x75\x45\x7d\x8f",
+ .klen = 16,
+ .iv = "\x7f\x15\xbd\xb8\xb6\xba\xd3\x06"
+ "\xb5\xd1\x2b\x35\x73\x0e\xad\x10",
+ .assoc = "\x8e\xde\x4c\x20\xfa\x59\x7e\x8d"
+ "\xd5\x07\x58\x59\x72\xd7\xde\x92",
+ .alen = 16,
+ .input = "\x9d\xa7\xda\x88\x3e\xf8\x28\x14"
+ "\xf5\x3e\x85\x7d\x70\xa0\x0f\x13",
+ .ilen = 16,
+ .result = "\xf4\xb3\x85\xf9\xac\xde\xb1\x38"
+ "\x29\xfd\x6c\x7c\x49\xe5\x1d\xaf"
+ "\xba\xea\xd4\xfa\x3f\x11\x33\x98",
+ .rlen = 24,
+ }, {
+ .key = "\xac\x70\x69\xef\x82\x97\xd2\x9b"
+ "\x15\x74\xb1\xa2\x6f\x69\x3f\x95",
+ .klen = 16,
+ .iv = "\xbb\x3a\xf7\x57\xc6\x36\x7c\x22"
+ "\x36\xab\xde\xc6\x6d\x32\x70\x17",
+ .assoc = "\xcb\x03\x85\xbf\x0a\xd5\x26\xa9"
+ "\x56\xe1\x0a\xeb\x6c\xfb\xa1\x98",
+ .alen = 16,
+ .input = "\xda\xcc\x14\x27\x4e\x74\xd1\x30"
+ "\x76\x18\x37\x0f\x6a\xc4\xd1\x1a",
+ .ilen = 16,
+ .result = "\xe6\x5c\x49\x4f\x78\xf3\x62\x86"
+ "\xe1\xb7\xa5\xc3\x32\x88\x3c\x8c"
+ "\x6e",
+ .rlen = 17,
+ },
+};
+
+static const struct aead_testvec morus640_dec_tv_template[] = {
+ {
+ .key = "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00",
+ .klen = 16,
+ .iv = "\x0f\xc9\x8e\x67\x44\x9e\xaa\x86"
+ "\x20\x36\x2c\x24\xfe\xc9\x30\x81",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x89\x62\x7d\xf3\x07\x9d\x52\x05"
+ "\x53\xc3\x04\x60\x93\xb4\x37\x9a",
+ .ilen = 16,
+ .result = "",
+ .rlen = 0,
+ }, {
+ .key = "\x3c\x24\x39\x9f\x10\x7b\xa8\x1b"
+ "\x80\xda\xb2\x91\xf9\x24\xc2\x06",
+ .klen = 16,
+ .iv = "\x4b\xed\xc8\x07\x54\x1a\x52\xa2"
+ "\xa1\x10\xde\xb5\xf8\xed\xf3\x87",
+ .assoc = "",
+ .alen = 0,
+ .input = "\xa8\x8d\xe4\x90\xb5\x50\x8f\x78"
+ "\xb6\x10\x9a\x59\x5f\x61\x37\x70"
+ "\x09",
+ .ilen = 17,
+ .result = "\x69",
+ .rlen = 1,
+ }, {
+ .key = "\x79\x49\x73\x3e\x20\xf7\x51\x37"
+ "\x01\xb4\x64\x22\xf3\x48\x85\x0c",
+ .klen = 16,
+ .iv = "\x88\x12\x01\xa6\x64\x96\xfb\xbe"
+ "\x22\xea\x90\x47\xf2\x11\xb5\x8e",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x76\xdd\xb9\x05\x3d\xce\x61\x38"
+ "\xf3\xef\xf7\xe5\xd7\xfd\x70\xa5"
+ "\xcf\x9d\x64\xb8\x0a\x9f\xfd\x8b"
+ "\xd4\x6e\xfe\xd9\xc8\x63\x4b",
+ .ilen = 31,
+ .result = "\xa6\xa4\x1e\x76\xec\xd4\x50\xcc"
+ "\x62\x58\xe9\x8f\xef\xa4\x17",
+ .rlen = 15,
+ }, {
+ .key = "\xb5\x6e\xad\xdd\x30\x72\xfa\x53"
+ "\x82\x8e\x16\xb4\xed\x6d\x47\x12",
+ .klen = 16,
+ .iv = "\xc4\x37\x3b\x45\x74\x11\xa4\xda"
+ "\xa2\xc5\x42\xd8\xec\x36\x78\x94",
+ .assoc = "",
+ .alen = 0,
+ .input = "\xdc\x72\xe8\x14\xfb\x63\xad\x72"
+ "\x1f\x57\x9a\x1f\x88\x81\xdb\xd6"
+ "\xc1\x91\x9d\xb9\x25\xc4\x99\x4c"
+ "\x97\xcd\x8a\x0c\x9d\x68\x00\x1c",
+ .ilen = 32,
+ .result = "\xe2\xc9\x58\x15\xfc\x4f\xf8\xe8"
+ "\xe3\x32\x9b\x21\xe9\xc8\xd9\x97",
+ .rlen = 16,
+ }, {
+ .key = "\xf2\x92\xe6\x7d\x40\xee\xa3\x6f"
+ "\x03\x68\xc8\x45\xe7\x91\x0a\x18",
+ .klen = 16,
+ .iv = "\x01\x5c\x75\xe5\x84\x8d\x4d\xf6"
+ "\x23\x9f\xf4\x6a\xe6\x5a\x3b\x9a",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x6b\x4f\x3b\x90\x9a\xa2\xb3\x82"
+ "\x0a\xb8\x55\xee\xeb\x73\x4d\x7f"
+ "\x54\x11\x3a\x8a\x31\xa3\xb5\xf2"
+ "\xcd\x49\xdb\xf3\xee\x26\xbd\xa2"
+ "\x0d",
+ .ilen = 33,
+ .result = "\x1f\xee\x92\xb4\x0c\xcb\xa1\x04"
+ "\x64\x0c\x4d\xb2\xe3\xec\x9c\x9d"
+ "\x09",
+ .rlen = 17,
+ }, {
+ .key = "\x2e\xb7\x20\x1c\x50\x6a\x4b\x8b"
+ "\x84\x42\x7a\xd7\xe1\xb5\xcd\x1f",
+ .klen = 16,
+ .iv = "\x3d\x80\xae\x84\x94\x09\xf6\x12"
+ "\xa4\x79\xa6\xfb\xe0\x7f\xfd\xa0",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x59\xd1\x0f\x6b\xee\x27\x84\x92"
+ "\xb7\xa9\xb5\xdd\x02\xa4\x12\xa5"
+ "\x50\x32\xb4\x9a\x2e\x35\x83\x55"
+ "\x36\x12\x12\xed\xa3\x31\xc5\x30"
+ "\xa7\xe2\x4a\x6d\x05\x59\x43\x91"
+ "\x75\xfa\x6c\x17\xc6\x73\xca",
+ .ilen = 47,
+ .result = "\x5c\x13\xcb\x54\x1c\x47\x4a\x1f"
+ "\xe5\xe6\xff\x44\xdd\x11\x5f\xa3"
+ "\x33\xdd\xc2\xf8\xdd\x18\x2b\x93"
+ "\x57\x05\x01\x1c\x66\x22\xd3",
+ .rlen = 31,
+ }, {
+ .key = "\x6b\xdc\x5a\xbb\x60\xe5\xf4\xa6"
+ "\x05\x1d\x2c\x68\xdb\xda\x8f\x25",
+ .klen = 16,
+ .iv = "\x7a\xa5\xe8\x23\xa4\x84\x9e\x2d"
+ "\x25\x53\x58\x8c\xda\xa3\xc0\xa6",
+ .assoc = "",
+ .alen = 0,
+ .input = "\xdb\x49\x68\x0f\x91\x5b\x21\xb1"
+ "\xcf\x50\xb2\x4c\x32\xe1\xa6\x69"
+ "\xc0\xfb\x44\x1f\xa0\x9a\xeb\x39"
+ "\x1b\xde\x68\x38\xcc\x27\x52\xc5"
+ "\xf6\x3e\x74\xea\x66\x5b\x5f\x0c"
+ "\x65\x9e\x58\xe6\x52\xa2\xfe\x59",
+ .ilen = 48,
+ .result = "\x98\x37\x05\xf3\x2c\xc2\xf3\x3b"
+ "\x66\xc0\xb1\xd5\xd7\x35\x21\xaa"
+ "\x5d\x9f\xce\x7c\xe2\xb8\xad\xad"
+ "\x19\x33\xe0\xf4\x40\x81\x72\x28",
+ .rlen = 32,
+ }, {
+ .key = "\xa7\x00\x93\x5b\x70\x61\x9d\xc2"
+ "\x86\xf7\xde\xfa\xd5\xfe\x52\x2b",
+ .klen = 16,
+ .iv = "\xb6\xca\x22\xc3\xb4\x00\x47\x49"
+ "\xa6\x2d\x0a\x1e\xd4\xc7\x83\xad",
+ .assoc = "\xc5",
+ .alen = 1,
+ .input = "\x56\xe7\x24\x52\xdd\x95\x60\x5b"
+ "\x09\x48\x39\x69\x9c\xb3\x62\x46",
+ .ilen = 16,
+ .result = "",
+ .rlen = 0,
+ }, {
+ .key = "\xe4\x25\xcd\xfa\x80\xdd\x46\xde"
+ "\x07\xd1\x90\x8b\xcf\x23\x15\x31",
+ .klen = 16,
+ .iv = "\xf3\xee\x5c\x62\xc4\x7c\xf0\x65"
+ "\x27\x08\xbd\xaf\xce\xec\x45\xb3",
+ .assoc = "\x02\xb8\xea\xca\x09\x1b\x9a\xec"
+ "\x47\x3e\xe9\xd4\xcc\xb5\x76",
+ .alen = 15,
+ .input = "\xdd\xfa\x6c\x1f\x5d\x86\x87\x01"
+ "\x13\xe5\x73\x46\x46\xf2\x5c\xe1",
+ .ilen = 16,
+ .result = "",
+ .rlen = 0,
+ }, {
+ .key = "\x20\x4a\x07\x99\x91\x58\xee\xfa"
+ "\x88\xab\x42\x1c\xc9\x47\xd7\x38",
+ .klen = 16,
+ .iv = "\x2f\x13\x95\x01\xd5\xf7\x99\x81"
+ "\xa8\xe2\x6f\x41\xc8\x10\x08\xb9",
+ .assoc = "\x3f\xdc\x24\x69\x19\x96\x43\x08"
+ "\xc8\x18\x9b\x65\xc6\xd9\x39\x3b",
+ .alen = 16,
+ .input = "\xa6\x1b\xb9\xd7\x5e\x3c\xcf\xac"
+ "\xa9\x21\x45\x0b\x16\x52\xf7\xe1",
+ .ilen = 16,
+ .result = "",
+ .rlen = 0,
+ }, {
+ .key = "\x5d\x6f\x41\x39\xa1\xd4\x97\x16"
+ "\x09\x85\xf4\xae\xc3\x6b\x9a\x3e",
+ .klen = 16,
+ .iv = "\x6c\x38\xcf\xa1\xe5\x73\x41\x9d"
+ "\x29\xbc\x21\xd2\xc2\x35\xcb\xbf",
+ .assoc = "\x7b\x01\x5d\x08\x29\x12\xec\x24"
+ "\x49\xf3\x4d\xf7\xc0\xfe\xfb\x41"
+ "\x3c",
+ .alen = 17,
+ .input = "\x15\xff\xde\x3b\x34\xfc\xf6\xf9"
+ "\xbb\xa8\x62\xad\x0a\xf5\x48\x60",
+ .ilen = 16,
+ .result = "",
+ .rlen = 0,
+ }, {
+ .key = "\x99\x93\x7a\xd8\xb1\x50\x40\x31"
+ "\x8a\x60\xa6\x3f\xbd\x90\x5d\x44",
+ .klen = 16,
+ .iv = "\xa8\x5c\x09\x40\xf5\xef\xea\xb8"
+ "\xaa\x96\xd3\x64\xbc\x59\x8d\xc6",
+ .assoc = "\xb8\x26\x97\xa8\x39\x8e\x94\x3f"
+ "\xca\xcd\xff\x88\xba\x22\xbe\x47"
+ "\x67\xba\x85\xf1\xbb\x30\x56\x26"
+ "\xaf\x0b\x02\x38\xcc\x44\xa7",
+ .alen = 31,
+ .input = "\xd2\x9d\xf8\x3b\xd7\x84\xe9\x2d"
+ "\x4b\xef\x75\x16\x0a\x99\xae\x6b",
+ .ilen = 16,
+ .result = "",
+ .rlen = 0,
+ }, {
+ .key = "\xd6\xb8\xb4\x77\xc1\xcb\xe9\x4d"
+ "\x0a\x3a\x58\xd1\xb7\xb4\x1f\x4a",
+ .klen = 16,
+ .iv = "\xe5\x81\x42\xdf\x05\x6a\x93\xd4"
+ "\x2b\x70\x85\xf5\xb6\x7d\x50\xcc",
+ .assoc = "\xf4\x4a\xd1\x47\x49\x09\x3d\x5b"
+ "\x4b\xa7\xb1\x19\xb4\x46\x81\x4d"
+ "\x91\x7c\x91\x75\xc0\xd0\xd8\x40"
+ "\x71\x39\xe1\x10\xa6\xa3\x46\x7a",
+ .alen = 32,
+ .input = "\xe4\x8d\xa7\xa7\x45\xc1\x31\x4f"
+ "\xce\xfb\xaf\xd6\xc2\xe6\xee\xc0",
+ .ilen = 16,
+ .result = "",
+ .rlen = 0,
+ }, {
+ .key = "\x12\xdd\xee\x17\xd1\x47\x92\x69"
+ "\x8b\x14\x0a\x62\xb1\xd9\xe2\x50",
+ .klen = 16,
+ .iv = "\x22\xa6\x7c\x7f\x15\xe6\x3c\xf0"
+ "\xac\x4b\x37\x86\xb0\xa2\x13\xd2",
+ .assoc = "\x31",
+ .alen = 1,
+ .input = "\xe2\x67\x38\x4f\xb9\xad\x7d\x38"
+ "\x01\xfe\x84\x14\x85\xf8\xd1\xe3"
+ "\x22",
+ .ilen = 17,
+ .result = "\x40",
+ .rlen = 1,
+ }, {
+ .key = "\x4f\x01\x27\xb6\xe1\xc3\x3a\x85"
+ "\x0c\xee\xbc\xf4\xab\xfd\xa5\x57",
+ .klen = 16,
+ .iv = "\x5e\xcb\xb6\x1e\x25\x62\xe4\x0c"
+ "\x2d\x25\xe9\x18\xaa\xc6\xd5\xd8",
+ .assoc = "\x6d\x94\x44\x86\x69\x00\x8f\x93"
+ "\x4d\x5b\x15\x3c\xa8\x8f\x06",
+ .alen = 15,
+ .input = "\x77\x32\x61\xeb\xb4\x33\x29\x92"
+ "\x29\x95\xc5\x8e\x85\x76\xab\xfc"
+ "\x07\x95\xa7\x44\x74\xf7\x22\xff"
+ "\xd8\xd8\x36\x3d\x8a\x7f\x9e",
+ .ilen = 31,
+ .result = "\x7c\x5d\xd3\xee\xad\x9f\x39\x1a"
+ "\x6d\x92\x42\x61\xa7\x58\x37",
+ .rlen = 15,
+ }, {
+ .key = "\x8b\x26\x61\x55\xf1\x3e\xe3\xa1"
+ "\x8d\xc8\x6e\x85\xa5\x21\x67\x5d",
+ .klen = 16,
+ .iv = "\x9b\xef\xf0\xbd\x35\xdd\x8d\x28"
+ "\xad\xff\x9b\xa9\xa4\xeb\x98\xdf",
+ .assoc = "\xaa\xb8\x7e\x25\x79\x7c\x37\xaf"
+ "\xce\x36\xc7\xce\xa2\xb4\xc9\x60",
+ .alen = 16,
+ .input = "\xd8\xfd\x44\x45\xf6\x42\x12\x38"
+ "\xf2\x0b\xea\x4f\x9e\x11\x61\x07"
+ "\x48\x67\x98\x18\x9b\xd0\x0c\x59"
+ "\x67\xa4\x11\xb3\x2b\xd6\xc1\x70",
+ .ilen = 32,
+ .result = "\xb9\x82\x0c\x8d\xbd\x1b\xe2\x36"
+ "\xee\x6c\xf4\xf2\xa1\x7d\xf9\xe2",
+ .rlen = 16,
+ }, {
+ .key = "\xc8\x4b\x9b\xf5\x01\xba\x8c\xbd"
+ "\x0e\xa3\x21\x16\x9f\x46\x2a\x63",
+ .klen = 16,
+ .iv = "\xd7\x14\x29\x5d\x45\x59\x36\x44"
+ "\x2e\xd9\x4d\x3b\x9e\x0f\x5b\xe5",
+ .assoc = "\xe6\xdd\xb8\xc4\x89\xf8\xe0\xca"
+ "\x4f\x10\x7a\x5f\x9c\xd8\x8b\x66"
+ "\x3b",
+ .alen = 17,
+ .input = "\xb1\xab\x53\x4e\xc7\x40\x16\xb6"
+ "\x71\x3a\x00\x9f\x41\x88\xb0\xb2"
+ "\x71\x83\x85\x5f\xc8\x79\x0a\x99"
+ "\x99\xdc\x89\x1c\x88\xd2\x3e\xf9"
+ "\x83",
+ .ilen = 33,
+ .result = "\xf5\xa6\x46\x2c\xce\x97\x8a\x51"
+ "\x6f\x46\xa6\x83\x9b\xa1\xbc\xe8"
+ "\x05",
+ .rlen = 17,
+ }, {
+ .key = "\x05\x70\xd5\x94\x12\x36\x35\xd8"
+ "\x8f\x7d\xd3\xa8\x99\x6a\xed\x69",
+ .klen = 16,
+ .iv = "\x14\x39\x63\xfc\x56\xd5\xdf\x5f"
+ "\xaf\xb3\xff\xcc\x98\x33\x1d\xeb",
+ .assoc = "\x23\x02\xf1\x64\x9a\x73\x89\xe6"
+ "\xd0\xea\x2c\xf1\x96\xfc\x4e\x6d"
+ "\x65\x48\xcb\x0a\xda\xf0\x62\xc0"
+ "\x38\x1d\x3b\x4a\xe9\x7e\x62",
+ .alen = 31,
+ .input = "\x29\xc4\xf0\x03\xc1\x86\xdf\x06"
+ "\x5c\x7b\xef\x64\x87\x00\xd1\x37"
+ "\xa7\x08\xbc\x7f\x8f\x41\x54\xd0"
+ "\x3e\xf1\xc3\xa2\x96\x84\xdd\x2a"
+ "\x2d\x21\x30\xf9\x02\xdb\x06\x0c"
+ "\xf1\x5a\x66\x69\xe0\xca\x83",
+ .ilen = 47,
+ .result = "\x32\xcb\x80\xcc\xde\x12\x33\x6d"
+ "\xf0\x20\x58\x15\x95\xc6\x7f\xee"
+ "\x2f\xf9\x4e\x2c\x1b\x98\x43\xc7"
+ "\x68\x28\x73\x40\x9f\x96\x4a",
+ .rlen = 31,
+ }, {
+ .key = "\x41\x94\x0e\x33\x22\xb1\xdd\xf4"
+ "\x10\x57\x85\x39\x93\x8f\xaf\x70",
+ .klen = 16,
+ .iv = "\x50\x5d\x9d\x9b\x66\x50\x88\x7b"
+ "\x30\x8e\xb1\x5e\x92\x58\xe0\xf1",
+ .assoc = "\x5f\x27\x2b\x03\xaa\xef\x32\x02"
+ "\x50\xc4\xde\x82\x90\x21\x11\x73"
+ "\x8f\x0a\xd6\x8f\xdf\x90\xe4\xda"
+ "\xf9\x4a\x1a\x23\xc3\xdd\x02\x81",
+ .alen = 32,
+ .input = "\xe2\x2e\x44\xdf\xd3\x60\x6d\xb2"
+ "\x70\x57\x37\xc5\xc2\x4f\x8d\x14"
+ "\xc6\xbf\x8b\xec\xf5\x62\x67\xf2"
+ "\x2f\xa1\xe6\xd6\xa7\xb1\x8c\x54"
+ "\xe5\x6b\x49\xf9\x6e\x90\xc3\xaa"
+ "\x7a\x00\x2e\x4d\x7f\x31\x2e\x81",
+ .ilen = 48,
+ .result = "\x6e\xf0\xba\x6b\xee\x8e\xdc\x89"
+ "\x71\xfb\x0a\xa6\x8f\xea\x41\xf4"
+ "\x5a\xbb\x59\xb0\x20\x38\xc5\xe0"
+ "\x29\x56\x52\x19\x79\xf5\xe9\x37",
+ .rlen = 32,
+ }, {
+ .key = "\x7e\xb9\x48\xd3\x32\x2d\x86\x10"
+ "\x91\x31\x37\xcb\x8d\xb3\x72\x76",
+ .klen = 16,
+ .iv = "\x8d\x82\xd6\x3b\x76\xcc\x30\x97"
+ "\xb1\x68\x63\xef\x8c\x7c\xa3\xf7",
+ .assoc = "\x9c\x4b\x65\xa2\xba\x6b\xdb\x1e"
+ "\xd1\x9e\x90\x13\x8a\x45\xd3\x79"
+ "\xba\xcd\xe2\x13\xe4\x30\x66\xf4"
+ "\xba\x78\xf9\xfb\x9d\x3c\xa1\x58"
+ "\x1a",
+ .alen = 33,
+ .input = "\xc7\xca\x26\x61\x57\xee\xa2\xb9"
+ "\xb1\x37\xde\x95\x06\x90\x11\x08"
+ "\x4d\x30\x9f\x24\xc0\x56\xb7\xe1"
+ "\x0b\x9f\xd2\x57\xe9\xd2\xb1\x76"
+ "\x56\x9a\xb4\x58\xc5\x08\xfc\xb5"
+ "\xf2\x31\x9b\xc9\xcd\xb3\x64\xdb"
+ "\x6f\x50\xbf\xf4\x73\x9d\xfb\x6b"
+ "\xef\x35\x25\x48\xed\xcf\x29\xa8"
+ "\xac\xc3\xb9\xcb\x61\x8f\x73\x92"
+ "\x2c\x7a\x6f\xda\xf9\x09\x6f\xe1"
+ "\xc4",
+ .ilen = 81,
+ .result = "\xab\x14\xf3\x0a\xfe\x0a\x85\xa5"
+ "\xf2\xd5\xbc\x38\x89\x0e\x04\xfb"
+ "\x84\x7d\x65\x34\x25\xd8\x47\xfa"
+ "\xeb\x83\x31\xf1\x54\x54\x89\x0d"
+ "\x9d\x4d\x54\x51\x84\x61\xf6\x8e"
+ "\x03\x31\xf2\x25\x16\xcc\xaa\xc6"
+ "\x75\x73\x20\x30\x59\x54\xb2\xf0"
+ "\x3a\x4b\xe0\x23\x8e\xa6\x08\x35"
+ "\x8a",
+ .rlen = 65,
+ }, {
+ .key = "\xba\xde\x82\x72\x42\xa9\x2f\x2c"
+ "\x12\x0b\xe9\x5c\x87\xd7\x35\x7c",
+ .klen = 16,
+ .iv = "\xc9\xa7\x10\xda\x86\x48\xd9\xb3"
+ "\x32\x42\x15\x80\x85\xa1\x65\xfe",
+ .assoc = "\xd8\x70\x9f\x42\xca\xe6\x83\x3a"
+ "\x52\x79\x42\xa5\x84\x6a\x96\x7f"
+ "\xe4\x8f\xed\x97\xe9\xd0\xe8\x0d"
+ "\x7c\xa6\xd8\xd4\x77\x9b\x40\x2e"
+ "\x28\xce\x57\x34\xcd\x6e\x84\x4c"
+ "\x17\x3c\xe1\xb2\xa8\x0b\xbb\xf1"
+ "\x96\x41\x0d\x69\xe8\x54\x0a\xc8"
+ "\x15\x4e\x91\x92\x89\x4b\xb7\x9b"
+ "\x21",
+ .alen = 65,
+ .input = "\x57\xcd\x3d\x46\xc5\xf9\x68\x3b"
+ "\x2c\x0f\xb4\x7e\x7b\x64\x3e\x40"
+ "\xf3\x78\x63\x34\x89\x79\x39\x6b"
+ "\x61\x64\x4a\x9a\xfa\x70\xa4\xd3"
+ "\x54\x0b\xea\x05\xa6\x95\x64\xed"
+ "\x3d\x69\xa2\x0c\x27\x56\x2f\x34"
+ "\x66",
+ .ilen = 49,
+ .result = "\xe8\x39\x2d\xaa\x0e\x85\x2d\xc1"
+ "\x72\xaf\x6e\xc9\x82\x33\xc7\x01"
+ "\xaf\x40\x70\xb8\x2a\x78\xc9\x14"
+ "\xac\xb1\x10\xca\x2e\xb3\x28\xe4"
+ "\xac",
+ .rlen = 33,
+ }, {
+ .key = "\xf7\x02\xbb\x11\x52\x24\xd8\x48"
+ "\x93\xe6\x9b\xee\x81\xfc\xf7\x82",
+ .klen = 16,
+ .iv = "\x06\xcc\x4a\x79\x96\xc3\x82\xcf"
+ "\xb3\x1c\xc7\x12\x7f\xc5\x28\x04",
+ .assoc = "\x15\x95\xd8\xe1\xda\x62\x2c\x56"
+ "\xd3\x53\xf4\x36\x7e\x8e\x59\x85",
+ .alen = 16,
+ .input = "\xfc\x85\x06\x28\x8f\xe8\x23\x1f"
+ "\x33\x98\x87\xde\x08\xb6\xb6\xae"
+ "\x3e\xa4\xf8\x19\xf1\x92\x60\x39"
+ "\xb9\x6b\x3f\xdf\xc8\xcb\x30",
+ .ilen = 31,
+ .result = "\x24\x5e\x67\x49\x1e\x01\xd6\xdd"
+ "\xf3\x89\x20\x5b\x7c\x57\x89\x07",
+ .rlen = 16,
+ }, {
+ .key = "\x33\x27\xf5\xb1\x62\xa0\x80\x63"
+ "\x14\xc0\x4d\x7f\x7b\x20\xba\x89",
+ .klen = 16,
+ .iv = "\x42\xf0\x84\x19\xa6\x3f\x2b\xea"
+ "\x34\xf6\x79\xa3\x79\xe9\xeb\x0a",
+ .assoc = "\x51\xb9\x12\x80\xea\xde\xd5\x71"
+ "\x54\x2d\xa6\xc8\x78\xb2\x1b\x8c",
+ .alen = 16,
+ .input = "\x74\x7d\x70\x07\xe9\xba\x01\xee"
+ "\x6c\xc6\x6f\x50\x25\x33\xbe\x50"
+ "\x17\xb8\x17\x62\xed\x80\xa2\xf5"
+ "\x03\xde\x85\x71\x5d\x34",
+ .ilen = 30,
+ .result = "\x61\x83\xa0\xe8\x2e\x7d\x7f\xf8"
+ "\x74\x63\xd2\xec\x76\x7c\x4c\x0d",
+ .rlen = 16,
+ }, {
+ .key = "\x70\x4c\x2f\x50\x72\x1c\x29\x7f"
+ "\x95\x9a\xff\x10\x75\x45\x7d\x8f",
+ .klen = 16,
+ .iv = "\x7f\x15\xbd\xb8\xb6\xba\xd3\x06"
+ "\xb5\xd1\x2b\x35\x73\x0e\xad\x10",
+ .assoc = "\x8e\xde\x4c\x20\xfa\x59\x7e\x8d"
+ "\xd5\x07\x58\x59\x72\xd7\xde\x92",
+ .alen = 16,
+ .input = "\xf4\xb3\x85\xf9\xac\xde\xb1\x38"
+ "\x29\xfd\x6c\x7c\x49\xe5\x1d\xaf"
+ "\xba\xea\xd4\xfa\x3f\x11\x33\x98",
+ .ilen = 24,
+ .result = "\x9d\xa7\xda\x88\x3e\xf8\x28\x14"
+ "\xf5\x3e\x85\x7d\x70\xa0\x0f\x13",
+ .rlen = 16,
+ }, {
+ .key = "\xac\x70\x69\xef\x82\x97\xd2\x9b"
+ "\x15\x74\xb1\xa2\x6f\x69\x3f\x95",
+ .klen = 16,
+ .iv = "\xbb\x3a\xf7\x57\xc6\x36\x7c\x22"
+ "\x36\xab\xde\xc6\x6d\x32\x70\x17",
+ .assoc = "\xcb\x03\x85\xbf\x0a\xd5\x26\xa9"
+ "\x56\xe1\x0a\xeb\x6c\xfb\xa1\x98",
+ .alen = 16,
+ .input = "\xe6\x5c\x49\x4f\x78\xf3\x62\x86"
+ "\xe1\xb7\xa5\xc3\x32\x88\x3c\x8c"
+ "\x6e",
+ .ilen = 17,
+ .result = "\xda\xcc\x14\x27\x4e\x74\xd1\x30"
+ "\x76\x18\x37\x0f\x6a\xc4\xd1\x1a",
+ .rlen = 16,
+ },
+};
+
+/*
+ * MORUS-1280 test vectors - generated via reference implementation from
+ * SUPERCOP (https://bench.cr.yp.to/supercop.html):
+ *
+ * https://bench.cr.yp.to/supercop/supercop-20170228.tar.xz
+ * (see crypto_aead/morus1280128v2/ and crypto_aead/morus1280256v2/ )
+ */
+static const struct aead_testvec morus1280_enc_tv_template[] = {
+ {
+ .key = "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00",
+ .klen = 16,
+ .iv = "\x0f\xc9\x8e\x67\x44\x9e\xaa\x86"
+ "\x20\x36\x2c\x24\xfe\xc9\x30\x81",
+ .assoc = "",
+ .alen = 0,
+ .input = "",
+ .ilen = 0,
+ .result = "\x91\x85\x0f\xf5\x52\x9e\xce\xce"
+ "\x65\x99\xc7\xbf\xd3\x76\xe8\x98",
+ .rlen = 16,
+ }, {
+ .key = "\x3c\x24\x39\x9f\x10\x7b\xa8\x1b"
+ "\x80\xda\xb2\x91\xf9\x24\xc2\x06",
+ .klen = 16,
+ .iv = "\x4b\xed\xc8\x07\x54\x1a\x52\xa2"
+ "\xa1\x10\xde\xb5\xf8\xed\xf3\x87",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x69",
+ .ilen = 1,
+ .result = "\x88\xc3\x4c\xf0\x2f\x43\x76\x13"
+ "\x96\xda\x76\x34\x33\x4e\xd5\x39"
+ "\x73",
+ .rlen = 17,
+ }, {
+ .key = "\x79\x49\x73\x3e\x20\xf7\x51\x37"
+ "\x01\xb4\x64\x22\xf3\x48\x85\x0c",
+ .klen = 16,
+ .iv = "\x88\x12\x01\xa6\x64\x96\xfb\xbe"
+ "\x22\xea\x90\x47\xf2\x11\xb5\x8e",
+ .assoc = "",
+ .alen = 0,
+ .input = "\xa6\xa4\x1e\x76\xec\xd4\x50\xcc"
+ "\x62\x58\xe9\x8f\xef\xa4\x17\x91"
+ "\xb4\x96\x9f\x6b\xce\x38\xa5\x46"
+ "\x13\x7d\x64\x93\xd7\x05\xf5",
+ .ilen = 31,
+ .result = "\x3e\x5c\x3b\x58\x3b\x7d\x2a\x22"
+ "\x75\x0b\x24\xa6\x0e\xc3\xde\x52"
+ "\x97\x0b\x64\xd4\xce\x90\x52\xf7"
+ "\xef\xdb\x6a\x38\xd2\xa8\xa1\x0d"
+ "\xe0\x61\x33\x24\xc6\x4d\x51\xbc"
+ "\xa4\x21\x74\xcf\x19\x16\x59",
+ .rlen = 47,
+ }, {
+ .key = "\xb5\x6e\xad\xdd\x30\x72\xfa\x53"
+ "\x82\x8e\x16\xb4\xed\x6d\x47\x12",
+ .klen = 16,
+ .iv = "\xc4\x37\x3b\x45\x74\x11\xa4\xda"
+ "\xa2\xc5\x42\xd8\xec\x36\x78\x94",
+ .assoc = "",
+ .alen = 0,
+ .input = "\xe2\xc9\x58\x15\xfc\x4f\xf8\xe8"
+ "\xe3\x32\x9b\x21\xe9\xc8\xd9\x97"
+ "\xde\x58\xab\xf0\xd3\xd8\x27\x60"
+ "\xd5\xaa\x43\x6b\xb1\x64\x95\xa4",
+ .ilen = 32,
+ .result = "\x30\x82\x9c\x2b\x67\xcb\xf9\x1f"
+ "\xde\x9f\x77\xb2\xda\x92\x61\x5c"
+ "\x09\x0b\x2d\x9a\x26\xaa\x1c\x06"
+ "\xab\x74\xb7\x2b\x95\x5f\x9f\xa1"
+ "\x9a\xff\x50\xa0\xa2\xff\xc5\xad"
+ "\x21\x8e\x84\x5c\x12\x61\xb2\xae",
+ .rlen = 48,
+ }, {
+ .key = "\xf2\x92\xe6\x7d\x40\xee\xa3\x6f"
+ "\x03\x68\xc8\x45\xe7\x91\x0a\x18",
+ .klen = 16,
+ .iv = "\x01\x5c\x75\xe5\x84\x8d\x4d\xf6"
+ "\x23\x9f\xf4\x6a\xe6\x5a\x3b\x9a",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x1f\xee\x92\xb4\x0c\xcb\xa1\x04"
+ "\x64\x0c\x4d\xb2\xe3\xec\x9c\x9d"
+ "\x09\x1a\xb7\x74\xd8\x78\xa9\x79"
+ "\x96\xd8\x22\x43\x8c\xc3\x34\x7b"
+ "\xc4",
+ .ilen = 33,
+ .result = "\x67\x5d\x8e\x45\xc8\x39\xf5\x17"
+ "\xc1\x1d\x2a\xdd\x88\x67\xda\x1f"
+ "\x6d\xe8\x37\x28\x5a\xc1\x5e\x9f"
+ "\xa6\xec\xc6\x92\x05\x4b\xc0\xa3"
+ "\x63\xef\x88\xa4\x9b\x0a\x5c\xed"
+ "\x2b\x6a\xac\x63\x52\xaa\x10\x94"
+ "\xd0",
+ .rlen = 49,
+ }, {
+ .key = "\x2e\xb7\x20\x1c\x50\x6a\x4b\x8b"
+ "\x84\x42\x7a\xd7\xe1\xb5\xcd\x1f",
+ .klen = 16,
+ .iv = "\x3d\x80\xae\x84\x94\x09\xf6\x12"
+ "\xa4\x79\xa6\xfb\xe0\x7f\xfd\xa0",
+ .assoc = "",
+ .alen = 0,
+ .input = "\x5c\x13\xcb\x54\x1c\x47\x4a\x1f"
+ "\xe5\xe6\xff\x44\xdd\x11\x5f\xa3"
+ "\x33\xdd\xc2\xf8\xdd\x18\x2b\x93"
+ "\x57\x05\x01\x1c\x66\x22\xd3\x51"
+ "\xd3\xdf\x18\xc9\x30\x66\xed\xb1"
+ "\x96\x58\xd5\x8c\x64\x8c\x7c\xf5"
+ "\x01\xd0\x74\x5f\x9b\xaa\xf6\xd1"
+ "\xe6\x16\xa2\xac\xde\x47\x40",
+ .ilen = 63,
+ .result = "\x7d\x61\x1a\x35\x20\xcc\x07\x88"
+ "\x03\x98\x87\xcf\xc0\x6e\x4d\x19"
+ "