* [PATCH 1/2] crypto: safexcel - Group authenc ciphersuites
@ 2026-02-02 20:21 Aleksander Jan Bajkowski
2026-02-02 20:21 ` [PATCH 2/2] crypto: safexcel - Add support for authenc(hmac(md5),*) suites Aleksander Jan Bajkowski
2026-02-03 9:42 ` [PATCH 1/2] crypto: safexcel - Group authenc ciphersuites Antoine Tenart
0 siblings, 2 replies; 5+ messages in thread
From: Aleksander Jan Bajkowski @ 2026-02-02 20:21 UTC (permalink / raw)
To: atenart, herbert, davem, linux-crypto, linux-kernel
Cc: Aleksander Jan Bajkowski
Move authenc(sha1,des) and authenc(sha1,3des) ciphersuites to appropriate
groups. No functional changes intended.
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
---
drivers/crypto/inside-secure/safexcel.c | 4 ++--
drivers/crypto/inside-secure/safexcel.h | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c
index c3b2b22934b7..9c00573abd8c 100644
--- a/drivers/crypto/inside-secure/safexcel.c
+++ b/drivers/crypto/inside-secure/safexcel.c
@@ -1209,7 +1209,6 @@ static struct safexcel_alg_template *safexcel_algs[] = {
&safexcel_alg_authenc_hmac_sha256_cbc_aes,
&safexcel_alg_authenc_hmac_sha384_cbc_aes,
&safexcel_alg_authenc_hmac_sha512_cbc_aes,
- &safexcel_alg_authenc_hmac_sha1_cbc_des3_ede,
&safexcel_alg_authenc_hmac_sha1_ctr_aes,
&safexcel_alg_authenc_hmac_sha224_ctr_aes,
&safexcel_alg_authenc_hmac_sha256_ctr_aes,
@@ -1241,11 +1240,12 @@ static struct safexcel_alg_template *safexcel_algs[] = {
&safexcel_alg_hmac_sha3_256,
&safexcel_alg_hmac_sha3_384,
&safexcel_alg_hmac_sha3_512,
- &safexcel_alg_authenc_hmac_sha1_cbc_des,
+ &safexcel_alg_authenc_hmac_sha1_cbc_des3_ede,
&safexcel_alg_authenc_hmac_sha256_cbc_des3_ede,
&safexcel_alg_authenc_hmac_sha224_cbc_des3_ede,
&safexcel_alg_authenc_hmac_sha512_cbc_des3_ede,
&safexcel_alg_authenc_hmac_sha384_cbc_des3_ede,
+ &safexcel_alg_authenc_hmac_sha1_cbc_des,
&safexcel_alg_authenc_hmac_sha256_cbc_des,
&safexcel_alg_authenc_hmac_sha224_cbc_des,
&safexcel_alg_authenc_hmac_sha512_cbc_des,
diff --git a/drivers/crypto/inside-secure/safexcel.h b/drivers/crypto/inside-secure/safexcel.h
index 0f27367a85fa..ca012e2845f7 100644
--- a/drivers/crypto/inside-secure/safexcel.h
+++ b/drivers/crypto/inside-secure/safexcel.h
@@ -950,7 +950,6 @@ extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_aes;
-extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des3_ede;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_ctr_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_ctr_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_ctr_aes;
@@ -982,11 +981,12 @@ extern struct safexcel_alg_template safexcel_alg_hmac_sha3_224;
extern struct safexcel_alg_template safexcel_alg_hmac_sha3_256;
extern struct safexcel_alg_template safexcel_alg_hmac_sha3_384;
extern struct safexcel_alg_template safexcel_alg_hmac_sha3_512;
-extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des;
+extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des3_ede;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_des3_ede;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_des3_ede;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_des3_ede;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_des3_ede;
+extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_des;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_des;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_des;
--
2.47.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] crypto: safexcel - Add support for authenc(hmac(md5),*) suites
2026-02-02 20:21 [PATCH 1/2] crypto: safexcel - Group authenc ciphersuites Aleksander Jan Bajkowski
@ 2026-02-02 20:21 ` Aleksander Jan Bajkowski
2026-02-03 9:41 ` Antoine Tenart
2026-02-03 9:42 ` [PATCH 1/2] crypto: safexcel - Group authenc ciphersuites Antoine Tenart
1 sibling, 1 reply; 5+ messages in thread
From: Aleksander Jan Bajkowski @ 2026-02-02 20:21 UTC (permalink / raw)
To: atenart, herbert, davem, linux-crypto, linux-kernel
Cc: Aleksander Jan Bajkowski
This patch adds support for the following AEAD ciphersuites:
- authenc(hmac(md5),cbc(aes))
- authenc(hmac(md5),cbc(des)))
- authenc(hmac(md5),cbc(des3_ede))
- authenc(hmac(md5),rfc3686(ctr(aes)))
This is enhanced version of the patch found in the mtk-openwrt-feeds repo.
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
---
drivers/crypto/inside-secure/safexcel.c | 4 +
drivers/crypto/inside-secure/safexcel.h | 4 +
.../crypto/inside-secure/safexcel_cipher.c | 149 ++++++++++++++++++
3 files changed, 157 insertions(+)
diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c
index 9c00573abd8c..b6a87cca2c62 100644
--- a/drivers/crypto/inside-secure/safexcel.c
+++ b/drivers/crypto/inside-secure/safexcel.c
@@ -1204,11 +1204,13 @@ static struct safexcel_alg_template *safexcel_algs[] = {
&safexcel_alg_hmac_sha256,
&safexcel_alg_hmac_sha384,
&safexcel_alg_hmac_sha512,
+ &safexcel_alg_authenc_hmac_md5_cbc_aes,
&safexcel_alg_authenc_hmac_sha1_cbc_aes,
&safexcel_alg_authenc_hmac_sha224_cbc_aes,
&safexcel_alg_authenc_hmac_sha256_cbc_aes,
&safexcel_alg_authenc_hmac_sha384_cbc_aes,
&safexcel_alg_authenc_hmac_sha512_cbc_aes,
+ &safexcel_alg_authenc_hmac_md5_ctr_aes,
&safexcel_alg_authenc_hmac_sha1_ctr_aes,
&safexcel_alg_authenc_hmac_sha224_ctr_aes,
&safexcel_alg_authenc_hmac_sha256_ctr_aes,
@@ -1240,11 +1242,13 @@ static struct safexcel_alg_template *safexcel_algs[] = {
&safexcel_alg_hmac_sha3_256,
&safexcel_alg_hmac_sha3_384,
&safexcel_alg_hmac_sha3_512,
+ &safexcel_alg_authenc_hmac_md5_cbc_des3_ede,
&safexcel_alg_authenc_hmac_sha1_cbc_des3_ede,
&safexcel_alg_authenc_hmac_sha256_cbc_des3_ede,
&safexcel_alg_authenc_hmac_sha224_cbc_des3_ede,
&safexcel_alg_authenc_hmac_sha512_cbc_des3_ede,
&safexcel_alg_authenc_hmac_sha384_cbc_des3_ede,
+ &safexcel_alg_authenc_hmac_md5_cbc_des,
&safexcel_alg_authenc_hmac_sha1_cbc_des,
&safexcel_alg_authenc_hmac_sha256_cbc_des,
&safexcel_alg_authenc_hmac_sha224_cbc_des,
diff --git a/drivers/crypto/inside-secure/safexcel.h b/drivers/crypto/inside-secure/safexcel.h
index ca012e2845f7..52fd460c0e9b 100644
--- a/drivers/crypto/inside-secure/safexcel.h
+++ b/drivers/crypto/inside-secure/safexcel.h
@@ -945,11 +945,13 @@ extern struct safexcel_alg_template safexcel_alg_hmac_sha224;
extern struct safexcel_alg_template safexcel_alg_hmac_sha256;
extern struct safexcel_alg_template safexcel_alg_hmac_sha384;
extern struct safexcel_alg_template safexcel_alg_hmac_sha512;
+extern struct safexcel_alg_template safexcel_alg_authenc_hmac_md5_cbc_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_aes;
+extern struct safexcel_alg_template safexcel_alg_authenc_hmac_md5_ctr_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_ctr_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_ctr_aes;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_ctr_aes;
@@ -981,11 +983,13 @@ extern struct safexcel_alg_template safexcel_alg_hmac_sha3_224;
extern struct safexcel_alg_template safexcel_alg_hmac_sha3_256;
extern struct safexcel_alg_template safexcel_alg_hmac_sha3_384;
extern struct safexcel_alg_template safexcel_alg_hmac_sha3_512;
+extern struct safexcel_alg_template safexcel_alg_authenc_hmac_md5_cbc_des3_ede;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des3_ede;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_des3_ede;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_des3_ede;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_des3_ede;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_des3_ede;
+extern struct safexcel_alg_template safexcel_alg_authenc_hmac_md5_cbc_des;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_des;
extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_des;
diff --git a/drivers/crypto/inside-secure/safexcel_cipher.c b/drivers/crypto/inside-secure/safexcel_cipher.c
index 919e5a2cab95..55b5b11e2fbe 100644
--- a/drivers/crypto/inside-secure/safexcel_cipher.c
+++ b/drivers/crypto/inside-secure/safexcel_cipher.c
@@ -17,6 +17,7 @@
#include <crypto/internal/des.h>
#include <crypto/gcm.h>
#include <crypto/ghash.h>
+#include <crypto/md5.h>
#include <crypto/poly1305.h>
#include <crypto/sha1.h>
#include <crypto/sha2.h>
@@ -462,6 +463,9 @@ static int safexcel_aead_setkey(struct crypto_aead *ctfm, const u8 *key,
/* Auth key */
switch (ctx->hash_alg) {
+ case CONTEXT_CONTROL_CRYPTO_ALG_MD5:
+ alg = "safexcel-md5";
+ break;
case CONTEXT_CONTROL_CRYPTO_ALG_SHA1:
alg = "safexcel-sha1";
break;
@@ -1662,6 +1666,42 @@ static int safexcel_aead_cra_init(struct crypto_tfm *tfm)
return 0;
}
+static int safexcel_aead_md5_cra_init(struct crypto_tfm *tfm)
+{
+ struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
+
+ safexcel_aead_cra_init(tfm);
+ ctx->hash_alg = CONTEXT_CONTROL_CRYPTO_ALG_MD5;
+ ctx->state_sz = MD5_DIGEST_SIZE;
+ return 0;
+}
+
+struct safexcel_alg_template safexcel_alg_authenc_hmac_md5_cbc_aes = {
+ .type = SAFEXCEL_ALG_TYPE_AEAD,
+ .algo_mask = SAFEXCEL_ALG_AES | SAFEXCEL_ALG_MD5,
+ .alg.aead = {
+ .setkey = safexcel_aead_setkey,
+ .encrypt = safexcel_aead_encrypt,
+ .decrypt = safexcel_aead_decrypt,
+ .ivsize = AES_BLOCK_SIZE,
+ .maxauthsize = MD5_DIGEST_SIZE,
+ .base = {
+ .cra_name = "authenc(hmac(md5),cbc(aes))",
+ .cra_driver_name = "safexcel-authenc-hmac-md5-cbc-aes",
+ .cra_priority = SAFEXCEL_CRA_PRIORITY,
+ .cra_flags = CRYPTO_ALG_ASYNC |
+ CRYPTO_ALG_ALLOCATES_MEMORY |
+ CRYPTO_ALG_KERN_DRIVER_ONLY,
+ .cra_blocksize = AES_BLOCK_SIZE,
+ .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
+ .cra_alignmask = 0,
+ .cra_init = safexcel_aead_md5_cra_init,
+ .cra_exit = safexcel_aead_cra_exit,
+ .cra_module = THIS_MODULE,
+ },
+ },
+};
+
static int safexcel_aead_sha1_cra_init(struct crypto_tfm *tfm)
{
struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
@@ -1842,6 +1882,43 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_aes = {
},
};
+static int safexcel_aead_md5_des3_cra_init(struct crypto_tfm *tfm)
+{
+ struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
+
+ safexcel_aead_md5_cra_init(tfm);
+ ctx->alg = SAFEXCEL_3DES; /* override default */
+ ctx->blocksz = DES3_EDE_BLOCK_SIZE;
+ ctx->ivmask = EIP197_OPTION_2_TOKEN_IV_CMD;
+ return 0;
+}
+
+struct safexcel_alg_template safexcel_alg_authenc_hmac_md5_cbc_des3_ede = {
+ .type = SAFEXCEL_ALG_TYPE_AEAD,
+ .algo_mask = SAFEXCEL_ALG_DES | SAFEXCEL_ALG_MD5,
+ .alg.aead = {
+ .setkey = safexcel_aead_setkey,
+ .encrypt = safexcel_aead_encrypt,
+ .decrypt = safexcel_aead_decrypt,
+ .ivsize = DES3_EDE_BLOCK_SIZE,
+ .maxauthsize = MD5_DIGEST_SIZE,
+ .base = {
+ .cra_name = "authenc(hmac(md5),cbc(des3_ede))",
+ .cra_driver_name = "safexcel-authenc-hmac-md5-cbc-des3_ede",
+ .cra_priority = SAFEXCEL_CRA_PRIORITY,
+ .cra_flags = CRYPTO_ALG_ASYNC |
+ CRYPTO_ALG_ALLOCATES_MEMORY |
+ CRYPTO_ALG_KERN_DRIVER_ONLY,
+ .cra_blocksize = DES3_EDE_BLOCK_SIZE,
+ .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
+ .cra_alignmask = 0,
+ .cra_init = safexcel_aead_md5_des3_cra_init,
+ .cra_exit = safexcel_aead_cra_exit,
+ .cra_module = THIS_MODULE,
+ },
+ },
+};
+
static int safexcel_aead_sha1_des3_cra_init(struct crypto_tfm *tfm)
{
struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
@@ -2027,6 +2104,43 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_des3_ede = {
},
};
+static int safexcel_aead_md5_des_cra_init(struct crypto_tfm *tfm)
+{
+ struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
+
+ safexcel_aead_md5_cra_init(tfm);
+ ctx->alg = SAFEXCEL_DES; /* override default */
+ ctx->blocksz = DES_BLOCK_SIZE;
+ ctx->ivmask = EIP197_OPTION_2_TOKEN_IV_CMD;
+ return 0;
+}
+
+struct safexcel_alg_template safexcel_alg_authenc_hmac_md5_cbc_des = {
+ .type = SAFEXCEL_ALG_TYPE_AEAD,
+ .algo_mask = SAFEXCEL_ALG_DES | SAFEXCEL_ALG_MD5,
+ .alg.aead = {
+ .setkey = safexcel_aead_setkey,
+ .encrypt = safexcel_aead_encrypt,
+ .decrypt = safexcel_aead_decrypt,
+ .ivsize = DES_BLOCK_SIZE,
+ .maxauthsize = MD5_DIGEST_SIZE,
+ .base = {
+ .cra_name = "authenc(hmac(md5),cbc(des))",
+ .cra_driver_name = "safexcel-authenc-hmac-md5-cbc-des",
+ .cra_priority = SAFEXCEL_CRA_PRIORITY,
+ .cra_flags = CRYPTO_ALG_ASYNC |
+ CRYPTO_ALG_ALLOCATES_MEMORY |
+ CRYPTO_ALG_KERN_DRIVER_ONLY,
+ .cra_blocksize = DES_BLOCK_SIZE,
+ .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
+ .cra_alignmask = 0,
+ .cra_init = safexcel_aead_md5_des_cra_init,
+ .cra_exit = safexcel_aead_cra_exit,
+ .cra_module = THIS_MODULE,
+ },
+ },
+};
+
static int safexcel_aead_sha1_des_cra_init(struct crypto_tfm *tfm)
{
struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
@@ -2212,6 +2326,41 @@ struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_des = {
},
};
+static int safexcel_aead_md5_ctr_cra_init(struct crypto_tfm *tfm)
+{
+ struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
+
+ safexcel_aead_md5_cra_init(tfm);
+ ctx->mode = CONTEXT_CONTROL_CRYPTO_MODE_CTR_LOAD; /* override default */
+ return 0;
+}
+
+struct safexcel_alg_template safexcel_alg_authenc_hmac_md5_ctr_aes = {
+ .type = SAFEXCEL_ALG_TYPE_AEAD,
+ .algo_mask = SAFEXCEL_ALG_AES | SAFEXCEL_ALG_MD5,
+ .alg.aead = {
+ .setkey = safexcel_aead_setkey,
+ .encrypt = safexcel_aead_encrypt,
+ .decrypt = safexcel_aead_decrypt,
+ .ivsize = CTR_RFC3686_IV_SIZE,
+ .maxauthsize = SHA1_DIGEST_SIZE,
+ .base = {
+ .cra_name = "authenc(hmac(md5),rfc3686(ctr(aes)))",
+ .cra_driver_name = "safexcel-authenc-hmac-md5-ctr-aes",
+ .cra_priority = SAFEXCEL_CRA_PRIORITY,
+ .cra_flags = CRYPTO_ALG_ASYNC |
+ CRYPTO_ALG_ALLOCATES_MEMORY |
+ CRYPTO_ALG_KERN_DRIVER_ONLY,
+ .cra_blocksize = 1,
+ .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
+ .cra_alignmask = 0,
+ .cra_init = safexcel_aead_md5_ctr_cra_init,
+ .cra_exit = safexcel_aead_cra_exit,
+ .cra_module = THIS_MODULE,
+ },
+ },
+};
+
static int safexcel_aead_sha1_ctr_cra_init(struct crypto_tfm *tfm)
{
struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
--
2.47.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] crypto: safexcel - Add support for authenc(hmac(md5),*) suites
2026-02-02 20:21 ` [PATCH 2/2] crypto: safexcel - Add support for authenc(hmac(md5),*) suites Aleksander Jan Bajkowski
@ 2026-02-03 9:41 ` Antoine Tenart
2026-02-03 18:13 ` Aleksander Jan Bajkowski
0 siblings, 1 reply; 5+ messages in thread
From: Antoine Tenart @ 2026-02-03 9:41 UTC (permalink / raw)
To: Aleksander Jan Bajkowski; +Cc: herbert, davem, linux-crypto, linux-kernel
On Mon, Feb 02, 2026 at 09:21:08PM +0100, Aleksander Jan Bajkowski wrote:
> This patch adds support for the following AEAD ciphersuites:
> - authenc(hmac(md5),cbc(aes))
> - authenc(hmac(md5),cbc(des)))
> - authenc(hmac(md5),cbc(des3_ede))
> - authenc(hmac(md5),rfc3686(ctr(aes)))
>
> This is enhanced version of the patch found in the mtk-openwrt-feeds repo.
Can you say how it was tested in the commit message?
> +static int safexcel_aead_md5_ctr_cra_init(struct crypto_tfm *tfm)
> +{
> + struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
> +
> + safexcel_aead_md5_cra_init(tfm);
> + ctx->mode = CONTEXT_CONTROL_CRYPTO_MODE_CTR_LOAD; /* override default */
> + return 0;
> +}
> +
> +struct safexcel_alg_template safexcel_alg_authenc_hmac_md5_ctr_aes = {
> + .type = SAFEXCEL_ALG_TYPE_AEAD,
> + .algo_mask = SAFEXCEL_ALG_AES | SAFEXCEL_ALG_MD5,
> + .alg.aead = {
> + .setkey = safexcel_aead_setkey,
> + .encrypt = safexcel_aead_encrypt,
> + .decrypt = safexcel_aead_decrypt,
> + .ivsize = CTR_RFC3686_IV_SIZE,
> + .maxauthsize = SHA1_DIGEST_SIZE,
MD5_DIGEST_SIZE?
> + .base = {
> + .cra_name = "authenc(hmac(md5),rfc3686(ctr(aes)))",
> + .cra_driver_name = "safexcel-authenc-hmac-md5-ctr-aes",
> + .cra_priority = SAFEXCEL_CRA_PRIORITY,
> + .cra_flags = CRYPTO_ALG_ASYNC |
> + CRYPTO_ALG_ALLOCATES_MEMORY |
> + CRYPTO_ALG_KERN_DRIVER_ONLY,
> + .cra_blocksize = 1,
> + .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
> + .cra_alignmask = 0,
> + .cra_init = safexcel_aead_md5_ctr_cra_init,
> + .cra_exit = safexcel_aead_cra_exit,
> + .cra_module = THIS_MODULE,
> + },
> + },
> +};
> +
> static int safexcel_aead_sha1_ctr_cra_init(struct crypto_tfm *tfm)
> {
> struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
Thanks!
Antoine
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] crypto: safexcel - Group authenc ciphersuites
2026-02-02 20:21 [PATCH 1/2] crypto: safexcel - Group authenc ciphersuites Aleksander Jan Bajkowski
2026-02-02 20:21 ` [PATCH 2/2] crypto: safexcel - Add support for authenc(hmac(md5),*) suites Aleksander Jan Bajkowski
@ 2026-02-03 9:42 ` Antoine Tenart
1 sibling, 0 replies; 5+ messages in thread
From: Antoine Tenart @ 2026-02-03 9:42 UTC (permalink / raw)
To: Aleksander Jan Bajkowski; +Cc: herbert, davem, linux-crypto, linux-kernel
On Mon, Feb 02, 2026 at 09:21:07PM +0100, Aleksander Jan Bajkowski wrote:
> Move authenc(sha1,des) and authenc(sha1,3des) ciphersuites to appropriate
> groups. No functional changes intended.
>
> Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Acked-by: Antoine Tenart <atenart@kernel.org>
Thanks!
> ---
> drivers/crypto/inside-secure/safexcel.c | 4 ++--
> drivers/crypto/inside-secure/safexcel.h | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c
> index c3b2b22934b7..9c00573abd8c 100644
> --- a/drivers/crypto/inside-secure/safexcel.c
> +++ b/drivers/crypto/inside-secure/safexcel.c
> @@ -1209,7 +1209,6 @@ static struct safexcel_alg_template *safexcel_algs[] = {
> &safexcel_alg_authenc_hmac_sha256_cbc_aes,
> &safexcel_alg_authenc_hmac_sha384_cbc_aes,
> &safexcel_alg_authenc_hmac_sha512_cbc_aes,
> - &safexcel_alg_authenc_hmac_sha1_cbc_des3_ede,
> &safexcel_alg_authenc_hmac_sha1_ctr_aes,
> &safexcel_alg_authenc_hmac_sha224_ctr_aes,
> &safexcel_alg_authenc_hmac_sha256_ctr_aes,
> @@ -1241,11 +1240,12 @@ static struct safexcel_alg_template *safexcel_algs[] = {
> &safexcel_alg_hmac_sha3_256,
> &safexcel_alg_hmac_sha3_384,
> &safexcel_alg_hmac_sha3_512,
> - &safexcel_alg_authenc_hmac_sha1_cbc_des,
> + &safexcel_alg_authenc_hmac_sha1_cbc_des3_ede,
> &safexcel_alg_authenc_hmac_sha256_cbc_des3_ede,
> &safexcel_alg_authenc_hmac_sha224_cbc_des3_ede,
> &safexcel_alg_authenc_hmac_sha512_cbc_des3_ede,
> &safexcel_alg_authenc_hmac_sha384_cbc_des3_ede,
> + &safexcel_alg_authenc_hmac_sha1_cbc_des,
> &safexcel_alg_authenc_hmac_sha256_cbc_des,
> &safexcel_alg_authenc_hmac_sha224_cbc_des,
> &safexcel_alg_authenc_hmac_sha512_cbc_des,
> diff --git a/drivers/crypto/inside-secure/safexcel.h b/drivers/crypto/inside-secure/safexcel.h
> index 0f27367a85fa..ca012e2845f7 100644
> --- a/drivers/crypto/inside-secure/safexcel.h
> +++ b/drivers/crypto/inside-secure/safexcel.h
> @@ -950,7 +950,6 @@ extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_aes;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_aes;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_aes;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_aes;
> -extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des3_ede;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_ctr_aes;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_ctr_aes;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_ctr_aes;
> @@ -982,11 +981,12 @@ extern struct safexcel_alg_template safexcel_alg_hmac_sha3_224;
> extern struct safexcel_alg_template safexcel_alg_hmac_sha3_256;
> extern struct safexcel_alg_template safexcel_alg_hmac_sha3_384;
> extern struct safexcel_alg_template safexcel_alg_hmac_sha3_512;
> -extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des;
> +extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des3_ede;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_des3_ede;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_des3_ede;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_des3_ede;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha384_cbc_des3_ede;
> +extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha1_cbc_des;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha256_cbc_des;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha224_cbc_des;
> extern struct safexcel_alg_template safexcel_alg_authenc_hmac_sha512_cbc_des;
> --
> 2.47.3
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] crypto: safexcel - Add support for authenc(hmac(md5),*) suites
2026-02-03 9:41 ` Antoine Tenart
@ 2026-02-03 18:13 ` Aleksander Jan Bajkowski
0 siblings, 0 replies; 5+ messages in thread
From: Aleksander Jan Bajkowski @ 2026-02-03 18:13 UTC (permalink / raw)
To: Antoine Tenart; +Cc: herbert, davem, linux-crypto, linux-kernel
On 2/3/26 10:41, Antoine Tenart wrote:
> On Mon, Feb 02, 2026 at 09:21:08PM +0100, Aleksander Jan Bajkowski wrote:
>> This patch adds support for the following AEAD ciphersuites:
>> - authenc(hmac(md5),cbc(aes))
>> - authenc(hmac(md5),cbc(des)))
>> - authenc(hmac(md5),cbc(des3_ede))
>> - authenc(hmac(md5),rfc3686(ctr(aes)))
>>
>> This is enhanced version of the patch found in the mtk-openwrt-feeds repo.
> Can you say how it was tested in the commit message?
Sure. The first three algorithms were tested using the test vectors
recently sent upstream. I also tried to add test vectors for
authenc(hmac(sha*/md5),rfc3686(ctr(aes))), but I had some trouble with
the hmac results on NXP P2020. I suspect the problem may be in my
calculations.
I'm also planning to test IPSEC between EIP93 and EIP97/197. The former
has some issues with HMAC, and in the case of the latter, there are
reports that EIP197 drops connections.
>
>> +static int safexcel_aead_md5_ctr_cra_init(struct crypto_tfm *tfm)
>> +{
>> + struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
>> +
>> + safexcel_aead_md5_cra_init(tfm);
>> + ctx->mode = CONTEXT_CONTROL_CRYPTO_MODE_CTR_LOAD; /* override default */
>> + return 0;
>> +}
>> +
>> +struct safexcel_alg_template safexcel_alg_authenc_hmac_md5_ctr_aes = {
>> + .type = SAFEXCEL_ALG_TYPE_AEAD,
>> + .algo_mask = SAFEXCEL_ALG_AES | SAFEXCEL_ALG_MD5,
>> + .alg.aead = {
>> + .setkey = safexcel_aead_setkey,
>> + .encrypt = safexcel_aead_encrypt,
>> + .decrypt = safexcel_aead_decrypt,
>> + .ivsize = CTR_RFC3686_IV_SIZE,
>> + .maxauthsize = SHA1_DIGEST_SIZE,
> MD5_DIGEST_SIZE?
Indeed. A copy-paste mistake.
>
>> + .base = {
>> + .cra_name = "authenc(hmac(md5),rfc3686(ctr(aes)))",
>> + .cra_driver_name = "safexcel-authenc-hmac-md5-ctr-aes",
>> + .cra_priority = SAFEXCEL_CRA_PRIORITY,
>> + .cra_flags = CRYPTO_ALG_ASYNC |
>> + CRYPTO_ALG_ALLOCATES_MEMORY |
>> + CRYPTO_ALG_KERN_DRIVER_ONLY,
>> + .cra_blocksize = 1,
>> + .cra_ctxsize = sizeof(struct safexcel_cipher_ctx),
>> + .cra_alignmask = 0,
>> + .cra_init = safexcel_aead_md5_ctr_cra_init,
>> + .cra_exit = safexcel_aead_cra_exit,
>> + .cra_module = THIS_MODULE,
>> + },
>> + },
>> +};
>> +
>> static int safexcel_aead_sha1_ctr_cra_init(struct crypto_tfm *tfm)
>> {
>> struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
> Thanks!
> Antoine
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-02-03 18:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-02 20:21 [PATCH 1/2] crypto: safexcel - Group authenc ciphersuites Aleksander Jan Bajkowski
2026-02-02 20:21 ` [PATCH 2/2] crypto: safexcel - Add support for authenc(hmac(md5),*) suites Aleksander Jan Bajkowski
2026-02-03 9:41 ` Antoine Tenart
2026-02-03 18:13 ` Aleksander Jan Bajkowski
2026-02-03 9:42 ` [PATCH 1/2] crypto: safexcel - Group authenc ciphersuites Antoine Tenart
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.