crypto: ccree - fix some reported cipher block sizes
authorGilad Ben-Yossef <gilad@benyossef.com>
Wed, 29 Jan 2020 14:37:56 +0000 (16:37 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 13 Feb 2020 09:05:24 +0000 (17:05 +0800)
OFB and CTR modes block sizes were wrongfully reported as
the underlying block sizes. Fix it to 1 bytes as they
turn the block ciphers into stream ciphers.

Also document why our XTS differes from the generic
implementation.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ccree/cc_cipher.c

index 7d6252d..fc1646c 100644 (file)
@@ -1228,6 +1228,10 @@ static const struct cc_alg_template skcipher_algs[] = {
                .sec_func = true,
        },
        {
+               /* See https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg40576.html
+                * for the reason why this differs from the generic
+                * implementation.
+                */
                .name = "xts(aes)",
                .driver_name = "xts-aes-ccree",
                .blocksize = 1,
@@ -1423,7 +1427,7 @@ static const struct cc_alg_template skcipher_algs[] = {
        {
                .name = "ofb(aes)",
                .driver_name = "ofb-aes-ccree",
-               .blocksize = AES_BLOCK_SIZE,
+               .blocksize = 1,
                .template_skcipher = {
                        .setkey = cc_cipher_setkey,
                        .encrypt = cc_cipher_encrypt,
@@ -1576,7 +1580,7 @@ static const struct cc_alg_template skcipher_algs[] = {
        {
                .name = "ctr(sm4)",
                .driver_name = "ctr-sm4-ccree",
-               .blocksize = SM4_BLOCK_SIZE,
+               .blocksize = 1,
                .template_skcipher = {
                        .setkey = cc_cipher_setkey,
                        .encrypt = cc_cipher_encrypt,