Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crypto: ccree - enable CTS support in AES-XTS

In XTS encryption/decryption the plaintext byte size
can be >= AES_BLOCK_SIZE. This patch enable the AES-XTS ciphertext
stealing implementation in ccree driver.

Signed-off-by: Uri Shir <uri.shir@arm.com>
Acked-by: Gilad Ben-Yossef <gilad@benyossef.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Uri Shir and committed by
Herbert Xu
67caef08 465527bc

+6 -10
+6 -10
drivers/crypto/ccree/cc_cipher.c
··· 116 116 case S_DIN_to_AES: 117 117 switch (ctx_p->cipher_mode) { 118 118 case DRV_CIPHER_XTS: 119 - if (size >= AES_BLOCK_SIZE && 120 - IS_ALIGNED(size, AES_BLOCK_SIZE)) 121 - return 0; 122 - break; 123 119 case DRV_CIPHER_CBC_CTS: 124 120 if (size >= AES_BLOCK_SIZE) 125 121 return 0; ··· 934 938 { 935 939 .name = "xts(paes)", 936 940 .driver_name = "xts-paes-ccree", 937 - .blocksize = AES_BLOCK_SIZE, 941 + .blocksize = 1, 938 942 .template_skcipher = { 939 943 .setkey = cc_cipher_sethkey, 940 944 .encrypt = cc_cipher_encrypt, ··· 952 956 { 953 957 .name = "xts512(paes)", 954 958 .driver_name = "xts-paes-du512-ccree", 955 - .blocksize = AES_BLOCK_SIZE, 959 + .blocksize = 1, 956 960 .template_skcipher = { 957 961 .setkey = cc_cipher_sethkey, 958 962 .encrypt = cc_cipher_encrypt, ··· 971 975 { 972 976 .name = "xts4096(paes)", 973 977 .driver_name = "xts-paes-du4096-ccree", 974 - .blocksize = AES_BLOCK_SIZE, 978 + .blocksize = 1, 975 979 .template_skcipher = { 976 980 .setkey = cc_cipher_sethkey, 977 981 .encrypt = cc_cipher_encrypt, ··· 1192 1196 { 1193 1197 .name = "xts(aes)", 1194 1198 .driver_name = "xts-aes-ccree", 1195 - .blocksize = AES_BLOCK_SIZE, 1199 + .blocksize = 1, 1196 1200 .template_skcipher = { 1197 1201 .setkey = cc_cipher_setkey, 1198 1202 .encrypt = cc_cipher_encrypt, ··· 1209 1213 { 1210 1214 .name = "xts512(aes)", 1211 1215 .driver_name = "xts-aes-du512-ccree", 1212 - .blocksize = AES_BLOCK_SIZE, 1216 + .blocksize = 1, 1213 1217 .template_skcipher = { 1214 1218 .setkey = cc_cipher_setkey, 1215 1219 .encrypt = cc_cipher_encrypt, ··· 1227 1231 { 1228 1232 .name = "xts4096(aes)", 1229 1233 .driver_name = "xts-aes-du4096-ccree", 1230 - .blocksize = AES_BLOCK_SIZE, 1234 + .blocksize = 1, 1231 1235 .template_skcipher = { 1232 1236 .setkey = cc_cipher_setkey, 1233 1237 .encrypt = cc_cipher_encrypt,