crypto: inside-secure - make the context control size dynamic
authorAntoine Tenart <antoine.tenart@bootlin.com>
Mon, 14 May 2018 13:10:58 +0000 (15:10 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 26 May 2018 16:11:37 +0000 (00:11 +0800)
This patch makes the context control size computation dynamic, not to
rely on hardcoded values. This is better for the future, and will help
adding the AEAD support.

Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/inside-secure/safexcel_cipher.c

index 9ed3f26..26f6e05 100644 (file)
@@ -118,21 +118,20 @@ static int safexcel_context_control(struct safexcel_cipher_ctx *ctx,
        switch (ctx->key_len) {
        case AES_KEYSIZE_128:
                cdesc->control_data.control0 |= CONTEXT_CONTROL_CRYPTO_ALG_AES128;
-               ctrl_size = 4;
                break;
        case AES_KEYSIZE_192:
                cdesc->control_data.control0 |= CONTEXT_CONTROL_CRYPTO_ALG_AES192;
-               ctrl_size = 6;
                break;
        case AES_KEYSIZE_256:
                cdesc->control_data.control0 |= CONTEXT_CONTROL_CRYPTO_ALG_AES256;
-               ctrl_size = 8;
                break;
        default:
                dev_err(priv->dev, "aes keysize not supported: %u\n",
                        ctx->key_len);
                return -EINVAL;
        }
+
+       ctrl_size = ctx->key_len / sizeof(u32);
        cdesc->control_data.control0 |= CONTEXT_CONTROL_SIZE(ctrl_size);
 
        return 0;