aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-07-24 12:05:32 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-07-24 12:05:32 -0400
commita23a334bd547e9462d9ca4a74608519a1e928848 (patch)
treee3d4f4423130f0d74f141c9bbd0c0874690e38b3 /crypto
parenta642285014df03b8f320399d515bf3b779af07ac (diff)
parentacdca31dba86c4f426460aa000d13930a00549b7 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (34 commits) crypto: caam - ablkcipher support crypto: caam - faster aead implementation crypto: caam - structure renaming crypto: caam - shorter names crypto: talitos - don't bad_key in ablkcipher setkey crypto: talitos - remove unused giv from ablkcipher methods crypto: talitos - don't set done notification in hot path crypto: talitos - ensure request ordering within a single tfm crypto: gf128mul - fix call to memset() crypto: s390 - support hardware accelerated SHA-224 crypto: algif_hash - Handle initial af_alg_make_sg error correctly crypto: sha1_generic - use SHA1_BLOCK_SIZE hwrng: ppc4xx - add support for ppc4xx TRNG crypto: crypto4xx - Perform read/modify/write on device control register crypto: caam - fix build warning when DEBUG_FS not configured crypto: arc4 - Fixed coding style issues crypto: crc32c - Fixed coding style issue crypto: omap-sham - do not schedule tasklet if there is no active requests crypto: omap-sham - clear device flags when finishing request crypto: omap-sham - irq handler must not clear error code ...
Diffstat (limited to 'crypto')
-rw-r--r--crypto/Kconfig4
-rw-r--r--crypto/algif_hash.c4
-rw-r--r--crypto/arc4.c15
-rw-r--r--crypto/crc32c.c10
-rw-r--r--crypto/gf128mul.c4
-rw-r--r--crypto/sha1_generic.c11
-rw-r--r--crypto/testmgr.h293
7 files changed, 316 insertions, 25 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 87b22ca9c22..2af81552d65 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -458,7 +458,7 @@ config CRYPTO_WP512
458 458
459config CRYPTO_GHASH_CLMUL_NI_INTEL 459config CRYPTO_GHASH_CLMUL_NI_INTEL
460 tristate "GHASH digest algorithm (CLMUL-NI accelerated)" 460 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
461 depends on (X86 || UML_X86) && 64BIT 461 depends on X86 && 64BIT
462 select CRYPTO_SHASH 462 select CRYPTO_SHASH
463 select CRYPTO_CRYPTD 463 select CRYPTO_CRYPTD
464 help 464 help
@@ -533,7 +533,7 @@ config CRYPTO_AES_X86_64
533 533
534config CRYPTO_AES_NI_INTEL 534config CRYPTO_AES_NI_INTEL
535 tristate "AES cipher algorithms (AES-NI)" 535 tristate "AES cipher algorithms (AES-NI)"
536 depends on (X86 || UML_X86) 536 depends on X86
537 select CRYPTO_AES_X86_64 if 64BIT 537 select CRYPTO_AES_X86_64 if 64BIT
538 select CRYPTO_AES_586 if !64BIT 538 select CRYPTO_AES_586 if !64BIT
539 select CRYPTO_CRYPTD 539 select CRYPTO_CRYPTD
diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c
index 62122a1a2f7..ef5356cd280 100644
--- a/crypto/algif_hash.c
+++ b/crypto/algif_hash.c
@@ -68,8 +68,10 @@ static int hash_sendmsg(struct kiocb *unused, struct socket *sock,
68 int newlen; 68 int newlen;
69 69
70 newlen = af_alg_make_sg(&ctx->sgl, from, len, 0); 70 newlen = af_alg_make_sg(&ctx->sgl, from, len, 0);
71 if (newlen < 0) 71 if (newlen < 0) {
72 err = copied ? 0 : newlen;
72 goto unlock; 73 goto unlock;
74 }
73 75
74 ahash_request_set_crypt(&ctx->req, ctx->sgl.sg, NULL, 76 ahash_request_set_crypt(&ctx->req, ctx->sgl.sg, NULL,
75 newlen); 77 newlen);
diff --git a/crypto/arc4.c b/crypto/arc4.c
index 8be47e13a9e..0d12a96da1d 100644
--- a/crypto/arc4.c
+++ b/crypto/arc4.c
@@ -1,4 +1,4 @@
1/* 1/*
2 * Cryptographic API 2 * Cryptographic API
3 * 3 *
4 * ARC4 Cipher Algorithm 4 * ARC4 Cipher Algorithm
@@ -33,16 +33,15 @@ static int arc4_set_key(struct crypto_tfm *tfm, const u8 *in_key,
33 ctx->x = 1; 33 ctx->x = 1;
34 ctx->y = 0; 34 ctx->y = 0;
35 35
36 for(i = 0; i < 256; i++) 36 for (i = 0; i < 256; i++)
37 ctx->S[i] = i; 37 ctx->S[i] = i;
38 38
39 for(i = 0; i < 256; i++) 39 for (i = 0; i < 256; i++) {
40 {
41 u8 a = ctx->S[i]; 40 u8 a = ctx->S[i];
42 j = (j + in_key[k] + a) & 0xff; 41 j = (j + in_key[k] + a) & 0xff;
43 ctx->S[i] = ctx->S[j]; 42 ctx->S[i] = ctx->S[j];
44 ctx->S[j] = a; 43 ctx->S[j] = a;
45 if(++k >= key_len) 44 if (++k >= key_len)
46 k = 0; 45 k = 0;
47 } 46 }
48 47
@@ -80,9 +79,9 @@ static struct crypto_alg arc4_alg = {
80 .cra_u = { .cipher = { 79 .cra_u = { .cipher = {
81 .cia_min_keysize = ARC4_MIN_KEY_SIZE, 80 .cia_min_keysize = ARC4_MIN_KEY_SIZE,
82 .cia_max_keysize = ARC4_MAX_KEY_SIZE, 81 .cia_max_keysize = ARC4_MAX_KEY_SIZE,
83 .cia_setkey = arc4_set_key, 82 .cia_setkey = arc4_set_key,
84 .cia_encrypt = arc4_crypt, 83 .cia_encrypt = arc4_crypt,
85 .cia_decrypt = arc4_crypt } } 84 .cia_decrypt = arc4_crypt } }
86}; 85};
87 86
88static int __init arc4_init(void) 87static int __init arc4_init(void)
diff --git a/crypto/crc32c.c b/crypto/crc32c.c
index de9e55c2979..3f9ad280105 100644
--- a/crypto/crc32c.c
+++ b/crypto/crc32c.c
@@ -224,11 +224,11 @@ static int crc32c_cra_init(struct crypto_tfm *tfm)
224static struct shash_alg alg = { 224static struct shash_alg alg = {
225 .digestsize = CHKSUM_DIGEST_SIZE, 225 .digestsize = CHKSUM_DIGEST_SIZE,
226 .setkey = chksum_setkey, 226 .setkey = chksum_setkey,
227 .init = chksum_init, 227 .init = chksum_init,
228 .update = chksum_update, 228 .update = chksum_update,
229 .final = chksum_final, 229 .final = chksum_final,
230 .finup = chksum_finup, 230 .finup = chksum_finup,
231 .digest = chksum_digest, 231 .digest = chksum_digest,
232 .descsize = sizeof(struct chksum_desc_ctx), 232 .descsize = sizeof(struct chksum_desc_ctx),
233 .base = { 233 .base = {
234 .cra_name = "crc32c", 234 .cra_name = "crc32c",
diff --git a/crypto/gf128mul.c b/crypto/gf128mul.c
index df35e4ccd07..5276607c72d 100644
--- a/crypto/gf128mul.c
+++ b/crypto/gf128mul.c
@@ -182,7 +182,7 @@ void gf128mul_lle(be128 *r, const be128 *b)
182 for (i = 0; i < 7; ++i) 182 for (i = 0; i < 7; ++i)
183 gf128mul_x_lle(&p[i + 1], &p[i]); 183 gf128mul_x_lle(&p[i + 1], &p[i]);
184 184
185 memset(r, 0, sizeof(r)); 185 memset(r, 0, sizeof(*r));
186 for (i = 0;;) { 186 for (i = 0;;) {
187 u8 ch = ((u8 *)b)[15 - i]; 187 u8 ch = ((u8 *)b)[15 - i];
188 188
@@ -220,7 +220,7 @@ void gf128mul_bbe(be128 *r, const be128 *b)
220 for (i = 0; i < 7; ++i) 220 for (i = 0; i < 7; ++i)
221 gf128mul_x_bbe(&p[i + 1], &p[i]); 221 gf128mul_x_bbe(&p[i + 1], &p[i]);
222 222
223 memset(r, 0, sizeof(r)); 223 memset(r, 0, sizeof(*r));
224 for (i = 0;;) { 224 for (i = 0;;) {
225 u8 ch = ((u8 *)b)[i]; 225 u8 ch = ((u8 *)b)[i];
226 226
diff --git a/crypto/sha1_generic.c b/crypto/sha1_generic.c
index 0416091bf45..00ae60eb925 100644
--- a/crypto/sha1_generic.c
+++ b/crypto/sha1_generic.c
@@ -43,25 +43,26 @@ static int sha1_update(struct shash_desc *desc, const u8 *data,
43 unsigned int partial, done; 43 unsigned int partial, done;
44 const u8 *src; 44 const u8 *src;
45 45
46 partial = sctx->count & 0x3f; 46 partial = sctx->count % SHA1_BLOCK_SIZE;
47 sctx->count += len; 47 sctx->count += len;
48 done = 0; 48 done = 0;
49 src = data; 49 src = data;
50 50
51 if ((partial + len) > 63) { 51 if ((partial + len) >= SHA1_BLOCK_SIZE) {
52 u32 temp[SHA_WORKSPACE_WORDS]; 52 u32 temp[SHA_WORKSPACE_WORDS];
53 53
54 if (partial) { 54 if (partial) {
55 done = -partial; 55 done = -partial;
56 memcpy(sctx->buffer + partial, data, done + 64); 56 memcpy(sctx->buffer + partial, data,
57 done + SHA1_BLOCK_SIZE);
57 src = sctx->buffer; 58 src = sctx->buffer;
58 } 59 }
59 60
60 do { 61 do {
61 sha_transform(sctx->state, src, temp); 62 sha_transform(sctx->state, src, temp);
62 done += 64; 63 done += SHA1_BLOCK_SIZE;
63 src = data + done; 64 src = data + done;
64 } while (done + 63 < len); 65 } while (done + SHA1_BLOCK_SIZE <= len);
65 66
66 memset(temp, 0, sizeof(temp)); 67 memset(temp, 0, sizeof(temp));
67 partial = 0; 68 partial = 0;
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 27e60619538..27adc92842b 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -2976,8 +2976,8 @@ static struct cipher_testvec cast6_dec_tv_template[] = {
2976#define AES_CBC_DEC_TEST_VECTORS 4 2976#define AES_CBC_DEC_TEST_VECTORS 4
2977#define AES_LRW_ENC_TEST_VECTORS 8 2977#define AES_LRW_ENC_TEST_VECTORS 8
2978#define AES_LRW_DEC_TEST_VECTORS 8 2978#define AES_LRW_DEC_TEST_VECTORS 8
2979#define AES_XTS_ENC_TEST_VECTORS 4 2979#define AES_XTS_ENC_TEST_VECTORS 5
2980#define AES_XTS_DEC_TEST_VECTORS 4 2980#define AES_XTS_DEC_TEST_VECTORS 5
2981#define AES_CTR_ENC_TEST_VECTORS 3 2981#define AES_CTR_ENC_TEST_VECTORS 3
2982#define AES_CTR_DEC_TEST_VECTORS 3 2982#define AES_CTR_DEC_TEST_VECTORS 3
2983#define AES_OFB_ENC_TEST_VECTORS 1 2983#define AES_OFB_ENC_TEST_VECTORS 1
@@ -3926,6 +3926,150 @@ static struct cipher_testvec aes_xts_enc_tv_template[] = {
3926 "\x0a\x28\x2d\xf9\x20\x14\x7b\xea" 3926 "\x0a\x28\x2d\xf9\x20\x14\x7b\xea"
3927 "\xbe\x42\x1e\xe5\x31\x9d\x05\x68", 3927 "\xbe\x42\x1e\xe5\x31\x9d\x05\x68",
3928 .rlen = 512, 3928 .rlen = 512,
3929 }, { /* XTS-AES 10, XTS-AES-256, data unit 512 bytes */
3930 .key = "\x27\x18\x28\x18\x28\x45\x90\x45"
3931 "\x23\x53\x60\x28\x74\x71\x35\x26"
3932 "\x62\x49\x77\x57\x24\x70\x93\x69"
3933 "\x99\x59\x57\x49\x66\x96\x76\x27"
3934 "\x31\x41\x59\x26\x53\x58\x97\x93"
3935 "\x23\x84\x62\x64\x33\x83\x27\x95"
3936 "\x02\x88\x41\x97\x16\x93\x99\x37"
3937 "\x51\x05\x82\x09\x74\x94\x45\x92",
3938 .klen = 64,
3939 .iv = "\xff\x00\x00\x00\x00\x00\x00\x00"
3940 "\x00\x00\x00\x00\x00\x00\x00\x00",
3941 "\x00\x00\x00\x00\x00\x00\x00\x00",
3942 "\x00\x00\x00\x00\x00\x00\x00\x00",
3943 .input = "\x00\x01\x02\x03\x04\x05\x06\x07"
3944 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
3945 "\x10\x11\x12\x13\x14\x15\x16\x17"
3946 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
3947 "\x20\x21\x22\x23\x24\x25\x26\x27"
3948 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
3949 "\x30\x31\x32\x33\x34\x35\x36\x37"
3950 "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
3951 "\x40\x41\x42\x43\x44\x45\x46\x47"
3952 "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
3953 "\x50\x51\x52\x53\x54\x55\x56\x57"
3954 "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
3955 "\x60\x61\x62\x63\x64\x65\x66\x67"
3956 "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
3957 "\x70\x71\x72\x73\x74\x75\x76\x77"
3958 "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
3959 "\x80\x81\x82\x83\x84\x85\x86\x87"
3960 "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
3961 "\x90\x91\x92\x93\x94\x95\x96\x97"
3962 "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
3963 "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
3964 "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
3965 "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
3966 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
3967 "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
3968 "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
3969 "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
3970 "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
3971 "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
3972 "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
3973 "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
3974 "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
3975 "\x00\x01\x02\x03\x04\x05\x06\x07"
3976 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
3977 "\x10\x11\x12\x13\x14\x15\x16\x17"
3978 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
3979 "\x20\x21\x22\x23\x24\x25\x26\x27"
3980 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
3981 "\x30\x31\x32\x33\x34\x35\x36\x37"
3982 "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
3983 "\x40\x41\x42\x43\x44\x45\x46\x47"
3984 "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
3985 "\x50\x51\x52\x53\x54\x55\x56\x57"
3986 "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
3987 "\x60\x61\x62\x63\x64\x65\x66\x67"
3988 "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
3989 "\x70\x71\x72\x73\x74\x75\x76\x77"
3990 "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
3991 "\x80\x81\x82\x83\x84\x85\x86\x87"
3992 "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
3993 "\x90\x91\x92\x93\x94\x95\x96\x97"
3994 "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
3995 "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
3996 "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
3997 "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
3998 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
3999 "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
4000 "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
4001 "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
4002 "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
4003 "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
4004 "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
4005 "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
4006 "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
4007 .ilen = 512,
4008 .result = "\x1c\x3b\x3a\x10\x2f\x77\x03\x86"
4009 "\xe4\x83\x6c\x99\xe3\x70\xcf\x9b"
4010 "\xea\x00\x80\x3f\x5e\x48\x23\x57"
4011 "\xa4\xae\x12\xd4\x14\xa3\xe6\x3b"
4012 "\x5d\x31\xe2\x76\xf8\xfe\x4a\x8d"
4013 "\x66\xb3\x17\xf9\xac\x68\x3f\x44"
4014 "\x68\x0a\x86\xac\x35\xad\xfc\x33"
4015 "\x45\xbe\xfe\xcb\x4b\xb1\x88\xfd"
4016 "\x57\x76\x92\x6c\x49\xa3\x09\x5e"
4017 "\xb1\x08\xfd\x10\x98\xba\xec\x70"
4018 "\xaa\xa6\x69\x99\xa7\x2a\x82\xf2"
4019 "\x7d\x84\x8b\x21\xd4\xa7\x41\xb0"
4020 "\xc5\xcd\x4d\x5f\xff\x9d\xac\x89"
4021 "\xae\xba\x12\x29\x61\xd0\x3a\x75"
4022 "\x71\x23\xe9\x87\x0f\x8a\xcf\x10"
4023 "\x00\x02\x08\x87\x89\x14\x29\xca"
4024 "\x2a\x3e\x7a\x7d\x7d\xf7\xb1\x03"
4025 "\x55\x16\x5c\x8b\x9a\x6d\x0a\x7d"
4026 "\xe8\xb0\x62\xc4\x50\x0d\xc4\xcd"
4027 "\x12\x0c\x0f\x74\x18\xda\xe3\xd0"
4028 "\xb5\x78\x1c\x34\x80\x3f\xa7\x54"
4029 "\x21\xc7\x90\xdf\xe1\xde\x18\x34"
4030 "\xf2\x80\xd7\x66\x7b\x32\x7f\x6c"
4031 "\x8c\xd7\x55\x7e\x12\xac\x3a\x0f"
4032 "\x93\xec\x05\xc5\x2e\x04\x93\xef"
4033 "\x31\xa1\x2d\x3d\x92\x60\xf7\x9a"
4034 "\x28\x9d\x6a\x37\x9b\xc7\x0c\x50"
4035 "\x84\x14\x73\xd1\xa8\xcc\x81\xec"
4036 "\x58\x3e\x96\x45\xe0\x7b\x8d\x96"
4037 "\x70\x65\x5b\xa5\xbb\xcf\xec\xc6"
4038 "\xdc\x39\x66\x38\x0a\xd8\xfe\xcb"
4039 "\x17\xb6\xba\x02\x46\x9a\x02\x0a"
4040 "\x84\xe1\x8e\x8f\x84\x25\x20\x70"
4041 "\xc1\x3e\x9f\x1f\x28\x9b\xe5\x4f"
4042 "\xbc\x48\x14\x57\x77\x8f\x61\x60"
4043 "\x15\xe1\x32\x7a\x02\xb1\x40\xf1"
4044 "\x50\x5e\xb3\x09\x32\x6d\x68\x37"
4045 "\x8f\x83\x74\x59\x5c\x84\x9d\x84"
4046 "\xf4\xc3\x33\xec\x44\x23\x88\x51"
4047 "\x43\xcb\x47\xbd\x71\xc5\xed\xae"
4048 "\x9b\xe6\x9a\x2f\xfe\xce\xb1\xbe"
4049 "\xc9\xde\x24\x4f\xbe\x15\x99\x2b"
4050 "\x11\xb7\x7c\x04\x0f\x12\xbd\x8f"
4051 "\x6a\x97\x5a\x44\xa0\xf9\x0c\x29"
4052 "\xa9\xab\xc3\xd4\xd8\x93\x92\x72"
4053 "\x84\xc5\x87\x54\xcc\xe2\x94\x52"
4054 "\x9f\x86\x14\xdc\xd2\xab\xa9\x91"
4055 "\x92\x5f\xed\xc4\xae\x74\xff\xac"
4056 "\x6e\x33\x3b\x93\xeb\x4a\xff\x04"
4057 "\x79\xda\x9a\x41\x0e\x44\x50\xe0"
4058 "\xdd\x7a\xe4\xc6\xe2\x91\x09\x00"
4059 "\x57\x5d\xa4\x01\xfc\x07\x05\x9f"
4060 "\x64\x5e\x8b\x7e\x9b\xfd\xef\x33"
4061 "\x94\x30\x54\xff\x84\x01\x14\x93"
4062 "\xc2\x7b\x34\x29\xea\xed\xb4\xed"
4063 "\x53\x76\x44\x1a\x77\xed\x43\x85"
4064 "\x1a\xd7\x7f\x16\xf5\x41\xdf\xd2"
4065 "\x69\xd5\x0d\x6a\x5f\x14\xfb\x0a"
4066 "\xab\x1c\xbb\x4c\x15\x50\xbe\x97"
4067 "\xf7\xab\x40\x66\x19\x3c\x4c\xaa"
4068 "\x77\x3d\xad\x38\x01\x4b\xd2\x09"
4069 "\x2f\xa7\x55\xc8\x24\xbb\x5e\x54"
4070 "\xc4\xf3\x6f\xfd\xa9\xfc\xea\x70"
4071 "\xb9\xc6\xe6\x93\xe1\x48\xc1\x51",
4072 .rlen = 512,
3929 } 4073 }
3930}; 4074};
3931 4075
@@ -4123,6 +4267,151 @@ static struct cipher_testvec aes_xts_dec_tv_template[] = {
4123 "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" 4267 "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
4124 "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", 4268 "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
4125 .rlen = 512, 4269 .rlen = 512,
4270 }, { /* XTS-AES 10, XTS-AES-256, data unit 512 bytes */
4271 .key = "\x27\x18\x28\x18\x28\x45\x90\x45"
4272 "\x23\x53\x60\x28\x74\x71\x35\x26"
4273 "\x62\x49\x77\x57\x24\x70\x93\x69"
4274 "\x99\x59\x57\x49\x66\x96\x76\x27"
4275 "\x31\x41\x59\x26\x53\x58\x97\x93"
4276 "\x23\x84\x62\x64\x33\x83\x27\x95"
4277 "\x02\x88\x41\x97\x16\x93\x99\x37"
4278 "\x51\x05\x82\x09\x74\x94\x45\x92",
4279 .klen = 64,
4280 .iv = "\xff\x00\x00\x00\x00\x00\x00\x00"
4281 "\x00\x00\x00\x00\x00\x00\x00\x00",
4282 "\x00\x00\x00\x00\x00\x00\x00\x00",
4283 "\x00\x00\x00\x00\x00\x00\x00\x00",
4284 .input = "\x1c\x3b\x3a\x10\x2f\x77\x03\x86"
4285 "\xe4\x83\x6c\x99\xe3\x70\xcf\x9b"
4286 "\xea\x00\x80\x3f\x5e\x48\x23\x57"
4287 "\xa4\xae\x12\xd4\x14\xa3\xe6\x3b"
4288 "\x5d\x31\xe2\x76\xf8\xfe\x4a\x8d"
4289 "\x66\xb3\x17\xf9\xac\x68\x3f\x44"
4290 "\x68\x0a\x86\xac\x35\xad\xfc\x33"
4291 "\x45\xbe\xfe\xcb\x4b\xb1\x88\xfd"
4292 "\x57\x76\x92\x6c\x49\xa3\x09\x5e"
4293 "\xb1\x08\xfd\x10\x98\xba\xec\x70"
4294 "\xaa\xa6\x69\x99\xa7\x2a\x82\xf2"
4295 "\x7d\x84\x8b\x21\xd4\xa7\x41\xb0"
4296 "\xc5\xcd\x4d\x5f\xff\x9d\xac\x89"
4297 "\xae\xba\x12\x29\x61\xd0\x3a\x75"
4298 "\x71\x23\xe9\x87\x0f\x8a\xcf\x10"
4299 "\x00\x02\x08\x87\x89\x14\x29\xca"
4300 "\x2a\x3e\x7a\x7d\x7d\xf7\xb1\x03"
4301 "\x55\x16\x5c\x8b\x9a\x6d\x0a\x7d"
4302 "\xe8\xb0\x62\xc4\x50\x0d\xc4\xcd"
4303 "\x12\x0c\x0f\x74\x18\xda\xe3\xd0"
4304 "\xb5\x78\x1c\x34\x80\x3f\xa7\x54"
4305 "\x21\xc7\x90\xdf\xe1\xde\x18\x34"
4306 "\xf2\x80\xd7\x66\x7b\x32\x7f\x6c"
4307 "\x8c\xd7\x55\x7e\x12\xac\x3a\x0f"
4308 "\x93\xec\x05\xc5\x2e\x04\x93\xef"
4309 "\x31\xa1\x2d\x3d\x92\x60\xf7\x9a"
4310 "\x28\x9d\x6a\x37\x9b\xc7\x0c\x50"
4311 "\x84\x14\x73\xd1\xa8\xcc\x81\xec"
4312 "\x58\x3e\x96\x45\xe0\x7b\x8d\x96"
4313 "\x70\x65\x5b\xa5\xbb\xcf\xec\xc6"
4314 "\xdc\x39\x66\x38\x0a\xd8\xfe\xcb"
4315 "\x17\xb6\xba\x02\x46\x9a\x02\x0a"
4316 "\x84\xe1\x8e\x8f\x84\x25\x20\x70"
4317 "\xc1\x3e\x9f\x1f\x28\x9b\xe5\x4f"
4318 "\xbc\x48\x14\x57\x77\x8f\x61\x60"
4319 "\x15\xe1\x32\x7a\x02\xb1\x40\xf1"
4320 "\x50\x5e\xb3\x09\x32\x6d\x68\x37"
4321 "\x8f\x83\x74\x59\x5c\x84\x9d\x84"
4322 "\xf4\xc3\x33\xec\x44\x23\x88\x51"
4323 "\x43\xcb\x47\xbd\x71\xc5\xed\xae"
4324 "\x9b\xe6\x9a\x2f\xfe\xce\xb1\xbe"
4325 "\xc9\xde\x24\x4f\xbe\x15\x99\x2b"
4326 "\x11\xb7\x7c\x04\x0f\x12\xbd\x8f"
4327 "\x6a\x97\x5a\x44\xa0\xf9\x0c\x29"
4328 "\xa9\xab\xc3\xd4\xd8\x93\x92\x72"
4329 "\x84\xc5\x87\x54\xcc\xe2\x94\x52"
4330 "\x9f\x86\x14\xdc\xd2\xab\xa9\x91"
4331 "\x92\x5f\xed\xc4\xae\x74\xff\xac"
4332 "\x6e\x33\x3b\x93\xeb\x4a\xff\x04"
4333 "\x79\xda\x9a\x41\x0e\x44\x50\xe0"
4334 "\xdd\x7a\xe4\xc6\xe2\x91\x09\x00"
4335 "\x57\x5d\xa4\x01\xfc\x07\x05\x9f"
4336 "\x64\x5e\x8b\x7e\x9b\xfd\xef\x33"
4337 "\x94\x30\x54\xff\x84\x01\x14\x93"
4338 "\xc2\x7b\x34\x29\xea\xed\xb4\xed"
4339 "\x53\x76\x44\x1a\x77\xed\x43\x85"
4340 "\x1a\xd7\x7f\x16\xf5\x41\xdf\xd2"
4341 "\x69\xd5\x0d\x6a\x5f\x14\xfb\x0a"
4342 "\xab\x1c\xbb\x4c\x15\x50\xbe\x97"
4343 "\xf7\xab\x40\x66\x19\x3c\x4c\xaa"
4344 "\x77\x3d\xad\x38\x01\x4b\xd2\x09"
4345 "\x2f\xa7\x55\xc8\x24\xbb\x5e\x54"
4346 "\xc4\xf3\x6f\xfd\xa9\xfc\xea\x70"
4347 "\xb9\xc6\xe6\x93\xe1\x48\xc1\x51",
4348 .ilen = 512,
4349 .result = "\x00\x01\x02\x03\x04\x05\x06\x07"
4350 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
4351 "\x10\x11\x12\x13\x14\x15\x16\x17"
4352 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
4353 "\x20\x21\x22\x23\x24\x25\x26\x27"
4354 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
4355 "\x30\x31\x32\x33\x34\x35\x36\x37"
4356 "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
4357 "\x40\x41\x42\x43\x44\x45\x46\x47"
4358 "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
4359 "\x50\x51\x52\x53\x54\x55\x56\x57"
4360 "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
4361 "\x60\x61\x62\x63\x64\x65\x66\x67"
4362 "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
4363 "\x70\x71\x72\x73\x74\x75\x76\x77"
4364 "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
4365 "\x80\x81\x82\x83\x84\x85\x86\x87"
4366 "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
4367 "\x90\x91\x92\x93\x94\x95\x96\x97"
4368 "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
4369 "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
4370 "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
4371 "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
4372 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
4373 "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
4374 "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
4375 "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
4376 "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
4377 "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
4378 "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
4379 "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
4380 "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
4381 "\x00\x01\x02\x03\x04\x05\x06\x07"
4382 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
4383 "\x10\x11\x12\x13\x14\x15\x16\x17"
4384 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
4385 "\x20\x21\x22\x23\x24\x25\x26\x27"
4386 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
4387 "\x30\x31\x32\x33\x34\x35\x36\x37"
4388 "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
4389 "\x40\x41\x42\x43\x44\x45\x46\x47"
4390 "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
4391 "\x50\x51\x52\x53\x54\x55\x56\x57"
4392 "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
4393 "\x60\x61\x62\x63\x64\x65\x66\x67"
4394 "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
4395 "\x70\x71\x72\x73\x74\x75\x76\x77"
4396 "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
4397 "\x80\x81\x82\x83\x84\x85\x86\x87"
4398 "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
4399 "\x90\x91\x92\x93\x94\x95\x96\x97"
4400 "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
4401 "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
4402 "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
4403 "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
4404 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
4405 "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
4406 "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
4407 "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
4408 "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
4409 "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
4410 "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
4411 "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
4412 "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
4413 .rlen = 512,
4414
4126 } 4415 }
4127}; 4416};
4128 4417