aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-07-26 16:00:59 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-07-26 16:00:59 -0400
commit44a6b8442190cf213081060b610dae2e822f802b (patch)
tree2280bfe385bef8b6416a6493ea8988a975008165 /crypto
parent945c40c6b007eb4b07374a38ea37b2a34da306b1 (diff)
parenta43478863b16cb0986fd2ec9d1f1b9ebaaec5922 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto updates from Herbert Xu: - Fixed algorithm construction hang when self-test fails. - Added SHA variants to talitos AEAD list. - New driver for Exynos random number generator. - Performance enhancements for arc4. - Added hwrng support to caam. - Added ahash support to caam. - Fixed bad kfree in aesni-intel. - Allow aesni-intel in FIPS mode. - Added atmel driver with support for AES/3DES/SHA. - Bug fixes for mv_cesa. - CRC hardware driver for BF60x family processors. * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (66 commits) crypto: twofish-avx - remove useless instruction crypto: testmgr - add aead cbc aes hmac sha1,256,512 test vectors crypto: talitos - add sha224, sha384 and sha512 to existing AEAD algorithms crypto: talitos - export the talitos_submit function crypto: talitos - move talitos structures to header file crypto: atmel - add new tests to tcrypt crypto: atmel - add Atmel SHA1/SHA256 driver crypto: atmel - add Atmel DES/TDES driver crypto: atmel - add Atmel AES driver ARM: AT91SAM9G45: add crypto peripherals crypto: testmgr - allow aesni-intel and ghash_clmulni-intel in fips mode hwrng: exynos - Add support for Exynos random number generator crypto: aesni-intel - fix wrong kfree pointer crypto: caam - ERA retrieval and printing for SEC device crypto: caam - Using alloc_coherent for caam job rings crypto: algapi - Fix hang on crypto allocation crypto: arc4 - now arc needs blockcipher support crypto: caam - one tasklet per job ring crypto: caam - consolidate memory barriers from job ring en/dequeue crypto: caam - only query h/w in job ring dequeue path ...
Diffstat (limited to 'crypto')
-rw-r--r--crypto/Kconfig67
-rw-r--r--crypto/algapi.c17
-rw-r--r--crypto/algboss.c17
-rw-r--r--crypto/arc4.c115
-rw-r--r--crypto/internal.h1
-rw-r--r--crypto/tcrypt.c86
-rw-r--r--crypto/testmgr.c203
-rw-r--r--crypto/testmgr.h1852
8 files changed, 2269 insertions, 89 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 8e84225c096b..a3238051b03e 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -174,6 +174,16 @@ config CRYPTO_TEST
174 help 174 help
175 Quick & dirty crypto test module. 175 Quick & dirty crypto test module.
176 176
177config CRYPTO_ABLK_HELPER_X86
178 tristate
179 depends on X86
180 select CRYPTO_CRYPTD
181
182config CRYPTO_GLUE_HELPER_X86
183 tristate
184 depends on X86
185 select CRYPTO_ALGAPI
186
177comment "Authenticated Encryption with Associated Data" 187comment "Authenticated Encryption with Associated Data"
178 188
179config CRYPTO_CCM 189config CRYPTO_CCM
@@ -552,6 +562,7 @@ config CRYPTO_AES_NI_INTEL
552 select CRYPTO_AES_X86_64 if 64BIT 562 select CRYPTO_AES_X86_64 if 64BIT
553 select CRYPTO_AES_586 if !64BIT 563 select CRYPTO_AES_586 if !64BIT
554 select CRYPTO_CRYPTD 564 select CRYPTO_CRYPTD
565 select CRYPTO_ABLK_HELPER_X86
555 select CRYPTO_ALGAPI 566 select CRYPTO_ALGAPI
556 help 567 help
557 Use Intel AES-NI instructions for AES algorithm. 568 Use Intel AES-NI instructions for AES algorithm.
@@ -593,7 +604,7 @@ config CRYPTO_ANUBIS
593 604
594config CRYPTO_ARC4 605config CRYPTO_ARC4
595 tristate "ARC4 cipher algorithm" 606 tristate "ARC4 cipher algorithm"
596 select CRYPTO_ALGAPI 607 select CRYPTO_BLKCIPHER
597 help 608 help
598 ARC4 cipher algorithm. 609 ARC4 cipher algorithm.
599 610
@@ -660,6 +671,7 @@ config CRYPTO_CAMELLIA_X86_64
660 depends on X86 && 64BIT 671 depends on X86 && 64BIT
661 depends on CRYPTO 672 depends on CRYPTO
662 select CRYPTO_ALGAPI 673 select CRYPTO_ALGAPI
674 select CRYPTO_GLUE_HELPER_X86
663 select CRYPTO_LRW 675 select CRYPTO_LRW
664 select CRYPTO_XTS 676 select CRYPTO_XTS
665 help 677 help
@@ -786,6 +798,8 @@ config CRYPTO_SERPENT_SSE2_X86_64
786 depends on X86 && 64BIT 798 depends on X86 && 64BIT
787 select CRYPTO_ALGAPI 799 select CRYPTO_ALGAPI
788 select CRYPTO_CRYPTD 800 select CRYPTO_CRYPTD
801 select CRYPTO_ABLK_HELPER_X86
802 select CRYPTO_GLUE_HELPER_X86
789 select CRYPTO_SERPENT 803 select CRYPTO_SERPENT
790 select CRYPTO_LRW 804 select CRYPTO_LRW
791 select CRYPTO_XTS 805 select CRYPTO_XTS
@@ -806,6 +820,8 @@ config CRYPTO_SERPENT_SSE2_586
806 depends on X86 && !64BIT 820 depends on X86 && !64BIT
807 select CRYPTO_ALGAPI 821 select CRYPTO_ALGAPI
808 select CRYPTO_CRYPTD 822 select CRYPTO_CRYPTD
823 select CRYPTO_ABLK_HELPER_X86
824 select CRYPTO_GLUE_HELPER_X86
809 select CRYPTO_SERPENT 825 select CRYPTO_SERPENT
810 select CRYPTO_LRW 826 select CRYPTO_LRW
811 select CRYPTO_XTS 827 select CRYPTO_XTS
@@ -821,6 +837,28 @@ config CRYPTO_SERPENT_SSE2_586
821 See also: 837 See also:
822 <http://www.cl.cam.ac.uk/~rja14/serpent.html> 838 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
823 839
840config CRYPTO_SERPENT_AVX_X86_64
841 tristate "Serpent cipher algorithm (x86_64/AVX)"
842 depends on X86 && 64BIT
843 select CRYPTO_ALGAPI
844 select CRYPTO_CRYPTD
845 select CRYPTO_ABLK_HELPER_X86
846 select CRYPTO_GLUE_HELPER_X86
847 select CRYPTO_SERPENT
848 select CRYPTO_LRW
849 select CRYPTO_XTS
850 help
851 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
852
853 Keys are allowed to be from 0 to 256 bits in length, in steps
854 of 8 bits.
855
856 This module provides the Serpent cipher algorithm that processes
857 eight blocks parallel using the AVX instruction set.
858
859 See also:
860 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
861
824config CRYPTO_TEA 862config CRYPTO_TEA
825 tristate "TEA, XTEA and XETA cipher algorithms" 863 tristate "TEA, XTEA and XETA cipher algorithms"
826 select CRYPTO_ALGAPI 864 select CRYPTO_ALGAPI
@@ -897,6 +935,7 @@ config CRYPTO_TWOFISH_X86_64_3WAY
897 select CRYPTO_ALGAPI 935 select CRYPTO_ALGAPI
898 select CRYPTO_TWOFISH_COMMON 936 select CRYPTO_TWOFISH_COMMON
899 select CRYPTO_TWOFISH_X86_64 937 select CRYPTO_TWOFISH_X86_64
938 select CRYPTO_GLUE_HELPER_X86
900 select CRYPTO_LRW 939 select CRYPTO_LRW
901 select CRYPTO_XTS 940 select CRYPTO_XTS
902 help 941 help
@@ -913,6 +952,32 @@ config CRYPTO_TWOFISH_X86_64_3WAY
913 See also: 952 See also:
914 <http://www.schneier.com/twofish.html> 953 <http://www.schneier.com/twofish.html>
915 954
955config CRYPTO_TWOFISH_AVX_X86_64
956 tristate "Twofish cipher algorithm (x86_64/AVX)"
957 depends on X86 && 64BIT
958 select CRYPTO_ALGAPI
959 select CRYPTO_CRYPTD
960 select CRYPTO_ABLK_HELPER_X86
961 select CRYPTO_GLUE_HELPER_X86
962 select CRYPTO_TWOFISH_COMMON
963 select CRYPTO_TWOFISH_X86_64
964 select CRYPTO_TWOFISH_X86_64_3WAY
965 select CRYPTO_LRW
966 select CRYPTO_XTS
967 help
968 Twofish cipher algorithm (x86_64/AVX).
969
970 Twofish was submitted as an AES (Advanced Encryption Standard)
971 candidate cipher by researchers at CounterPane Systems. It is a
972 16 round block cipher supporting key sizes of 128, 192, and 256
973 bits.
974
975 This module provides the Twofish cipher algorithm that processes
976 eight blocks parallel using the AVX Instruction Set.
977
978 See also:
979 <http://www.schneier.com/twofish.html>
980
916comment "Compression" 981comment "Compression"
917 982
918config CRYPTO_DEFLATE 983config CRYPTO_DEFLATE
diff --git a/crypto/algapi.c b/crypto/algapi.c
index 056571b85445..c3b9bfeeb7ff 100644
--- a/crypto/algapi.c
+++ b/crypto/algapi.c
@@ -24,22 +24,6 @@
24 24
25static LIST_HEAD(crypto_template_list); 25static LIST_HEAD(crypto_template_list);
26 26
27void crypto_larval_error(const char *name, u32 type, u32 mask)
28{
29 struct crypto_alg *alg;
30
31 alg = crypto_alg_lookup(name, type, mask);
32
33 if (alg) {
34 if (crypto_is_larval(alg)) {
35 struct crypto_larval *larval = (void *)alg;
36 complete_all(&larval->completion);
37 }
38 crypto_mod_put(alg);
39 }
40}
41EXPORT_SYMBOL_GPL(crypto_larval_error);
42
43static inline int crypto_set_driver_name(struct crypto_alg *alg) 27static inline int crypto_set_driver_name(struct crypto_alg *alg)
44{ 28{
45 static const char suffix[] = "-generic"; 29 static const char suffix[] = "-generic";
@@ -295,7 +279,6 @@ found:
295 continue; 279 continue;
296 280
297 larval->adult = alg; 281 larval->adult = alg;
298 complete_all(&larval->completion);
299 continue; 282 continue;
300 } 283 }
301 284
diff --git a/crypto/algboss.c b/crypto/algboss.c
index 791d194958fa..769219b29309 100644
--- a/crypto/algboss.c
+++ b/crypto/algboss.c
@@ -11,6 +11,7 @@
11 */ 11 */
12 12
13#include <crypto/internal/aead.h> 13#include <crypto/internal/aead.h>
14#include <linux/completion.h>
14#include <linux/ctype.h> 15#include <linux/ctype.h>
15#include <linux/err.h> 16#include <linux/err.h>
16#include <linux/init.h> 17#include <linux/init.h>
@@ -47,6 +48,8 @@ struct cryptomgr_param {
47 char larval[CRYPTO_MAX_ALG_NAME]; 48 char larval[CRYPTO_MAX_ALG_NAME];
48 char template[CRYPTO_MAX_ALG_NAME]; 49 char template[CRYPTO_MAX_ALG_NAME];
49 50
51 struct completion *completion;
52
50 u32 otype; 53 u32 otype;
51 u32 omask; 54 u32 omask;
52}; 55};
@@ -66,7 +69,7 @@ static int cryptomgr_probe(void *data)
66 69
67 tmpl = crypto_lookup_template(param->template); 70 tmpl = crypto_lookup_template(param->template);
68 if (!tmpl) 71 if (!tmpl)
69 goto err; 72 goto out;
70 73
71 do { 74 do {
72 if (tmpl->create) { 75 if (tmpl->create) {
@@ -83,16 +86,10 @@ static int cryptomgr_probe(void *data)
83 86
84 crypto_tmpl_put(tmpl); 87 crypto_tmpl_put(tmpl);
85 88
86 if (err)
87 goto err;
88
89out: 89out:
90 complete_all(param->completion);
90 kfree(param); 91 kfree(param);
91 module_put_and_exit(0); 92 module_put_and_exit(0);
92
93err:
94 crypto_larval_error(param->larval, param->otype, param->omask);
95 goto out;
96} 93}
97 94
98static int cryptomgr_schedule_probe(struct crypto_larval *larval) 95static int cryptomgr_schedule_probe(struct crypto_larval *larval)
@@ -192,10 +189,14 @@ static int cryptomgr_schedule_probe(struct crypto_larval *larval)
192 189
193 memcpy(param->larval, larval->alg.cra_name, CRYPTO_MAX_ALG_NAME); 190 memcpy(param->larval, larval->alg.cra_name, CRYPTO_MAX_ALG_NAME);
194 191
192 param->completion = &larval->completion;
193
195 thread = kthread_run(cryptomgr_probe, param, "cryptomgr_probe"); 194 thread = kthread_run(cryptomgr_probe, param, "cryptomgr_probe");
196 if (IS_ERR(thread)) 195 if (IS_ERR(thread))
197 goto err_free_param; 196 goto err_free_param;
198 197
198 wait_for_completion_interruptible(&larval->completion);
199
199 return NOTIFY_STOP; 200 return NOTIFY_STOP;
200 201
201err_free_param: 202err_free_param:
diff --git a/crypto/arc4.c b/crypto/arc4.c
index 0d12a96da1d8..5a772c3657d5 100644
--- a/crypto/arc4.c
+++ b/crypto/arc4.c
@@ -11,17 +11,19 @@
11 * (at your option) any later version. 11 * (at your option) any later version.
12 * 12 *
13 */ 13 */
14
14#include <linux/module.h> 15#include <linux/module.h>
15#include <linux/init.h> 16#include <linux/init.h>
16#include <linux/crypto.h> 17#include <linux/crypto.h>
18#include <crypto/algapi.h>
17 19
18#define ARC4_MIN_KEY_SIZE 1 20#define ARC4_MIN_KEY_SIZE 1
19#define ARC4_MAX_KEY_SIZE 256 21#define ARC4_MAX_KEY_SIZE 256
20#define ARC4_BLOCK_SIZE 1 22#define ARC4_BLOCK_SIZE 1
21 23
22struct arc4_ctx { 24struct arc4_ctx {
23 u8 S[256]; 25 u32 S[256];
24 u8 x, y; 26 u32 x, y;
25}; 27};
26 28
27static int arc4_set_key(struct crypto_tfm *tfm, const u8 *in_key, 29static int arc4_set_key(struct crypto_tfm *tfm, const u8 *in_key,
@@ -37,7 +39,7 @@ static int arc4_set_key(struct crypto_tfm *tfm, const u8 *in_key,
37 ctx->S[i] = i; 39 ctx->S[i] = i;
38 40
39 for (i = 0; i < 256; i++) { 41 for (i = 0; i < 256; i++) {
40 u8 a = ctx->S[i]; 42 u32 a = ctx->S[i];
41 j = (j + in_key[k] + a) & 0xff; 43 j = (j + in_key[k] + a) & 0xff;
42 ctx->S[i] = ctx->S[j]; 44 ctx->S[i] = ctx->S[j];
43 ctx->S[j] = a; 45 ctx->S[j] = a;
@@ -48,51 +50,114 @@ static int arc4_set_key(struct crypto_tfm *tfm, const u8 *in_key,
48 return 0; 50 return 0;
49} 51}
50 52
51static void arc4_crypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) 53static void arc4_crypt(struct arc4_ctx *ctx, u8 *out, const u8 *in,
54 unsigned int len)
52{ 55{
53 struct arc4_ctx *ctx = crypto_tfm_ctx(tfm); 56 u32 *const S = ctx->S;
57 u32 x, y, a, b;
58 u32 ty, ta, tb;
59
60 if (len == 0)
61 return;
54 62
55 u8 *const S = ctx->S; 63 x = ctx->x;
56 u8 x = ctx->x; 64 y = ctx->y;
57 u8 y = ctx->y;
58 u8 a, b;
59 65
60 a = S[x]; 66 a = S[x];
61 y = (y + a) & 0xff; 67 y = (y + a) & 0xff;
62 b = S[y]; 68 b = S[y];
63 S[x] = b; 69
64 S[y] = a; 70 do {
65 x = (x + 1) & 0xff; 71 S[y] = a;
66 *out++ = *in ^ S[(a + b) & 0xff]; 72 a = (a + b) & 0xff;
73 S[x] = b;
74 x = (x + 1) & 0xff;
75 ta = S[x];
76 ty = (y + ta) & 0xff;
77 tb = S[ty];
78 *out++ = *in++ ^ S[a];
79 if (--len == 0)
80 break;
81 y = ty;
82 a = ta;
83 b = tb;
84 } while (true);
67 85
68 ctx->x = x; 86 ctx->x = x;
69 ctx->y = y; 87 ctx->y = y;
70} 88}
71 89
72static struct crypto_alg arc4_alg = { 90static void arc4_crypt_one(struct crypto_tfm *tfm, u8 *out, const u8 *in)
91{
92 arc4_crypt(crypto_tfm_ctx(tfm), out, in, 1);
93}
94
95static int ecb_arc4_crypt(struct blkcipher_desc *desc, struct scatterlist *dst,
96 struct scatterlist *src, unsigned int nbytes)
97{
98 struct arc4_ctx *ctx = crypto_blkcipher_ctx(desc->tfm);
99 struct blkcipher_walk walk;
100 int err;
101
102 blkcipher_walk_init(&walk, dst, src, nbytes);
103
104 err = blkcipher_walk_virt(desc, &walk);
105
106 while (walk.nbytes > 0) {
107 u8 *wsrc = walk.src.virt.addr;
108 u8 *wdst = walk.dst.virt.addr;
109
110 arc4_crypt(ctx, wdst, wsrc, walk.nbytes);
111
112 err = blkcipher_walk_done(desc, &walk, 0);
113 }
114
115 return err;
116}
117
118static struct crypto_alg arc4_algs[2] = { {
73 .cra_name = "arc4", 119 .cra_name = "arc4",
74 .cra_flags = CRYPTO_ALG_TYPE_CIPHER, 120 .cra_flags = CRYPTO_ALG_TYPE_CIPHER,
75 .cra_blocksize = ARC4_BLOCK_SIZE, 121 .cra_blocksize = ARC4_BLOCK_SIZE,
76 .cra_ctxsize = sizeof(struct arc4_ctx), 122 .cra_ctxsize = sizeof(struct arc4_ctx),
77 .cra_module = THIS_MODULE, 123 .cra_module = THIS_MODULE,
78 .cra_list = LIST_HEAD_INIT(arc4_alg.cra_list), 124 .cra_u = {
79 .cra_u = { .cipher = { 125 .cipher = {
80 .cia_min_keysize = ARC4_MIN_KEY_SIZE, 126 .cia_min_keysize = ARC4_MIN_KEY_SIZE,
81 .cia_max_keysize = ARC4_MAX_KEY_SIZE, 127 .cia_max_keysize = ARC4_MAX_KEY_SIZE,
82 .cia_setkey = arc4_set_key, 128 .cia_setkey = arc4_set_key,
83 .cia_encrypt = arc4_crypt, 129 .cia_encrypt = arc4_crypt_one,
84 .cia_decrypt = arc4_crypt } } 130 .cia_decrypt = arc4_crypt_one,
85}; 131 },
132 },
133}, {
134 .cra_name = "ecb(arc4)",
135 .cra_priority = 100,
136 .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER,
137 .cra_blocksize = ARC4_BLOCK_SIZE,
138 .cra_ctxsize = sizeof(struct arc4_ctx),
139 .cra_alignmask = 0,
140 .cra_type = &crypto_blkcipher_type,
141 .cra_module = THIS_MODULE,
142 .cra_u = {
143 .blkcipher = {
144 .min_keysize = ARC4_MIN_KEY_SIZE,
145 .max_keysize = ARC4_MAX_KEY_SIZE,
146 .setkey = arc4_set_key,
147 .encrypt = ecb_arc4_crypt,
148 .decrypt = ecb_arc4_crypt,
149 },
150 },
151} };
86 152
87static int __init arc4_init(void) 153static int __init arc4_init(void)
88{ 154{
89 return crypto_register_alg(&arc4_alg); 155 return crypto_register_algs(arc4_algs, ARRAY_SIZE(arc4_algs));
90} 156}
91 157
92
93static void __exit arc4_exit(void) 158static void __exit arc4_exit(void)
94{ 159{
95 crypto_unregister_alg(&arc4_alg); 160 crypto_unregister_algs(arc4_algs, ARRAY_SIZE(arc4_algs));
96} 161}
97 162
98module_init(arc4_init); 163module_init(arc4_init);
diff --git a/crypto/internal.h b/crypto/internal.h
index b865ca1a8613..9ebedae3fb54 100644
--- a/crypto/internal.h
+++ b/crypto/internal.h
@@ -83,7 +83,6 @@ void crypto_exit_compress_ops(struct crypto_tfm *tfm);
83struct crypto_larval *crypto_larval_alloc(const char *name, u32 type, u32 mask); 83struct crypto_larval *crypto_larval_alloc(const char *name, u32 type, u32 mask);
84void crypto_larval_kill(struct crypto_alg *alg); 84void crypto_larval_kill(struct crypto_alg *alg);
85struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, u32 mask); 85struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, u32 mask);
86void crypto_larval_error(const char *name, u32 type, u32 mask);
87void crypto_alg_tested(const char *name, int err); 86void crypto_alg_tested(const char *name, int err);
88 87
89void crypto_remove_spawns(struct crypto_alg *alg, struct list_head *list, 88void crypto_remove_spawns(struct crypto_alg *alg, struct list_head *list,
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index 8f147bff0980..5cf2ccb1540c 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -809,7 +809,7 @@ static void test_acipher_speed(const char *algo, int enc, unsigned int sec,
809 struct cipher_speed_template *template, 809 struct cipher_speed_template *template,
810 unsigned int tcount, u8 *keysize) 810 unsigned int tcount, u8 *keysize)
811{ 811{
812 unsigned int ret, i, j, iv_len; 812 unsigned int ret, i, j, k, iv_len;
813 struct tcrypt_result tresult; 813 struct tcrypt_result tresult;
814 const char *key; 814 const char *key;
815 char iv[128]; 815 char iv[128];
@@ -883,11 +883,23 @@ static void test_acipher_speed(const char *algo, int enc, unsigned int sec,
883 } 883 }
884 884
885 sg_init_table(sg, TVMEMSIZE); 885 sg_init_table(sg, TVMEMSIZE);
886 sg_set_buf(sg, tvmem[0] + *keysize, 886
887 k = *keysize + *b_size;
888 if (k > PAGE_SIZE) {
889 sg_set_buf(sg, tvmem[0] + *keysize,
887 PAGE_SIZE - *keysize); 890 PAGE_SIZE - *keysize);
888 for (j = 1; j < TVMEMSIZE; j++) { 891 k -= PAGE_SIZE;
889 sg_set_buf(sg + j, tvmem[j], PAGE_SIZE); 892 j = 1;
890 memset(tvmem[j], 0xff, PAGE_SIZE); 893 while (k > PAGE_SIZE) {
894 sg_set_buf(sg + j, tvmem[j], PAGE_SIZE);
895 memset(tvmem[j], 0xff, PAGE_SIZE);
896 j++;
897 k -= PAGE_SIZE;
898 }
899 sg_set_buf(sg + j, tvmem[j], k);
900 memset(tvmem[j], 0xff, k);
901 } else {
902 sg_set_buf(sg, tvmem[0] + *keysize, *b_size);
891 } 903 }
892 904
893 iv_len = crypto_ablkcipher_ivsize(tfm); 905 iv_len = crypto_ablkcipher_ivsize(tfm);
@@ -1192,6 +1204,9 @@ static int do_test(int m)
1192 case 109: 1204 case 109:
1193 ret += tcrypt_test("vmac(aes)"); 1205 ret += tcrypt_test("vmac(aes)");
1194 break; 1206 break;
1207 case 110:
1208 ret += tcrypt_test("hmac(crc32)");
1209 break;
1195 1210
1196 case 150: 1211 case 150:
1197 ret += tcrypt_test("ansi_cprng"); 1212 ret += tcrypt_test("ansi_cprng");
@@ -1339,6 +1354,11 @@ static int do_test(int m)
1339 speed_template_32_64); 1354 speed_template_32_64);
1340 break; 1355 break;
1341 1356
1357 case 208:
1358 test_cipher_speed("ecb(arc4)", ENCRYPT, sec, NULL, 0,
1359 speed_template_8);
1360 break;
1361
1342 case 300: 1362 case 300:
1343 /* fall through */ 1363 /* fall through */
1344 1364
@@ -1512,6 +1532,14 @@ static int do_test(int m)
1512 speed_template_16_24_32); 1532 speed_template_16_24_32);
1513 test_acipher_speed("ctr(aes)", DECRYPT, sec, NULL, 0, 1533 test_acipher_speed("ctr(aes)", DECRYPT, sec, NULL, 0,
1514 speed_template_16_24_32); 1534 speed_template_16_24_32);
1535 test_acipher_speed("cfb(aes)", ENCRYPT, sec, NULL, 0,
1536 speed_template_16_24_32);
1537 test_acipher_speed("cfb(aes)", DECRYPT, sec, NULL, 0,
1538 speed_template_16_24_32);
1539 test_acipher_speed("ofb(aes)", ENCRYPT, sec, NULL, 0,
1540 speed_template_16_24_32);
1541 test_acipher_speed("ofb(aes)", DECRYPT, sec, NULL, 0,
1542 speed_template_16_24_32);
1515 break; 1543 break;
1516 1544
1517 case 501: 1545 case 501:
@@ -1527,6 +1555,18 @@ static int do_test(int m)
1527 test_acipher_speed("cbc(des3_ede)", DECRYPT, sec, 1555 test_acipher_speed("cbc(des3_ede)", DECRYPT, sec,
1528 des3_speed_template, DES3_SPEED_VECTORS, 1556 des3_speed_template, DES3_SPEED_VECTORS,
1529 speed_template_24); 1557 speed_template_24);
1558 test_acipher_speed("cfb(des3_ede)", ENCRYPT, sec,
1559 des3_speed_template, DES3_SPEED_VECTORS,
1560 speed_template_24);
1561 test_acipher_speed("cfb(des3_ede)", DECRYPT, sec,
1562 des3_speed_template, DES3_SPEED_VECTORS,
1563 speed_template_24);
1564 test_acipher_speed("ofb(des3_ede)", ENCRYPT, sec,
1565 des3_speed_template, DES3_SPEED_VECTORS,
1566 speed_template_24);
1567 test_acipher_speed("ofb(des3_ede)", DECRYPT, sec,
1568 des3_speed_template, DES3_SPEED_VECTORS,
1569 speed_template_24);
1530 break; 1570 break;
1531 1571
1532 case 502: 1572 case 502:
@@ -1538,6 +1578,14 @@ static int do_test(int m)
1538 speed_template_8); 1578 speed_template_8);
1539 test_acipher_speed("cbc(des)", DECRYPT, sec, NULL, 0, 1579 test_acipher_speed("cbc(des)", DECRYPT, sec, NULL, 0,
1540 speed_template_8); 1580 speed_template_8);
1581 test_acipher_speed("cfb(des)", ENCRYPT, sec, NULL, 0,
1582 speed_template_8);
1583 test_acipher_speed("cfb(des)", DECRYPT, sec, NULL, 0,
1584 speed_template_8);
1585 test_acipher_speed("ofb(des)", ENCRYPT, sec, NULL, 0,
1586 speed_template_8);
1587 test_acipher_speed("ofb(des)", DECRYPT, sec, NULL, 0,
1588 speed_template_8);
1541 break; 1589 break;
1542 1590
1543 case 503: 1591 case 503:
@@ -1563,6 +1611,34 @@ static int do_test(int m)
1563 speed_template_32_64); 1611 speed_template_32_64);
1564 break; 1612 break;
1565 1613
1614 case 504:
1615 test_acipher_speed("ecb(twofish)", ENCRYPT, sec, NULL, 0,
1616 speed_template_16_24_32);
1617 test_acipher_speed("ecb(twofish)", DECRYPT, sec, NULL, 0,
1618 speed_template_16_24_32);
1619 test_acipher_speed("cbc(twofish)", ENCRYPT, sec, NULL, 0,
1620 speed_template_16_24_32);
1621 test_acipher_speed("cbc(twofish)", DECRYPT, sec, NULL, 0,
1622 speed_template_16_24_32);
1623 test_acipher_speed("ctr(twofish)", ENCRYPT, sec, NULL, 0,
1624 speed_template_16_24_32);
1625 test_acipher_speed("ctr(twofish)", DECRYPT, sec, NULL, 0,
1626 speed_template_16_24_32);
1627 test_acipher_speed("lrw(twofish)", ENCRYPT, sec, NULL, 0,
1628 speed_template_32_40_48);
1629 test_acipher_speed("lrw(twofish)", DECRYPT, sec, NULL, 0,
1630 speed_template_32_40_48);
1631 test_acipher_speed("xts(twofish)", ENCRYPT, sec, NULL, 0,
1632 speed_template_32_48_64);
1633 test_acipher_speed("xts(twofish)", DECRYPT, sec, NULL, 0,
1634 speed_template_32_48_64);
1635 break;
1636
1637 case 505:
1638 test_acipher_speed("ecb(arc4)", ENCRYPT, sec, NULL, 0,
1639 speed_template_8);
1640 break;
1641
1566 case 1000: 1642 case 1000:
1567 test_available(); 1643 test_available();
1568 break; 1644 break;
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 5674878ff6c1..a2ca7431760a 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -1534,6 +1534,21 @@ static int alg_test_null(const struct alg_test_desc *desc,
1534/* Please keep this list sorted by algorithm name. */ 1534/* Please keep this list sorted by algorithm name. */
1535static const struct alg_test_desc alg_test_descs[] = { 1535static const struct alg_test_desc alg_test_descs[] = {
1536 { 1536 {
1537 .alg = "__cbc-serpent-avx",
1538 .test = alg_test_null,
1539 .suite = {
1540 .cipher = {
1541 .enc = {
1542 .vecs = NULL,
1543 .count = 0
1544 },
1545 .dec = {
1546 .vecs = NULL,
1547 .count = 0
1548 }
1549 }
1550 }
1551 }, {
1537 .alg = "__cbc-serpent-sse2", 1552 .alg = "__cbc-serpent-sse2",
1538 .test = alg_test_null, 1553 .test = alg_test_null,
1539 .suite = { 1554 .suite = {
@@ -1549,8 +1564,39 @@ static const struct alg_test_desc alg_test_descs[] = {
1549 } 1564 }
1550 } 1565 }
1551 }, { 1566 }, {
1567 .alg = "__cbc-twofish-avx",
1568 .test = alg_test_null,
1569 .suite = {
1570 .cipher = {
1571 .enc = {
1572 .vecs = NULL,
1573 .count = 0
1574 },
1575 .dec = {
1576 .vecs = NULL,
1577 .count = 0
1578 }
1579 }
1580 }
1581 }, {
1552 .alg = "__driver-cbc-aes-aesni", 1582 .alg = "__driver-cbc-aes-aesni",
1553 .test = alg_test_null, 1583 .test = alg_test_null,
1584 .fips_allowed = 1,
1585 .suite = {
1586 .cipher = {
1587 .enc = {
1588 .vecs = NULL,
1589 .count = 0
1590 },
1591 .dec = {
1592 .vecs = NULL,
1593 .count = 0
1594 }
1595 }
1596 }
1597 }, {
1598 .alg = "__driver-cbc-serpent-avx",
1599 .test = alg_test_null,
1554 .suite = { 1600 .suite = {
1555 .cipher = { 1601 .cipher = {
1556 .enc = { 1602 .enc = {
@@ -1579,8 +1625,39 @@ static const struct alg_test_desc alg_test_descs[] = {
1579 } 1625 }
1580 } 1626 }
1581 }, { 1627 }, {
1628 .alg = "__driver-cbc-twofish-avx",
1629 .test = alg_test_null,
1630 .suite = {
1631 .cipher = {
1632 .enc = {
1633 .vecs = NULL,
1634 .count = 0
1635 },
1636 .dec = {
1637 .vecs = NULL,
1638 .count = 0
1639 }
1640 }
1641 }
1642 }, {
1582 .alg = "__driver-ecb-aes-aesni", 1643 .alg = "__driver-ecb-aes-aesni",
1583 .test = alg_test_null, 1644 .test = alg_test_null,
1645 .fips_allowed = 1,
1646 .suite = {
1647 .cipher = {
1648 .enc = {
1649 .vecs = NULL,
1650 .count = 0
1651 },
1652 .dec = {
1653 .vecs = NULL,
1654 .count = 0
1655 }
1656 }
1657 }
1658 }, {
1659 .alg = "__driver-ecb-serpent-avx",
1660 .test = alg_test_null,
1584 .suite = { 1661 .suite = {
1585 .cipher = { 1662 .cipher = {
1586 .enc = { 1663 .enc = {
@@ -1609,8 +1686,24 @@ static const struct alg_test_desc alg_test_descs[] = {
1609 } 1686 }
1610 } 1687 }
1611 }, { 1688 }, {
1689 .alg = "__driver-ecb-twofish-avx",
1690 .test = alg_test_null,
1691 .suite = {
1692 .cipher = {
1693 .enc = {
1694 .vecs = NULL,
1695 .count = 0
1696 },
1697 .dec = {
1698 .vecs = NULL,
1699 .count = 0
1700 }
1701 }
1702 }
1703 }, {
1612 .alg = "__ghash-pclmulqdqni", 1704 .alg = "__ghash-pclmulqdqni",
1613 .test = alg_test_null, 1705 .test = alg_test_null,
1706 .fips_allowed = 1,
1614 .suite = { 1707 .suite = {
1615 .hash = { 1708 .hash = {
1616 .vecs = NULL, 1709 .vecs = NULL,
@@ -1628,6 +1721,42 @@ static const struct alg_test_desc alg_test_descs[] = {
1628 } 1721 }
1629 } 1722 }
1630 }, { 1723 }, {
1724 .alg = "authenc(hmac(sha1),cbc(aes))",
1725 .test = alg_test_aead,
1726 .fips_allowed = 1,
1727 .suite = {
1728 .aead = {
1729 .enc = {
1730 .vecs = hmac_sha1_aes_cbc_enc_tv_template,
1731 .count = HMAC_SHA1_AES_CBC_ENC_TEST_VECTORS
1732 }
1733 }
1734 }
1735 }, {
1736 .alg = "authenc(hmac(sha256),cbc(aes))",
1737 .test = alg_test_aead,
1738 .fips_allowed = 1,
1739 .suite = {
1740 .aead = {
1741 .enc = {
1742 .vecs = hmac_sha256_aes_cbc_enc_tv_template,
1743 .count = HMAC_SHA256_AES_CBC_ENC_TEST_VECTORS
1744 }
1745 }
1746 }
1747 }, {
1748 .alg = "authenc(hmac(sha512),cbc(aes))",
1749 .test = alg_test_aead,
1750 .fips_allowed = 1,
1751 .suite = {
1752 .aead = {
1753 .enc = {
1754 .vecs = hmac_sha512_aes_cbc_enc_tv_template,
1755 .count = HMAC_SHA512_AES_CBC_ENC_TEST_VECTORS
1756 }
1757 }
1758 }
1759 }, {
1631 .alg = "cbc(aes)", 1760 .alg = "cbc(aes)",
1632 .test = alg_test_skcipher, 1761 .test = alg_test_skcipher,
1633 .fips_allowed = 1, 1762 .fips_allowed = 1,
@@ -1776,8 +1905,40 @@ static const struct alg_test_desc alg_test_descs[] = {
1776 } 1905 }
1777 } 1906 }
1778 }, { 1907 }, {
1908 .alg = "cryptd(__driver-cbc-aes-aesni)",
1909 .test = alg_test_null,
1910 .fips_allowed = 1,
1911 .suite = {
1912 .cipher = {
1913 .enc = {
1914 .vecs = NULL,
1915 .count = 0
1916 },
1917 .dec = {
1918 .vecs = NULL,
1919 .count = 0
1920 }
1921 }
1922 }
1923 }, {
1779 .alg = "cryptd(__driver-ecb-aes-aesni)", 1924 .alg = "cryptd(__driver-ecb-aes-aesni)",
1780 .test = alg_test_null, 1925 .test = alg_test_null,
1926 .fips_allowed = 1,
1927 .suite = {
1928 .cipher = {
1929 .enc = {
1930 .vecs = NULL,
1931 .count = 0
1932 },
1933 .dec = {
1934 .vecs = NULL,
1935 .count = 0
1936 }
1937 }
1938 }
1939 }, {
1940 .alg = "cryptd(__driver-ecb-serpent-avx)",
1941 .test = alg_test_null,
1781 .suite = { 1942 .suite = {
1782 .cipher = { 1943 .cipher = {
1783 .enc = { 1944 .enc = {
@@ -1806,8 +1967,40 @@ static const struct alg_test_desc alg_test_descs[] = {
1806 } 1967 }
1807 } 1968 }
1808 }, { 1969 }, {
1970 .alg = "cryptd(__driver-ecb-twofish-avx)",
1971 .test = alg_test_null,
1972 .suite = {
1973 .cipher = {
1974 .enc = {
1975 .vecs = NULL,
1976 .count = 0
1977 },
1978 .dec = {
1979 .vecs = NULL,
1980 .count = 0
1981 }
1982 }
1983 }
1984 }, {
1985 .alg = "cryptd(__driver-gcm-aes-aesni)",
1986 .test = alg_test_null,
1987 .fips_allowed = 1,
1988 .suite = {
1989 .cipher = {
1990 .enc = {
1991 .vecs = NULL,
1992 .count = 0
1993 },
1994 .dec = {
1995 .vecs = NULL,
1996 .count = 0
1997 }
1998 }
1999 }
2000 }, {
1809 .alg = "cryptd(__ghash-pclmulqdqni)", 2001 .alg = "cryptd(__ghash-pclmulqdqni)",
1810 .test = alg_test_null, 2002 .test = alg_test_null,
2003 .fips_allowed = 1,
1811 .suite = { 2004 .suite = {
1812 .hash = { 2005 .hash = {
1813 .vecs = NULL, 2006 .vecs = NULL,
@@ -1923,6 +2116,7 @@ static const struct alg_test_desc alg_test_descs[] = {
1923 }, { 2116 }, {
1924 .alg = "ecb(__aes-aesni)", 2117 .alg = "ecb(__aes-aesni)",
1925 .test = alg_test_null, 2118 .test = alg_test_null,
2119 .fips_allowed = 1,
1926 .suite = { 2120 .suite = {
1927 .cipher = { 2121 .cipher = {
1928 .enc = { 2122 .enc = {
@@ -2220,6 +2414,15 @@ static const struct alg_test_desc alg_test_descs[] = {
2220 } 2414 }
2221 } 2415 }
2222 }, { 2416 }, {
2417 .alg = "hmac(crc32)",
2418 .test = alg_test_hash,
2419 .suite = {
2420 .hash = {
2421 .vecs = bfin_crc_tv_template,
2422 .count = BFIN_CRC_TEST_VECTORS
2423 }
2424 }
2425 }, {
2223 .alg = "hmac(md5)", 2426 .alg = "hmac(md5)",
2224 .test = alg_test_hash, 2427 .test = alg_test_hash,
2225 .suite = { 2428 .suite = {
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 36e5a8ee0e1e..f8179e0344ed 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -2765,8 +2765,62 @@ static struct cipher_testvec tf_enc_tv_template[] = {
2765 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" 2765 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
2766 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" 2766 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
2767 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" 2767 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
2768 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C", 2768 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
2769 .ilen = 64, 2769 "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
2770 "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
2771 "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
2772 "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
2773 "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
2774 "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
2775 "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
2776 "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
2777 "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
2778 "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
2779 "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
2780 "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
2781 "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
2782 "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
2783 "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
2784 "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
2785 "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
2786 "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
2787 "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
2788 "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
2789 "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
2790 "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
2791 "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
2792 "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
2793 "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
2794 "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
2795 "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
2796 "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
2797 "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
2798 "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
2799 "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
2800 "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
2801 "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
2802 "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
2803 "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
2804 "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
2805 "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
2806 "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
2807 "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
2808 "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
2809 "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
2810 "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
2811 "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
2812 "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
2813 "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
2814 "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
2815 "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
2816 "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
2817 "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
2818 "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
2819 "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
2820 "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
2821 "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
2822 "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
2823 .ilen = 496,
2770 .result = "\x88\xCB\x1E\xC2\xAF\x8A\x97\xFF" 2824 .result = "\x88\xCB\x1E\xC2\xAF\x8A\x97\xFF"
2771 "\xF6\x90\x46\x9C\x4A\x0F\x08\xDC" 2825 "\xF6\x90\x46\x9C\x4A\x0F\x08\xDC"
2772 "\xDE\xAB\xAD\xFA\xFC\xA8\xC2\x3D" 2826 "\xDE\xAB\xAD\xFA\xFC\xA8\xC2\x3D"
@@ -2774,8 +2828,62 @@ static struct cipher_testvec tf_enc_tv_template[] = {
2774 "\x34\x9E\xB6\x08\xB2\xDD\xA8\xF5" 2828 "\x34\x9E\xB6\x08\xB2\xDD\xA8\xF5"
2775 "\xDF\xFA\xC7\xE8\x09\x50\x76\x08" 2829 "\xDF\xFA\xC7\xE8\x09\x50\x76\x08"
2776 "\xA2\xB6\x6A\x59\xC0\x2B\x6D\x05" 2830 "\xA2\xB6\x6A\x59\xC0\x2B\x6D\x05"
2777 "\x89\xF6\x82\xF0\xD3\xDB\x06\x02", 2831 "\x89\xF6\x82\xF0\xD3\xDB\x06\x02"
2778 .rlen = 64, 2832 "\xB5\x11\x5C\x5E\x79\x1A\xAC\x43"
2833 "\x5C\xC0\x30\x4B\x6B\x16\xA1\x40"
2834 "\x80\x27\x88\xBA\x2C\x74\x42\xE0"
2835 "\x1B\xA5\x85\x08\xB9\xE6\x22\x7A"
2836 "\x36\x3B\x0D\x9F\xA0\x22\x6C\x2A"
2837 "\x91\x75\x47\xBC\x67\x21\x4E\xF9"
2838 "\xEA\xFF\xD9\xD5\xC0\xFC\x9E\x2C"
2839 "\x3E\xAD\xC6\x61\x0E\x93\x7A\x22"
2840 "\x09\xC8\x8D\xC1\x8E\xB4\x8B\x5C"
2841 "\xC6\x24\x42\xB8\x23\x66\x80\xA9"
2842 "\x32\x0B\x7A\x29\xBF\xB3\x0B\x63"
2843 "\x43\x27\x13\xA9\xBE\xEB\xBD\xF3"
2844 "\x33\x62\x70\xE2\x1B\x86\x7A\xA1"
2845 "\x51\x4A\x16\xFE\x29\x63\x7E\xD0"
2846 "\x7A\xA4\x6E\x2C\xF8\xC1\xDB\xE8"
2847 "\xCB\x4D\xD2\x8C\x04\x14\xB4\x66"
2848 "\x41\xB7\x3A\x96\x16\x7C\x1D\x5B"
2849 "\xB6\x41\x42\x64\x43\xEE\x6E\x7C"
2850 "\x8B\xAF\x01\x9C\xA4\x6E\x75\x8F"
2851 "\xDE\x10\x9F\xA6\xE7\xD6\x44\x97"
2852 "\x66\xA3\x96\x0F\x1C\x25\x60\xF5"
2853 "\x3C\x2E\x32\x69\x0E\x82\xFF\x27"
2854 "\x0F\xB5\x06\xDA\xD8\x31\x15\x6C"
2855 "\xDF\x18\x6C\x87\xF5\x3B\x11\x9A"
2856 "\x1B\x42\x1F\x5B\x29\x19\x96\x13"
2857 "\x68\x2E\x5E\x08\x1C\x8F\x32\x4B"
2858 "\x81\x77\x6D\xF4\xA0\x01\x42\xEC"
2859 "\xDD\x5B\xFD\x3A\x8E\x6A\x14\xFB"
2860 "\x83\x54\xDF\x0F\x86\xB7\xEA\x40"
2861 "\x46\x39\xF7\x2A\x89\x8D\x4E\x96"
2862 "\x5F\x5F\x6D\x76\xC6\x13\x9D\x3D"
2863 "\x1D\x5F\x0C\x7D\xE2\xBC\xC2\x16"
2864 "\x16\xBE\x89\x3E\xB0\x61\xA2\x5D"
2865 "\xAF\xD1\x40\x5F\x1A\xB8\x26\x41"
2866 "\xC6\xBD\x36\xEF\xED\x29\x50\x6D"
2867 "\x10\xEF\x26\xE8\xA8\x93\x11\x3F"
2868 "\x2D\x1F\x88\x20\x77\x45\xF5\x66"
2869 "\x08\xB9\xF1\xEF\xB1\x93\xA8\x81"
2870 "\x65\xC5\xCD\x3E\x8C\x06\x60\x2C"
2871 "\xB2\x10\x7A\xCA\x05\x25\x59\xDB"
2872 "\xC7\x28\xF5\x20\x35\x52\x9E\x62"
2873 "\xF8\x88\x24\x1C\x4D\x84\x12\x39"
2874 "\x39\xE4\x2E\xF4\xD4\x9D\x2B\xBC"
2875 "\x87\x66\xE6\xC0\x6B\x31\x9A\x66"
2876 "\x03\xDC\x95\xD8\x6B\xD0\x30\x8F"
2877 "\xDF\x8F\x8D\xFA\xEC\x1F\x08\xBD"
2878 "\xA3\x63\xE2\x71\x4F\x03\x94\x87"
2879 "\x50\xDF\x15\x1F\xED\x3A\xA3\x7F"
2880 "\x1F\x2A\xB5\xA1\x69\xAC\x4B\x0D"
2881 "\x84\x9B\x2A\xE9\x55\xDD\x46\x91"
2882 "\x15\x33\xF3\x2B\x9B\x46\x97\x00"
2883 "\xF0\x29\xD8\x59\x5D\x33\x37\xF9"
2884 "\x58\x33\x9B\x78\xC7\x58\x48\x6B"
2885 "\x2C\x75\x64\xC4\xCA\xC1\x7E\xD5",
2886 .rlen = 496,
2779 }, 2887 },
2780}; 2888};
2781 2889
@@ -2822,8 +2930,62 @@ static struct cipher_testvec tf_dec_tv_template[] = {
2822 "\x34\x9E\xB6\x08\xB2\xDD\xA8\xF5" 2930 "\x34\x9E\xB6\x08\xB2\xDD\xA8\xF5"
2823 "\xDF\xFA\xC7\xE8\x09\x50\x76\x08" 2931 "\xDF\xFA\xC7\xE8\x09\x50\x76\x08"
2824 "\xA2\xB6\x6A\x59\xC0\x2B\x6D\x05" 2932 "\xA2\xB6\x6A\x59\xC0\x2B\x6D\x05"
2825 "\x89\xF6\x82\xF0\xD3\xDB\x06\x02", 2933 "\x89\xF6\x82\xF0\xD3\xDB\x06\x02"
2826 .ilen = 64, 2934 "\xB5\x11\x5C\x5E\x79\x1A\xAC\x43"
2935 "\x5C\xC0\x30\x4B\x6B\x16\xA1\x40"
2936 "\x80\x27\x88\xBA\x2C\x74\x42\xE0"
2937 "\x1B\xA5\x85\x08\xB9\xE6\x22\x7A"
2938 "\x36\x3B\x0D\x9F\xA0\x22\x6C\x2A"
2939 "\x91\x75\x47\xBC\x67\x21\x4E\xF9"
2940 "\xEA\xFF\xD9\xD5\xC0\xFC\x9E\x2C"
2941 "\x3E\xAD\xC6\x61\x0E\x93\x7A\x22"
2942 "\x09\xC8\x8D\xC1\x8E\xB4\x8B\x5C"
2943 "\xC6\x24\x42\xB8\x23\x66\x80\xA9"
2944 "\x32\x0B\x7A\x29\xBF\xB3\x0B\x63"
2945 "\x43\x27\x13\xA9\xBE\xEB\xBD\xF3"
2946 "\x33\x62\x70\xE2\x1B\x86\x7A\xA1"
2947 "\x51\x4A\x16\xFE\x29\x63\x7E\xD0"
2948 "\x7A\xA4\x6E\x2C\xF8\xC1\xDB\xE8"
2949 "\xCB\x4D\xD2\x8C\x04\x14\xB4\x66"
2950 "\x41\xB7\x3A\x96\x16\x7C\x1D\x5B"
2951 "\xB6\x41\x42\x64\x43\xEE\x6E\x7C"
2952 "\x8B\xAF\x01\x9C\xA4\x6E\x75\x8F"
2953 "\xDE\x10\x9F\xA6\xE7\xD6\x44\x97"
2954 "\x66\xA3\x96\x0F\x1C\x25\x60\xF5"
2955 "\x3C\x2E\x32\x69\x0E\x82\xFF\x27"
2956 "\x0F\xB5\x06\xDA\xD8\x31\x15\x6C"
2957 "\xDF\x18\x6C\x87\xF5\x3B\x11\x9A"
2958 "\x1B\x42\x1F\x5B\x29\x19\x96\x13"
2959 "\x68\x2E\x5E\x08\x1C\x8F\x32\x4B"
2960 "\x81\x77\x6D\xF4\xA0\x01\x42\xEC"
2961 "\xDD\x5B\xFD\x3A\x8E\x6A\x14\xFB"
2962 "\x83\x54\xDF\x0F\x86\xB7\xEA\x40"
2963 "\x46\x39\xF7\x2A\x89\x8D\x4E\x96"
2964 "\x5F\x5F\x6D\x76\xC6\x13\x9D\x3D"
2965 "\x1D\x5F\x0C\x7D\xE2\xBC\xC2\x16"
2966 "\x16\xBE\x89\x3E\xB0\x61\xA2\x5D"
2967 "\xAF\xD1\x40\x5F\x1A\xB8\x26\x41"
2968 "\xC6\xBD\x36\xEF\xED\x29\x50\x6D"
2969 "\x10\xEF\x26\xE8\xA8\x93\x11\x3F"
2970 "\x2D\x1F\x88\x20\x77\x45\xF5\x66"
2971 "\x08\xB9\xF1\xEF\xB1\x93\xA8\x81"
2972 "\x65\xC5\xCD\x3E\x8C\x06\x60\x2C"
2973 "\xB2\x10\x7A\xCA\x05\x25\x59\xDB"
2974 "\xC7\x28\xF5\x20\x35\x52\x9E\x62"
2975 "\xF8\x88\x24\x1C\x4D\x84\x12\x39"
2976 "\x39\xE4\x2E\xF4\xD4\x9D\x2B\xBC"
2977 "\x87\x66\xE6\xC0\x6B\x31\x9A\x66"
2978 "\x03\xDC\x95\xD8\x6B\xD0\x30\x8F"
2979 "\xDF\x8F\x8D\xFA\xEC\x1F\x08\xBD"
2980 "\xA3\x63\xE2\x71\x4F\x03\x94\x87"
2981 "\x50\xDF\x15\x1F\xED\x3A\xA3\x7F"
2982 "\x1F\x2A\xB5\xA1\x69\xAC\x4B\x0D"
2983 "\x84\x9B\x2A\xE9\x55\xDD\x46\x91"
2984 "\x15\x33\xF3\x2B\x9B\x46\x97\x00"
2985 "\xF0\x29\xD8\x59\x5D\x33\x37\xF9"
2986 "\x58\x33\x9B\x78\xC7\x58\x48\x6B"
2987 "\x2C\x75\x64\xC4\xCA\xC1\x7E\xD5",
2988 .ilen = 496,
2827 .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" 2989 .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
2828 "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" 2990 "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
2829 "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" 2991 "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
@@ -2831,8 +2993,62 @@ static struct cipher_testvec tf_dec_tv_template[] = {
2831 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" 2993 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
2832 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" 2994 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
2833 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" 2995 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
2834 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C", 2996 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
2835 .rlen = 64, 2997 "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
2998 "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
2999 "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
3000 "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
3001 "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
3002 "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
3003 "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
3004 "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
3005 "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
3006 "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
3007 "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
3008 "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
3009 "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
3010 "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
3011 "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
3012 "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
3013 "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
3014 "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
3015 "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
3016 "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
3017 "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
3018 "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
3019 "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
3020 "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
3021 "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
3022 "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
3023 "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
3024 "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
3025 "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
3026 "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
3027 "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
3028 "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
3029 "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
3030 "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
3031 "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
3032 "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
3033 "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
3034 "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
3035 "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
3036 "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
3037 "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
3038 "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
3039 "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
3040 "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
3041 "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
3042 "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
3043 "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
3044 "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
3045 "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
3046 "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
3047 "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
3048 "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
3049 "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
3050 "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
3051 .rlen = 496,
2836 }, 3052 },
2837}; 3053};
2838 3054
@@ -2894,8 +3110,62 @@ static struct cipher_testvec tf_cbc_enc_tv_template[] = {
2894 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" 3110 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
2895 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" 3111 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
2896 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" 3112 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
2897 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C", 3113 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
2898 .ilen = 64, 3114 "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
3115 "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
3116 "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
3117 "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
3118 "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
3119 "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
3120 "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
3121 "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
3122 "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
3123 "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
3124 "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
3125 "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
3126 "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
3127 "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
3128 "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
3129 "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
3130 "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
3131 "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
3132 "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
3133 "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
3134 "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
3135 "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
3136 "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
3137 "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
3138 "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
3139 "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
3140 "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
3141 "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
3142 "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
3143 "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
3144 "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
3145 "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
3146 "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
3147 "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
3148 "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
3149 "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
3150 "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
3151 "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
3152 "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
3153 "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
3154 "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
3155 "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
3156 "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
3157 "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
3158 "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
3159 "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
3160 "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
3161 "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
3162 "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
3163 "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
3164 "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
3165 "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
3166 "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
3167 "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
3168 .ilen = 496,
2899 .result = "\xC8\xFF\xF2\x53\xA6\x27\x09\xD1" 3169 .result = "\xC8\xFF\xF2\x53\xA6\x27\x09\xD1"
2900 "\x33\x38\xC2\xC0\x0C\x14\x7E\xB5" 3170 "\x33\x38\xC2\xC0\x0C\x14\x7E\xB5"
2901 "\x26\x1B\x05\x0C\x05\x12\x3F\xC0" 3171 "\x26\x1B\x05\x0C\x05\x12\x3F\xC0"
@@ -2903,8 +3173,62 @@ static struct cipher_testvec tf_cbc_enc_tv_template[] = {
2903 "\x3D\x32\xDF\xDA\x56\x00\x6E\xEE" 3173 "\x3D\x32\xDF\xDA\x56\x00\x6E\xEE"
2904 "\x5B\x2A\x72\x9D\xC2\x4D\x19\xBC" 3174 "\x5B\x2A\x72\x9D\xC2\x4D\x19\xBC"
2905 "\x8C\x53\xFA\x87\x6F\xDD\x81\xA3" 3175 "\x8C\x53\xFA\x87\x6F\xDD\x81\xA3"
2906 "\xB1\xD3\x44\x65\xDF\xE7\x63\x38", 3176 "\xB1\xD3\x44\x65\xDF\xE7\x63\x38"
2907 .rlen = 64, 3177 "\x4A\xFC\xDC\xEC\x3F\x26\x8E\xB8"
3178 "\x43\xFC\xFE\x18\xB5\x11\x6D\x31"
3179 "\x81\x8B\x0D\x75\xF6\x80\xEC\x84"
3180 "\x04\xB9\xE6\x09\x63\xED\x39\xDB"
3181 "\xC3\xF6\x14\xD6\x6E\x5E\x8B\xBD"
3182 "\x3E\xFA\xD7\x98\x50\x6F\xD9\x63"
3183 "\x02\xCD\x0D\x39\x4B\x0D\xEC\x80"
3184 "\xE3\x6A\x17\xF4\xCC\xAD\xFF\x68"
3185 "\x45\xDD\xC8\x83\x1D\x41\x96\x0D"
3186 "\x91\x2E\x05\xD3\x59\x82\xE0\x43"
3187 "\x90\x4F\xB9\xF7\xAD\x6B\x2E\xAF"
3188 "\xA7\x84\x00\x53\xCD\x6F\xD1\x0C"
3189 "\x4E\xF9\x5A\x23\xFB\xCA\xC7\xD3"
3190 "\xA9\xAA\x9D\xB2\x3F\x66\xF1\xAC"
3191 "\x25\x21\x8F\xF7\xEF\xF2\x6A\xDF"
3192 "\xE8\xDA\x75\x1A\x8A\xF1\xDD\x38"
3193 "\x1F\xF9\x3D\x68\x4A\xBB\x9E\x34"
3194 "\x1F\x66\x1F\x9C\x2B\x54\xFF\x60"
3195 "\x7F\x29\x4B\x55\x80\x8F\x4E\xA7"
3196 "\xA6\x9A\x0A\xD9\x0D\x19\x00\xF8"
3197 "\x1F\xBC\x0C\x40\x6B\xEC\x99\x25"
3198 "\x94\x70\x74\x0E\x1D\xC5\xBC\x12"
3199 "\xF3\x42\xBE\x95\xBF\xFB\x4E\x55"
3200 "\x9A\xB9\xCE\x14\x16\x5B\xDC\xD3"
3201 "\x75\x42\x62\x04\x31\x1F\x95\x7C"
3202 "\x66\x1A\x97\xDC\x2F\x40\x5C\x39"
3203 "\x78\xE6\x02\xDB\x49\xE1\xC6\x47"
3204 "\xC2\x78\x9A\xBB\xF3\xBE\xCB\x93"
3205 "\xD8\xB8\xE8\xBB\x8C\xB3\x9B\xA7"
3206 "\xC2\x89\xF3\x91\x88\x83\x3D\xF0"
3207 "\x29\xA2\xCD\xB5\x79\x16\xC2\x40"
3208 "\x11\x03\x8E\x9C\xFD\xC9\x43\xC4"
3209 "\xC2\x19\xF0\x4A\x32\xEF\x0C\x2B"
3210 "\xD3\x2B\xE9\xD4\x4C\xDE\x95\xCF"
3211 "\x04\x03\xD3\x2C\x7F\x82\xC8\xFA"
3212 "\x0F\xD8\x7A\x39\x7B\x01\x41\x9C"
3213 "\x78\xB6\xC9\xBF\xF9\x78\x57\x88"
3214 "\xB1\xA5\xE1\xE0\xD9\x16\xD4\xC8"
3215 "\xEE\xC4\xBE\x7B\x55\x59\x00\x48"
3216 "\x1B\xBC\x14\xFA\x2A\x9D\xC9\x1C"
3217 "\xFB\x28\x3F\x95\xDD\xB7\xD6\xCE"
3218 "\x3A\x7F\x09\x0C\x0E\x69\x30\x7D"
3219 "\xBC\x68\x9C\x91\x2A\x59\x57\x04"
3220 "\xED\x1A\x1E\x00\xB1\x85\x92\x04"
3221 "\x28\x8C\x0C\x3C\xC1\xD5\x12\xF7"
3222 "\x4C\x3E\xB0\xE7\x86\x62\x68\x91"
3223 "\xFC\xC4\xE2\xCE\xA6\xDC\x5E\x93"
3224 "\x5D\x8D\x8C\x68\xB3\xB2\xB9\x64"
3225 "\x16\xB8\xC8\x6F\xD8\xEE\x21\xBD"
3226 "\xAC\x18\x0C\x7D\x0D\x05\xAB\xF1"
3227 "\xFA\xDD\xE2\x48\xDF\x4C\x02\x39"
3228 "\x69\xA1\x62\xBD\x49\x3A\x9D\x91"
3229 "\x30\x70\x56\xA4\x37\xDD\x7C\xC0"
3230 "\x0A\xA3\x30\x10\x26\x25\x41\x2C",
3231 .rlen = 496,
2908 }, 3232 },
2909}; 3233};
2910 3234
@@ -2966,8 +3290,62 @@ static struct cipher_testvec tf_cbc_dec_tv_template[] = {
2966 "\x3D\x32\xDF\xDA\x56\x00\x6E\xEE" 3290 "\x3D\x32\xDF\xDA\x56\x00\x6E\xEE"
2967 "\x5B\x2A\x72\x9D\xC2\x4D\x19\xBC" 3291 "\x5B\x2A\x72\x9D\xC2\x4D\x19\xBC"
2968 "\x8C\x53\xFA\x87\x6F\xDD\x81\xA3" 3292 "\x8C\x53\xFA\x87\x6F\xDD\x81\xA3"
2969 "\xB1\xD3\x44\x65\xDF\xE7\x63\x38", 3293 "\xB1\xD3\x44\x65\xDF\xE7\x63\x38"
2970 .ilen = 64, 3294 "\x4A\xFC\xDC\xEC\x3F\x26\x8E\xB8"
3295 "\x43\xFC\xFE\x18\xB5\x11\x6D\x31"
3296 "\x81\x8B\x0D\x75\xF6\x80\xEC\x84"
3297 "\x04\xB9\xE6\x09\x63\xED\x39\xDB"
3298 "\xC3\xF6\x14\xD6\x6E\x5E\x8B\xBD"
3299 "\x3E\xFA\xD7\x98\x50\x6F\xD9\x63"
3300 "\x02\xCD\x0D\x39\x4B\x0D\xEC\x80"
3301 "\xE3\x6A\x17\xF4\xCC\xAD\xFF\x68"
3302 "\x45\xDD\xC8\x83\x1D\x41\x96\x0D"
3303 "\x91\x2E\x05\xD3\x59\x82\xE0\x43"
3304 "\x90\x4F\xB9\xF7\xAD\x6B\x2E\xAF"
3305 "\xA7\x84\x00\x53\xCD\x6F\xD1\x0C"
3306 "\x4E\xF9\x5A\x23\xFB\xCA\xC7\xD3"
3307 "\xA9\xAA\x9D\xB2\x3F\x66\xF1\xAC"
3308 "\x25\x21\x8F\xF7\xEF\xF2\x6A\xDF"
3309 "\xE8\xDA\x75\x1A\x8A\xF1\xDD\x38"
3310 "\x1F\xF9\x3D\x68\x4A\xBB\x9E\x34"
3311 "\x1F\x66\x1F\x9C\x2B\x54\xFF\x60"
3312 "\x7F\x29\x4B\x55\x80\x8F\x4E\xA7"
3313 "\xA6\x9A\x0A\xD9\x0D\x19\x00\xF8"
3314 "\x1F\xBC\x0C\x40\x6B\xEC\x99\x25"
3315 "\x94\x70\x74\x0E\x1D\xC5\xBC\x12"
3316 "\xF3\x42\xBE\x95\xBF\xFB\x4E\x55"
3317 "\x9A\xB9\xCE\x14\x16\x5B\xDC\xD3"
3318 "\x75\x42\x62\x04\x31\x1F\x95\x7C"
3319 "\x66\x1A\x97\xDC\x2F\x40\x5C\x39"
3320 "\x78\xE6\x02\xDB\x49\xE1\xC6\x47"
3321 "\xC2\x78\x9A\xBB\xF3\xBE\xCB\x93"
3322 "\xD8\xB8\xE8\xBB\x8C\xB3\x9B\xA7"
3323 "\xC2\x89\xF3\x91\x88\x83\x3D\xF0"
3324 "\x29\xA2\xCD\xB5\x79\x16\xC2\x40"
3325 "\x11\x03\x8E\x9C\xFD\xC9\x43\xC4"
3326 "\xC2\x19\xF0\x4A\x32\xEF\x0C\x2B"
3327 "\xD3\x2B\xE9\xD4\x4C\xDE\x95\xCF"
3328 "\x04\x03\xD3\x2C\x7F\x82\xC8\xFA"
3329 "\x0F\xD8\x7A\x39\x7B\x01\x41\x9C"
3330 "\x78\xB6\xC9\xBF\xF9\x78\x57\x88"
3331 "\xB1\xA5\xE1\xE0\xD9\x16\xD4\xC8"
3332 "\xEE\xC4\xBE\x7B\x55\x59\x00\x48"
3333 "\x1B\xBC\x14\xFA\x2A\x9D\xC9\x1C"
3334 "\xFB\x28\x3F\x95\xDD\xB7\xD6\xCE"
3335 "\x3A\x7F\x09\x0C\x0E\x69\x30\x7D"
3336 "\xBC\x68\x9C\x91\x2A\x59\x57\x04"
3337 "\xED\x1A\x1E\x00\xB1\x85\x92\x04"
3338 "\x28\x8C\x0C\x3C\xC1\xD5\x12\xF7"
3339 "\x4C\x3E\xB0\xE7\x86\x62\x68\x91"
3340 "\xFC\xC4\xE2\xCE\xA6\xDC\x5E\x93"
3341 "\x5D\x8D\x8C\x68\xB3\xB2\xB9\x64"
3342 "\x16\xB8\xC8\x6F\xD8\xEE\x21\xBD"
3343 "\xAC\x18\x0C\x7D\x0D\x05\xAB\xF1"
3344 "\xFA\xDD\xE2\x48\xDF\x4C\x02\x39"
3345 "\x69\xA1\x62\xBD\x49\x3A\x9D\x91"
3346 "\x30\x70\x56\xA4\x37\xDD\x7C\xC0"
3347 "\x0A\xA3\x30\x10\x26\x25\x41\x2C",
3348 .ilen = 496,
2971 .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" 3349 .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
2972 "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" 3350 "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
2973 "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" 3351 "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
@@ -2975,8 +3353,62 @@ static struct cipher_testvec tf_cbc_dec_tv_template[] = {
2975 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" 3353 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
2976 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" 3354 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
2977 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" 3355 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
2978 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C", 3356 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
2979 .rlen = 64, 3357 "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
3358 "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
3359 "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
3360 "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
3361 "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
3362 "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
3363 "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
3364 "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
3365 "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
3366 "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
3367 "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
3368 "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
3369 "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
3370 "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
3371 "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
3372 "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
3373 "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
3374 "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
3375 "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
3376 "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
3377 "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
3378 "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
3379 "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
3380 "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
3381 "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
3382 "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
3383 "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
3384 "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
3385 "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
3386 "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
3387 "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
3388 "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
3389 "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
3390 "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
3391 "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
3392 "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
3393 "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
3394 "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
3395 "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
3396 "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
3397 "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
3398 "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
3399 "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
3400 "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
3401 "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
3402 "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
3403 "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
3404 "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
3405 "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
3406 "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
3407 "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
3408 "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
3409 "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
3410 "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
3411 .rlen = 496,
2980 }, 3412 },
2981}; 3413};
2982 3414
@@ -2996,8 +3428,62 @@ static struct cipher_testvec tf_ctr_enc_tv_template[] = {
2996 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" 3428 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
2997 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" 3429 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
2998 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" 3430 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
2999 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C", 3431 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
3000 .ilen = 64, 3432 "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
3433 "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
3434 "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
3435 "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
3436 "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
3437 "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
3438 "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
3439 "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
3440 "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
3441 "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
3442 "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
3443 "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
3444 "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
3445 "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
3446 "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
3447 "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
3448 "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
3449 "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
3450 "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
3451 "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
3452 "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
3453 "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
3454 "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
3455 "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
3456 "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
3457 "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
3458 "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
3459 "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
3460 "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
3461 "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
3462 "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
3463 "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
3464 "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
3465 "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
3466 "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
3467 "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
3468 "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
3469 "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
3470 "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
3471 "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
3472 "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
3473 "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
3474 "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
3475 "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
3476 "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
3477 "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
3478 "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
3479 "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
3480 "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
3481 "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
3482 "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
3483 "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
3484 "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
3485 "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
3486 .ilen = 496,
3001 .result = "\xDF\xDD\x69\xFA\xB0\x2E\xFD\xFE" 3487 .result = "\xDF\xDD\x69\xFA\xB0\x2E\xFD\xFE"
3002 "\x70\x9E\xC5\x4B\xC9\xD4\xA1\x30" 3488 "\x70\x9E\xC5\x4B\xC9\xD4\xA1\x30"
3003 "\x26\x9B\x89\xA1\xEE\x43\xE0\x52" 3489 "\x26\x9B\x89\xA1\xEE\x43\xE0\x52"
@@ -3005,8 +3491,62 @@ static struct cipher_testvec tf_ctr_enc_tv_template[] = {
3005 "\x9F\x8D\x40\x9F\x24\xFD\x92\xA0" 3491 "\x9F\x8D\x40\x9F\x24\xFD\x92\xA0"
3006 "\xBC\x8F\x35\xDD\x67\x38\xD8\xAA" 3492 "\xBC\x8F\x35\xDD\x67\x38\xD8\xAA"
3007 "\xCF\xF8\x48\xCA\xFB\xE4\x5C\x60" 3493 "\xCF\xF8\x48\xCA\xFB\xE4\x5C\x60"
3008 "\x01\x41\x21\x12\x38\xAB\x52\x4F", 3494 "\x01\x41\x21\x12\x38\xAB\x52\x4F"
3009 .rlen = 64, 3495 "\xA8\x57\x20\xE0\x21\x6A\x17\x0D"
3496 "\x0E\xF9\x8E\x49\x42\x00\x3C\x94"
3497 "\x14\xC0\xD0\x8D\x8A\x98\xEB\x29"
3498 "\xEC\xAE\x96\x44\xC0\x3C\x48\xDC"
3499 "\x29\x35\x25\x2F\xE7\x11\x6C\x68"
3500 "\xC8\x67\x0A\x2F\xF4\x07\xBE\xF9"
3501 "\x2C\x31\x87\x40\xAB\xB2\xB6\xFA"
3502 "\xD2\xC9\x6D\x5C\x50\xE9\xE6\x7E"
3503 "\xE3\x0A\xD2\xD5\x6D\x8D\x64\x9E"
3504 "\x70\xCE\x03\x76\xDD\xE0\xF0\x8C"
3505 "\x84\x86\x8B\x6A\xFE\xC7\xF9\x69"
3506 "\x2E\xFE\xFC\xC2\xC4\x1A\x55\x58"
3507 "\xB3\xBE\xE2\x7E\xED\x39\x42\x6C"
3508 "\xB4\x42\x97\x9A\xEC\xE1\x0A\x06"
3509 "\x02\xC5\x03\x9D\xC4\x48\x15\x66"
3510 "\x35\x6A\xC2\xC9\xA2\x26\x30\xBB"
3511 "\xDB\x2D\xC8\x08\x2B\xA0\x29\x1A"
3512 "\x23\x61\x48\xEA\x80\x04\x27\xAA"
3513 "\x69\x49\xE8\xE8\x4A\x83\x6B\x5A"
3514 "\xCA\x7C\xD3\xB1\xB5\x0B\xCC\x23"
3515 "\x74\x1F\xA9\x87\xCD\xED\xC0\x2D"
3516 "\xBF\xEB\xCF\x16\x2D\x2A\x2E\x1D"
3517 "\x96\xBA\x36\x11\x45\x41\xDA\xCE"
3518 "\xA4\x48\x80\x8B\x06\xF4\x98\x89"
3519 "\x8B\x23\x08\x53\xF4\xD4\x5A\x24"
3520 "\x8B\xF8\x43\x73\xD1\xEE\xC4\xB0"
3521 "\xF8\xFE\x09\x0C\x75\x05\x38\x0B"
3522 "\x7C\x81\xDE\x9D\xE4\x61\x37\x63"
3523 "\x63\xAD\x12\xD2\x04\xB9\xCE\x45"
3524 "\x5A\x1A\x6E\xB3\x78\x2A\xA4\x74"
3525 "\x86\xD0\xE3\xFF\xDA\x38\x9C\xB5"
3526 "\xB8\xB1\xDB\x38\x2F\xC5\x6A\xB4"
3527 "\xEB\x6E\x96\xE8\x43\x80\xB5\x51"
3528 "\x61\x2D\x48\xAA\x07\x65\x11\x8C"
3529 "\x48\xE3\x90\x7E\x78\x3A\xEC\x97"
3530 "\x05\x3D\x84\xE7\x90\x2B\xAA\xBD"
3531 "\x83\x29\x0E\x1A\x81\x73\x7B\xE0"
3532 "\x7A\x01\x4A\x37\x3B\x77\x7F\x8D"
3533 "\x49\xA4\x2F\x6E\xBE\x68\x99\x08"
3534 "\x99\xAA\x4C\x12\x04\xAE\x1F\x77"
3535 "\x35\x88\xF1\x65\x06\x0A\x0B\x4D"
3536 "\x47\xF9\x50\x38\x5D\x71\xF9\x6E"
3537 "\xDE\xEC\x61\x35\x2C\x4C\x96\x50"
3538 "\xE8\x28\x93\x9C\x7E\x01\xC6\x04"
3539 "\xB2\xD6\xBC\x6C\x17\xEB\xC1\x7D"
3540 "\x11\xE9\x43\x83\x76\xAA\x53\x37"
3541 "\x0C\x1D\x39\x89\x53\x72\x09\x7E"
3542 "\xD9\x85\x16\x04\xA5\x2C\x05\x6F"
3543 "\x17\x0C\x6E\x66\xAA\x84\xA7\xD9"
3544 "\xE2\xD9\xC4\xEB\x43\x3E\xB1\x8D"
3545 "\x7C\x36\xC7\x71\x70\x9C\x10\xD8"
3546 "\xE8\x47\x2A\x4D\xFD\xA1\xBC\xE3"
3547 "\xB9\x32\xE2\xC1\x82\xAC\xFE\xCC"
3548 "\xC5\xC9\x7F\x9E\xCF\x33\x7A\xDF",
3549 .rlen = 496,
3010 }, { /* Generated with Crypto++ */ 3550 }, { /* Generated with Crypto++ */
3011 .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" 3551 .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
3012 "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" 3552 "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
@@ -3023,8 +3563,62 @@ static struct cipher_testvec tf_ctr_enc_tv_template[] = {
3023 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" 3563 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
3024 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" 3564 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
3025 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" 3565 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
3026 "\xC3\x37\xCE", 3566 "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
3027 .ilen = 67, 3567 "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
3568 "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
3569 "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
3570 "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
3571 "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
3572 "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
3573 "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
3574 "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
3575 "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
3576 "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
3577 "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
3578 "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
3579 "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
3580 "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
3581 "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
3582 "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
3583 "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
3584 "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
3585 "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
3586 "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
3587 "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
3588 "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
3589 "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
3590 "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
3591 "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
3592 "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
3593 "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
3594 "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
3595 "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
3596 "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
3597 "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
3598 "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
3599 "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
3600 "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
3601 "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
3602 "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
3603 "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
3604 "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
3605 "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
3606 "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
3607 "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
3608 "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
3609 "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
3610 "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
3611 "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
3612 "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
3613 "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
3614 "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
3615 "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
3616 "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
3617 "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
3618 "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
3619 "\xDC\x50\xE7\x7E\x15\x89\x20\xB7"
3620 "\x2B\xC2\x59",
3621 .ilen = 499,
3028 .result = "\xDF\xDD\x69\xFA\xB0\x2E\xFD\xFE" 3622 .result = "\xDF\xDD\x69\xFA\xB0\x2E\xFD\xFE"
3029 "\x70\x9E\xC5\x4B\xC9\xD4\xA1\x30" 3623 "\x70\x9E\xC5\x4B\xC9\xD4\xA1\x30"
3030 "\x26\x9B\x89\xA1\xEE\x43\xE0\x52" 3624 "\x26\x9B\x89\xA1\xEE\x43\xE0\x52"
@@ -3033,8 +3627,62 @@ static struct cipher_testvec tf_ctr_enc_tv_template[] = {
3033 "\xBC\x8F\x35\xDD\x67\x38\xD8\xAA" 3627 "\xBC\x8F\x35\xDD\x67\x38\xD8\xAA"
3034 "\xCF\xF8\x48\xCA\xFB\xE4\x5C\x60" 3628 "\xCF\xF8\x48\xCA\xFB\xE4\x5C\x60"
3035 "\x01\x41\x21\x12\x38\xAB\x52\x4F" 3629 "\x01\x41\x21\x12\x38\xAB\x52\x4F"
3036 "\xA8\x57\x20", 3630 "\xA8\x57\x20\xE0\x21\x6A\x17\x0D"
3037 .rlen = 67, 3631 "\x0E\xF9\x8E\x49\x42\x00\x3C\x94"
3632 "\x14\xC0\xD0\x8D\x8A\x98\xEB\x29"
3633 "\xEC\xAE\x96\x44\xC0\x3C\x48\xDC"
3634 "\x29\x35\x25\x2F\xE7\x11\x6C\x68"
3635 "\xC8\x67\x0A\x2F\xF4\x07\xBE\xF9"
3636 "\x2C\x31\x87\x40\xAB\xB2\xB6\xFA"
3637 "\xD2\xC9\x6D\x5C\x50\xE9\xE6\x7E"
3638 "\xE3\x0A\xD2\xD5\x6D\x8D\x64\x9E"
3639 "\x70\xCE\x03\x76\xDD\xE0\xF0\x8C"
3640 "\x84\x86\x8B\x6A\xFE\xC7\xF9\x69"
3641 "\x2E\xFE\xFC\xC2\xC4\x1A\x55\x58"
3642 "\xB3\xBE\xE2\x7E\xED\x39\x42\x6C"
3643 "\xB4\x42\x97\x9A\xEC\xE1\x0A\x06"
3644 "\x02\xC5\x03\x9D\xC4\x48\x15\x66"
3645 "\x35\x6A\xC2\xC9\xA2\x26\x30\xBB"
3646 "\xDB\x2D\xC8\x08\x2B\xA0\x29\x1A"
3647 "\x23\x61\x48\xEA\x80\x04\x27\xAA"
3648 "\x69\x49\xE8\xE8\x4A\x83\x6B\x5A"
3649 "\xCA\x7C\xD3\xB1\xB5\x0B\xCC\x23"
3650 "\x74\x1F\xA9\x87\xCD\xED\xC0\x2D"
3651 "\xBF\xEB\xCF\x16\x2D\x2A\x2E\x1D"
3652 "\x96\xBA\x36\x11\x45\x41\xDA\xCE"
3653 "\xA4\x48\x80\x8B\x06\xF4\x98\x89"
3654 "\x8B\x23\x08\x53\xF4\xD4\x5A\x24"
3655 "\x8B\xF8\x43\x73\xD1\xEE\xC4\xB0"
3656 "\xF8\xFE\x09\x0C\x75\x05\x38\x0B"
3657 "\x7C\x81\xDE\x9D\xE4\x61\x37\x63"
3658 "\x63\xAD\x12\xD2\x04\xB9\xCE\x45"
3659 "\x5A\x1A\x6E\xB3\x78\x2A\xA4\x74"
3660 "\x86\xD0\xE3\xFF\xDA\x38\x9C\xB5"
3661 "\xB8\xB1\xDB\x38\x2F\xC5\x6A\xB4"
3662 "\xEB\x6E\x96\xE8\x43\x80\xB5\x51"
3663 "\x61\x2D\x48\xAA\x07\x65\x11\x8C"
3664 "\x48\xE3\x90\x7E\x78\x3A\xEC\x97"
3665 "\x05\x3D\x84\xE7\x90\x2B\xAA\xBD"
3666 "\x83\x29\x0E\x1A\x81\x73\x7B\xE0"
3667 "\x7A\x01\x4A\x37\x3B\x77\x7F\x8D"
3668 "\x49\xA4\x2F\x6E\xBE\x68\x99\x08"
3669 "\x99\xAA\x4C\x12\x04\xAE\x1F\x77"
3670 "\x35\x88\xF1\x65\x06\x0A\x0B\x4D"
3671 "\x47\xF9\x50\x38\x5D\x71\xF9\x6E"
3672 "\xDE\xEC\x61\x35\x2C\x4C\x96\x50"
3673 "\xE8\x28\x93\x9C\x7E\x01\xC6\x04"
3674 "\xB2\xD6\xBC\x6C\x17\xEB\xC1\x7D"
3675 "\x11\xE9\x43\x83\x76\xAA\x53\x37"
3676 "\x0C\x1D\x39\x89\x53\x72\x09\x7E"
3677 "\xD9\x85\x16\x04\xA5\x2C\x05\x6F"
3678 "\x17\x0C\x6E\x66\xAA\x84\xA7\xD9"
3679 "\xE2\xD9\xC4\xEB\x43\x3E\xB1\x8D"
3680 "\x7C\x36\xC7\x71\x70\x9C\x10\xD8"
3681 "\xE8\x47\x2A\x4D\xFD\xA1\xBC\xE3"
3682 "\xB9\x32\xE2\xC1\x82\xAC\xFE\xCC"
3683 "\xC5\xC9\x7F\x9E\xCF\x33\x7A\xDF"
3684 "\x6C\x82\x9D",
3685 .rlen = 499,
3038 }, 3686 },
3039}; 3687};
3040 3688
@@ -3054,8 +3702,62 @@ static struct cipher_testvec tf_ctr_dec_tv_template[] = {
3054 "\x9F\x8D\x40\x9F\x24\xFD\x92\xA0" 3702 "\x9F\x8D\x40\x9F\x24\xFD\x92\xA0"
3055 "\xBC\x8F\x35\xDD\x67\x38\xD8\xAA" 3703 "\xBC\x8F\x35\xDD\x67\x38\xD8\xAA"
3056 "\xCF\xF8\x48\xCA\xFB\xE4\x5C\x60" 3704 "\xCF\xF8\x48\xCA\xFB\xE4\x5C\x60"
3057 "\x01\x41\x21\x12\x38\xAB\x52\x4F", 3705 "\x01\x41\x21\x12\x38\xAB\x52\x4F"
3058 .ilen = 64, 3706 "\xA8\x57\x20\xE0\x21\x6A\x17\x0D"
3707 "\x0E\xF9\x8E\x49\x42\x00\x3C\x94"
3708 "\x14\xC0\xD0\x8D\x8A\x98\xEB\x29"
3709 "\xEC\xAE\x96\x44\xC0\x3C\x48\xDC"
3710 "\x29\x35\x25\x2F\xE7\x11\x6C\x68"
3711 "\xC8\x67\x0A\x2F\xF4\x07\xBE\xF9"
3712 "\x2C\x31\x87\x40\xAB\xB2\xB6\xFA"
3713 "\xD2\xC9\x6D\x5C\x50\xE9\xE6\x7E"
3714 "\xE3\x0A\xD2\xD5\x6D\x8D\x64\x9E"
3715 "\x70\xCE\x03\x76\xDD\xE0\xF0\x8C"
3716 "\x84\x86\x8B\x6A\xFE\xC7\xF9\x69"
3717 "\x2E\xFE\xFC\xC2\xC4\x1A\x55\x58"
3718 "\xB3\xBE\xE2\x7E\xED\x39\x42\x6C"
3719 "\xB4\x42\x97\x9A\xEC\xE1\x0A\x06"
3720 "\x02\xC5\x03\x9D\xC4\x48\x15\x66"
3721 "\x35\x6A\xC2\xC9\xA2\x26\x30\xBB"
3722 "\xDB\x2D\xC8\x08\x2B\xA0\x29\x1A"
3723 "\x23\x61\x48\xEA\x80\x04\x27\xAA"
3724 "\x69\x49\xE8\xE8\x4A\x83\x6B\x5A"
3725 "\xCA\x7C\xD3\xB1\xB5\x0B\xCC\x23"
3726 "\x74\x1F\xA9\x87\xCD\xED\xC0\x2D"
3727 "\xBF\xEB\xCF\x16\x2D\x2A\x2E\x1D"
3728 "\x96\xBA\x36\x11\x45\x41\xDA\xCE"
3729 "\xA4\x48\x80\x8B\x06\xF4\x98\x89"
3730 "\x8B\x23\x08\x53\xF4\xD4\x5A\x24"
3731 "\x8B\xF8\x43\x73\xD1\xEE\xC4\xB0"
3732 "\xF8\xFE\x09\x0C\x75\x05\x38\x0B"
3733 "\x7C\x81\xDE\x9D\xE4\x61\x37\x63"
3734 "\x63\xAD\x12\xD2\x04\xB9\xCE\x45"
3735 "\x5A\x1A\x6E\xB3\x78\x2A\xA4\x74"
3736 "\x86\xD0\xE3\xFF\xDA\x38\x9C\xB5"
3737 "\xB8\xB1\xDB\x38\x2F\xC5\x6A\xB4"
3738 "\xEB\x6E\x96\xE8\x43\x80\xB5\x51"
3739 "\x61\x2D\x48\xAA\x07\x65\x11\x8C"
3740 "\x48\xE3\x90\x7E\x78\x3A\xEC\x97"
3741 "\x05\x3D\x84\xE7\x90\x2B\xAA\xBD"
3742 "\x83\x29\x0E\x1A\x81\x73\x7B\xE0"
3743 "\x7A\x01\x4A\x37\x3B\x77\x7F\x8D"
3744 "\x49\xA4\x2F\x6E\xBE\x68\x99\x08"
3745 "\x99\xAA\x4C\x12\x04\xAE\x1F\x77"
3746 "\x35\x88\xF1\x65\x06\x0A\x0B\x4D"
3747 "\x47\xF9\x50\x38\x5D\x71\xF9\x6E"
3748 "\xDE\xEC\x61\x35\x2C\x4C\x96\x50"
3749 "\xE8\x28\x93\x9C\x7E\x01\xC6\x04"
3750 "\xB2\xD6\xBC\x6C\x17\xEB\xC1\x7D"
3751 "\x11\xE9\x43\x83\x76\xAA\x53\x37"
3752 "\x0C\x1D\x39\x89\x53\x72\x09\x7E"
3753 "\xD9\x85\x16\x04\xA5\x2C\x05\x6F"
3754 "\x17\x0C\x6E\x66\xAA\x84\xA7\xD9"
3755 "\xE2\xD9\xC4\xEB\x43\x3E\xB1\x8D"
3756 "\x7C\x36\xC7\x71\x70\x9C\x10\xD8"
3757 "\xE8\x47\x2A\x4D\xFD\xA1\xBC\xE3"
3758 "\xB9\x32\xE2\xC1\x82\xAC\xFE\xCC"
3759 "\xC5\xC9\x7F\x9E\xCF\x33\x7A\xDF",
3760 .ilen = 496,
3059 .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" 3761 .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
3060 "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" 3762 "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
3061 "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" 3763 "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
@@ -3063,8 +3765,62 @@ static struct cipher_testvec tf_ctr_dec_tv_template[] = {
3063 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" 3765 "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
3064 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" 3766 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
3065 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" 3767 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
3066 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C", 3768 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
3067 .rlen = 64, 3769 "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
3770 "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
3771 "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
3772 "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
3773 "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
3774 "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
3775 "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
3776 "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
3777 "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
3778 "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
3779 "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
3780 "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
3781 "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
3782 "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
3783 "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
3784 "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
3785 "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
3786 "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
3787 "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
3788 "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
3789 "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
3790 "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
3791 "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
3792 "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
3793 "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
3794 "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
3795 "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
3796 "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
3797 "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
3798 "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
3799 "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
3800 "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
3801 "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
3802 "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
3803 "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
3804 "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
3805 "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
3806 "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
3807 "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
3808 "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
3809 "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
3810 "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
3811 "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
3812 "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
3813 "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
3814 "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
3815 "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
3816 "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
3817 "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
3818 "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
3819 "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
3820 "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
3821 "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
3822 "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
3823 .rlen = 496,
3068 }, { /* Generated with Crypto++ */ 3824 }, { /* Generated with Crypto++ */
3069 .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" 3825 .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
3070 "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" 3826 "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
@@ -3081,8 +3837,62 @@ static struct cipher_testvec tf_ctr_dec_tv_template[] = {
3081 "\xBC\x8F\x35\xDD\x67\x38\xD8\xAA" 3837 "\xBC\x8F\x35\xDD\x67\x38\xD8\xAA"
3082 "\xCF\xF8\x48\xCA\xFB\xE4\x5C\x60" 3838 "\xCF\xF8\x48\xCA\xFB\xE4\x5C\x60"
3083 "\x01\x41\x21\x12\x38\xAB\x52\x4F" 3839 "\x01\x41\x21\x12\x38\xAB\x52\x4F"
3084 "\xA8\x57\x20", 3840 "\xA8\x57\x20\xE0\x21\x6A\x17\x0D"
3085 .ilen = 67, 3841 "\x0E\xF9\x8E\x49\x42\x00\x3C\x94"
3842 "\x14\xC0\xD0\x8D\x8A\x98\xEB\x29"
3843 "\xEC\xAE\x96\x44\xC0\x3C\x48\xDC"
3844 "\x29\x35\x25\x2F\xE7\x11\x6C\x68"
3845 "\xC8\x67\x0A\x2F\xF4\x07\xBE\xF9"
3846 "\x2C\x31\x87\x40\xAB\xB2\xB6\xFA"
3847 "\xD2\xC9\x6D\x5C\x50\xE9\xE6\x7E"
3848 "\xE3\x0A\xD2\xD5\x6D\x8D\x64\x9E"
3849 "\x70\xCE\x03\x76\xDD\xE0\xF0\x8C"
3850 "\x84\x86\x8B\x6A\xFE\xC7\xF9\x69"
3851 "\x2E\xFE\xFC\xC2\xC4\x1A\x55\x58"
3852 "\xB3\xBE\xE2\x7E\xED\x39\x42\x6C"
3853 "\xB4\x42\x97\x9A\xEC\xE1\x0A\x06"
3854 "\x02\xC5\x03\x9D\xC4\x48\x15\x66"
3855 "\x35\x6A\xC2\xC9\xA2\x26\x30\xBB"
3856 "\xDB\x2D\xC8\x08\x2B\xA0\x29\x1A"
3857 "\x23\x61\x48\xEA\x80\x04\x27\xAA"
3858 "\x69\x49\xE8\xE8\x4A\x83\x6B\x5A"
3859 "\xCA\x7C\xD3\xB1\xB5\x0B\xCC\x23"
3860 "\x74\x1F\xA9\x87\xCD\xED\xC0\x2D"
3861 "\xBF\xEB\xCF\x16\x2D\x2A\x2E\x1D"
3862 "\x96\xBA\x36\x11\x45\x41\xDA\xCE"
3863 "\xA4\x48\x80\x8B\x06\xF4\x98\x89"
3864 "\x8B\x23\x08\x53\xF4\xD4\x5A\x24"
3865 "\x8B\xF8\x43\x73\xD1\xEE\xC4\xB0"
3866 "\xF8\xFE\x09\x0C\x75\x05\x38\x0B"
3867 "\x7C\x81\xDE\x9D\xE4\x61\x37\x63"
3868 "\x63\xAD\x12\xD2\x04\xB9\xCE\x45"
3869 "\x5A\x1A\x6E\xB3\x78\x2A\xA4\x74"
3870 "\x86\xD0\xE3\xFF\xDA\x38\x9C\xB5"
3871 "\xB8\xB1\xDB\x38\x2F\xC5\x6A\xB4"
3872 "\xEB\x6E\x96\xE8\x43\x80\xB5\x51"
3873 "\x61\x2D\x48\xAA\x07\x65\x11\x8C"
3874 "\x48\xE3\x90\x7E\x78\x3A\xEC\x97"
3875 "\x05\x3D\x84\xE7\x90\x2B\xAA\xBD"
3876 "\x83\x29\x0E\x1A\x81\x73\x7B\xE0"
3877 "\x7A\x01\x4A\x37\x3B\x77\x7F\x8D"
3878 "\x49\xA4\x2F\x6E\xBE\x68\x99\x08"
3879 "\x99\xAA\x4C\x12\x04\xAE\x1F\x77"
3880 "\x35\x88\xF1\x65\x06\x0A\x0B\x4D"
3881 "\x47\xF9\x50\x38\x5D\x71\xF9\x6E"
3882 "\xDE\xEC\x61\x35\x2C\x4C\x96\x50"
3883 "\xE8\x28\x93\x9C\x7E\x01\xC6\x04"
3884 "\xB2\xD6\xBC\x6C\x17\xEB\xC1\x7D"
3885 "\x11\xE9\x43\x83\x76\xAA\x53\x37"
3886 "\x0C\x1D\x39\x89\x53\x72\x09\x7E"
3887 "\xD9\x85\x16\x04\xA5\x2C\x05\x6F"
3888 "\x17\x0C\x6E\x66\xAA\x84\xA7\xD9"
3889 "\xE2\xD9\xC4\xEB\x43\x3E\xB1\x8D"
3890 "\x7C\x36\xC7\x71\x70\x9C\x10\xD8"
3891 "\xE8\x47\x2A\x4D\xFD\xA1\xBC\xE3"
3892 "\xB9\x32\xE2\xC1\x82\xAC\xFE\xCC"
3893 "\xC5\xC9\x7F\x9E\xCF\x33\x7A\xDF"
3894 "\x6C\x82\x9D",
3895 .ilen = 499,
3086 .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" 3896 .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
3087 "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" 3897 "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
3088 "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" 3898 "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
@@ -3091,8 +3901,62 @@ static struct cipher_testvec tf_ctr_dec_tv_template[] = {
3091 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" 3901 "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
3092 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" 3902 "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
3093 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" 3903 "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
3094 "\xC3\x37\xCE", 3904 "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
3095 .rlen = 67, 3905 "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
3906 "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
3907 "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
3908 "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
3909 "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
3910 "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
3911 "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
3912 "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
3913 "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
3914 "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
3915 "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
3916 "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
3917 "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
3918 "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
3919 "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
3920 "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
3921 "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
3922 "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
3923 "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
3924 "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
3925 "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
3926 "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
3927 "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
3928 "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
3929 "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
3930 "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
3931 "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
3932 "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
3933 "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
3934 "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
3935 "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
3936 "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
3937 "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
3938 "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
3939 "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
3940 "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
3941 "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
3942 "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
3943 "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
3944 "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
3945 "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
3946 "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
3947 "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
3948 "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
3949 "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
3950 "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
3951 "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
3952 "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
3953 "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
3954 "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
3955 "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
3956 "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
3957 "\xDC\x50\xE7\x7E\x15\x89\x20\xB7"
3958 "\x2B\xC2\x59",
3959 .rlen = 499,
3096 }, 3960 },
3097}; 3961};
3098 3962
@@ -6111,6 +6975,9 @@ static struct cipher_testvec cast6_dec_tv_template[] = {
6111#define AES_DEC_TEST_VECTORS 3 6975#define AES_DEC_TEST_VECTORS 3
6112#define AES_CBC_ENC_TEST_VECTORS 4 6976#define AES_CBC_ENC_TEST_VECTORS 4
6113#define AES_CBC_DEC_TEST_VECTORS 4 6977#define AES_CBC_DEC_TEST_VECTORS 4
6978#define HMAC_SHA1_AES_CBC_ENC_TEST_VECTORS 7
6979#define HMAC_SHA256_AES_CBC_ENC_TEST_VECTORS 7
6980#define HMAC_SHA512_AES_CBC_ENC_TEST_VECTORS 7
6114#define AES_LRW_ENC_TEST_VECTORS 8 6981#define AES_LRW_ENC_TEST_VECTORS 8
6115#define AES_LRW_DEC_TEST_VECTORS 8 6982#define AES_LRW_DEC_TEST_VECTORS 8
6116#define AES_XTS_ENC_TEST_VECTORS 5 6983#define AES_XTS_ENC_TEST_VECTORS 5
@@ -6368,6 +7235,837 @@ static struct cipher_testvec aes_cbc_dec_tv_template[] = {
6368 }, 7235 },
6369}; 7236};
6370 7237
7238static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_template[] = {
7239 { /* RFC 3602 Case 1 */
7240#ifdef __LITTLE_ENDIAN
7241 .key = "\x08\x00" /* rta length */
7242 "\x01\x00" /* rta type */
7243#else
7244 .key = "\x00\x08" /* rta length */
7245 "\x00\x01" /* rta type */
7246#endif
7247 "\x00\x00\x00\x10" /* enc key length */
7248 "\x00\x00\x00\x00\x00\x00\x00\x00"
7249 "\x00\x00\x00\x00\x00\x00\x00\x00"
7250 "\x00\x00\x00\x00"
7251 "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
7252 "\x51\x2e\x03\xd5\x34\x12\x00\x06",
7253 .klen = 8 + 20 + 16,
7254 .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
7255 "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
7256 .input = "Single block msg",
7257 .ilen = 16,
7258 .result = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
7259 "\x27\x08\x94\x2d\xbe\x77\x18\x1a"
7260 "\x1b\x13\xcb\xaf\x89\x5e\xe1\x2c"
7261 "\x13\xc5\x2e\xa3\xcc\xed\xdc\xb5"
7262 "\x03\x71\xa2\x06",
7263 .rlen = 16 + 20,
7264 }, { /* RFC 3602 Case 2 */
7265#ifdef __LITTLE_ENDIAN
7266 .key = "\x08\x00" /* rta length */
7267 "\x01\x00" /* rta type */
7268#else
7269 .key = "\x00\x08" /* rta length */
7270 "\x00\x01" /* rta type */
7271#endif
7272 "\x00\x00\x00\x10" /* enc key length */
7273 "\x20\x21\x22\x23\x24\x25\x26\x27"
7274 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7275 "\x30\x31\x32\x33"
7276 "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
7277 "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
7278 .klen = 8 + 20 + 16,
7279 .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
7280 "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
7281 .input = "\x00\x01\x02\x03\x04\x05\x06\x07"
7282 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7283 "\x10\x11\x12\x13\x14\x15\x16\x17"
7284 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
7285 .ilen = 32,
7286 .result = "\xd2\x96\xcd\x94\xc2\xcc\xcf\x8a"
7287 "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a"
7288 "\x75\x86\x60\x2d\x25\x3c\xff\xf9"
7289 "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1"
7290 "\xad\x9b\x4c\x5c\x85\xe1\xda\xae"
7291 "\xee\x81\x4e\xd7\xdb\x74\xcf\x58"
7292 "\x65\x39\xf8\xde",
7293 .rlen = 32 + 20,
7294 }, { /* RFC 3602 Case 3 */
7295#ifdef __LITTLE_ENDIAN
7296 .key = "\x08\x00" /* rta length */
7297 "\x01\x00" /* rta type */
7298#else
7299 .key = "\x00\x08" /* rta length */
7300 "\x00\x01" /* rta type */
7301#endif
7302 "\x00\x00\x00\x10" /* enc key length */
7303 "\x11\x22\x33\x44\x55\x66\x77\x88"
7304 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7305 "\x22\x33\x44\x55"
7306 "\x6c\x3e\xa0\x47\x76\x30\xce\x21"
7307 "\xa2\xce\x33\x4a\xa7\x46\xc2\xcd",
7308 .klen = 8 + 20 + 16,
7309 .iv = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
7310 "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
7311 .input = "This is a 48-byte message (exactly 3 AES blocks)",
7312 .ilen = 48,
7313 .result = "\xd0\xa0\x2b\x38\x36\x45\x17\x53"
7314 "\xd4\x93\x66\x5d\x33\xf0\xe8\x86"
7315 "\x2d\xea\x54\xcd\xb2\x93\xab\xc7"
7316 "\x50\x69\x39\x27\x67\x72\xf8\xd5"
7317 "\x02\x1c\x19\x21\x6b\xad\x52\x5c"
7318 "\x85\x79\x69\x5d\x83\xba\x26\x84"
7319 "\xc2\xec\x0c\xf8\x7f\x05\xba\xca"
7320 "\xff\xee\x4c\xd0\x93\xe6\x36\x7f"
7321 "\x8d\x62\xf2\x1e",
7322 .rlen = 48 + 20,
7323 }, { /* RFC 3602 Case 4 */
7324#ifdef __LITTLE_ENDIAN
7325 .key = "\x08\x00" /* rta length */
7326 "\x01\x00" /* rta type */
7327#else
7328 .key = "\x00\x08" /* rta length */
7329 "\x00\x01" /* rta type */
7330#endif
7331 "\x00\x00\x00\x10" /* enc key length */
7332 "\x11\x22\x33\x44\x55\x66\x77\x88"
7333 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7334 "\x22\x33\x44\x55"
7335 "\x56\xe4\x7a\x38\xc5\x59\x89\x74"
7336 "\xbc\x46\x90\x3d\xba\x29\x03\x49",
7337 .klen = 8 + 20 + 16,
7338 .iv = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
7339 "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
7340 .input = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
7341 "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
7342 "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
7343 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
7344 "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
7345 "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
7346 "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
7347 "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf",
7348 .ilen = 64,
7349 .result = "\xc3\x0e\x32\xff\xed\xc0\x77\x4e"
7350 "\x6a\xff\x6a\xf0\x86\x9f\x71\xaa"
7351 "\x0f\x3a\xf0\x7a\x9a\x31\xa9\xc6"
7352 "\x84\xdb\x20\x7e\xb0\xef\x8e\x4e"
7353 "\x35\x90\x7a\xa6\x32\xc3\xff\xdf"
7354 "\x86\x8b\xb7\xb2\x9d\x3d\x46\xad"
7355 "\x83\xce\x9f\x9a\x10\x2e\xe9\x9d"
7356 "\x49\xa5\x3e\x87\xf4\xc3\xda\x55"
7357 "\x1c\x45\x57\xa9\x56\xcb\xa9\x2d"
7358 "\x18\xac\xf1\xc7\x5d\xd1\xcd\x0d"
7359 "\x1d\xbe\xc6\xe9",
7360 .rlen = 64 + 20,
7361 }, { /* RFC 3602 Case 5 */
7362#ifdef __LITTLE_ENDIAN
7363 .key = "\x08\x00" /* rta length */
7364 "\x01\x00" /* rta type */
7365#else
7366 .key = "\x00\x08" /* rta length */
7367 "\x00\x01" /* rta type */
7368#endif
7369 "\x00\x00\x00\x10" /* enc key length */
7370 "\x11\x22\x33\x44\x55\x66\x77\x88"
7371 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7372 "\x22\x33\x44\x55"
7373 "\x90\xd3\x82\xb4\x10\xee\xba\x7a"
7374 "\xd9\x38\xc4\x6c\xec\x1a\x82\xbf",
7375 .klen = 8 + 20 + 16,
7376 .iv = "\xe9\x6e\x8c\x08\xab\x46\x57\x63"
7377 "\xfd\x09\x8d\x45\xdd\x3f\xf8\x93",
7378 .assoc = "\x00\x00\x43\x21\x00\x00\x00\x01",
7379 .alen = 8,
7380 .input = "\x08\x00\x0e\xbd\xa7\x0a\x00\x00"
7381 "\x8e\x9c\x08\x3d\xb9\x5b\x07\x00"
7382 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7383 "\x10\x11\x12\x13\x14\x15\x16\x17"
7384 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
7385 "\x20\x21\x22\x23\x24\x25\x26\x27"
7386 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7387 "\x30\x31\x32\x33\x34\x35\x36\x37"
7388 "\x01\x02\x03\x04\x05\x06\x07\x08"
7389 "\x09\x0a\x0b\x0c\x0d\x0e\x0e\x01",
7390 .ilen = 80,
7391 .result = "\xf6\x63\xc2\x5d\x32\x5c\x18\xc6"
7392 "\xa9\x45\x3e\x19\x4e\x12\x08\x49"
7393 "\xa4\x87\x0b\x66\xcc\x6b\x99\x65"
7394 "\x33\x00\x13\xb4\x89\x8d\xc8\x56"
7395 "\xa4\x69\x9e\x52\x3a\x55\xdb\x08"
7396 "\x0b\x59\xec\x3a\x8e\x4b\x7e\x52"
7397 "\x77\x5b\x07\xd1\xdb\x34\xed\x9c"
7398 "\x53\x8a\xb5\x0c\x55\x1b\x87\x4a"
7399 "\xa2\x69\xad\xd0\x47\xad\x2d\x59"
7400 "\x13\xac\x19\xb7\xcf\xba\xd4\xa6"
7401 "\x58\xc6\x84\x75\xe4\xe9\x6b\x0c"
7402 "\xe1\xc5\x0b\x73\x4d\x82\x55\xa8"
7403 "\x85\xe1\x59\xf7",
7404 .rlen = 80 + 20,
7405 }, { /* NIST SP800-38A F.2.3 CBC-AES192.Encrypt */
7406#ifdef __LITTLE_ENDIAN
7407 .key = "\x08\x00" /* rta length */
7408 "\x01\x00" /* rta type */
7409#else
7410 .key = "\x00\x08" /* rta length */
7411 "\x00\x01" /* rta type */
7412#endif
7413 "\x00\x00\x00\x18" /* enc key length */
7414 "\x11\x22\x33\x44\x55\x66\x77\x88"
7415 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7416 "\x22\x33\x44\x55"
7417 "\x8e\x73\xb0\xf7\xda\x0e\x64\x52"
7418 "\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
7419 "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b",
7420 .klen = 8 + 20 + 24,
7421 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
7422 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
7423 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
7424 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
7425 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
7426 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
7427 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
7428 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
7429 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
7430 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
7431 .ilen = 64,
7432 .result = "\x4f\x02\x1d\xb2\x43\xbc\x63\x3d"
7433 "\x71\x78\x18\x3a\x9f\xa0\x71\xe8"
7434 "\xb4\xd9\xad\xa9\xad\x7d\xed\xf4"
7435 "\xe5\xe7\x38\x76\x3f\x69\x14\x5a"
7436 "\x57\x1b\x24\x20\x12\xfb\x7a\xe0"
7437 "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0"
7438 "\x08\xb0\xe2\x79\x88\x59\x88\x81"
7439 "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd"
7440 "\x73\xe3\x19\x3f\x8b\xc9\xc6\xf4"
7441 "\x5a\xf1\x5b\xa8\x98\x07\xc5\x36"
7442 "\x47\x4c\xfc\x36",
7443 .rlen = 64 + 20,
7444 }, { /* NIST SP800-38A F.2.5 CBC-AES256.Encrypt */
7445#ifdef __LITTLE_ENDIAN
7446 .key = "\x08\x00" /* rta length */
7447 "\x01\x00" /* rta type */
7448#else
7449 .key = "\x00\x08" /* rta length */
7450 "\x00\x01" /* rta type */
7451#endif
7452 "\x00\x00\x00\x20" /* enc key length */
7453 "\x11\x22\x33\x44\x55\x66\x77\x88"
7454 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7455 "\x22\x33\x44\x55"
7456 "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
7457 "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
7458 "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
7459 "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
7460 .klen = 8 + 20 + 32,
7461 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
7462 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
7463 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
7464 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
7465 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
7466 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
7467 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
7468 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
7469 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
7470 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
7471 .ilen = 64,
7472 .result = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba"
7473 "\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6"
7474 "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d"
7475 "\x67\x9f\x77\x7b\xc6\x70\x2c\x7d"
7476 "\x39\xf2\x33\x69\xa9\xd9\xba\xcf"
7477 "\xa5\x30\xe2\x63\x04\x23\x14\x61"
7478 "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc"
7479 "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b"
7480 "\xa3\xe8\x9b\x17\xe3\xf4\x7f\xde"
7481 "\x1b\x9f\xc6\x81\x26\x43\x4a\x87"
7482 "\x51\xee\xd6\x4e",
7483 .rlen = 64 + 20,
7484 },
7485};
7486
7487static struct aead_testvec hmac_sha256_aes_cbc_enc_tv_template[] = {
7488 { /* RFC 3602 Case 1 */
7489#ifdef __LITTLE_ENDIAN
7490 .key = "\x08\x00" /* rta length */
7491 "\x01\x00" /* rta type */
7492#else
7493 .key = "\x00\x08" /* rta length */
7494 "\x00\x01" /* rta type */
7495#endif
7496 "\x00\x00\x00\x10" /* enc key length */
7497 "\x00\x00\x00\x00\x00\x00\x00\x00"
7498 "\x00\x00\x00\x00\x00\x00\x00\x00"
7499 "\x00\x00\x00\x00\x00\x00\x00\x00"
7500 "\x00\x00\x00\x00\x00\x00\x00\x00"
7501 "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
7502 "\x51\x2e\x03\xd5\x34\x12\x00\x06",
7503 .klen = 8 + 32 + 16,
7504 .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
7505 "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
7506 .input = "Single block msg",
7507 .ilen = 16,
7508 .result = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
7509 "\x27\x08\x94\x2d\xbe\x77\x18\x1a"
7510 "\xcc\xde\x2d\x6a\xae\xf1\x0b\xcc"
7511 "\x38\x06\x38\x51\xb4\xb8\xf3\x5b"
7512 "\x5c\x34\xa6\xa3\x6e\x0b\x05\xe5"
7513 "\x6a\x6d\x44\xaa\x26\xa8\x44\xa5",
7514 .rlen = 16 + 32,
7515 }, { /* RFC 3602 Case 2 */
7516#ifdef __LITTLE_ENDIAN
7517 .key = "\x08\x00" /* rta length */
7518 "\x01\x00" /* rta type */
7519#else
7520 .key = "\x00\x08" /* rta length */
7521 "\x00\x01" /* rta type */
7522#endif
7523 "\x00\x00\x00\x10" /* enc key length */
7524 "\x20\x21\x22\x23\x24\x25\x26\x27"
7525 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7526 "\x30\x31\x32\x33\x34\x35\x36\x37"
7527 "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
7528 "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
7529 "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
7530 .klen = 8 + 32 + 16,
7531 .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
7532 "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
7533 .input = "\x00\x01\x02\x03\x04\x05\x06\x07"
7534 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7535 "\x10\x11\x12\x13\x14\x15\x16\x17"
7536 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
7537 .ilen = 32,
7538 .result = "\xd2\x96\xcd\x94\xc2\xcc\xcf\x8a"
7539 "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a"
7540 "\x75\x86\x60\x2d\x25\x3c\xff\xf9"
7541 "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1"
7542 "\xf5\x33\x53\xf3\x68\x85\x2a\x99"
7543 "\x0e\x06\x58\x8f\xba\xf6\x06\xda"
7544 "\x49\x69\x0d\x5b\xd4\x36\x06\x62"
7545 "\x35\x5e\x54\x58\x53\x4d\xdf\xbf",
7546 .rlen = 32 + 32,
7547 }, { /* RFC 3602 Case 3 */
7548#ifdef __LITTLE_ENDIAN
7549 .key = "\x08\x00" /* rta length */
7550 "\x01\x00" /* rta type */
7551#else
7552 .key = "\x00\x08" /* rta length */
7553 "\x00\x01" /* rta type */
7554#endif
7555 "\x00\x00\x00\x10" /* enc key length */
7556 "\x11\x22\x33\x44\x55\x66\x77\x88"
7557 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7558 "\x22\x33\x44\x55\x66\x77\x88\x99"
7559 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7560 "\x6c\x3e\xa0\x47\x76\x30\xce\x21"
7561 "\xa2\xce\x33\x4a\xa7\x46\xc2\xcd",
7562 .klen = 8 + 32 + 16,
7563 .iv = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
7564 "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
7565 .input = "This is a 48-byte message (exactly 3 AES blocks)",
7566 .ilen = 48,
7567 .result = "\xd0\xa0\x2b\x38\x36\x45\x17\x53"
7568 "\xd4\x93\x66\x5d\x33\xf0\xe8\x86"
7569 "\x2d\xea\x54\xcd\xb2\x93\xab\xc7"
7570 "\x50\x69\x39\x27\x67\x72\xf8\xd5"
7571 "\x02\x1c\x19\x21\x6b\xad\x52\x5c"
7572 "\x85\x79\x69\x5d\x83\xba\x26\x84"
7573 "\x68\xb9\x3e\x90\x38\xa0\x88\x01"
7574 "\xe7\xc6\xce\x10\x31\x2f\x9b\x1d"
7575 "\x24\x78\xfb\xbe\x02\xe0\x4f\x40"
7576 "\x10\xbd\xaa\xc6\xa7\x79\xe0\x1a",
7577 .rlen = 48 + 32,
7578 }, { /* RFC 3602 Case 4 */
7579#ifdef __LITTLE_ENDIAN
7580 .key = "\x08\x00" /* rta length */
7581 "\x01\x00" /* rta type */
7582#else
7583 .key = "\x00\x08" /* rta length */
7584 "\x00\x01" /* rta type */
7585#endif
7586 "\x00\x00\x00\x10" /* enc key length */
7587 "\x11\x22\x33\x44\x55\x66\x77\x88"
7588 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7589 "\x22\x33\x44\x55\x66\x77\x88\x99"
7590 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7591 "\x56\xe4\x7a\x38\xc5\x59\x89\x74"
7592 "\xbc\x46\x90\x3d\xba\x29\x03\x49",
7593 .klen = 8 + 32 + 16,
7594 .iv = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
7595 "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
7596 .input = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
7597 "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
7598 "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
7599 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
7600 "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
7601 "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
7602 "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
7603 "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf",
7604 .ilen = 64,
7605 .result = "\xc3\x0e\x32\xff\xed\xc0\x77\x4e"
7606 "\x6a\xff\x6a\xf0\x86\x9f\x71\xaa"
7607 "\x0f\x3a\xf0\x7a\x9a\x31\xa9\xc6"
7608 "\x84\xdb\x20\x7e\xb0\xef\x8e\x4e"
7609 "\x35\x90\x7a\xa6\x32\xc3\xff\xdf"
7610 "\x86\x8b\xb7\xb2\x9d\x3d\x46\xad"
7611 "\x83\xce\x9f\x9a\x10\x2e\xe9\x9d"
7612 "\x49\xa5\x3e\x87\xf4\xc3\xda\x55"
7613 "\x7a\x1b\xd4\x3c\xdb\x17\x95\xe2"
7614 "\xe0\x93\xec\xc9\x9f\xf7\xce\xd8"
7615 "\x3f\x54\xe2\x49\x39\xe3\x71\x25"
7616 "\x2b\x6c\xe9\x5d\xec\xec\x2b\x64",
7617 .rlen = 64 + 32,
7618 }, { /* RFC 3602 Case 5 */
7619#ifdef __LITTLE_ENDIAN
7620 .key = "\x08\x00" /* rta length */
7621 "\x01\x00" /* rta type */
7622#else
7623 .key = "\x00\x08" /* rta length */
7624 "\x00\x01" /* rta type */
7625#endif
7626 "\x00\x00\x00\x10" /* enc key length */
7627 "\x11\x22\x33\x44\x55\x66\x77\x88"
7628 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7629 "\x22\x33\x44\x55\x66\x77\x88\x99"
7630 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7631 "\x90\xd3\x82\xb4\x10\xee\xba\x7a"
7632 "\xd9\x38\xc4\x6c\xec\x1a\x82\xbf",
7633 .klen = 8 + 32 + 16,
7634 .iv = "\xe9\x6e\x8c\x08\xab\x46\x57\x63"
7635 "\xfd\x09\x8d\x45\xdd\x3f\xf8\x93",
7636 .assoc = "\x00\x00\x43\x21\x00\x00\x00\x01",
7637 .alen = 8,
7638 .input = "\x08\x00\x0e\xbd\xa7\x0a\x00\x00"
7639 "\x8e\x9c\x08\x3d\xb9\x5b\x07\x00"
7640 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7641 "\x10\x11\x12\x13\x14\x15\x16\x17"
7642 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
7643 "\x20\x21\x22\x23\x24\x25\x26\x27"
7644 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7645 "\x30\x31\x32\x33\x34\x35\x36\x37"
7646 "\x01\x02\x03\x04\x05\x06\x07\x08"
7647 "\x09\x0a\x0b\x0c\x0d\x0e\x0e\x01",
7648 .ilen = 80,
7649 .result = "\xf6\x63\xc2\x5d\x32\x5c\x18\xc6"
7650 "\xa9\x45\x3e\x19\x4e\x12\x08\x49"
7651 "\xa4\x87\x0b\x66\xcc\x6b\x99\x65"
7652 "\x33\x00\x13\xb4\x89\x8d\xc8\x56"
7653 "\xa4\x69\x9e\x52\x3a\x55\xdb\x08"
7654 "\x0b\x59\xec\x3a\x8e\x4b\x7e\x52"
7655 "\x77\x5b\x07\xd1\xdb\x34\xed\x9c"
7656 "\x53\x8a\xb5\x0c\x55\x1b\x87\x4a"
7657 "\xa2\x69\xad\xd0\x47\xad\x2d\x59"
7658 "\x13\xac\x19\xb7\xcf\xba\xd4\xa6"
7659 "\xbb\xd4\x0f\xbe\xa3\x3b\x4c\xb8"
7660 "\x3a\xd2\xe1\x03\x86\xa5\x59\xb7"
7661 "\x73\xc3\x46\x20\x2c\xb1\xef\x68"
7662 "\xbb\x8a\x32\x7e\x12\x8c\x69\xcf",
7663 .rlen = 80 + 32,
7664 }, { /* NIST SP800-38A F.2.3 CBC-AES192.Encrypt */
7665#ifdef __LITTLE_ENDIAN
7666 .key = "\x08\x00" /* rta length */
7667 "\x01\x00" /* rta type */
7668#else
7669 .key = "\x00\x08" /* rta length */
7670 "\x00\x01" /* rta type */
7671#endif
7672 "\x00\x00\x00\x18" /* enc key length */
7673 "\x11\x22\x33\x44\x55\x66\x77\x88"
7674 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7675 "\x22\x33\x44\x55\x66\x77\x88\x99"
7676 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7677 "\x8e\x73\xb0\xf7\xda\x0e\x64\x52"
7678 "\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
7679 "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b",
7680 .klen = 8 + 32 + 24,
7681 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
7682 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
7683 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
7684 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
7685 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
7686 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
7687 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
7688 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
7689 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
7690 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
7691 .ilen = 64,
7692 .result = "\x4f\x02\x1d\xb2\x43\xbc\x63\x3d"
7693 "\x71\x78\x18\x3a\x9f\xa0\x71\xe8"
7694 "\xb4\xd9\xad\xa9\xad\x7d\xed\xf4"
7695 "\xe5\xe7\x38\x76\x3f\x69\x14\x5a"
7696 "\x57\x1b\x24\x20\x12\xfb\x7a\xe0"
7697 "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0"
7698 "\x08\xb0\xe2\x79\x88\x59\x88\x81"
7699 "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd"
7700 "\x2f\xee\x5f\xdb\x66\xfe\x79\x09"
7701 "\x61\x81\x31\xea\x5b\x3d\x8e\xfb"
7702 "\xca\x71\x85\x93\xf7\x85\x55\x8b"
7703 "\x7a\xe4\x94\xca\x8b\xba\x19\x33",
7704 .rlen = 64 + 32,
7705 }, { /* NIST SP800-38A F.2.5 CBC-AES256.Encrypt */
7706#ifdef __LITTLE_ENDIAN
7707 .key = "\x08\x00" /* rta length */
7708 "\x01\x00" /* rta type */
7709#else
7710 .key = "\x00\x08" /* rta length */
7711 "\x00\x01" /* rta type */
7712#endif
7713 "\x00\x00\x00\x20" /* enc key length */
7714 "\x11\x22\x33\x44\x55\x66\x77\x88"
7715 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7716 "\x22\x33\x44\x55\x66\x77\x88\x99"
7717 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7718 "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
7719 "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
7720 "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
7721 "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
7722 .klen = 8 + 32 + 32,
7723 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
7724 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
7725 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
7726 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
7727 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
7728 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
7729 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
7730 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
7731 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
7732 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
7733 .ilen = 64,
7734 .result = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba"
7735 "\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6"
7736 "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d"
7737 "\x67\x9f\x77\x7b\xc6\x70\x2c\x7d"
7738 "\x39\xf2\x33\x69\xa9\xd9\xba\xcf"
7739 "\xa5\x30\xe2\x63\x04\x23\x14\x61"
7740 "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc"
7741 "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b"
7742 "\x24\x29\xed\xc2\x31\x49\xdb\xb1"
7743 "\x8f\x74\xbd\x17\x92\x03\xbe\x8f"
7744 "\xf3\x61\xde\x1c\xe9\xdb\xcd\xd0"
7745 "\xcc\xce\xe9\x85\x57\xcf\x6f\x5f",
7746 .rlen = 64 + 32,
7747 },
7748};
7749
7750static struct aead_testvec hmac_sha512_aes_cbc_enc_tv_template[] = {
7751 { /* RFC 3602 Case 1 */
7752#ifdef __LITTLE_ENDIAN
7753 .key = "\x08\x00" /* rta length */
7754 "\x01\x00" /* rta type */
7755#else
7756 .key = "\x00\x08" /* rta length */
7757 "\x00\x01" /* rta type */
7758#endif
7759 "\x00\x00\x00\x10" /* enc key length */
7760 "\x00\x00\x00\x00\x00\x00\x00\x00"
7761 "\x00\x00\x00\x00\x00\x00\x00\x00"
7762 "\x00\x00\x00\x00\x00\x00\x00\x00"
7763 "\x00\x00\x00\x00\x00\x00\x00\x00"
7764 "\x00\x00\x00\x00\x00\x00\x00\x00"
7765 "\x00\x00\x00\x00\x00\x00\x00\x00"
7766 "\x00\x00\x00\x00\x00\x00\x00\x00"
7767 "\x00\x00\x00\x00\x00\x00\x00\x00"
7768 "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
7769 "\x51\x2e\x03\xd5\x34\x12\x00\x06",
7770 .klen = 8 + 64 + 16,
7771 .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
7772 "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
7773 .input = "Single block msg",
7774 .ilen = 16,
7775 .result = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
7776 "\x27\x08\x94\x2d\xbe\x77\x18\x1a"
7777 "\x3f\xdc\xad\x90\x03\x63\x5e\x68"
7778 "\xc3\x13\xdd\xa4\x5c\x4d\x54\xa7"
7779 "\x19\x6e\x03\x75\x2b\xa1\x62\xce"
7780 "\xe0\xc6\x96\x75\xb2\x14\xca\x96"
7781 "\xec\xbd\x50\x08\x07\x64\x1a\x49"
7782 "\xe8\x9a\x7c\x06\x3d\xcb\xff\xb2"
7783 "\xfa\x20\x89\xdd\x9c\xac\x9e\x16"
7784 "\x18\x8a\xa0\x6d\x01\x6c\xa3\x3a",
7785 .rlen = 16 + 64,
7786 }, { /* RFC 3602 Case 2 */
7787#ifdef __LITTLE_ENDIAN
7788 .key = "\x08\x00" /* rta length */
7789 "\x01\x00" /* rta type */
7790#else
7791 .key = "\x00\x08" /* rta length */
7792 "\x00\x01" /* rta type */
7793#endif
7794 "\x00\x00\x00\x10" /* enc key length */
7795 "\x20\x21\x22\x23\x24\x25\x26\x27"
7796 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7797 "\x30\x31\x32\x33\x34\x35\x36\x37"
7798 "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
7799 "\x40\x41\x42\x43\x44\x45\x46\x47"
7800 "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
7801 "\x50\x51\x52\x53\x54\x55\x56\x57"
7802 "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
7803 "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
7804 "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
7805 .klen = 8 + 64 + 16,
7806 .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
7807 "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
7808 .input = "\x00\x01\x02\x03\x04\x05\x06\x07"
7809 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7810 "\x10\x11\x12\x13\x14\x15\x16\x17"
7811 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
7812 .ilen = 32,
7813 .result = "\xd2\x96\xcd\x94\xc2\xcc\xcf\x8a"
7814 "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a"
7815 "\x75\x86\x60\x2d\x25\x3c\xff\xf9"
7816 "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1"
7817 "\xda\xb2\x0c\xb2\x26\xc4\xd5\xef"
7818 "\x60\x38\xa4\x5e\x9a\x8c\x1b\x41"
7819 "\x03\x9f\xc4\x64\x7f\x01\x42\x9b"
7820 "\x0e\x1b\xea\xef\xbc\x88\x19\x5e"
7821 "\x31\x7e\xc2\x95\xfc\x09\x32\x0a"
7822 "\x46\x32\x7c\x41\x9c\x59\x3e\xe9"
7823 "\x8f\x9f\xd4\x31\xd6\x22\xbd\xf8"
7824 "\xf7\x0a\x94\xe5\xa9\xc3\xf6\x9d",
7825 .rlen = 32 + 64,
7826 }, { /* RFC 3602 Case 3 */
7827#ifdef __LITTLE_ENDIAN
7828 .key = "\x08\x00" /* rta length */
7829 "\x01\x00" /* rta type */
7830#else
7831 .key = "\x00\x08" /* rta length */
7832 "\x00\x01" /* rta type */
7833#endif
7834 "\x00\x00\x00\x10" /* enc key length */
7835 "\x11\x22\x33\x44\x55\x66\x77\x88"
7836 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7837 "\x22\x33\x44\x55\x66\x77\x88\x99"
7838 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7839 "\x33\x44\x55\x66\x77\x88\x99\xaa"
7840 "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
7841 "\x44\x55\x66\x77\x88\x99\xaa\xbb"
7842 "\xcc\xdd\xee\xff\x11\x22\x33\x44"
7843 "\x6c\x3e\xa0\x47\x76\x30\xce\x21"
7844 "\xa2\xce\x33\x4a\xa7\x46\xc2\xcd",
7845 .klen = 8 + 64 + 16,
7846 .iv = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
7847 "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
7848 .input = "This is a 48-byte message (exactly 3 AES blocks)",
7849 .ilen = 48,
7850 .result = "\xd0\xa0\x2b\x38\x36\x45\x17\x53"
7851 "\xd4\x93\x66\x5d\x33\xf0\xe8\x86"
7852 "\x2d\xea\x54\xcd\xb2\x93\xab\xc7"
7853 "\x50\x69\x39\x27\x67\x72\xf8\xd5"
7854 "\x02\x1c\x19\x21\x6b\xad\x52\x5c"
7855 "\x85\x79\x69\x5d\x83\xba\x26\x84"
7856 "\x64\x19\x17\x5b\x57\xe0\x21\x0f"
7857 "\xca\xdb\xa1\x26\x38\x14\xa2\x69"
7858 "\xdb\x54\x67\x80\xc0\x54\xe0\xfd"
7859 "\x3e\x91\xe7\x91\x7f\x13\x38\x44"
7860 "\xb7\xb1\xd6\xc8\x7d\x48\x8d\x41"
7861 "\x08\xea\x29\x6c\x74\x67\x3f\xb0"
7862 "\xac\x7f\x5c\x1d\xf5\xee\x22\x66"
7863 "\x27\xa6\xb6\x13\xba\xba\xf0\xc2",
7864 .rlen = 48 + 64,
7865 }, { /* RFC 3602 Case 4 */
7866#ifdef __LITTLE_ENDIAN
7867 .key = "\x08\x00" /* rta length */
7868 "\x01\x00" /* rta type */
7869#else
7870 .key = "\x00\x08" /* rta length */
7871 "\x00\x01" /* rta type */
7872#endif
7873 "\x00\x00\x00\x10" /* enc key length */
7874 "\x11\x22\x33\x44\x55\x66\x77\x88"
7875 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7876 "\x22\x33\x44\x55\x66\x77\x88\x99"
7877 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7878 "\x33\x44\x55\x66\x77\x88\x99\xaa"
7879 "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
7880 "\x44\x55\x66\x77\x88\x99\xaa\xbb"
7881 "\xcc\xdd\xee\xff\x11\x22\x33\x44"
7882 "\x56\xe4\x7a\x38\xc5\x59\x89\x74"
7883 "\xbc\x46\x90\x3d\xba\x29\x03\x49",
7884 .klen = 8 + 64 + 16,
7885 .iv = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
7886 "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
7887 .input = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
7888 "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
7889 "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
7890 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
7891 "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
7892 "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
7893 "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
7894 "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf",
7895 .ilen = 64,
7896 .result = "\xc3\x0e\x32\xff\xed\xc0\x77\x4e"
7897 "\x6a\xff\x6a\xf0\x86\x9f\x71\xaa"
7898 "\x0f\x3a\xf0\x7a\x9a\x31\xa9\xc6"
7899 "\x84\xdb\x20\x7e\xb0\xef\x8e\x4e"
7900 "\x35\x90\x7a\xa6\x32\xc3\xff\xdf"
7901 "\x86\x8b\xb7\xb2\x9d\x3d\x46\xad"
7902 "\x83\xce\x9f\x9a\x10\x2e\xe9\x9d"
7903 "\x49\xa5\x3e\x87\xf4\xc3\xda\x55"
7904 "\x82\xcd\x42\x28\x21\x20\x15\xcc"
7905 "\xb7\xb2\x48\x40\xc7\x64\x41\x3a"
7906 "\x61\x32\x82\x85\xcf\x27\xed\xb4"
7907 "\xe4\x68\xa2\xf5\x79\x26\x27\xb2"
7908 "\x51\x67\x6a\xc4\xf0\x66\x55\x50"
7909 "\xbc\x6f\xed\xd5\x8d\xde\x23\x7c"
7910 "\x62\x98\x14\xd7\x2f\x37\x8d\xdf"
7911 "\xf4\x33\x80\xeb\x8e\xb4\xa4\xda",
7912 .rlen = 64 + 64,
7913 }, { /* RFC 3602 Case 5 */
7914#ifdef __LITTLE_ENDIAN
7915 .key = "\x08\x00" /* rta length */
7916 "\x01\x00" /* rta type */
7917#else
7918 .key = "\x00\x08" /* rta length */
7919 "\x00\x01" /* rta type */
7920#endif
7921 "\x00\x00\x00\x10" /* enc key length */
7922 "\x11\x22\x33\x44\x55\x66\x77\x88"
7923 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7924 "\x22\x33\x44\x55\x66\x77\x88\x99"
7925 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7926 "\x33\x44\x55\x66\x77\x88\x99\xaa"
7927 "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
7928 "\x44\x55\x66\x77\x88\x99\xaa\xbb"
7929 "\xcc\xdd\xee\xff\x11\x22\x33\x44"
7930 "\x90\xd3\x82\xb4\x10\xee\xba\x7a"
7931 "\xd9\x38\xc4\x6c\xec\x1a\x82\xbf",
7932 .klen = 8 + 64 + 16,
7933 .iv = "\xe9\x6e\x8c\x08\xab\x46\x57\x63"
7934 "\xfd\x09\x8d\x45\xdd\x3f\xf8\x93",
7935 .assoc = "\x00\x00\x43\x21\x00\x00\x00\x01",
7936 .alen = 8,
7937 .input = "\x08\x00\x0e\xbd\xa7\x0a\x00\x00"
7938 "\x8e\x9c\x08\x3d\xb9\x5b\x07\x00"
7939 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7940 "\x10\x11\x12\x13\x14\x15\x16\x17"
7941 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
7942 "\x20\x21\x22\x23\x24\x25\x26\x27"
7943 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7944 "\x30\x31\x32\x33\x34\x35\x36\x37"
7945 "\x01\x02\x03\x04\x05\x06\x07\x08"
7946 "\x09\x0a\x0b\x0c\x0d\x0e\x0e\x01",
7947 .ilen = 80,
7948 .result = "\xf6\x63\xc2\x5d\x32\x5c\x18\xc6"
7949 "\xa9\x45\x3e\x19\x4e\x12\x08\x49"
7950 "\xa4\x87\x0b\x66\xcc\x6b\x99\x65"
7951 "\x33\x00\x13\xb4\x89\x8d\xc8\x56"
7952 "\xa4\x69\x9e\x52\x3a\x55\xdb\x08"
7953 "\x0b\x59\xec\x3a\x8e\x4b\x7e\x52"
7954 "\x77\x5b\x07\xd1\xdb\x34\xed\x9c"
7955 "\x53\x8a\xb5\x0c\x55\x1b\x87\x4a"
7956 "\xa2\x69\xad\xd0\x47\xad\x2d\x59"
7957 "\x13\xac\x19\xb7\xcf\xba\xd4\xa6"
7958 "\x74\x84\x94\xe2\xd7\x7a\xf9\xbf"
7959 "\x00\x8a\xa2\xd5\xb7\xf3\x60\xcf"
7960 "\xa0\x47\xdf\x4e\x09\xf4\xb1\x7f"
7961 "\x14\xd9\x3d\x53\x8e\x12\xb3\x00"
7962 "\x4c\x0a\x4e\x32\x40\x43\x88\xce"
7963 "\x92\x26\xc1\x76\x20\x11\xeb\xba"
7964 "\x62\x4f\x9a\x62\x25\xc3\x75\x80"
7965 "\xb7\x0a\x17\xf5\xd7\x94\xb4\x14",
7966 .rlen = 80 + 64,
7967 }, { /* NIST SP800-38A F.2.3 CBC-AES192.Encrypt */
7968#ifdef __LITTLE_ENDIAN
7969 .key = "\x08\x00" /* rta length */
7970 "\x01\x00" /* rta type */
7971#else
7972 .key = "\x00\x08" /* rta length */
7973 "\x00\x01" /* rta type */
7974#endif
7975 "\x00\x00\x00\x18" /* enc key length */
7976 "\x11\x22\x33\x44\x55\x66\x77\x88"
7977 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7978 "\x22\x33\x44\x55\x66\x77\x88\x99"
7979 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7980 "\x33\x44\x55\x66\x77\x88\x99\xaa"
7981 "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
7982 "\x44\x55\x66\x77\x88\x99\xaa\xbb"
7983 "\xcc\xdd\xee\xff\x11\x22\x33\x44"
7984 "\x8e\x73\xb0\xf7\xda\x0e\x64\x52"
7985 "\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
7986 "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b",
7987 .klen = 8 + 64 + 24,
7988 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
7989 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
7990 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
7991 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
7992 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
7993 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
7994 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
7995 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
7996 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
7997 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
7998 .ilen = 64,
7999 .result = "\x4f\x02\x1d\xb2\x43\xbc\x63\x3d"
8000 "\x71\x78\x18\x3a\x9f\xa0\x71\xe8"
8001 "\xb4\xd9\xad\xa9\xad\x7d\xed\xf4"
8002 "\xe5\xe7\x38\x76\x3f\x69\x14\x5a"
8003 "\x57\x1b\x24\x20\x12\xfb\x7a\xe0"
8004 "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0"
8005 "\x08\xb0\xe2\x79\x88\x59\x88\x81"
8006 "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd"
8007 "\x77\x4b\x69\x9d\x3a\x0d\xb4\x99"
8008 "\x8f\xc6\x8e\x0e\x72\x58\xe3\x56"
8009 "\xbb\x21\xd2\x7d\x93\x11\x17\x91"
8010 "\xc4\x83\xfd\x0a\xea\x71\xfe\x77"
8011 "\xae\x6f\x0a\xa5\xf0\xcf\xe1\x35"
8012 "\xba\x03\xd5\x32\xfa\x5f\x41\x58"
8013 "\x8d\x43\x98\xa7\x94\x16\x07\x02"
8014 "\x0f\xb6\x81\x50\x28\x95\x2e\x75",
8015 .rlen = 64 + 64,
8016 }, { /* NIST SP800-38A F.2.5 CBC-AES256.Encrypt */
8017#ifdef __LITTLE_ENDIAN
8018 .key = "\x08\x00" /* rta length */
8019 "\x01\x00" /* rta type */
8020#else
8021 .key = "\x00\x08" /* rta length */
8022 "\x00\x01" /* rta type */
8023#endif
8024 "\x00\x00\x00\x20" /* enc key length */
8025 "\x11\x22\x33\x44\x55\x66\x77\x88"
8026 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
8027 "\x22\x33\x44\x55\x66\x77\x88\x99"
8028 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
8029 "\x33\x44\x55\x66\x77\x88\x99\xaa"
8030 "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
8031 "\x44\x55\x66\x77\x88\x99\xaa\xbb"
8032 "\xcc\xdd\xee\xff\x11\x22\x33\x44"
8033 "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
8034 "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
8035 "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
8036 "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
8037 .klen = 8 + 64 + 32,
8038 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
8039 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
8040 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
8041 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
8042 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
8043 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
8044 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
8045 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
8046 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
8047 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
8048 .ilen = 64,
8049 .result = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba"
8050 "\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6"
8051 "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d"
8052 "\x67\x9f\x77\x7b\xc6\x70\x2c\x7d"
8053 "\x39\xf2\x33\x69\xa9\xd9\xba\xcf"
8054 "\xa5\x30\xe2\x63\x04\x23\x14\x61"
8055 "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc"
8056 "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b"
8057 "\xb2\x27\x69\x7f\x45\x64\x79\x2b"
8058 "\xb7\xb8\x4c\xd4\x75\x94\x68\x40"
8059 "\x2a\xea\x91\xc7\x3f\x7c\xed\x7b"
8060 "\x95\x2c\x9b\xa8\xf5\xe5\x52\x8d"
8061 "\x6b\xe1\xae\xf1\x74\xfa\x0d\x0c"
8062 "\xe3\x8d\x64\xc3\x8d\xff\x7c\x8c"
8063 "\xdb\xbf\xa0\xb4\x01\xa2\xa8\xa2"
8064 "\x2c\xb1\x62\x2c\x10\xca\xf1\x21",
8065 .rlen = 64 + 64,
8066 },
8067};
8068
6371static struct cipher_testvec aes_lrw_enc_tv_template[] = { 8069static struct cipher_testvec aes_lrw_enc_tv_template[] = {
6372 /* from http://grouper.ieee.org/groups/1619/email/pdf00017.pdf */ 8070 /* from http://grouper.ieee.org/groups/1619/email/pdf00017.pdf */
6373 { /* LRW-32-AES 1 */ 8071 { /* LRW-32-AES 1 */
@@ -14858,4 +16556,94 @@ static struct hash_testvec crc32c_tv_template[] = {
14858 }, 16556 },
14859}; 16557};
14860 16558
16559/*
16560 * Blakcifn CRC test vectors
16561 */
16562#define BFIN_CRC_TEST_VECTORS 6
16563
16564static struct hash_testvec bfin_crc_tv_template[] = {
16565 {
16566 .psize = 0,
16567 .digest = "\x00\x00\x00\x00",
16568 },
16569 {
16570 .key = "\x87\xa9\xcb\xed",
16571 .ksize = 4,
16572 .psize = 0,
16573 .digest = "\x87\xa9\xcb\xed",
16574 },
16575 {
16576 .key = "\xff\xff\xff\xff",
16577 .ksize = 4,
16578 .plaintext = "\x01\x02\x03\x04\x05\x06\x07\x08"
16579 "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
16580 "\x11\x12\x13\x14\x15\x16\x17\x18"
16581 "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
16582 "\x21\x22\x23\x24\x25\x26\x27\x28",
16583 .psize = 40,
16584 .digest = "\x84\x0c\x8d\xa2",
16585 },
16586 {
16587 .key = "\xff\xff\xff\xff",
16588 .ksize = 4,
16589 .plaintext = "\x01\x02\x03\x04\x05\x06\x07\x08"
16590 "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
16591 "\x11\x12\x13\x14\x15\x16\x17\x18"
16592 "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
16593 "\x21\x22\x23\x24\x25\x26",
16594 .psize = 38,
16595 .digest = "\x8c\x58\xec\xb7",
16596 },
16597 {
16598 .key = "\xff\xff\xff\xff",
16599 .ksize = 4,
16600 .plaintext = "\x01\x02\x03\x04\x05\x06\x07\x08"
16601 "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
16602 "\x11\x12\x13\x14\x15\x16\x17\x18"
16603 "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
16604 "\x21\x22\x23\x24\x25\x26\x27",
16605 .psize = 39,
16606 .digest = "\xdc\x50\x28\x7b",
16607 },
16608 {
16609 .key = "\xff\xff\xff\xff",
16610 .ksize = 4,
16611 .plaintext = "\x01\x02\x03\x04\x05\x06\x07\x08"
16612 "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
16613 "\x11\x12\x13\x14\x15\x16\x17\x18"
16614 "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
16615 "\x21\x22\x23\x24\x25\x26\x27\x28"
16616 "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
16617 "\x31\x32\x33\x34\x35\x36\x37\x38"
16618 "\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
16619 "\x41\x42\x43\x44\x45\x46\x47\x48"
16620 "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50"
16621 "\x51\x52\x53\x54\x55\x56\x57\x58"
16622 "\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
16623 "\x61\x62\x63\x64\x65\x66\x67\x68"
16624 "\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
16625 "\x71\x72\x73\x74\x75\x76\x77\x78"
16626 "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
16627 "\x81\x82\x83\x84\x85\x86\x87\x88"
16628 "\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
16629 "\x91\x92\x93\x94\x95\x96\x97\x98"
16630 "\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0"
16631 "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8"
16632 "\xa9\xaa\xab\xac\xad\xae\xaf\xb0"
16633 "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8"
16634 "\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"
16635 "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8"
16636 "\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"
16637 "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8"
16638 "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"
16639 "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8"
16640 "\xe9\xea\xeb\xec\xed\xee\xef\xf0",
16641 .psize = 240,
16642 .digest = "\x10\x19\x4a\x5c",
16643 .np = 2,
16644 .tap = { 31, 209 }
16645 },
16646
16647};
16648
14861#endif /* _CRYPTO_TESTMGR_H */ 16649#endif /* _CRYPTO_TESTMGR_H */