diff mbox series

crypto: ccree: fix xts-aes-ccree blocksize

Message ID 20220209070608.985213-1-clabbe@baylibre.com (mailing list archive)
State Changes Requested
Delegated to: Herbert Xu
Headers show
Series crypto: ccree: fix xts-aes-ccree blocksize | expand

Commit Message

Corentin LABBE Feb. 9, 2022, 7:06 a.m. UTC
loading ccree on next-20220207 with CRYPTO_MANAGER_EXTRA_TESTS show a warning:
alg: skcipher: blocksize for xts-aes-ccree (1) doesn't match generic impl (16)
alg: self-tests for xts-aes-ccree (xts(aes)) failed (rc=-22)

After setting the correct blocksize, selftests pass.

Fixes: 67caef08a71f ("crypto: ccree - enable CTS support in AES-XTS")
Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
---
 drivers/crypto/ccree/cc_cipher.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Gilad Ben-Yossef Feb. 17, 2022, 7:36 p.m. UTC | #1
Hi Again,

Thank you for taking the time to look into this!

However, this is an old topic that has been discussed before and the
answer really is that the selftests are wrong. They are looking at the
wrong thing. Yes, I know...

See the discussion here:
https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg40576.html

I also also point out this is actually documented in the code:

+               /* See
https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg40576.html
+                * for the reason why this differs from the generic
+                * implementation.
+                */

Thanks again!
Gilad


On Wed, Feb 9, 2022 at 9:06 AM Corentin Labbe <clabbe@baylibre.com> wrote:
>
> loading ccree on next-20220207 with CRYPTO_MANAGER_EXTRA_TESTS show a warning:
> alg: skcipher: blocksize for xts-aes-ccree (1) doesn't match generic impl (16)
> alg: self-tests for xts-aes-ccree (xts(aes)) failed (rc=-22)
>
> After setting the correct blocksize, selftests pass.
>
> Fixes: 67caef08a71f ("crypto: ccree - enable CTS support in AES-XTS")
> Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
> ---
>  drivers/crypto/ccree/cc_cipher.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/crypto/ccree/cc_cipher.c b/drivers/crypto/ccree/cc_cipher.c
> index 78833491f534..d955fe15cf40 100644
> --- a/drivers/crypto/ccree/cc_cipher.c
> +++ b/drivers/crypto/ccree/cc_cipher.c
> @@ -1010,7 +1010,7 @@ static const struct cc_alg_template skcipher_algs[] = {
>         {
>                 .name = "xts(paes)",
>                 .driver_name = "xts-paes-ccree",
> -               .blocksize = 1,
> +               .blocksize = XTS_BLOCK_SIZE,
>                 .template_skcipher = {
>                         .setkey = cc_cipher_sethkey,
>                         .encrypt = cc_cipher_encrypt,
> @@ -1140,7 +1140,7 @@ static const struct cc_alg_template skcipher_algs[] = {
>                  */
>                 .name = "xts(aes)",
>                 .driver_name = "xts-aes-ccree",
> -               .blocksize = 1,
> +               .blocksize = XTS_BLOCK_SIZE,
>                 .template_skcipher = {
>                         .setkey = cc_cipher_setkey,
>                         .encrypt = cc_cipher_encrypt,
> --
> 2.34.1
>
Herbert Xu Feb. 18, 2022, 3:55 a.m. UTC | #2
On Thu, Feb 17, 2022 at 09:36:41PM +0200, Gilad Ben-Yossef wrote:
> Hi Again,
> 
> Thank you for taking the time to look into this!
> 
> However, this is an old topic that has been discussed before and the
> answer really is that the selftests are wrong. They are looking at the
> wrong thing. Yes, I know...
> 
> See the discussion here:
> https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg40576.html
> 
> I also also point out this is actually documented in the code:
> 
> +               /* See
> https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg40576.html
> +                * for the reason why this differs from the generic
> +                * implementation.
> +                */

Indeed.  We should instead change the generic algorithm as well
as the other drivers that implement XTS.

Thanks,
diff mbox series

Patch

diff --git a/drivers/crypto/ccree/cc_cipher.c b/drivers/crypto/ccree/cc_cipher.c
index 78833491f534..d955fe15cf40 100644
--- a/drivers/crypto/ccree/cc_cipher.c
+++ b/drivers/crypto/ccree/cc_cipher.c
@@ -1010,7 +1010,7 @@  static const struct cc_alg_template skcipher_algs[] = {
 	{
 		.name = "xts(paes)",
 		.driver_name = "xts-paes-ccree",
-		.blocksize = 1,
+		.blocksize = XTS_BLOCK_SIZE,
 		.template_skcipher = {
 			.setkey = cc_cipher_sethkey,
 			.encrypt = cc_cipher_encrypt,
@@ -1140,7 +1140,7 @@  static const struct cc_alg_template skcipher_algs[] = {
 		 */
 		.name = "xts(aes)",
 		.driver_name = "xts-aes-ccree",
-		.blocksize = 1,
+		.blocksize = XTS_BLOCK_SIZE,
 		.template_skcipher = {
 			.setkey = cc_cipher_setkey,
 			.encrypt = cc_cipher_encrypt,