]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: backport crypto selftests 23012/head
authorAleksander Jan Bajkowski <olek2@wp.pl>
Wed, 28 Jan 2026 00:00:59 +0000 (01:00 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 27 Apr 2026 22:52:07 +0000 (00:52 +0200)
FIPS 140-3 recommends that all crypto implementations should be tested
before first use. Testmanager performs initial tests based on existing
test vectors. Not all algorithms have defined test vectors, so to improve
this situation, this commit backports recently added test vectors for
some cipher suites.

These vectors were calculated using a software implementation and then
double-checked on Mediatek MT7981 (safexcel) and NXP P2020 (talitos).
Both platforms passed self-tests.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/23012
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
28 files changed:
target/linux/generic/backport-6.12/910-v6.19-crypto-testmgr-Add-missing-DES-weak-and-semi-weak-ke.patch [new file with mode: 0644]
target/linux/generic/backport-6.12/911-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
target/linux/generic/backport-6.12/912-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch [moved from target/linux/generic/backport-6.12/910-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch with 71% similarity]
target/linux/generic/backport-6.12/913-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch [moved from target/linux/generic/backport-6.12/912-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch with 98% similarity]
target/linux/generic/backport-6.12/914-v7.0-crypto-testmgr-allow-authenc-sha224-rfc3686-variant-.patch [moved from target/linux/generic/backport-6.12/913-v7.0-crypto-testmgr-allow-authenc-sha224-rfc3686-variant-.patch with 100% similarity]
target/linux/generic/backport-6.12/915-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch [moved from target/linux/generic/backport-6.12/914-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch with 98% similarity]
target/linux/generic/backport-6.12/916-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
target/linux/generic/backport-6.12/917-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
target/linux/generic/backport-6.12/918-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
target/linux/generic/backport-6.12/919-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
target/linux/generic/backport-6.12/920-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch [new file with mode: 0644]
target/linux/generic/backport-6.12/921-v7.1-crypto-tesmgr-allow-authenc-hmac-sha224-sha384-cbc-a.patch [new file with mode: 0644]
target/linux/generic/backport-6.12/922-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch [moved from target/linux/generic/backport-6.18/915-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch with 74% similarity]
target/linux/generic/backport-6.12/923-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch [moved from target/linux/generic/pending-6.12/910-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch with 97% similarity]
target/linux/generic/backport-6.18/910-v6.19-crypto-testmgr-Add-missing-DES-weak-and-semi-weak-ke.patch [new file with mode: 0644]
target/linux/generic/backport-6.18/911-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
target/linux/generic/backport-6.18/912-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch [moved from target/linux/generic/backport-6.18/910-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch with 71% similarity]
target/linux/generic/backport-6.18/913-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch [moved from target/linux/generic/backport-6.18/912-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch with 98% similarity]
target/linux/generic/backport-6.18/914-v7.0-crypto-testmgr-allow-authenc-sha224-rfc3686-variant-.patch [moved from target/linux/generic/backport-6.18/913-v7.0-crypto-testmgr-allow-authenc-sha224-rfc3686-variant-.patch with 100% similarity]
target/linux/generic/backport-6.18/915-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch [moved from target/linux/generic/backport-6.18/914-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch with 98% similarity]
target/linux/generic/backport-6.18/916-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
target/linux/generic/backport-6.18/917-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
target/linux/generic/backport-6.18/918-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
target/linux/generic/backport-6.18/919-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
target/linux/generic/backport-6.18/920-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch [new file with mode: 0644]
target/linux/generic/backport-6.18/921-v7.1-crypto-tesmgr-allow-authenc-hmac-sha224-sha384-cbc-a.patch [new file with mode: 0644]
target/linux/generic/backport-6.18/922-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch [moved from target/linux/generic/backport-6.12/915-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch with 74% similarity]
target/linux/generic/backport-6.18/923-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch [moved from target/linux/generic/pending-6.18/910-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch with 99% similarity]

diff --git a/target/linux/generic/backport-6.12/910-v6.19-crypto-testmgr-Add-missing-DES-weak-and-semi-weak-ke.patch b/target/linux/generic/backport-6.12/910-v6.19-crypto-testmgr-Add-missing-DES-weak-and-semi-weak-ke.patch
new file mode 100644 (file)
index 0000000..3a516b2
--- /dev/null
@@ -0,0 +1,155 @@
+From c637f3e4a59d710ffd80da1c11d2ebed162d8ff0 Mon Sep 17 00:00:00 2001
+From: Thorsten Blum <thorsten.blum@linux.dev>
+Date: Mon, 17 Nov 2025 12:44:26 +0100
+Subject: [PATCH] crypto: testmgr - Add missing DES weak and semi-weak key
+ tests
+
+Ever since commit da7f033ddc9f ("crypto: cryptomgr - Add test
+infrastructure"), the DES test suite has tested only one of the four
+weak keys and none of the twelve semi-weak keys.
+
+DES has four weak keys and twelve semi-weak keys, and the kernel's DES
+implementation correctly detects and rejects all of these keys when the
+CRYPTO_TFM_REQ_FORBID_WEAK_KEYS flag is set. However, only a single weak
+key was being tested. Add tests for all 16 weak and semi-weak keys.
+
+While DES is deprecated, it is still used in some legacy protocols, and
+weak/semi-weak key detection should be tested accordingly.
+
+Tested on arm64 with cryptographic self-tests.
+
+Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ crypto/testmgr.h | 120 +++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 120 insertions(+)
+
+--- a/crypto/testmgr.h
++++ b/crypto/testmgr.h
+@@ -10330,6 +10330,126 @@ static const struct cipher_testvec des_t
+               .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
+               .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
+               .len    = 8,
++      }, { /* Weak key */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xe0\xe0\xe0\xe0\xf1\xf1\xf1\xf1",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Weak key */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x1f\x1f\x1f\x1f\x0e\x0e\x0e\x0e",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Weak key */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 1a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x01\xfe\x01\xfe\x01\xfe\x01\xfe",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 1b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xfe\x01\xfe\x01\xfe\x01\xfe\x01",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 2a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x1f\xe0\x1f\xe0\x0e\xf1\x0e\xf1",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 2b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xe0\x1f\xe0\x1f\xf1\x0e\xf1\x0e",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 3a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x01\xe0\x01\xe0\x01\xf1\x01\xf1",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 3b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xe0\x01\xe0\x01\xf1\x01\xf1\x01",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 4a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x1f\xfe\x1f\xfe\x0e\xfe\x0e\xfe",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 4b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xfe\x1f\xfe\x1f\xfe\x0e\xfe\x0e",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 5a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x01\x1f\x01\x1f\x01\x0e\x01\x0e",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 5b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x1f\x01\x1f\x01\x0e\x01\x0e\x01",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 6a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xe0\xfe\xe0\xfe\xf1\xfe\xf1\xfe",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 6b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xfe\xe0\xfe\xe0\xfe\xf1\xfe\xf1",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
+       }, { /* Two blocks -- for testing encryption across pages */
+               .key    = "\x01\x23\x45\x67\x89\xab\xcd\xef",
+               .klen   = 8,
index 8649c1e55746e0630288af500c6f0029a93693a3..f430335f2db542e9ca5f216fbe3ebb8b2b0bec2a 100644 (file)
@@ -1,11 +1,11 @@
-From a22d48cbe55814061d46db2f87090ba5e36aaf7f Mon Sep 17 00:00:00 2001
+From 030218dedee2628ea3f035d71431e1b7c4191cfb Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Sat, 31 Jan 2026 18:43:03 +0100
+Date: Sat, 31 Jan 2026 18:38:47 +0100
 Subject: [PATCH] crypto: testmgr - Add test vectors for
- authenc(hmac(sha224),cbc(aes))
+ authenc(hmac(sha384),cbc(aes))
 
 Test vectors were generated starting from existing CBC(AES) test vectors
-(RFC3602, NIST SP800-38A) and adding HMAC(SHA224) computed with Python
+(RFC3602, NIST SP800-38A) and adding HMAC(SHA384) computed with Python
 script. Then, the results were double-checked on Mediatek MT7981 (safexcel)
 and NXP P2020 (talitos). Both platforms pass self-tests.
 
@@ -13,32 +13,32 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   7 ++
- crypto/testmgr.h | 285 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 292 insertions(+)
+ crypto/testmgr.h | 311 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 318 insertions(+)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4414,6 +4414,13 @@ static const struct alg_test_desc alg_te
+@@ -4453,6 +4453,13 @@ static const struct alg_test_desc alg_te
                .test = alg_test_null,
                .fips_allowed = 1,
        }, {
-+              .alg = "authenc(hmac(sha224),cbc(aes))",
-+              .generic_driver = "authenc(hmac-sha224-lib,cbc(aes-generic))",
++              .alg = "authenc(hmac(sha384),cbc(aes))",
++              .generic_driver = "authenc(hmac-sha384-lib,cbc(aes-generic))",
 +              .test = alg_test_aead,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha224_aes_cbc_tv_temp)
++                      .aead = __VECS(hmac_sha384_aes_cbc_tv_temp)
 +              }
 +      }, {
-               .alg = "authenc(hmac(sha224),cbc(des))",
+               .alg = "authenc(hmac(sha384),cbc(des))",
                .test = alg_test_aead,
                .suite = {
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -17490,6 +17490,291 @@ static const struct aead_testvec hmac_sh
+@@ -17893,6 +17893,317 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha224_aes_cbc_tv_temp[] = {
++static const struct aead_testvec hmac_sha384_aes_cbc_tv_temp[] = {
 +      { /* RFC 3602 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -51,24 +51,28 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
 +                        "\x51\x2e\x03\xd5\x34\x12\x00\x06",
-+              .klen   = 8 + 28 + 16,
++              .klen   = 8 + 48 + 16,
 +              .iv     = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
 +                        "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
 +              .assoc  = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
 +                        "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "Single block msg",
 +              .plen   = 16,
 +              .ctext  = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
 +                        "\x27\x08\x94\x2d\xbe\x77\x18\x1a"
-+                        "\x17\xe8\x00\x76\x70\x71\xd1\x72"
-+                        "\xf8\xd0\x91\x51\x67\xf9\xdf\xd6"
-+                        "\x0d\x56\x1a\xb3\x52\x19\x85\xae"
-+                        "\x46\x74\xb6\x98",
-+              .clen   = 16 + 28,
++                        "\x79\x1c\xf1\x22\x95\x80\xe0\x60"
++                        "\x7f\xf9\x92\x60\x83\xbd\x60\x9c"
++                        "\xf6\x62\x8b\xa9\x7d\x56\xe2\xaf"
++                        "\x80\x43\xbc\x41\x4a\x63\x0b\xa0"
++                        "\x16\x25\xe2\xfe\x0a\x96\xf6\xa5"
++                        "\x6c\x0b\xc2\x53\xb4\x27\xd9\x42",
++              .clen   = 16 + 48,
 +      }, { /* RFC 3602 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -81,15 +85,17 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b"
++                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x40\x41\x42\x43\x44\x45\x46\x47"
++                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
 +                        "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
 +                        "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
-+              .klen   = 8 + 28 + 16,
++              .klen   = 8 + 48 + 16,
 +              .iv     = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
 +                        "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
 +              .assoc  = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
 +                        "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
 +                        "\x10\x11\x12\x13\x14\x15\x16\x17"
@@ -99,12 +105,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a"
 +                        "\x75\x86\x60\x2d\x25\x3c\xff\xf9"
 +                        "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1"
-+                        "\xa1\x11\xfa\xbb\x1e\x04\x7e\xe7"
-+                        "\x4c\x5f\x65\xbf\x68\x8d\x33\x9d"
-+                        "\xbc\x74\x9b\xf3\x15\xf3\x8f\x8d"
-+                        "\xe8\xaf\x33\xe0",
-+
-+              .clen   = 32 + 28,
++                        "\x4e\x5b\xa8\x65\x51\xc6\x58\xaf"
++                        "\x31\x57\x50\x3d\x01\xa1\xa4\x3f"
++                        "\x42\xd1\xd7\x31\x76\x8d\xf8\xc8"
++                        "\xe4\xd2\x7e\xc5\x23\xe7\xc6\x2e"
++                        "\x2d\xfd\x9d\xc1\xac\x50\x1e\xcf"
++                        "\xa0\x10\xeb\x1a\x9c\xb7\xe1\xca",
++              .clen   = 32 + 48,
 +      }, { /* RFC 3602 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -117,15 +124,17 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x6c\x3e\xa0\x47\x76\x30\xce\x21"
 +                        "\xa2\xce\x33\x4a\xa7\x46\xc2\xcd",
-+              .klen   = 8 + 28 + 16,
++              .klen   = 8 + 48 + 16,
 +              .iv     = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
 +                        "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
 +              .assoc  = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
 +                        "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "This is a 48-byte message (exactly 3 AES blocks)",
 +              .plen   = 48,
 +              .ctext  = "\xd0\xa0\x2b\x38\x36\x45\x17\x53"
@@ -134,11 +143,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x50\x69\x39\x27\x67\x72\xf8\xd5"
 +                        "\x02\x1c\x19\x21\x6b\xad\x52\x5c"
 +                        "\x85\x79\x69\x5d\x83\xba\x26\x84"
-+                        "\x60\xb3\xca\x0e\xc1\xfe\xf2\x27"
-+                        "\x5a\x41\xe4\x99\xa8\x19\x56\xf1"
-+                        "\x44\x98\x27\x9f\x99\xb0\x4a\xad"
-+                        "\x4d\xc1\x1e\x88",
-+              .clen   = 48 + 28,
++                        "\xa1\x52\xe7\xda\xf7\x05\xb6\xca"
++                        "\xad\x0f\x51\xed\x5a\xd3\x0f\xdf"
++                        "\xde\xeb\x3f\x31\xed\x3a\x43\x93"
++                        "\x3b\xb7\xca\xc8\x1b\xe7\x3b\x61"
++                        "\x6a\x05\xfd\x2d\x6a\x5c\xb1\x0d"
++                        "\x6e\x7a\xeb\x1c\x84\xec\xdb\xde",
++              .clen   = 48 + 48,
 +      }, { /* RFC 3602 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -151,15 +162,17 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x56\xe4\x7a\x38\xc5\x59\x89\x74"
 +                        "\xbc\x46\x90\x3d\xba\x29\x03\x49",
-+              .klen   = 8 + 28 + 16,
++              .klen   = 8 + 48 + 16,
 +              .iv     = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
 +                        "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
 +              .assoc  = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
 +                        "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
 +                        "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
 +                        "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
@@ -177,11 +190,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x86\x8b\xb7\xb2\x9d\x3d\x46\xad"
 +                        "\x83\xce\x9f\x9a\x10\x2e\xe9\x9d"
 +                        "\x49\xa5\x3e\x87\xf4\xc3\xda\x55"
-+                        "\xbb\xe9\x38\xf8\xb9\xbf\xcb\x7b"
-+                        "\xa8\x22\x91\xea\x1e\xaf\x13\xba"
-+                        "\x24\x18\x64\x9c\xcb\xb4\xa9\x16"
-+                        "\x4b\x83\x9c\xec",
-+              .clen   = 64 + 28,
++                        "\x85\x7b\x91\xe0\x29\xeb\xd3\x59"
++                        "\x7c\xe3\x67\x14\xbe\x71\x2a\xd2"
++                        "\x8a\x1a\xd2\x35\x78\x6b\x69\xba"
++                        "\x64\xa5\x04\x00\x19\xc3\x4c\xae"
++                        "\x71\xff\x76\x9f\xbb\xc3\x29\x22"
++                        "\xc2\xc6\x51\xf1\xe6\x29\x5e\xa5",
++              .clen   = 64 + 48,
 +      }, { /* RFC 3602 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -194,10 +209,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x90\xd3\x82\xb4\x10\xee\xba\x7a"
 +                        "\xd9\x38\xc4\x6c\xec\x1a\x82\xbf",
-+              .klen   = 8 + 28 + 16,
++              .klen   = 8 + 48 + 16,
 +              .iv     = "\xe9\x6e\x8c\x08\xab\x46\x57\x63"
 +                        "\xfd\x09\x8d\x45\xdd\x3f\xf8\x93",
 +              .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01"
@@ -225,11 +242,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x53\x8a\xb5\x0c\x55\x1b\x87\x4a"
 +                        "\xa2\x69\xad\xd0\x47\xad\x2d\x59"
 +                        "\x13\xac\x19\xb7\xcf\xba\xd4\xa6"
-+                        "\x04\x5e\x83\x45\xc5\x6a\x5b\xe2"
-+                        "\x5e\xd8\x59\x06\xbd\xc7\xd2\x9b"
-+                        "\x0b\x65\x1f\x31\xc7\xe6\x9c\x39"
-+                        "\xa3\x66\xdb\xb8",
-+              .clen   = 80 + 28,
++                        "\x57\x5f\xb4\xd7\x74\x6f\x18\x97"
++                        "\xb7\xde\xfc\xf3\x4e\x0d\x29\x4d"
++                        "\xa0\xff\x39\x9e\x2d\xbf\x27\xac"
++                        "\x54\xb9\x8a\x3e\xab\x3b\xac\xd3"
++                        "\x36\x43\x74\xfc\xc2\x64\x81\x8a"
++                        "\x2c\x15\x72\xdf\x3f\x9d\x5b\xa4",
++              .clen   = 80 + 48,
 +      }, { /* NIST SP800-38A F.2.3 CBC-AES192.Encrypt */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -242,11 +261,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x8e\x73\xb0\xf7\xda\x0e\x64\x52"
 +                        "\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
 +                        "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b",
-+              .klen   = 8 + 28 + 24,
++              .klen   = 8 + 48 + 24,
 +              .iv     = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
 +              .assoc  = "\x00\x01\x02\x03\x04\x05\x06\x07"
@@ -269,12 +290,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0"
 +                        "\x08\xb0\xe2\x79\x88\x59\x88\x81"
 +                        "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd"
-+                        "\x67\x35\xcd\x86\x94\x51\x3b\x3a"
-+                        "\xaa\x07\xb1\xed\x18\x55\x62\x01"
-+                        "\x95\xb2\x53\xb5\x20\x78\x16\xd7"
-+                        "\xb8\x49\x7f\x96",
-+
-+              .clen   = 64 + 28,
++                        "\x29\x9b\x42\x47\x0b\xbf\xf3\x54"
++                        "\x54\x95\xb0\x89\xd5\xa0\xc3\x78"
++                        "\x60\x6c\x18\x39\x6d\xc9\xfb\x2a"
++                        "\x34\x1c\xed\x95\x10\x1e\x43\x0a"
++                        "\x72\xce\x26\xbc\x74\xd9\x6f\xa2"
++                        "\xf1\xd9\xd0\xb1\xdf\x3d\x93\x14",
++              .clen   = 64 + 48,
 +      }, { /* NIST SP800-38A F.2.5 CBC-AES256.Encrypt */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -287,12 +309,14 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
 +                        "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
 +                        "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
 +                        "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
-+              .klen   = 8 + 28 + 32,
++              .klen   = 8 + 48 + 32,
 +              .iv     = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
 +              .assoc  = "\x00\x01\x02\x03\x04\x05\x06\x07"
@@ -315,14 +339,16 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\xa5\x30\xe2\x63\x04\x23\x14\x61"
 +                        "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc"
 +                        "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b"
-+                        "\xe0\xe2\x3d\x3f\x55\x24\x2c\x4d"
-+                        "\xb9\x13\x2a\xc0\x07\xbb\x3b\xda"
-+                        "\xfd\xa4\x51\x32\x3f\x44\xb1\x13"
-+                        "\x98\xf9\xbc\xb9",
-+              .clen   = 64 + 28,
++                        "\x9f\x50\xce\x64\xd9\xa3\xc9\x7a"
++                        "\x15\x3a\x3d\x46\x9a\x90\xf3\x06"
++                        "\x22\xad\xc5\x24\x77\x50\xb8\xfe"
++                        "\xbe\x37\x16\x86\x34\x5f\xaf\x97"
++                        "\x00\x9d\x86\xc8\x32\x4f\x72\x2f"
++                        "\x48\x97\xad\xb6\xb9\x77\x33\xbc",
++              .clen   = 64 + 48,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha256_aes_cbc_tv_temp[] = {
+ static const struct aead_testvec hmac_sha512_aes_cbc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
  #ifdef __LITTLE_ENDIAN
similarity index 71%
rename from target/linux/generic/backport-6.12/910-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
rename to target/linux/generic/backport-6.12/912-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
index 49576779e1b85e2f7c2af2625bb2414e67505f4b..0bc0961c020ca1a6f52b04400adf0613c7a40a0a 100644 (file)
@@ -1,11 +1,11 @@
-From 030218dedee2628ea3f035d71431e1b7c4191cfb Mon Sep 17 00:00:00 2001
+From a22d48cbe55814061d46db2f87090ba5e36aaf7f Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Sat, 31 Jan 2026 18:38:47 +0100
+Date: Sat, 31 Jan 2026 18:43:03 +0100
 Subject: [PATCH] crypto: testmgr - Add test vectors for
- authenc(hmac(sha384),cbc(aes))
+ authenc(hmac(sha224),cbc(aes))
 
 Test vectors were generated starting from existing CBC(AES) test vectors
-(RFC3602, NIST SP800-38A) and adding HMAC(SHA384) computed with Python
+(RFC3602, NIST SP800-38A) and adding HMAC(SHA224) computed with Python
 script. Then, the results were double-checked on Mediatek MT7981 (safexcel)
 and NXP P2020 (talitos). Both platforms pass self-tests.
 
@@ -13,32 +13,32 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   7 ++
- crypto/testmgr.h | 311 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 318 insertions(+)
+ crypto/testmgr.h | 285 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 292 insertions(+)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4453,6 +4453,13 @@ static const struct alg_test_desc alg_te
+@@ -4414,6 +4414,13 @@ static const struct alg_test_desc alg_te
                .test = alg_test_null,
                .fips_allowed = 1,
        }, {
-+              .alg = "authenc(hmac(sha384),cbc(aes))",
-+              .generic_driver = "authenc(hmac-sha384-lib,cbc(aes-generic))",
++              .alg = "authenc(hmac(sha224),cbc(aes))",
++              .generic_driver = "authenc(hmac-sha224-lib,cbc(aes-generic))",
 +              .test = alg_test_aead,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha384_aes_cbc_tv_temp)
++                      .aead = __VECS(hmac_sha224_aes_cbc_tv_temp)
 +              }
 +      }, {
-               .alg = "authenc(hmac(sha384),cbc(des))",
+               .alg = "authenc(hmac(sha224),cbc(des))",
                .test = alg_test_aead,
                .suite = {
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -17773,6 +17773,317 @@ static const struct aead_testvec hmac_sh
+@@ -17610,6 +17610,291 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha384_aes_cbc_tv_temp[] = {
++static const struct aead_testvec hmac_sha224_aes_cbc_tv_temp[] = {
 +      { /* RFC 3602 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -51,28 +51,24 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00"
 +                        "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
 +                        "\x51\x2e\x03\xd5\x34\x12\x00\x06",
-+              .klen   = 8 + 48 + 16,
++              .klen   = 8 + 28 + 16,
 +              .iv     = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
 +                        "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
 +              .assoc  = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
 +                        "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "Single block msg",
 +              .plen   = 16,
 +              .ctext  = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
 +                        "\x27\x08\x94\x2d\xbe\x77\x18\x1a"
-+                        "\x79\x1c\xf1\x22\x95\x80\xe0\x60"
-+                        "\x7f\xf9\x92\x60\x83\xbd\x60\x9c"
-+                        "\xf6\x62\x8b\xa9\x7d\x56\xe2\xaf"
-+                        "\x80\x43\xbc\x41\x4a\x63\x0b\xa0"
-+                        "\x16\x25\xe2\xfe\x0a\x96\xf6\xa5"
-+                        "\x6c\x0b\xc2\x53\xb4\x27\xd9\x42",
-+              .clen   = 16 + 48,
++                        "\x17\xe8\x00\x76\x70\x71\xd1\x72"
++                        "\xf8\xd0\x91\x51\x67\xf9\xdf\xd6"
++                        "\x0d\x56\x1a\xb3\x52\x19\x85\xae"
++                        "\x46\x74\xb6\x98",
++              .clen   = 16 + 28,
 +      }, { /* RFC 3602 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -85,17 +81,15 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
-+                        "\x40\x41\x42\x43\x44\x45\x46\x47"
-+                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
++                        "\x38\x39\x3a\x3b"
 +                        "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
 +                        "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
-+              .klen   = 8 + 48 + 16,
++              .klen   = 8 + 28 + 16,
 +              .iv     = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
 +                        "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
 +              .assoc  = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
 +                        "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
 +                        "\x10\x11\x12\x13\x14\x15\x16\x17"
@@ -105,13 +99,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a"
 +                        "\x75\x86\x60\x2d\x25\x3c\xff\xf9"
 +                        "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1"
-+                        "\x4e\x5b\xa8\x65\x51\xc6\x58\xaf"
-+                        "\x31\x57\x50\x3d\x01\xa1\xa4\x3f"
-+                        "\x42\xd1\xd7\x31\x76\x8d\xf8\xc8"
-+                        "\xe4\xd2\x7e\xc5\x23\xe7\xc6\x2e"
-+                        "\x2d\xfd\x9d\xc1\xac\x50\x1e\xcf"
-+                        "\xa0\x10\xeb\x1a\x9c\xb7\xe1\xca",
-+              .clen   = 32 + 48,
++                        "\xa1\x11\xfa\xbb\x1e\x04\x7e\xe7"
++                        "\x4c\x5f\x65\xbf\x68\x8d\x33\x9d"
++                        "\xbc\x74\x9b\xf3\x15\xf3\x8f\x8d"
++                        "\xe8\xaf\x33\xe0",
++
++              .clen   = 32 + 28,
 +      }, { /* RFC 3602 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -124,17 +117,15 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x6c\x3e\xa0\x47\x76\x30\xce\x21"
 +                        "\xa2\xce\x33\x4a\xa7\x46\xc2\xcd",
-+              .klen   = 8 + 48 + 16,
++              .klen   = 8 + 28 + 16,
 +              .iv     = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
 +                        "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
 +              .assoc  = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
 +                        "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "This is a 48-byte message (exactly 3 AES blocks)",
 +              .plen   = 48,
 +              .ctext  = "\xd0\xa0\x2b\x38\x36\x45\x17\x53"
@@ -143,13 +134,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x50\x69\x39\x27\x67\x72\xf8\xd5"
 +                        "\x02\x1c\x19\x21\x6b\xad\x52\x5c"
 +                        "\x85\x79\x69\x5d\x83\xba\x26\x84"
-+                        "\xa1\x52\xe7\xda\xf7\x05\xb6\xca"
-+                        "\xad\x0f\x51\xed\x5a\xd3\x0f\xdf"
-+                        "\xde\xeb\x3f\x31\xed\x3a\x43\x93"
-+                        "\x3b\xb7\xca\xc8\x1b\xe7\x3b\x61"
-+                        "\x6a\x05\xfd\x2d\x6a\x5c\xb1\x0d"
-+                        "\x6e\x7a\xeb\x1c\x84\xec\xdb\xde",
-+              .clen   = 48 + 48,
++                        "\x60\xb3\xca\x0e\xc1\xfe\xf2\x27"
++                        "\x5a\x41\xe4\x99\xa8\x19\x56\xf1"
++                        "\x44\x98\x27\x9f\x99\xb0\x4a\xad"
++                        "\x4d\xc1\x1e\x88",
++              .clen   = 48 + 28,
 +      }, { /* RFC 3602 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -162,17 +151,15 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x56\xe4\x7a\x38\xc5\x59\x89\x74"
 +                        "\xbc\x46\x90\x3d\xba\x29\x03\x49",
-+              .klen   = 8 + 48 + 16,
++              .klen   = 8 + 28 + 16,
 +              .iv     = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
 +                        "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
 +              .assoc  = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
 +                        "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
 +                        "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
 +                        "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
@@ -190,13 +177,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x86\x8b\xb7\xb2\x9d\x3d\x46\xad"
 +                        "\x83\xce\x9f\x9a\x10\x2e\xe9\x9d"
 +                        "\x49\xa5\x3e\x87\xf4\xc3\xda\x55"
-+                        "\x85\x7b\x91\xe0\x29\xeb\xd3\x59"
-+                        "\x7c\xe3\x67\x14\xbe\x71\x2a\xd2"
-+                        "\x8a\x1a\xd2\x35\x78\x6b\x69\xba"
-+                        "\x64\xa5\x04\x00\x19\xc3\x4c\xae"
-+                        "\x71\xff\x76\x9f\xbb\xc3\x29\x22"
-+                        "\xc2\xc6\x51\xf1\xe6\x29\x5e\xa5",
-+              .clen   = 64 + 48,
++                        "\xbb\xe9\x38\xf8\xb9\xbf\xcb\x7b"
++                        "\xa8\x22\x91\xea\x1e\xaf\x13\xba"
++                        "\x24\x18\x64\x9c\xcb\xb4\xa9\x16"
++                        "\x4b\x83\x9c\xec",
++              .clen   = 64 + 28,
 +      }, { /* RFC 3602 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -209,12 +194,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x90\xd3\x82\xb4\x10\xee\xba\x7a"
 +                        "\xd9\x38\xc4\x6c\xec\x1a\x82\xbf",
-+              .klen   = 8 + 48 + 16,
++              .klen   = 8 + 28 + 16,
 +              .iv     = "\xe9\x6e\x8c\x08\xab\x46\x57\x63"
 +                        "\xfd\x09\x8d\x45\xdd\x3f\xf8\x93",
 +              .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01"
@@ -242,13 +225,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x53\x8a\xb5\x0c\x55\x1b\x87\x4a"
 +                        "\xa2\x69\xad\xd0\x47\xad\x2d\x59"
 +                        "\x13\xac\x19\xb7\xcf\xba\xd4\xa6"
-+                        "\x57\x5f\xb4\xd7\x74\x6f\x18\x97"
-+                        "\xb7\xde\xfc\xf3\x4e\x0d\x29\x4d"
-+                        "\xa0\xff\x39\x9e\x2d\xbf\x27\xac"
-+                        "\x54\xb9\x8a\x3e\xab\x3b\xac\xd3"
-+                        "\x36\x43\x74\xfc\xc2\x64\x81\x8a"
-+                        "\x2c\x15\x72\xdf\x3f\x9d\x5b\xa4",
-+              .clen   = 80 + 48,
++                        "\x04\x5e\x83\x45\xc5\x6a\x5b\xe2"
++                        "\x5e\xd8\x59\x06\xbd\xc7\xd2\x9b"
++                        "\x0b\x65\x1f\x31\xc7\xe6\x9c\x39"
++                        "\xa3\x66\xdb\xb8",
++              .clen   = 80 + 28,
 +      }, { /* NIST SP800-38A F.2.3 CBC-AES192.Encrypt */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -261,13 +242,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x8e\x73\xb0\xf7\xda\x0e\x64\x52"
 +                        "\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
 +                        "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b",
-+              .klen   = 8 + 48 + 24,
++              .klen   = 8 + 28 + 24,
 +              .iv     = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
 +              .assoc  = "\x00\x01\x02\x03\x04\x05\x06\x07"
@@ -290,13 +269,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0"
 +                        "\x08\xb0\xe2\x79\x88\x59\x88\x81"
 +                        "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd"
-+                        "\x29\x9b\x42\x47\x0b\xbf\xf3\x54"
-+                        "\x54\x95\xb0\x89\xd5\xa0\xc3\x78"
-+                        "\x60\x6c\x18\x39\x6d\xc9\xfb\x2a"
-+                        "\x34\x1c\xed\x95\x10\x1e\x43\x0a"
-+                        "\x72\xce\x26\xbc\x74\xd9\x6f\xa2"
-+                        "\xf1\xd9\xd0\xb1\xdf\x3d\x93\x14",
-+              .clen   = 64 + 48,
++                        "\x67\x35\xcd\x86\x94\x51\x3b\x3a"
++                        "\xaa\x07\xb1\xed\x18\x55\x62\x01"
++                        "\x95\xb2\x53\xb5\x20\x78\x16\xd7"
++                        "\xb8\x49\x7f\x96",
++
++              .clen   = 64 + 28,
 +      }, { /* NIST SP800-38A F.2.5 CBC-AES256.Encrypt */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -309,14 +287,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
 +                        "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
 +                        "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
 +                        "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
-+              .klen   = 8 + 48 + 32,
++              .klen   = 8 + 28 + 32,
 +              .iv     = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
 +              .assoc  = "\x00\x01\x02\x03\x04\x05\x06\x07"
@@ -339,16 +315,14 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\xa5\x30\xe2\x63\x04\x23\x14\x61"
 +                        "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc"
 +                        "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b"
-+                        "\x9f\x50\xce\x64\xd9\xa3\xc9\x7a"
-+                        "\x15\x3a\x3d\x46\x9a\x90\xf3\x06"
-+                        "\x22\xad\xc5\x24\x77\x50\xb8\xfe"
-+                        "\xbe\x37\x16\x86\x34\x5f\xaf\x97"
-+                        "\x00\x9d\x86\xc8\x32\x4f\x72\x2f"
-+                        "\x48\x97\xad\xb6\xb9\x77\x33\xbc",
-+              .clen   = 64 + 48,
++                        "\xe0\xe2\x3d\x3f\x55\x24\x2c\x4d"
++                        "\xb9\x13\x2a\xc0\x07\xbb\x3b\xda"
++                        "\xfd\xa4\x51\x32\x3f\x44\xb1\x13"
++                        "\x98\xf9\xbc\xb9",
++              .clen   = 64 + 28,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha512_aes_cbc_tv_temp[] = {
+ static const struct aead_testvec hmac_sha256_aes_cbc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
  #ifdef __LITTLE_ENDIAN
similarity index 98%
rename from target/linux/generic/backport-6.12/912-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
rename to target/linux/generic/backport-6.12/913-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
index 0e36006d3d4f37e394963ab426cdcea2b323d3cb..267ec6dd4c32d21461ba2cd8bd659e9992198af1 100644 (file)
@@ -34,7 +34,7 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
                .suite = {
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -19021,6 +19021,65 @@ static const struct aead_testvec hmac_sh
+@@ -19141,6 +19141,65 @@ static const struct aead_testvec hmac_sh
        },
  };
  
similarity index 98%
rename from target/linux/generic/backport-6.12/914-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
rename to target/linux/generic/backport-6.12/915-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
index 0c037504d085fe5b3946478595f1ffe98241059a..36858695d6be95950b93ca51351ebfdbd7bdf743 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
                .test = alg_test_aead,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -18708,6 +18708,63 @@ static const struct aead_testvec hmac_sh
+@@ -18828,6 +18828,63 @@ static const struct aead_testvec hmac_sh
        },
  };
  
index 6999c91951687fc5857608bc794db0b278427b86..c5c5db687bbbe7ecb51040128d490eb83732a97f 100644 (file)
@@ -1,11 +1,11 @@
-From 3f4d32aff1d4e06501f909b1e5037ec8caa76d01 Mon Sep 17 00:00:00 2001
+From b45b4314d3e55be70b597baa1f0ab9283e68003b Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Thu, 5 Mar 2026 21:08:21 +0100
-Subject: [PATCH 2/5] crypto: testmgr - Add test vectors for
- authenc(hmac(sha224),rfc3686(ctr(aes)))
+Date: Thu, 5 Mar 2026 21:08:20 +0100
+Subject: [PATCH 1/5] crypto: testmgr - Add test vectors for
+ authenc(hmac(sha1),rfc3686(ctr(aes)))
 
 Test vectors were generated starting from existing RFC3686(CTR(AES)) test
-vectors and adding HMAC(SHA224) computed with software implementation.
+vectors and adding HMAC(SHA1) computed with software implementation.
 Then, the results were double-checked on Mediatek MT7986 (safexcel).
 Platform pass self-tests.
 
@@ -13,32 +13,32 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   6 +-
- crypto/testmgr.h | 235 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 240 insertions(+), 1 deletion(-)
+ crypto/testmgr.h | 221 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 226 insertions(+), 1 deletion(-)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4452,8 +4452,12 @@ static const struct alg_test_desc alg_te
+@@ -4425,8 +4425,12 @@ static const struct alg_test_desc alg_te
                }
        }, {
-               .alg = "authenc(hmac(sha224),rfc3686(ctr(aes)))",
+               .alg = "authenc(hmac(sha1),rfc3686(ctr(aes)))",
 -              .test = alg_test_null,
-+              .generic_driver = "authenc(hmac-sha224-lib,rfc3686(ctr(aes-lib)))",
++              .generic_driver = "authenc(hmac-sha1-lib,rfc3686(ctr(aes-lib)))",
 +              .test = alg_test_aead,
                .fips_allowed = 1,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha224_aes_ctr_rfc3686_tv_temp)
++                      .aead = __VECS(hmac_sha1_aes_ctr_rfc3686_tv_temp)
 +              }
        }, {
-               .alg = "authenc(hmac(sha256),cbc(aes))",
-               .test = alg_test_aead,
+               .alg = "authenc(hmac(sha224),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha224-lib,cbc(aes-generic))",
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -17996,6 +17996,241 @@ static const struct aead_testvec hmac_sh
+@@ -17564,6 +17564,227 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha224_aes_ctr_rfc3686_tv_temp[] = {
++static const struct aead_testvec hmac_sha1_aes_ctr_rfc3686_tv_temp[] = {
 +      { /* RFC 3686 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -50,12 +50,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00"
 +                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
 +                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
 +                        "\x00\x00\x00\x30",
-+              .klen   = 8 + 28 + 20,
++              .klen   = 8 + 20 + 20,
 +              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .alen   = 8,
@@ -63,11 +62,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
 +                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
-+                        "\x36\xb4\x3b\x9c\x62\xed\xcf\x77"
-+                        "\xdc\x19\x27\x3f\x92\x80\x52\xce"
-+                        "\x8f\xad\x01\x0b\x79\xda\x04\x83"
-+                        "\xcb\x45\x1a\x52",
-+              .clen   = 16 + 28,
++                        "\x70\xdc\x6b\x62\x43\xa1\x2f\x08"
++                        "\xf1\xec\x93\x7d\x69\xb2\x8e\x1f"
++                        "\x0a\x97\x39\x86",
++              .clen   = 16 + 20,
 +      }, { /* RFC 3686 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -79,12 +77,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b"
++                        "\x30\x31\x32\x33"
 +                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
 +                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
 +                        "\x00\x6c\xb6\xdb",
-+              .klen   = 8 + 28 + 20,
++              .klen   = 8 + 20 + 20,
 +              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .alen   = 8,
@@ -97,11 +94,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
 +                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
 +                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
-+                        "\x7f\xe4\x8f\xa7\x06\x71\xe9\xe5"
-+                        "\x16\x79\xef\xf9\x7e\x5c\x93\x4d"
-+                        "\xa0\xf8\x3b\x3a\xaa\x1c\xc0\xd9"
-+                        "\x6b\x48\x49\x01",
-+              .clen   = 32 + 28,
++                        "\x6b\x7b\x4d\x39\x36\x1c\x12\x5f"
++                        "\x72\xd2\x88\xb2\x26\xa6\xa6\xb5"
++                        "\x1d\x3a\x49\xa6",
++              .clen   = 32 + 20,
 +      }, { /* RFC 3686 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -113,12 +109,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
-+                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\x22\x33\x44\x55"
 +                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
 +                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
 +                        "\x00\xe0\x01\x7b",
-+              .klen   = 8 + 28 + 20,
++              .klen   = 8 + 20 + 20,
 +              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .alen   = 8,
@@ -133,11 +128,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
 +                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
 +                        "\x25\xb2\x07\x2f"
-+                        "\xb0\x19\x45\xee\xa7\x31\xd9\xd0"
-+                        "\x74\x6b\xb8\xb1\x67\x61\x2f\x8c"
-+                        "\x68\xde\xe3\xc9\x3b\x0c\x72\xda"
-+                        "\x48\xba\x1b\x51",
-+              .clen   = 36 + 28,
++                        "\x2c\x86\xa0\x90\x8e\xc1\x02\x1d"
++                        "\x51\xdc\xd6\x21\xc7\x30\xcc\x32"
++                        "\x38\x55\x47\x64",
++              .clen   = 36 + 20,
 +      }, { /* RFC 3686 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -149,13 +143,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x1c"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00"
 +                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
 +                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
 +                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
 +                        "\x00\x00\x00\x48",
-+              .klen   = 8 + 28 + 28,
++              .klen   = 8 + 20 + 28,
 +              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .alen   = 8,
@@ -163,11 +156,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
 +                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
-+                        "\xfd\xf5\x35\x26\x50\x3d\xdf\x80"
-+                        "\x6e\xbe\xba\x8d\x56\xf3\x03\xb7"
-+                        "\x27\xb8\x13\xe8\x72\x8f\xc9\x52"
-+                        "\x4a\xb7\xc3\x3a",
-+              .clen   = 16 + 28,
++                        "\xe9\x4e\x49\xf0\x6b\x8d\x58\x2b"
++                        "\x26\x7f\xf3\xab\xeb\x2f\x74\x2f"
++                        "\x45\x43\x64\xc1",
++              .clen   = 16 + 20,
 +      }, { /* RFC 3686 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -179,13 +171,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x1c"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b"
++                        "\x30\x31\x32\x33"
 +                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
 +                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
 +                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
 +                        "\x00\x96\xb0\x3b",
-+              .klen   = 8 + 28 + 28,
++              .klen   = 8 + 20 + 28,
 +              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .alen   = 8,
@@ -198,11 +189,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
 +                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
 +                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
-+                        "\x72\x89\xa8\x04\xa5\xac\x8f\x29"
-+                        "\xe6\xb8\x58\xe8\xcf\x6a\x91\x89"
-+                        "\xd3\x66\x3b\xdc\xce\x43\x23\xb7"
-+                        "\x6a\xdd\x9d\xbd",
-+              .clen   = 32 + 28,
++                        "\xab\xc4\xfa\x6d\x20\xe1\xce\x72"
++                        "\x0e\x92\x4e\x97\xaa\x4d\x30\x84"
++                        "\xb6\xd8\x4d\x3b",
++              .clen   = 32 + 20,
 +      }, { /* RFC 3686 Case 7 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -214,14 +204,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x24"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00"
 +                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
 +                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
 +                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
 +                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
 +                        "\x00\x00\x00\x60",
-+              .klen   = 8 + 28 + 36,
++              .klen   = 8 + 20 + 36,
 +              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .alen   = 8,
@@ -229,11 +218,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
 +                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
-+                        "\xfe\xdf\x6f\x62\x8a\x79\xb5\x34"
-+                        "\xd0\x6f\x32\xaf\x31\x50\x5b\x1f"
-+                        "\xe0\x6d\x0b\xbc\x02\x25\xee\x74"
-+                        "\x7a\xdf\x97\x3c",
-+              .clen   = 16 + 28,
++                        "\x3d\x6c\x23\x27\xda\x0e\x7f\x29"
++                        "\xfd\x8d\x3c\x1b\xf7\x7a\x63\xd9"
++                        "\x7e\x0f\xe9\xf6",
++              .clen   = 16 + 20,
 +      }, { /* RFC 3686 Case 8 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -245,14 +233,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x24"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b"
++                        "\x30\x31\x32\x33"
 +                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
 +                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
 +                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
 +                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
 +                        "\x00\xfa\xac\x24",
-+              .klen   = 8 + 28 + 36,
++              .klen   = 8 + 20 + 36,
 +              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .alen   = 8,
@@ -265,14 +252,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
 +                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
 +                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
-+                        "\x19\x1e\x9c\x2c\x6d\x4e\x21\xda"
-+                        "\x6c\x4d\x88\x90\xf8\x5f\xa5\x9d"
-+                        "\xb4\xd4\x40\xad\xfa\x67\x3f\x0e"
-+                        "\x11\x12\xd6\x10",
-+              .clen   = 32 + 28,
++                        "\xe7\xee\x22\xa4\xdd\xbf\x5d\x44"
++                        "\x3b\x43\x1c\x69\x55\x11\xd5\xad"
++                        "\x14\x5f\x44\xa6",
++              .clen   = 32 + 20,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha256_aes_cbc_tv_temp[] = {
-       { /* RFC 3602 Case 1 */
+ static const struct aead_testvec hmac_sha1_ecb_cipher_null_tv_temp[] = {
+       { /* Input data from RFC 2410 Case 1 */
  #ifdef __LITTLE_ENDIAN
index bd09c4cedf7896c4fe5a842c28ec8c9fe39be1e0..1b10427f025890fd031a36b6d5f61539089f5e33 100644 (file)
@@ -1,11 +1,11 @@
-From 65af3a0bff7264ab84f9e1f2099c658601ca1b66 Mon Sep 17 00:00:00 2001
+From d46c27c01f132082095342b5abf4e83e250b70b8 Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Thu, 5 Mar 2026 21:08:22 +0100
-Subject: [PATCH 3/5] crypto: testmgr - Add test vectors for
- authenc(hmac(sha256),rfc3686(ctr(aes)))
+Date: Thu, 5 Mar 2026 21:08:21 +0100
+Subject: [PATCH 2/5] crypto: testmgr - Add test vectors for
+ authenc(hmac(sha224),rfc3686(ctr(aes)))
 
 Test vectors were generated starting from existing RFC3686(CTR(AES)) test
-vectors and adding HMAC(SHA256) computed with software implementation.
+vectors and adding HMAC(SHA224) computed with software implementation.
 Then, the results were double-checked on Mediatek MT7986 (safexcel).
 Platform pass self-tests.
 
@@ -18,27 +18,27 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4483,8 +4483,12 @@ static const struct alg_test_desc alg_te
-               .fips_allowed = 1,
+@@ -4452,8 +4452,12 @@ static const struct alg_test_desc alg_te
+               }
        }, {
-               .alg = "authenc(hmac(sha256),rfc3686(ctr(aes)))",
+               .alg = "authenc(hmac(sha224),rfc3686(ctr(aes)))",
 -              .test = alg_test_null,
-+              .generic_driver = "authenc(hmac-sha256-lib,rfc3686(ctr(aes-lib)))",
++              .generic_driver = "authenc(hmac-sha224-lib,rfc3686(ctr(aes-lib)))",
 +              .test = alg_test_aead,
                .fips_allowed = 1,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha256_aes_ctr_rfc3686_tv_temp)
++                      .aead = __VECS(hmac_sha224_aes_ctr_rfc3686_tv_temp)
 +              }
        }, {
-               .alg = "authenc(hmac(sha384),cbc(aes))",
-               .generic_driver = "authenc(hmac-sha384-lib,cbc(aes-generic))",
+               .alg = "authenc(hmac(sha256),cbc(aes))",
+               .test = alg_test_aead,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -18514,6 +18514,241 @@ static const struct aead_testvec hmac_sh
+@@ -18116,6 +18116,241 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha256_aes_ctr_rfc3686_tv_temp[] = {
++static const struct aead_testvec hmac_sha224_aes_ctr_rfc3686_tv_temp[] = {
 +      { /* RFC 3686 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -51,11 +51,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00"
 +                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
 +                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
 +                        "\x00\x00\x00\x30",
-+              .klen   = 8 + 32 + 20,
++              .klen   = 8 + 28 + 20,
 +              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .alen   = 8,
@@ -63,11 +63,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
 +                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
-+                        "\x9b\xa2\x34\x62\xe5\xb3\xe8\x2d"
-+                        "\x6d\xdb\x93\x64\xa5\x08\x2e\x77"
-+                        "\x72\x1f\x21\x94\xc7\xbe\x14\xa6"
-+                        "\xcd\xea\x96\xa1\x29\x8f\x30\xc3",
-+              .clen   = 16 + 32,
++                        "\x36\xb4\x3b\x9c\x62\xed\xcf\x77"
++                        "\xdc\x19\x27\x3f\x92\x80\x52\xce"
++                        "\x8f\xad\x01\x0b\x79\xda\x04\x83"
++                        "\xcb\x45\x1a\x52",
++              .clen   = 16 + 28,
 +      }, { /* RFC 3686 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -80,11 +80,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x38\x39\x3a\x3b"
 +                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
 +                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
 +                        "\x00\x6c\xb6\xdb",
-+              .klen   = 8 + 32 + 20,
++              .klen   = 8 + 28 + 20,
 +              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .alen   = 8,
@@ -97,11 +97,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
 +                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
 +                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
-+                        "\x22\xf7\x95\xa8\xbb\xcd\x19\xf4"
-+                        "\x58\x16\x54\x28\x2b\xf4\x52\xe7"
-+                        "\x5c\x6c\xe1\x44\x0b\xd5\x10\x6e"
-+                        "\xe1\xf7\x04\xc4\x2c\xab\x93\xdd",
-+              .clen   = 32 + 32,
++                        "\x7f\xe4\x8f\xa7\x06\x71\xe9\xe5"
++                        "\x16\x79\xef\xf9\x7e\x5c\x93\x4d"
++                        "\xa0\xf8\x3b\x3a\xaa\x1c\xc0\xd9"
++                        "\x6b\x48\x49\x01",
++              .clen   = 32 + 28,
 +      }, { /* RFC 3686 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -114,11 +114,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
 +                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
 +                        "\x00\xe0\x01\x7b",
-+              .klen   = 8 + 32 + 20,
++              .klen   = 8 + 28 + 20,
 +              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .alen   = 8,
@@ -133,11 +133,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
 +                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
 +                        "\x25\xb2\x07\x2f"
-+                        "\x1d\x05\x5f\x77\x3b\x4f\x5c\x21"
-+                        "\x29\xea\xf1\xa8\x71\x49\x7b\x0b"
-+                        "\x66\x0d\xff\x18\x81\x63\xfc\xc3"
-+                        "\x91\xb6\x38\xc8\xcd\x2d\x39\x83",
-+              .clen   = 36 + 32,
++                        "\xb0\x19\x45\xee\xa7\x31\xd9\xd0"
++                        "\x74\x6b\xb8\xb1\x67\x61\x2f\x8c"
++                        "\x68\xde\xe3\xc9\x3b\x0c\x72\xda"
++                        "\x48\xba\x1b\x51",
++              .clen   = 36 + 28,
 +      }, { /* RFC 3686 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -150,12 +150,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00"
 +                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
 +                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
 +                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
 +                        "\x00\x00\x00\x48",
-+              .klen   = 8 + 32 + 28,
++              .klen   = 8 + 28 + 28,
 +              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .alen   = 8,
@@ -163,11 +163,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
 +                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
-+                        "\x8d\x03\x77\xb2\x1c\xc9\xe0\xac"
-+                        "\xde\x69\xbe\x8a\xef\x5b\x13\x74"
-+                        "\x1d\x39\xbc\xdc\x95\xa4\xbf\xc3"
-+                        "\xd5\xc6\xd1\xda\xda\x3b\xca\x78",
-+              .clen   = 16 + 32,
++                        "\xfd\xf5\x35\x26\x50\x3d\xdf\x80"
++                        "\x6e\xbe\xba\x8d\x56\xf3\x03\xb7"
++                        "\x27\xb8\x13\xe8\x72\x8f\xc9\x52"
++                        "\x4a\xb7\xc3\x3a",
++              .clen   = 16 + 28,
 +      }, { /* RFC 3686 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -180,12 +180,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x38\x39\x3a\x3b"
 +                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
 +                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
 +                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
 +                        "\x00\x96\xb0\x3b",
-+              .klen   = 8 + 32 + 28,
++              .klen   = 8 + 28 + 28,
 +              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .alen   = 8,
@@ -198,11 +198,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
 +                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
 +                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
-+                        "\x34\x06\x2b\x3d\xf1\xa8\x3d\xf1"
-+                        "\xa6\x5e\x5c\x1a\xdb\x0c\xb5\x1e"
-+                        "\x8f\xdb\xf4\xca\x7d\x09\x5e\x81"
-+                        "\xdb\x32\x07\x4a\x1d\x1c\x6d\x83",
-+              .clen   = 32 + 32,
++                        "\x72\x89\xa8\x04\xa5\xac\x8f\x29"
++                        "\xe6\xb8\x58\xe8\xcf\x6a\x91\x89"
++                        "\xd3\x66\x3b\xdc\xce\x43\x23\xb7"
++                        "\x6a\xdd\x9d\xbd",
++              .clen   = 32 + 28,
 +      }, { /* RFC 3686 Case 7 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -215,13 +215,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00"
 +                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
 +                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
 +                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
 +                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
 +                        "\x00\x00\x00\x60",
-+              .klen   = 8 + 32 + 36,
++              .klen   = 8 + 28 + 36,
 +              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .alen   = 8,
@@ -229,11 +229,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
 +                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
-+                        "\xc3\xb4\x5f\xb0\xbf\xf5\x1b\xff"
-+                        "\x7c\xf1\x79\x00\x63\x50\xdd\x77"
-+                        "\xc0\x4a\xba\xcd\xdc\x47\x05\x2a"
-+                        "\x5d\x85\x2d\x83\x44\xca\x79\x2c",
-+              .clen   = 16 + 32,
++                        "\xfe\xdf\x6f\x62\x8a\x79\xb5\x34"
++                        "\xd0\x6f\x32\xaf\x31\x50\x5b\x1f"
++                        "\xe0\x6d\x0b\xbc\x02\x25\xee\x74"
++                        "\x7a\xdf\x97\x3c",
++              .clen   = 16 + 28,
 +      }, { /* RFC 3686 Case 8 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -246,13 +246,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x38\x39\x3a\x3b"
 +                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
 +                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
 +                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
 +                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
 +                        "\x00\xfa\xac\x24",
-+              .klen   = 8 + 32 + 36,
++              .klen   = 8 + 28 + 36,
 +              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .alen   = 8,
@@ -265,14 +265,14 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
 +                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
 +                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
-+                        "\xc8\x59\x5d\xe1\xba\xac\x13\x82"
-+                        "\xfd\x21\x7c\x8c\x23\x31\x04\x02"
-+                        "\x9e\x69\x5b\x57\xa8\x13\xe7\x21"
-+                        "\x60\x0c\x24\xc2\x80\x4a\x93\x6e",
-+              .clen   = 32 + 32,
++                        "\x19\x1e\x9c\x2c\x6d\x4e\x21\xda"
++                        "\x6c\x4d\x88\x90\xf8\x5f\xa5\x9d"
++                        "\xb4\xd4\x40\xad\xfa\x67\x3f\x0e"
++                        "\x11\x12\xd6\x10",
++              .clen   = 32 + 28,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha384_aes_cbc_tv_temp[] = {
+ static const struct aead_testvec hmac_sha256_aes_cbc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
  #ifdef __LITTLE_ENDIAN
index 5283fcc028c6f68048a77b21faed8758000630ac..a08e410c7bdfaff81bdc9936e75107ec7bcee29b 100644 (file)
@@ -1,11 +1,11 @@
-From 07cbbf6f38e6a91a7fecab3d6f86485425748d3e Mon Sep 17 00:00:00 2001
+From 5ac6b904c70ff163fd2f9e152056300ce5ed6c26 Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Thu, 5 Mar 2026 21:08:23 +0100
-Subject: [PATCH 4/5] crypto: testmgr - Add test vectors for
- authenc(hmac(sha384),rfc3686(ctr(aes)))
+Date: Thu, 5 Mar 2026 21:08:22 +0100
+Subject: [PATCH 3/5] crypto: testmgr - Add test vectors for
+ authenc(hmac(sha256),rfc3686(ctr(aes)))
 
 Test vectors were generated starting from existing RFC3686(CTR(AES)) test
-vectors and adding HMAC(SHA384) computed with software implementation.
+vectors and adding HMAC(SHA256) computed with software implementation.
 Then, the results were double-checked on Mediatek MT7986 (safexcel).
 Platform pass self-tests.
 
@@ -13,32 +13,32 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   6 +-
- crypto/testmgr.h | 263 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 268 insertions(+), 1 deletion(-)
+ crypto/testmgr.h | 235 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 240 insertions(+), 1 deletion(-)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4514,8 +4514,12 @@ static const struct alg_test_desc alg_te
+@@ -4483,8 +4483,12 @@ static const struct alg_test_desc alg_te
                .fips_allowed = 1,
        }, {
-               .alg = "authenc(hmac(sha384),rfc3686(ctr(aes)))",
+               .alg = "authenc(hmac(sha256),rfc3686(ctr(aes)))",
 -              .test = alg_test_null,
-+              .generic_driver = "authenc(hmac-sha384-lib,rfc3686(ctr(aes-lib)))",
++              .generic_driver = "authenc(hmac-sha256-lib,rfc3686(ctr(aes-lib)))",
 +              .test = alg_test_aead,
                .fips_allowed = 1,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha384_aes_ctr_rfc3686_tv_temp)
++                      .aead = __VECS(hmac_sha256_aes_ctr_rfc3686_tv_temp)
 +              }
        }, {
-               .alg = "authenc(hmac(sha512),cbc(aes))",
-               .fips_allowed = 1,
+               .alg = "authenc(hmac(sha384),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha384-lib,cbc(aes-generic))",
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -19060,6 +19060,269 @@ static const struct aead_testvec hmac_sh
+@@ -18634,6 +18634,241 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha384_aes_ctr_rfc3686_tv_temp[] = {
++static const struct aead_testvec hmac_sha256_aes_ctr_rfc3686_tv_temp[] = {
 +      { /* RFC 3686 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -52,12 +52,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
 +                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
 +                        "\x00\x00\x00\x30",
-+              .klen   = 8 + 48 + 20,
++              .klen   = 8 + 32 + 20,
 +              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .alen   = 8,
@@ -65,13 +63,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
 +                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
-+                        "\x45\x51\x59\x72\x16\xd3\xc6\x15"
-+                        "\x25\x1e\xe8\x92\x2e\x47\x52\xcc"
-+                        "\x91\x9c\x24\xef\x11\xb2\x53\x00"
-+                        "\x10\x20\x43\x06\xe2\x35\x88\x9e"
-+                        "\x18\x32\x5a\x79\x7d\x73\x7e\x89"
-+                        "\xfe\xa1\xda\xa4\x86\xc4\x2a\x04",
-+              .clen   = 16 + 48,
++                        "\x9b\xa2\x34\x62\xe5\xb3\xe8\x2d"
++                        "\x6d\xdb\x93\x64\xa5\x08\x2e\x77"
++                        "\x72\x1f\x21\x94\xc7\xbe\x14\xa6"
++                        "\xcd\xea\x96\xa1\x29\x8f\x30\xc3",
++              .clen   = 16 + 32,
 +      }, { /* RFC 3686 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -85,12 +81,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
-+                        "\x40\x41\x42\x43\x44\x45\x46\x47"
-+                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
 +                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
 +                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
 +                        "\x00\x6c\xb6\xdb",
-+              .klen   = 8 + 48 + 20,
++              .klen   = 8 + 32 + 20,
 +              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .alen   = 8,
@@ -103,13 +97,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
 +                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
 +                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
-+                        "\x83\x65\x32\x1e\x6b\x60\xe6\x4a"
-+                        "\xe2\xab\x52\x2b\xa6\x70\x3a\xfa"
-+                        "\xd2\xec\x83\xe4\x31\x0c\x28\x40"
-+                        "\x9b\x5e\x18\xa4\xdc\x48\xb8\x56"
-+                        "\x33\xab\x7f\x2b\xaf\xe4\x3a\xe3"
-+                        "\x8a\x61\xf6\x22\xb4\x6b\xfe\x7d",
-+              .clen   = 32 + 48,
++                        "\x22\xf7\x95\xa8\xbb\xcd\x19\xf4"
++                        "\x58\x16\x54\x28\x2b\xf4\x52\xe7"
++                        "\x5c\x6c\xe1\x44\x0b\xd5\x10\x6e"
++                        "\xe1\xf7\x04\xc4\x2c\xab\x93\xdd",
++              .clen   = 32 + 32,
 +      }, { /* RFC 3686 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -123,12 +115,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
 +                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
 +                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
 +                        "\x00\xe0\x01\x7b",
-+              .klen   = 8 + 48 + 20,
++              .klen   = 8 + 32 + 20,
 +              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .alen   = 8,
@@ -143,13 +133,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
 +                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
 +                        "\x25\xb2\x07\x2f"
-+                        "\x4a\xaa\xad\x3b\x3b\xb6\x9a\xba"
-+                        "\xa1\x7b\xc6\xce\x96\xc3\xff\x67"
-+                        "\xf3\x0c\x33\x57\xf0\x51\x24\x08"
-+                        "\xed\x4f\x6a\x9c\x22\x42\xbd\x18"
-+                        "\x97\x74\x68\x36\x00\xf1\x69\x3a"
-+                        "\x18\x77\x40\xf0\x56\xba\xba\xe0",
-+              .clen   = 36 + 48,
++                        "\x1d\x05\x5f\x77\x3b\x4f\x5c\x21"
++                        "\x29\xea\xf1\xa8\x71\x49\x7b\x0b"
++                        "\x66\x0d\xff\x18\x81\x63\xfc\xc3"
++                        "\x91\xb6\x38\xc8\xcd\x2d\x39\x83",
++              .clen   = 36 + 32,
 +      }, { /* RFC 3686 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -163,13 +151,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
 +                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
 +                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
 +                        "\x00\x00\x00\x48",
-+              .klen   = 8 + 48 + 28,
++              .klen   = 8 + 32 + 28,
 +              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .alen   = 8,
@@ -177,13 +163,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
 +                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
-+                        "\x36\xd6\xc7\x55\xac\xb6\x0b\x14"
-+                        "\x95\x71\xf9\x86\x30\xe3\x96\xc3"
-+                        "\x76\x85\x6d\xa5\x06\xed\x6f\x34"
-+                        "\xcc\x1f\xcc\x2d\x88\x06\xb0\x1d"
-+                        "\xbe\xd9\xa2\xd3\x64\xf1\x33\x03"
-+                        "\x13\x50\x8f\xae\x61\x2d\x82\xb8",
-+              .clen   = 16 + 48,
++                        "\x8d\x03\x77\xb2\x1c\xc9\xe0\xac"
++                        "\xde\x69\xbe\x8a\xef\x5b\x13\x74"
++                        "\x1d\x39\xbc\xdc\x95\xa4\xbf\xc3"
++                        "\xd5\xc6\xd1\xda\xda\x3b\xca\x78",
++              .clen   = 16 + 32,
 +      }, { /* RFC 3686 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -197,13 +181,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
-+                        "\x40\x41\x42\x43\x44\x45\x46\x47"
-+                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
 +                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
 +                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
 +                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
 +                        "\x00\x96\xb0\x3b",
-+              .klen   = 8 + 48 + 28,
++              .klen   = 8 + 32 + 28,
 +              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .alen   = 8,
@@ -216,13 +198,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
 +                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
 +                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
-+                        "\x80\x12\x67\x22\xf2\x4d\x9b\xbf"
-+                        "\xdc\x38\xd3\xaa\x12\xc0\x58\x1a"
-+                        "\x9a\x62\x6e\x42\x3d\x44\x63\xdd"
-+                        "\xee\x7e\xe3\xa3\xdf\x2a\x65\x05"
-+                        "\xd0\xc1\xd2\x54\x55\x35\x5c\xc7"
-+                        "\xb0\xb5\xb1\x36\xe0\x0b\xaf\x72",
-+              .clen   = 32 + 48,
++                        "\x34\x06\x2b\x3d\xf1\xa8\x3d\xf1"
++                        "\xa6\x5e\x5c\x1a\xdb\x0c\xb5\x1e"
++                        "\x8f\xdb\xf4\xca\x7d\x09\x5e\x81"
++                        "\xdb\x32\x07\x4a\x1d\x1c\x6d\x83",
++              .clen   = 32 + 32,
 +      }, { /* RFC 3686 Case 7 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -236,14 +216,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
 +                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
 +                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
 +                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
 +                        "\x00\x00\x00\x60",
-+              .klen   = 8 + 48 + 36,
++              .klen   = 8 + 32 + 36,
 +              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .alen   = 8,
@@ -251,13 +229,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
 +                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
-+                        "\xb1\x7b\xb1\xec\xca\x94\x55\xc4"
-+                        "\x3f\x2b\xb1\x70\x04\x91\xf5\x9d"
-+                        "\x1a\xc0\xe1\x2a\x93\x5f\x96\x2a"
-+                        "\x12\x85\x38\x36\xe1\xb2\xe9\xf0"
-+                        "\xf2\x6e\x5d\x81\xcc\x49\x07\x9c"
-+                        "\x5b\x88\xc8\xcc\xc4\x21\x4f\x32",
-+              .clen   = 16 + 48,
++                        "\xc3\xb4\x5f\xb0\xbf\xf5\x1b\xff"
++                        "\x7c\xf1\x79\x00\x63\x50\xdd\x77"
++                        "\xc0\x4a\xba\xcd\xdc\x47\x05\x2a"
++                        "\x5d\x85\x2d\x83\x44\xca\x79\x2c",
++              .clen   = 16 + 32,
 +      }, { /* RFC 3686 Case 8 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -271,14 +247,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
-+                        "\x40\x41\x42\x43\x44\x45\x46\x47"
-+                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
 +                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
 +                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
 +                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
 +                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
 +                        "\x00\xfa\xac\x24",
-+              .klen   = 8 + 48 + 36,
++              .klen   = 8 + 32 + 36,
 +              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .alen   = 8,
@@ -291,16 +265,14 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
 +                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
 +                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
-+                        "\xd6\x96\xbb\x12\x39\xc4\x4d\xe2"
-+                        "\x4c\x02\xe7\x1f\xdc\xb2\xb1\x57"
-+                        "\x38\x0d\xdd\x13\xb3\x89\x57\x9e"
-+                        "\x1f\xb5\x48\x32\xc4\xd3\x9d\x1f"
-+                        "\x68\xab\x8d\xc6\xa8\x05\x3a\xc2"
-+                        "\x87\xaf\x23\xb3\xe4\x1b\xde\xb3",
-+              .clen   = 32 + 48,
++                        "\xc8\x59\x5d\xe1\xba\xac\x13\x82"
++                        "\xfd\x21\x7c\x8c\x23\x31\x04\x02"
++                        "\x9e\x69\x5b\x57\xa8\x13\xe7\x21"
++                        "\x60\x0c\x24\xc2\x80\x4a\x93\x6e",
++              .clen   = 32 + 32,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha512_aes_cbc_tv_temp[] = {
+ static const struct aead_testvec hmac_sha384_aes_cbc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
  #ifdef __LITTLE_ENDIAN
index 87949eb412fd9b851f88de8c7a29b19d855929ec..47251ec874135669768154e983503121ea8c2c98 100644 (file)
@@ -1,11 +1,11 @@
-From 07f1bc80c478c7198065d3896ed3685428314a9c Mon Sep 17 00:00:00 2001
+From 2f0814271715f974ae1fc6247c9918906c83e24b Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Thu, 5 Mar 2026 21:08:24 +0100
-Subject: [PATCH 5/5] crypto: testmgr - Add test vectors for
- authenc(hmac(sha512),rfc3686(ctr(aes)))
+Date: Thu, 5 Mar 2026 21:08:23 +0100
+Subject: [PATCH 4/5] crypto: testmgr - Add test vectors for
+ authenc(hmac(sha384),rfc3686(ctr(aes)))
 
 Test vectors were generated starting from existing RFC3686(CTR(AES)) test
-vectors and adding HMAC(SHA512) computed with software implementation.
+vectors and adding HMAC(SHA384) computed with software implementation.
 Then, the results were double-checked on Mediatek MT7986 (safexcel).
 Platform pass self-tests.
 
@@ -13,32 +13,32 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   6 +-
- crypto/testmgr.h | 291 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 296 insertions(+), 1 deletion(-)
+ crypto/testmgr.h | 263 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 268 insertions(+), 1 deletion(-)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4545,8 +4545,12 @@ static const struct alg_test_desc alg_te
+@@ -4514,8 +4514,12 @@ static const struct alg_test_desc alg_te
                .fips_allowed = 1,
        }, {
-               .alg = "authenc(hmac(sha512),rfc3686(ctr(aes)))",
+               .alg = "authenc(hmac(sha384),rfc3686(ctr(aes)))",
 -              .test = alg_test_null,
-+              .generic_driver = "authenc(hmac-sha512-lib,rfc3686(ctr(aes-lib)))",
++              .generic_driver = "authenc(hmac-sha384-lib,rfc3686(ctr(aes-lib)))",
 +              .test = alg_test_aead,
                .fips_allowed = 1,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha512_aes_ctr_rfc3686_tv_temp)
++                      .aead = __VECS(hmac_sha384_aes_ctr_rfc3686_tv_temp)
 +              }
        }, {
-               .alg = "blake2b-160",
-               .test = alg_test_hash,
+               .alg = "authenc(hmac(sha512),cbc(aes))",
+               .fips_allowed = 1,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -19719,6 +19719,297 @@ static const struct aead_testvec hmac_md
+@@ -19180,6 +19180,269 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha512_aes_ctr_rfc3686_tv_temp[] = {
++static const struct aead_testvec hmac_sha384_aes_ctr_rfc3686_tv_temp[] = {
 +      { /* RFC 3686 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -54,12 +54,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
 +                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
 +                        "\x00\x00\x00\x30",
-+              .klen   = 8 + 64 + 20,
++              .klen   = 8 + 48 + 20,
 +              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .alen   = 8,
@@ -67,15 +65,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
 +                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
-+                        "\xa4\x45\x3a\x44\x9c\xe5\x1c\xd9"
-+                        "\x10\x43\x51\x2e\x76\x5e\xf8\x9d"
-+                        "\x03\x12\x1a\x31\x00\x33\x10\xb4"
-+                        "\x94\x4b\x70\x84\x6c\xda\xb1\x46"
-+                        "\x24\xb6\x3b\x2a\xec\xd5\x67\xb8"
-+                        "\x65\xa2\xbd\xac\x18\xe2\xf8\x55"
-+                        "\xc6\x91\xb0\x92\x84\x2d\x74\x44"
-+                        "\xa7\xee\xc3\x44\xa0\x07\x0e\x62",
-+              .clen   = 16 + 64,
++                        "\x45\x51\x59\x72\x16\xd3\xc6\x15"
++                        "\x25\x1e\xe8\x92\x2e\x47\x52\xcc"
++                        "\x91\x9c\x24\xef\x11\xb2\x53\x00"
++                        "\x10\x20\x43\x06\xe2\x35\x88\x9e"
++                        "\x18\x32\x5a\x79\x7d\x73\x7e\x89"
++                        "\xfe\xa1\xda\xa4\x86\xc4\x2a\x04",
++              .clen   = 16 + 48,
 +      }, { /* RFC 3686 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -91,12 +87,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
 +                        "\x40\x41\x42\x43\x44\x45\x46\x47"
 +                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
-+                        "\x50\x51\x52\x53\x54\x55\x56\x57"
-+                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
 +                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
 +                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
 +                        "\x00\x6c\xb6\xdb",
-+              .klen   = 8 + 64 + 20,
++              .klen   = 8 + 48 + 20,
 +              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .alen   = 8,
@@ -109,15 +103,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
 +                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
 +                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
-+                        "\xec\x67\x0d\xb3\xbd\x98\x13\x01"
-+                        "\x2b\x04\x9b\xe6\x06\x67\x3c\x76"
-+                        "\xcd\x41\xb7\xcc\x70\x6c\x7f\xc8"
-+                        "\x67\xbd\x22\x39\xb2\xaa\xe8\x88"
-+                        "\xe0\x4f\x81\x52\xdf\xc9\xc3\xd6"
-+                        "\x44\xf4\x66\x33\x87\x64\x61\x02"
-+                        "\x02\xa2\x64\x15\x2b\xe9\x0b\x3d"
-+                        "\x4c\xea\xa1\xa5\xa7\xc9\xd3\x1b",
-+              .clen   = 32 + 64,
++                        "\x83\x65\x32\x1e\x6b\x60\xe6\x4a"
++                        "\xe2\xab\x52\x2b\xa6\x70\x3a\xfa"
++                        "\xd2\xec\x83\xe4\x31\x0c\x28\x40"
++                        "\x9b\x5e\x18\xa4\xdc\x48\xb8\x56"
++                        "\x33\xab\x7f\x2b\xaf\xe4\x3a\xe3"
++                        "\x8a\x61\xf6\x22\xb4\x6b\xfe\x7d",
++              .clen   = 32 + 48,
 +      }, { /* RFC 3686 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -133,12 +125,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
 +                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
 +                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
-+                        "\x44\x55\x66\x77\x88\x99\xaa\xbb"
-+                        "\xcc\xdd\xee\xff\x11\x22\x33\x44"
 +                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
 +                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
 +                        "\x00\xe0\x01\x7b",
-+              .klen   = 8 + 64 + 20,
++              .klen   = 8 + 48 + 20,
 +              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .alen   = 8,
@@ -153,15 +143,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
 +                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
 +                        "\x25\xb2\x07\x2f"
-+                        "\x6f\x90\xb6\xa3\x35\x43\x59\xff"
-+                        "\x1e\x32\xd6\xfe\xfa\x33\xf9\xf0"
-+                        "\x31\x2f\x03\x2d\x88\x1d\xab\xbf"
-+                        "\x0e\x19\x16\xd9\xf3\x98\x3e\xdd"
-+                        "\x0c\xec\xfe\xe8\x89\x13\x91\x15"
-+                        "\xf6\x61\x65\x5c\x1b\x7d\xde\xc0"
-+                        "\xe4\xba\x6d\x27\xe2\x89\x23\x24"
-+                        "\x15\x82\x37\x3d\x48\xd3\xc9\x32",
-+              .clen   = 36 + 64,
++                        "\x4a\xaa\xad\x3b\x3b\xb6\x9a\xba"
++                        "\xa1\x7b\xc6\xce\x96\xc3\xff\x67"
++                        "\xf3\x0c\x33\x57\xf0\x51\x24\x08"
++                        "\xed\x4f\x6a\x9c\x22\x42\xbd\x18"
++                        "\x97\x74\x68\x36\x00\xf1\x69\x3a"
++                        "\x18\x77\x40\xf0\x56\xba\xba\xe0",
++              .clen   = 36 + 48,
 +      }, { /* RFC 3686 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -177,13 +165,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
 +                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
 +                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
 +                        "\x00\x00\x00\x48",
-+              .klen   = 8 + 64 + 28,
++              .klen   = 8 + 48 + 28,
 +              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .alen   = 8,
@@ -191,15 +177,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
 +                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
-+                        "\x25\xea\xdc\xad\x52\xb8\x0f\x70"
-+                        "\xe7\x39\x83\x80\x10\x3f\x18\xc4"
-+                        "\xf8\x59\x14\x25\x5f\xba\x20\x87"
-+                        "\x0b\x04\x5e\xf7\xde\x41\x39\xff"
-+                        "\xa2\xee\x84\x3f\x9d\x38\xfd\x17"
-+                        "\xc0\x66\x5e\x74\x39\xe3\xd3\xd7"
-+                        "\x3d\xbc\xe3\x99\x2f\xe7\xef\x37"
-+                        "\x61\x03\xf3\x9e\x01\xaf\xba\x9d",
-+              .clen   = 16 + 64,
++                        "\x36\xd6\xc7\x55\xac\xb6\x0b\x14"
++                        "\x95\x71\xf9\x86\x30\xe3\x96\xc3"
++                        "\x76\x85\x6d\xa5\x06\xed\x6f\x34"
++                        "\xcc\x1f\xcc\x2d\x88\x06\xb0\x1d"
++                        "\xbe\xd9\xa2\xd3\x64\xf1\x33\x03"
++                        "\x13\x50\x8f\xae\x61\x2d\x82\xb8",
++              .clen   = 16 + 48,
 +      }, { /* RFC 3686 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -215,13 +199,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
 +                        "\x40\x41\x42\x43\x44\x45\x46\x47"
 +                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
-+                        "\x50\x51\x52\x53\x54\x55\x56\x57"
-+                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
 +                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
 +                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
 +                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
 +                        "\x00\x96\xb0\x3b",
-+              .klen   = 8 + 64 + 28,
++              .klen   = 8 + 48 + 28,
 +              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .alen   = 8,
@@ -234,15 +216,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
 +                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
 +                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
-+                        "\x51\xa3\xe6\x1d\x23\x7d\xd1\x18"
-+                        "\x55\x9c\x1c\x92\x2b\xc2\xcd\xfe"
-+                        "\x8a\xa8\xa5\x96\x65\x2e\x9d\xdb"
-+                        "\x06\xd2\x1c\x57\x2b\x76\xb5\x9c"
-+                        "\xd4\x3e\x8b\x61\x54\x2d\x08\xe5"
-+                        "\xb2\xf8\x88\x20\x0c\xad\xe8\x85"
-+                        "\x61\x8e\x5c\xa4\x96\x2c\xe2\x7d"
-+                        "\x4f\xb6\x1d\xb2\x8c\xd7\xe3\x38",
-+              .clen   = 32 + 64,
++                        "\x80\x12\x67\x22\xf2\x4d\x9b\xbf"
++                        "\xdc\x38\xd3\xaa\x12\xc0\x58\x1a"
++                        "\x9a\x62\x6e\x42\x3d\x44\x63\xdd"
++                        "\xee\x7e\xe3\xa3\xdf\x2a\x65\x05"
++                        "\xd0\xc1\xd2\x54\x55\x35\x5c\xc7"
++                        "\xb0\xb5\xb1\x36\xe0\x0b\xaf\x72",
++              .clen   = 32 + 48,
 +      }, { /* RFC 3686 Case 7 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -258,14 +238,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
 +                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
 +                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
 +                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
 +                        "\x00\x00\x00\x60",
-+              .klen   = 8 + 64 + 36,
++              .klen   = 8 + 48 + 36,
 +              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .alen   = 8,
@@ -273,15 +251,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
 +                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
-+                        "\x6b\x68\x0b\x99\x9a\x4d\xc8\xb9"
-+                        "\x35\xea\xcd\x56\x3f\x40\xa2\xb6"
-+                        "\x68\xda\x59\xd8\xa0\x89\xcd\x52"
-+                        "\xb1\x6e\xed\xc1\x42\x10\xa5\x0f"
-+                        "\x88\x0b\x80\xce\xc4\x67\xf0\x45"
-+                        "\x5d\xb2\x9e\xde\x1c\x79\x52\x0d"
-+                        "\xff\x75\x36\xd5\x0f\x52\x8e\xe5"
-+                        "\x31\x85\xcf\x1d\x31\xf8\x62\x67",
-+              .clen   = 16 + 64,
++                        "\xb1\x7b\xb1\xec\xca\x94\x55\xc4"
++                        "\x3f\x2b\xb1\x70\x04\x91\xf5\x9d"
++                        "\x1a\xc0\xe1\x2a\x93\x5f\x96\x2a"
++                        "\x12\x85\x38\x36\xe1\xb2\xe9\xf0"
++                        "\xf2\x6e\x5d\x81\xcc\x49\x07\x9c"
++                        "\x5b\x88\xc8\xcc\xc4\x21\x4f\x32",
++              .clen   = 16 + 48,
 +      }, { /* RFC 3686 Case 8 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -297,14 +273,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
 +                        "\x40\x41\x42\x43\x44\x45\x46\x47"
 +                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
-+                        "\x50\x51\x52\x53\x54\x55\x56\x57"
-+                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
 +                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
 +                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
 +                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
 +                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
 +                        "\x00\xfa\xac\x24",
-+              .klen   = 8 + 64 + 36,
++              .klen   = 8 + 48 + 36,
 +              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .alen   = 8,
@@ -317,18 +291,16 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
 +                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
 +                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
-+                        "\x9a\xac\x38\xbd\xf3\xcf\xd5\xd0"
-+                        "\x09\x07\xa6\xe1\x7f\xd6\x79\x98"
-+                        "\x4e\x90\x0e\xc0\x3d\xa0\xf2\x12"
-+                        "\x52\x79\x9c\x17\xff\xb9\xb8\xe3"
-+                        "\x2f\x31\xcb\xbd\x63\x70\x72\x7b"
-+                        "\x4e\x1e\xd1\xde\xb5\x6b\x7d\x54"
-+                        "\x68\x56\xdd\xe5\x53\xee\x29\xd2"
-+                        "\x85\xa1\x73\x61\x00\xa9\x26\x8f",
-+              .clen   = 32 + 64,
++                        "\xd6\x96\xbb\x12\x39\xc4\x4d\xe2"
++                        "\x4c\x02\xe7\x1f\xdc\xb2\xb1\x57"
++                        "\x38\x0d\xdd\x13\xb3\x89\x57\x9e"
++                        "\x1f\xb5\x48\x32\xc4\xd3\x9d\x1f"
++                        "\x68\xab\x8d\xc6\xa8\x05\x3a\xc2"
++                        "\x87\xaf\x23\xb3\xe4\x1b\xde\xb3",
++              .clen   = 32 + 48,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha1_des_cbc_tv_temp[] = {
-       { /*Generated with cryptopp*/
+ static const struct aead_testvec hmac_sha512_aes_cbc_tv_temp[] = {
+       { /* RFC 3602 Case 1 */
  #ifdef __LITTLE_ENDIAN
diff --git a/target/linux/generic/backport-6.12/920-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch b/target/linux/generic/backport-6.12/920-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
new file mode 100644 (file)
index 0000000..108da37
--- /dev/null
@@ -0,0 +1,334 @@
+From 82fc2b17fa5b9b12d34770afcc8e3c4288735429 Mon Sep 17 00:00:00 2001
+From: Aleksander Jan Bajkowski <olek2@wp.pl>
+Date: Thu, 5 Mar 2026 21:08:24 +0100
+Subject: [PATCH 5/5] crypto: testmgr - Add test vectors for
+ authenc(hmac(sha512),rfc3686(ctr(aes)))
+
+Test vectors were generated starting from existing RFC3686(CTR(AES)) test
+vectors and adding HMAC(SHA512) computed with software implementation.
+Then, the results were double-checked on Mediatek MT7986 (safexcel).
+Platform pass self-tests.
+
+Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ crypto/testmgr.c |   6 +-
+ crypto/testmgr.h | 291 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 296 insertions(+), 1 deletion(-)
+
+--- a/crypto/testmgr.c
++++ b/crypto/testmgr.c
+@@ -4545,8 +4545,12 @@ static const struct alg_test_desc alg_te
+               .fips_allowed = 1,
+       }, {
+               .alg = "authenc(hmac(sha512),rfc3686(ctr(aes)))",
+-              .test = alg_test_null,
++              .generic_driver = "authenc(hmac-sha512-lib,rfc3686(ctr(aes-lib)))",
++              .test = alg_test_aead,
+               .fips_allowed = 1,
++              .suite = {
++                      .aead = __VECS(hmac_sha512_aes_ctr_rfc3686_tv_temp)
++              }
+       }, {
+               .alg = "blake2b-160",
+               .test = alg_test_hash,
+--- a/crypto/testmgr.h
++++ b/crypto/testmgr.h
+@@ -19839,6 +19839,297 @@ static const struct aead_testvec hmac_md
+       },
+ };
++static const struct aead_testvec hmac_sha512_aes_ctr_rfc3686_tv_temp[] = {
++      { /* RFC 3686 Case 1 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x14"    /* enc key length */
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
++                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
++                        "\x00\x00\x00\x30",
++              .klen   = 8 + 64 + 20,
++              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
++              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
++              .alen   = 8,
++              .ptext  = "Single block msg",
++              .plen   = 16,
++              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
++                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
++                        "\xa4\x45\x3a\x44\x9c\xe5\x1c\xd9"
++                        "\x10\x43\x51\x2e\x76\x5e\xf8\x9d"
++                        "\x03\x12\x1a\x31\x00\x33\x10\xb4"
++                        "\x94\x4b\x70\x84\x6c\xda\xb1\x46"
++                        "\x24\xb6\x3b\x2a\xec\xd5\x67\xb8"
++                        "\x65\xa2\xbd\xac\x18\xe2\xf8\x55"
++                        "\xc6\x91\xb0\x92\x84\x2d\x74\x44"
++                        "\xa7\xee\xc3\x44\xa0\x07\x0e\x62",
++              .clen   = 16 + 64,
++      }, { /* RFC 3686 Case 2 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x14"    /* enc key length */
++                        "\x20\x21\x22\x23\x24\x25\x26\x27"
++                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
++                        "\x30\x31\x32\x33\x34\x35\x36\x37"
++                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x40\x41\x42\x43\x44\x45\x46\x47"
++                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
++                        "\x50\x51\x52\x53\x54\x55\x56\x57"
++                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
++                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
++                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
++                        "\x00\x6c\xb6\xdb",
++              .klen   = 8 + 64 + 20,
++              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
++              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
++              .alen   = 8,
++              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
++                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
++                        "\x10\x11\x12\x13\x14\x15\x16\x17"
++                        "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
++              .plen   = 32,
++              .ctext  = "\x51\x04\xa1\x06\x16\x8a\x72\xd9"
++                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
++                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
++                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
++                        "\xec\x67\x0d\xb3\xbd\x98\x13\x01"
++                        "\x2b\x04\x9b\xe6\x06\x67\x3c\x76"
++                        "\xcd\x41\xb7\xcc\x70\x6c\x7f\xc8"
++                        "\x67\xbd\x22\x39\xb2\xaa\xe8\x88"
++                        "\xe0\x4f\x81\x52\xdf\xc9\xc3\xd6"
++                        "\x44\xf4\x66\x33\x87\x64\x61\x02"
++                        "\x02\xa2\x64\x15\x2b\xe9\x0b\x3d"
++                        "\x4c\xea\xa1\xa5\xa7\xc9\xd3\x1b",
++              .clen   = 32 + 64,
++      }, { /* RFC 3686 Case 3 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x14"    /* enc key length */
++                        "\x11\x22\x33\x44\x55\x66\x77\x88"
++                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
++                        "\x22\x33\x44\x55\x66\x77\x88\x99"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\x44\x55\x66\x77\x88\x99\xaa\xbb"
++                        "\xcc\xdd\xee\xff\x11\x22\x33\x44"
++                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
++                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
++                        "\x00\xe0\x01\x7b",
++              .klen   = 8 + 64 + 20,
++              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
++              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
++              .alen   = 8,
++              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
++                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
++                        "\x10\x11\x12\x13\x14\x15\x16\x17"
++                        "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
++                        "\x20\x21\x22\x23",
++              .plen   = 36,
++              .ctext  = "\xc1\xcf\x48\xa8\x9f\x2f\xfd\xd9"
++                        "\xcf\x46\x52\xe9\xef\xdb\x72\xd7"
++                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
++                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
++                        "\x25\xb2\x07\x2f"
++                        "\x6f\x90\xb6\xa3\x35\x43\x59\xff"
++                        "\x1e\x32\xd6\xfe\xfa\x33\xf9\xf0"
++                        "\x31\x2f\x03\x2d\x88\x1d\xab\xbf"
++                        "\x0e\x19\x16\xd9\xf3\x98\x3e\xdd"
++                        "\x0c\xec\xfe\xe8\x89\x13\x91\x15"
++                        "\xf6\x61\x65\x5c\x1b\x7d\xde\xc0"
++                        "\xe4\xba\x6d\x27\xe2\x89\x23\x24"
++                        "\x15\x82\x37\x3d\x48\xd3\xc9\x32",
++              .clen   = 36 + 64,
++      }, { /* RFC 3686 Case 4 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x1c"    /* enc key length */
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
++                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
++                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
++                        "\x00\x00\x00\x48",
++              .klen   = 8 + 64 + 28,
++              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
++              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
++              .alen   = 8,
++              .ptext  = "Single block msg",
++              .plen   = 16,
++              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
++                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
++                        "\x25\xea\xdc\xad\x52\xb8\x0f\x70"
++                        "\xe7\x39\x83\x80\x10\x3f\x18\xc4"
++                        "\xf8\x59\x14\x25\x5f\xba\x20\x87"
++                        "\x0b\x04\x5e\xf7\xde\x41\x39\xff"
++                        "\xa2\xee\x84\x3f\x9d\x38\xfd\x17"
++                        "\xc0\x66\x5e\x74\x39\xe3\xd3\xd7"
++                        "\x3d\xbc\xe3\x99\x2f\xe7\xef\x37"
++                        "\x61\x03\xf3\x9e\x01\xaf\xba\x9d",
++              .clen   = 16 + 64,
++      }, { /* RFC 3686 Case 5 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x1c"    /* enc key length */
++                        "\x20\x21\x22\x23\x24\x25\x26\x27"
++                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
++                        "\x30\x31\x32\x33\x34\x35\x36\x37"
++                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x40\x41\x42\x43\x44\x45\x46\x47"
++                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
++                        "\x50\x51\x52\x53\x54\x55\x56\x57"
++                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
++                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
++                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
++                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
++                        "\x00\x96\xb0\x3b",
++              .klen   = 8 + 64 + 28,
++              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
++              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
++              .alen   = 8,
++              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
++                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
++                        "\x10\x11\x12\x13\x14\x15\x16\x17"
++                        "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
++              .plen   = 32,
++              .ctext  = "\x45\x32\x43\xfc\x60\x9b\x23\x32"
++                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
++                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
++                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
++                        "\x51\xa3\xe6\x1d\x23\x7d\xd1\x18"
++                        "\x55\x9c\x1c\x92\x2b\xc2\xcd\xfe"
++                        "\x8a\xa8\xa5\x96\x65\x2e\x9d\xdb"
++                        "\x06\xd2\x1c\x57\x2b\x76\xb5\x9c"
++                        "\xd4\x3e\x8b\x61\x54\x2d\x08\xe5"
++                        "\xb2\xf8\x88\x20\x0c\xad\xe8\x85"
++                        "\x61\x8e\x5c\xa4\x96\x2c\xe2\x7d"
++                        "\x4f\xb6\x1d\xb2\x8c\xd7\xe3\x38",
++              .clen   = 32 + 64,
++      }, { /* RFC 3686 Case 7 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x24"    /* enc key length */
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
++                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
++                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
++                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
++                        "\x00\x00\x00\x60",
++              .klen   = 8 + 64 + 36,
++              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
++              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
++              .alen   = 8,
++              .ptext  = "Single block msg",
++              .plen   = 16,
++              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
++                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
++                        "\x6b\x68\x0b\x99\x9a\x4d\xc8\xb9"
++                        "\x35\xea\xcd\x56\x3f\x40\xa2\xb6"
++                        "\x68\xda\x59\xd8\xa0\x89\xcd\x52"
++                        "\xb1\x6e\xed\xc1\x42\x10\xa5\x0f"
++                        "\x88\x0b\x80\xce\xc4\x67\xf0\x45"
++                        "\x5d\xb2\x9e\xde\x1c\x79\x52\x0d"
++                        "\xff\x75\x36\xd5\x0f\x52\x8e\xe5"
++                        "\x31\x85\xcf\x1d\x31\xf8\x62\x67",
++              .clen   = 16 + 64,
++      }, { /* RFC 3686 Case 8 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x24"    /* enc key length */
++                        "\x20\x21\x22\x23\x24\x25\x26\x27"
++                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
++                        "\x30\x31\x32\x33\x34\x35\x36\x37"
++                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x40\x41\x42\x43\x44\x45\x46\x47"
++                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
++                        "\x50\x51\x52\x53\x54\x55\x56\x57"
++                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
++                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
++                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
++                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
++                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
++                        "\x00\xfa\xac\x24",
++              .klen   = 8 + 64 + 36,
++              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
++              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
++              .alen   = 8,
++              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
++                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
++                        "\x10\x11\x12\x13\x14\x15\x16\x17"
++                        "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
++              .plen   = 32,
++              .ctext  = "\xf0\x5e\x23\x1b\x38\x94\x61\x2c"
++                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
++                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
++                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
++                        "\x9a\xac\x38\xbd\xf3\xcf\xd5\xd0"
++                        "\x09\x07\xa6\xe1\x7f\xd6\x79\x98"
++                        "\x4e\x90\x0e\xc0\x3d\xa0\xf2\x12"
++                        "\x52\x79\x9c\x17\xff\xb9\xb8\xe3"
++                        "\x2f\x31\xcb\xbd\x63\x70\x72\x7b"
++                        "\x4e\x1e\xd1\xde\xb5\x6b\x7d\x54"
++                        "\x68\x56\xdd\xe5\x53\xee\x29\xd2"
++                        "\x85\xa1\x73\x61\x00\xa9\x26\x8f",
++              .clen   = 32 + 64,
++      },
++};
++
+ static const struct aead_testvec hmac_sha1_des_cbc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+ #ifdef __LITTLE_ENDIAN
diff --git a/target/linux/generic/backport-6.12/921-v7.1-crypto-tesmgr-allow-authenc-hmac-sha224-sha384-cbc-a.patch b/target/linux/generic/backport-6.12/921-v7.1-crypto-tesmgr-allow-authenc-hmac-sha224-sha384-cbc-a.patch
new file mode 100644 (file)
index 0000000..0a76d19
--- /dev/null
@@ -0,0 +1,33 @@
+From 0441ee8d35ad6998da5043c65c4124904e8daee2 Mon Sep 17 00:00:00 2001
+From: Aleksander Jan Bajkowski <olek2@wp.pl>
+Date: Fri, 6 Feb 2026 20:26:59 +0100
+Subject: [PATCH] crypto: tesmgr - allow authenc(hmac(sha224/sha384),cbc(aes))
+ in fips mode
+
+The remaining combinations of AES-CBC and SHA* have already been marked
+as allowed. This commit does the same for SHA224 and SHA384.
+
+Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ crypto/testmgr.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/crypto/testmgr.c
++++ b/crypto/testmgr.c
+@@ -4435,6 +4435,7 @@ static const struct alg_test_desc alg_te
+               .alg = "authenc(hmac(sha224),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha224-lib,cbc(aes-generic))",
+               .test = alg_test_aead,
++              .fips_allowed = 1,
+               .suite = {
+                       .aead = __VECS(hmac_sha224_aes_cbc_tv_temp)
+               }
+@@ -4493,6 +4494,7 @@ static const struct alg_test_desc alg_te
+               .alg = "authenc(hmac(sha384),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha384-lib,cbc(aes-generic))",
+               .test = alg_test_aead,
++              .fips_allowed = 1,
+               .suite = {
+                       .aead = __VECS(hmac_sha384_aes_cbc_tv_temp)
+               }
similarity index 74%
rename from target/linux/generic/backport-6.18/915-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
rename to target/linux/generic/backport-6.12/922-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
index 85eee07bde83c308451f9e5d0b7e16c15dd5125b..2eed4f3d21d982d970291a3680437282c6b7c040 100644 (file)
@@ -1,44 +1,44 @@
-From 2a2468bf33d3fac5192429207a439d23e615173a Mon Sep 17 00:00:00 2001
+From d0c0a414cc1893b195b9523ecdfbeee00b98fd0d Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Thu, 5 Mar 2026 21:08:20 +0100
-Subject: [PATCH 1/5] crypto: testmgr - Add test vectors for
- authenc(hmac(sha1),rfc3686(ctr(aes)))
+Date: Thu, 19 Mar 2026 18:11:21 +0100
+Subject: [PATCH] crypto: testmgr - Add test vectors for
+ authenc(hmac(md5),rfc3686(ctr(aes)))
 
 Test vectors were generated starting from existing RFC3686(CTR(AES)) test
-vectors and adding HMAC(SHA1) computed with software implementation.
+vectors and adding HMAC(MD5) computed with software implementation.
 Then, the results were double-checked on Mediatek MT7986 (safexcel).
 Platform pass self-tests.
 
 Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
- crypto/testmgr.c |   6 +-
- crypto/testmgr.h | 221 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 226 insertions(+), 1 deletion(-)
+ crypto/testmgr.c |   7 ++
+ crypto/testmgr.h | 207 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 214 insertions(+)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4232,8 +4232,12 @@ static const struct alg_test_desc alg_te
+@@ -4395,6 +4395,13 @@ static const struct alg_test_desc alg_te
+                       .aead = __VECS(hmac_md5_ecb_cipher_null_tv_template)
                }
        }, {
-               .alg = "authenc(hmac(sha1),rfc3686(ctr(aes)))",
--              .test = alg_test_null,
-+              .generic_driver = "authenc(hmac-sha1-lib,rfc3686(ctr(aes-lib)))",
++              .alg = "authenc(hmac(md5),rfc3686(ctr(aes)))",
++              .generic_driver = "authenc(hmac-md5-lib,rfc3686(ctr(aes-lib)))",
 +              .test = alg_test_aead,
-               .fips_allowed = 1,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha1_aes_ctr_rfc3686_tv_temp)
++                      .aead = __VECS(hmac_md5_aes_ctr_rfc3686_tv_temp)
 +              }
-       }, {
-               .alg = "authenc(hmac(sha224),cbc(aes))",
-               .generic_driver = "authenc(hmac-sha224-lib,cbc(aes-generic))",
++      }, {
+               .alg = "authenc(hmac(sha1),cbc(aes))",
+               .test = alg_test_aead,
+               .fips_allowed = 1,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -16137,6 +16137,227 @@ static const struct aead_testvec hmac_sh
+@@ -20443,6 +20443,213 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha1_aes_ctr_rfc3686_tv_temp[] = {
++static const struct aead_testvec hmac_md5_aes_ctr_rfc3686_tv_temp[] = {
 +      { /* RFC 3686 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -50,11 +50,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00"
 +                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
 +                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
 +                        "\x00\x00\x00\x30",
-+              .klen   = 8 + 20 + 20,
++              .klen   = 8 + 16 + 20,
 +              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .alen   = 8,
@@ -62,10 +61,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
 +                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
-+                        "\x70\xdc\x6b\x62\x43\xa1\x2f\x08"
-+                        "\xf1\xec\x93\x7d\x69\xb2\x8e\x1f"
-+                        "\x0a\x97\x39\x86",
-+              .clen   = 16 + 20,
++                        "\xdd\x5f\xea\x13\x2a\xf2\xb0\xf1"
++                        "\x91\x79\x46\x40\x62\x6c\x87\x5b",
++              .clen   = 16 + 16,
 +      }, { /* RFC 3686 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -77,11 +75,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33"
 +                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
 +                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
 +                        "\x00\x6c\xb6\xdb",
-+              .klen   = 8 + 20 + 20,
++              .klen   = 8 + 16 + 20,
 +              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .alen   = 8,
@@ -94,10 +91,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
 +                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
 +                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
-+                        "\x6b\x7b\x4d\x39\x36\x1c\x12\x5f"
-+                        "\x72\xd2\x88\xb2\x26\xa6\xa6\xb5"
-+                        "\x1d\x3a\x49\xa6",
-+              .clen   = 32 + 20,
++                        "\x03\x39\x23\xcd\x22\x5f\x1b\x8b"
++                        "\x93\x70\xbc\x45\xf3\xba\xde\x2e",
++              .clen   = 32 + 16,
 +      }, { /* RFC 3686 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -109,11 +105,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
-+                        "\x22\x33\x44\x55"
 +                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
 +                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
 +                        "\x00\xe0\x01\x7b",
-+              .klen   = 8 + 20 + 20,
++              .klen   = 8 + 16 + 20,
 +              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .alen   = 8,
@@ -128,10 +123,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
 +                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
 +                        "\x25\xb2\x07\x2f"
-+                        "\x2c\x86\xa0\x90\x8e\xc1\x02\x1d"
-+                        "\x51\xdc\xd6\x21\xc7\x30\xcc\x32"
-+                        "\x38\x55\x47\x64",
-+              .clen   = 36 + 20,
++                        "\xb4\x40\x0c\x7b\x4c\x55\x8a\x4b"
++                        "\x04\xf7\x48\x9e\x0f\x9a\xae\x73",
++              .clen   = 36 + 16,
 +      }, { /* RFC 3686 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -143,12 +137,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x1c"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00"
 +                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
 +                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
 +                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
 +                        "\x00\x00\x00\x48",
-+              .klen   = 8 + 20 + 28,
++              .klen   = 8 + 16 + 28,
 +              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .alen   = 8,
@@ -156,10 +149,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
 +                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
-+                        "\xe9\x4e\x49\xf0\x6b\x8d\x58\x2b"
-+                        "\x26\x7f\xf3\xab\xeb\x2f\x74\x2f"
-+                        "\x45\x43\x64\xc1",
-+              .clen   = 16 + 20,
++                        "\xc4\x5d\xa1\x16\x6c\x2d\xa5\x43"
++                        "\x60\x7b\x58\x98\x11\x9b\x50\x06",
++              .clen   = 16 + 16,
 +      }, { /* RFC 3686 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -171,12 +163,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x1c"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33"
 +                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
 +                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
 +                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
 +                        "\x00\x96\xb0\x3b",
-+              .klen   = 8 + 20 + 28,
++              .klen   = 8 + 16 + 28,
 +              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .alen   = 8,
@@ -189,10 +180,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
 +                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
 +                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
-+                        "\xab\xc4\xfa\x6d\x20\xe1\xce\x72"
-+                        "\x0e\x92\x4e\x97\xaa\x4d\x30\x84"
-+                        "\xb6\xd8\x4d\x3b",
-+              .clen   = 32 + 20,
++                        "\xc5\xec\x47\x33\xae\x05\x28\x49"
++                        "\xd5\x2b\x08\xad\x10\x98\x24\x01",
++              .clen   = 32 + 16,
 +      }, { /* RFC 3686 Case 7 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -204,13 +194,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x24"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00"
 +                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
 +                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
 +                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
 +                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
 +                        "\x00\x00\x00\x60",
-+              .klen   = 8 + 20 + 36,
++              .klen   = 8 + 16 + 36,
 +              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .alen   = 8,
@@ -218,10 +207,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
 +                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
-+                        "\x3d\x6c\x23\x27\xda\x0e\x7f\x29"
-+                        "\xfd\x8d\x3c\x1b\xf7\x7a\x63\xd9"
-+                        "\x7e\x0f\xe9\xf6",
-+              .clen   = 16 + 20,
++                        "\xc6\x26\xb2\x27\x0d\x21\xd4\x40"
++                        "\x6c\x4f\x53\xea\x19\x75\xda\x8e",
++              .clen   = 16 + 16,
 +      }, { /* RFC 3686 Case 8 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -233,13 +221,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x24"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33"
 +                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
 +                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
 +                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
 +                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
 +                        "\x00\xfa\xac\x24",
-+              .klen   = 8 + 20 + 36,
++              .klen   = 8 + 16 + 36,
 +              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .alen   = 8,
@@ -252,13 +239,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
 +                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
 +                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
-+                        "\xe7\xee\x22\xa4\xdd\xbf\x5d\x44"
-+                        "\x3b\x43\x1c\x69\x55\x11\xd5\xad"
-+                        "\x14\x5f\x44\xa6",
-+              .clen   = 32 + 20,
++                        "\x8c\x4d\x2a\x8d\x23\x47\x59\x6f"
++                        "\x1e\x74\x62\x39\xed\x14\x50\x6c",
++              .clen   = 32 + 16,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha1_ecb_cipher_null_tv_temp[] = {
-       { /* Input data from RFC 2410 Case 1 */
+ static const struct aead_testvec hmac_md5_des3_ede_cbc_tv_temp[] = {
+       { /*Generated with cryptopp*/
  #ifdef __LITTLE_ENDIAN
similarity index 97%
rename from target/linux/generic/pending-6.12/910-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
rename to target/linux/generic/backport-6.12/923-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
index 2d33d2ad59d89f84756ab8645e63df32c586b938..2050ded1d08dd00a240ac54ce5bc0b309db1a3ef 100644 (file)
@@ -1,6 +1,6 @@
-From dd227f442774a570ffccdfbc9536fec3b4666305 Mon Sep 17 00:00:00 2001
+From c8aadd63ab58ee75713ab487730563e7a160cc35 Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Sat, 31 Jan 2026 12:35:30 +0100
+Date: Tue, 3 Mar 2026 19:48:44 +0100
 Subject: [PATCH] crypto: testmgr - Add test vectors for
  authenc(hmac(md5),cbc(aes))
 
@@ -10,6 +10,7 @@ script. Then, the results were double-checked on Mediatek MT7981 (safexcel)
 and NXP P2020 (talitos). Both platforms pass self-tests.
 
 Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   7 ++
  crypto/testmgr.h | 255 +++++++++++++++++++++++++++++++++++++++++++++++
@@ -22,7 +23,7 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
                }
        }, {
 +              .alg = "authenc(hmac(md5),cbc(aes))",
-+              .generic_driver = "authenc(hmac-md5-lib,cbc(aes-generic))",
++              .generic_driver = "authenc(hmac-md5-lib,cbc(aes-lib))",
 +              .test = alg_test_aead,
 +              .suite = {
 +                      .aead = __VECS(hmac_md5_aes_cbc_tv_temp)
@@ -33,7 +34,7 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
                .test = alg_test_aead,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -17133,6 +17133,261 @@ static const struct cipher_testvec aes_c
+@@ -17253,6 +17253,261 @@ static const struct cipher_testvec aes_c
        },
  };
  
diff --git a/target/linux/generic/backport-6.18/910-v6.19-crypto-testmgr-Add-missing-DES-weak-and-semi-weak-ke.patch b/target/linux/generic/backport-6.18/910-v6.19-crypto-testmgr-Add-missing-DES-weak-and-semi-weak-ke.patch
new file mode 100644 (file)
index 0000000..c31680f
--- /dev/null
@@ -0,0 +1,155 @@
+From c637f3e4a59d710ffd80da1c11d2ebed162d8ff0 Mon Sep 17 00:00:00 2001
+From: Thorsten Blum <thorsten.blum@linux.dev>
+Date: Mon, 17 Nov 2025 12:44:26 +0100
+Subject: [PATCH] crypto: testmgr - Add missing DES weak and semi-weak key
+ tests
+
+Ever since commit da7f033ddc9f ("crypto: cryptomgr - Add test
+infrastructure"), the DES test suite has tested only one of the four
+weak keys and none of the twelve semi-weak keys.
+
+DES has four weak keys and twelve semi-weak keys, and the kernel's DES
+implementation correctly detects and rejects all of these keys when the
+CRYPTO_TFM_REQ_FORBID_WEAK_KEYS flag is set. However, only a single weak
+key was being tested. Add tests for all 16 weak and semi-weak keys.
+
+While DES is deprecated, it is still used in some legacy protocols, and
+weak/semi-weak key detection should be tested accordingly.
+
+Tested on arm64 with cryptographic self-tests.
+
+Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ crypto/testmgr.h | 120 +++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 120 insertions(+)
+
+--- a/crypto/testmgr.h
++++ b/crypto/testmgr.h
+@@ -9023,6 +9023,126 @@ static const struct cipher_testvec des_t
+               .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
+               .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
+               .len    = 8,
++      }, { /* Weak key */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xe0\xe0\xe0\xe0\xf1\xf1\xf1\xf1",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Weak key */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x1f\x1f\x1f\x1f\x0e\x0e\x0e\x0e",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Weak key */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 1a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x01\xfe\x01\xfe\x01\xfe\x01\xfe",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 1b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xfe\x01\xfe\x01\xfe\x01\xfe\x01",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 2a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x1f\xe0\x1f\xe0\x0e\xf1\x0e\xf1",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 2b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xe0\x1f\xe0\x1f\xf1\x0e\xf1\x0e",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 3a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x01\xe0\x01\xe0\x01\xf1\x01\xf1",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 3b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xe0\x01\xe0\x01\xf1\x01\xf1\x01",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 4a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x1f\xfe\x1f\xfe\x0e\xfe\x0e\xfe",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 4b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xfe\x1f\xfe\x1f\xfe\x0e\xfe\x0e",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 5a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x01\x1f\x01\x1f\x01\x0e\x01\x0e",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 5b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\x1f\x01\x1f\x01\x0e\x01\x0e\x01",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 6a */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xe0\xfe\xe0\xfe\xf1\xfe\xf1\xfe",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
++      }, { /* Semi-weak key pair 6b */
++              .setkey_error = -EINVAL,
++              .wk     = 1,
++              .key    = "\xfe\xe0\xfe\xe0\xfe\xf1\xfe\xf1",
++              .klen   = 8,
++              .ptext  = "\x01\x23\x45\x67\x89\xab\xcd\xe7",
++              .ctext  = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d",
++              .len    = 8,
+       }, { /* Two blocks -- for testing encryption across pages */
+               .key    = "\x01\x23\x45\x67\x89\xab\xcd\xef",
+               .klen   = 8,
index b34cf0322f76e9af695aa324eb66aab8039320ce..4983aea1a9893aaca2f3a7465d15c53f3f82d3cc 100644 (file)
@@ -1,11 +1,11 @@
-From a22d48cbe55814061d46db2f87090ba5e36aaf7f Mon Sep 17 00:00:00 2001
+From 030218dedee2628ea3f035d71431e1b7c4191cfb Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Sat, 31 Jan 2026 18:43:03 +0100
+Date: Sat, 31 Jan 2026 18:38:47 +0100
 Subject: [PATCH] crypto: testmgr - Add test vectors for
- authenc(hmac(sha224),cbc(aes))
+ authenc(hmac(sha384),cbc(aes))
 
 Test vectors were generated starting from existing CBC(AES) test vectors
-(RFC3602, NIST SP800-38A) and adding HMAC(SHA224) computed with Python
+(RFC3602, NIST SP800-38A) and adding HMAC(SHA384) computed with Python
 script. Then, the results were double-checked on Mediatek MT7981 (safexcel)
 and NXP P2020 (talitos). Both platforms pass self-tests.
 
@@ -13,32 +13,32 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   7 ++
- crypto/testmgr.h | 285 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 292 insertions(+)
+ crypto/testmgr.h | 311 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 318 insertions(+)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4221,6 +4221,13 @@ static const struct alg_test_desc alg_te
+@@ -4272,6 +4272,13 @@ static const struct alg_test_desc alg_te
                .test = alg_test_null,
                .fips_allowed = 1,
        }, {
-+              .alg = "authenc(hmac(sha224),cbc(aes))",
-+              .generic_driver = "authenc(hmac-sha224-lib,cbc(aes-generic))",
++              .alg = "authenc(hmac(sha384),cbc(aes))",
++              .generic_driver = "authenc(hmac-sha384-lib,cbc(aes-generic))",
 +              .test = alg_test_aead,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha224_aes_cbc_tv_temp)
++                      .aead = __VECS(hmac_sha384_aes_cbc_tv_temp)
 +              }
 +      }, {
-               .alg = "authenc(hmac(sha224),cbc(des))",
-               .generic_driver = "authenc(hmac-sha224-lib,cbc(des-generic))",
+               .alg = "authenc(hmac(sha384),cbc(des))",
+               .generic_driver = "authenc(hmac-sha384-lib,cbc(des-generic))",
                .test = alg_test_aead,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -16183,6 +16183,291 @@ static const struct aead_testvec hmac_sh
+@@ -16586,6 +16586,317 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha224_aes_cbc_tv_temp[] = {
++static const struct aead_testvec hmac_sha384_aes_cbc_tv_temp[] = {
 +      { /* RFC 3602 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -51,24 +51,28 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
 +                        "\x51\x2e\x03\xd5\x34\x12\x00\x06",
-+              .klen   = 8 + 28 + 16,
++              .klen   = 8 + 48 + 16,
 +              .iv     = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
 +                        "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
 +              .assoc  = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
 +                        "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "Single block msg",
 +              .plen   = 16,
 +              .ctext  = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
 +                        "\x27\x08\x94\x2d\xbe\x77\x18\x1a"
-+                        "\x17\xe8\x00\x76\x70\x71\xd1\x72"
-+                        "\xf8\xd0\x91\x51\x67\xf9\xdf\xd6"
-+                        "\x0d\x56\x1a\xb3\x52\x19\x85\xae"
-+                        "\x46\x74\xb6\x98",
-+              .clen   = 16 + 28,
++                        "\x79\x1c\xf1\x22\x95\x80\xe0\x60"
++                        "\x7f\xf9\x92\x60\x83\xbd\x60\x9c"
++                        "\xf6\x62\x8b\xa9\x7d\x56\xe2\xaf"
++                        "\x80\x43\xbc\x41\x4a\x63\x0b\xa0"
++                        "\x16\x25\xe2\xfe\x0a\x96\xf6\xa5"
++                        "\x6c\x0b\xc2\x53\xb4\x27\xd9\x42",
++              .clen   = 16 + 48,
 +      }, { /* RFC 3602 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -81,15 +85,17 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b"
++                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x40\x41\x42\x43\x44\x45\x46\x47"
++                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
 +                        "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
 +                        "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
-+              .klen   = 8 + 28 + 16,
++              .klen   = 8 + 48 + 16,
 +              .iv     = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
 +                        "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
 +              .assoc  = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
 +                        "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
 +                        "\x10\x11\x12\x13\x14\x15\x16\x17"
@@ -99,12 +105,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a"
 +                        "\x75\x86\x60\x2d\x25\x3c\xff\xf9"
 +                        "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1"
-+                        "\xa1\x11\xfa\xbb\x1e\x04\x7e\xe7"
-+                        "\x4c\x5f\x65\xbf\x68\x8d\x33\x9d"
-+                        "\xbc\x74\x9b\xf3\x15\xf3\x8f\x8d"
-+                        "\xe8\xaf\x33\xe0",
-+
-+              .clen   = 32 + 28,
++                        "\x4e\x5b\xa8\x65\x51\xc6\x58\xaf"
++                        "\x31\x57\x50\x3d\x01\xa1\xa4\x3f"
++                        "\x42\xd1\xd7\x31\x76\x8d\xf8\xc8"
++                        "\xe4\xd2\x7e\xc5\x23\xe7\xc6\x2e"
++                        "\x2d\xfd\x9d\xc1\xac\x50\x1e\xcf"
++                        "\xa0\x10\xeb\x1a\x9c\xb7\xe1\xca",
++              .clen   = 32 + 48,
 +      }, { /* RFC 3602 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -117,15 +124,17 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x6c\x3e\xa0\x47\x76\x30\xce\x21"
 +                        "\xa2\xce\x33\x4a\xa7\x46\xc2\xcd",
-+              .klen   = 8 + 28 + 16,
++              .klen   = 8 + 48 + 16,
 +              .iv     = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
 +                        "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
 +              .assoc  = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
 +                        "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "This is a 48-byte message (exactly 3 AES blocks)",
 +              .plen   = 48,
 +              .ctext  = "\xd0\xa0\x2b\x38\x36\x45\x17\x53"
@@ -134,11 +143,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x50\x69\x39\x27\x67\x72\xf8\xd5"
 +                        "\x02\x1c\x19\x21\x6b\xad\x52\x5c"
 +                        "\x85\x79\x69\x5d\x83\xba\x26\x84"
-+                        "\x60\xb3\xca\x0e\xc1\xfe\xf2\x27"
-+                        "\x5a\x41\xe4\x99\xa8\x19\x56\xf1"
-+                        "\x44\x98\x27\x9f\x99\xb0\x4a\xad"
-+                        "\x4d\xc1\x1e\x88",
-+              .clen   = 48 + 28,
++                        "\xa1\x52\xe7\xda\xf7\x05\xb6\xca"
++                        "\xad\x0f\x51\xed\x5a\xd3\x0f\xdf"
++                        "\xde\xeb\x3f\x31\xed\x3a\x43\x93"
++                        "\x3b\xb7\xca\xc8\x1b\xe7\x3b\x61"
++                        "\x6a\x05\xfd\x2d\x6a\x5c\xb1\x0d"
++                        "\x6e\x7a\xeb\x1c\x84\xec\xdb\xde",
++              .clen   = 48 + 48,
 +      }, { /* RFC 3602 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -151,15 +162,17 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x56\xe4\x7a\x38\xc5\x59\x89\x74"
 +                        "\xbc\x46\x90\x3d\xba\x29\x03\x49",
-+              .klen   = 8 + 28 + 16,
++              .klen   = 8 + 48 + 16,
 +              .iv     = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
 +                        "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
 +              .assoc  = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
 +                        "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
 +                        "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
 +                        "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
@@ -177,11 +190,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x86\x8b\xb7\xb2\x9d\x3d\x46\xad"
 +                        "\x83\xce\x9f\x9a\x10\x2e\xe9\x9d"
 +                        "\x49\xa5\x3e\x87\xf4\xc3\xda\x55"
-+                        "\xbb\xe9\x38\xf8\xb9\xbf\xcb\x7b"
-+                        "\xa8\x22\x91\xea\x1e\xaf\x13\xba"
-+                        "\x24\x18\x64\x9c\xcb\xb4\xa9\x16"
-+                        "\x4b\x83\x9c\xec",
-+              .clen   = 64 + 28,
++                        "\x85\x7b\x91\xe0\x29\xeb\xd3\x59"
++                        "\x7c\xe3\x67\x14\xbe\x71\x2a\xd2"
++                        "\x8a\x1a\xd2\x35\x78\x6b\x69\xba"
++                        "\x64\xa5\x04\x00\x19\xc3\x4c\xae"
++                        "\x71\xff\x76\x9f\xbb\xc3\x29\x22"
++                        "\xc2\xc6\x51\xf1\xe6\x29\x5e\xa5",
++              .clen   = 64 + 48,
 +      }, { /* RFC 3602 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -194,10 +209,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x90\xd3\x82\xb4\x10\xee\xba\x7a"
 +                        "\xd9\x38\xc4\x6c\xec\x1a\x82\xbf",
-+              .klen   = 8 + 28 + 16,
++              .klen   = 8 + 48 + 16,
 +              .iv     = "\xe9\x6e\x8c\x08\xab\x46\x57\x63"
 +                        "\xfd\x09\x8d\x45\xdd\x3f\xf8\x93",
 +              .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01"
@@ -225,11 +242,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x53\x8a\xb5\x0c\x55\x1b\x87\x4a"
 +                        "\xa2\x69\xad\xd0\x47\xad\x2d\x59"
 +                        "\x13\xac\x19\xb7\xcf\xba\xd4\xa6"
-+                        "\x04\x5e\x83\x45\xc5\x6a\x5b\xe2"
-+                        "\x5e\xd8\x59\x06\xbd\xc7\xd2\x9b"
-+                        "\x0b\x65\x1f\x31\xc7\xe6\x9c\x39"
-+                        "\xa3\x66\xdb\xb8",
-+              .clen   = 80 + 28,
++                        "\x57\x5f\xb4\xd7\x74\x6f\x18\x97"
++                        "\xb7\xde\xfc\xf3\x4e\x0d\x29\x4d"
++                        "\xa0\xff\x39\x9e\x2d\xbf\x27\xac"
++                        "\x54\xb9\x8a\x3e\xab\x3b\xac\xd3"
++                        "\x36\x43\x74\xfc\xc2\x64\x81\x8a"
++                        "\x2c\x15\x72\xdf\x3f\x9d\x5b\xa4",
++              .clen   = 80 + 48,
 +      }, { /* NIST SP800-38A F.2.3 CBC-AES192.Encrypt */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -242,11 +261,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x8e\x73\xb0\xf7\xda\x0e\x64\x52"
 +                        "\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
 +                        "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b",
-+              .klen   = 8 + 28 + 24,
++              .klen   = 8 + 48 + 24,
 +              .iv     = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
 +              .assoc  = "\x00\x01\x02\x03\x04\x05\x06\x07"
@@ -269,12 +290,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0"
 +                        "\x08\xb0\xe2\x79\x88\x59\x88\x81"
 +                        "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd"
-+                        "\x67\x35\xcd\x86\x94\x51\x3b\x3a"
-+                        "\xaa\x07\xb1\xed\x18\x55\x62\x01"
-+                        "\x95\xb2\x53\xb5\x20\x78\x16\xd7"
-+                        "\xb8\x49\x7f\x96",
-+
-+              .clen   = 64 + 28,
++                        "\x29\x9b\x42\x47\x0b\xbf\xf3\x54"
++                        "\x54\x95\xb0\x89\xd5\xa0\xc3\x78"
++                        "\x60\x6c\x18\x39\x6d\xc9\xfb\x2a"
++                        "\x34\x1c\xed\x95\x10\x1e\x43\x0a"
++                        "\x72\xce\x26\xbc\x74\xd9\x6f\xa2"
++                        "\xf1\xd9\xd0\xb1\xdf\x3d\x93\x14",
++              .clen   = 64 + 48,
 +      }, { /* NIST SP800-38A F.2.5 CBC-AES256.Encrypt */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -287,12 +309,14 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
 +                        "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
 +                        "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
 +                        "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
-+              .klen   = 8 + 28 + 32,
++              .klen   = 8 + 48 + 32,
 +              .iv     = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
 +              .assoc  = "\x00\x01\x02\x03\x04\x05\x06\x07"
@@ -315,14 +339,16 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\xa5\x30\xe2\x63\x04\x23\x14\x61"
 +                        "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc"
 +                        "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b"
-+                        "\xe0\xe2\x3d\x3f\x55\x24\x2c\x4d"
-+                        "\xb9\x13\x2a\xc0\x07\xbb\x3b\xda"
-+                        "\xfd\xa4\x51\x32\x3f\x44\xb1\x13"
-+                        "\x98\xf9\xbc\xb9",
-+              .clen   = 64 + 28,
++                        "\x9f\x50\xce\x64\xd9\xa3\xc9\x7a"
++                        "\x15\x3a\x3d\x46\x9a\x90\xf3\x06"
++                        "\x22\xad\xc5\x24\x77\x50\xb8\xfe"
++                        "\xbe\x37\x16\x86\x34\x5f\xaf\x97"
++                        "\x00\x9d\x86\xc8\x32\x4f\x72\x2f"
++                        "\x48\x97\xad\xb6\xb9\x77\x33\xbc",
++              .clen   = 64 + 48,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha256_aes_cbc_tv_temp[] = {
+ static const struct aead_testvec hmac_sha512_aes_cbc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
  #ifdef __LITTLE_ENDIAN
similarity index 71%
rename from target/linux/generic/backport-6.18/910-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
rename to target/linux/generic/backport-6.18/912-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
index 5ccb2c90139c96d16539c06e2e08eecbb3b296ff..d1bc0b2047439dcc059d6eb735841758f4e0fea5 100644 (file)
@@ -1,11 +1,11 @@
-From 030218dedee2628ea3f035d71431e1b7c4191cfb Mon Sep 17 00:00:00 2001
+From a22d48cbe55814061d46db2f87090ba5e36aaf7f Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Sat, 31 Jan 2026 18:38:47 +0100
+Date: Sat, 31 Jan 2026 18:43:03 +0100
 Subject: [PATCH] crypto: testmgr - Add test vectors for
- authenc(hmac(sha384),cbc(aes))
+ authenc(hmac(sha224),cbc(aes))
 
 Test vectors were generated starting from existing CBC(AES) test vectors
-(RFC3602, NIST SP800-38A) and adding HMAC(SHA384) computed with Python
+(RFC3602, NIST SP800-38A) and adding HMAC(SHA224) computed with Python
 script. Then, the results were double-checked on Mediatek MT7981 (safexcel)
 and NXP P2020 (talitos). Both platforms pass self-tests.
 
@@ -13,32 +13,32 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   7 ++
- crypto/testmgr.h | 311 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 318 insertions(+)
+ crypto/testmgr.h | 285 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 292 insertions(+)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4272,6 +4272,13 @@ static const struct alg_test_desc alg_te
+@@ -4221,6 +4221,13 @@ static const struct alg_test_desc alg_te
                .test = alg_test_null,
                .fips_allowed = 1,
        }, {
-+              .alg = "authenc(hmac(sha384),cbc(aes))",
-+              .generic_driver = "authenc(hmac-sha384-lib,cbc(aes-generic))",
++              .alg = "authenc(hmac(sha224),cbc(aes))",
++              .generic_driver = "authenc(hmac-sha224-lib,cbc(aes-generic))",
 +              .test = alg_test_aead,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha384_aes_cbc_tv_temp)
++                      .aead = __VECS(hmac_sha224_aes_cbc_tv_temp)
 +              }
 +      }, {
-               .alg = "authenc(hmac(sha384),cbc(des))",
-               .generic_driver = "authenc(hmac-sha384-lib,cbc(des-generic))",
+               .alg = "authenc(hmac(sha224),cbc(des))",
+               .generic_driver = "authenc(hmac-sha224-lib,cbc(des-generic))",
                .test = alg_test_aead,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -16466,6 +16466,317 @@ static const struct aead_testvec hmac_sh
+@@ -16303,6 +16303,291 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha384_aes_cbc_tv_temp[] = {
++static const struct aead_testvec hmac_sha224_aes_cbc_tv_temp[] = {
 +      { /* RFC 3602 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -51,28 +51,24 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00"
 +                        "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
 +                        "\x51\x2e\x03\xd5\x34\x12\x00\x06",
-+              .klen   = 8 + 48 + 16,
++              .klen   = 8 + 28 + 16,
 +              .iv     = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
 +                        "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
 +              .assoc  = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
 +                        "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "Single block msg",
 +              .plen   = 16,
 +              .ctext  = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
 +                        "\x27\x08\x94\x2d\xbe\x77\x18\x1a"
-+                        "\x79\x1c\xf1\x22\x95\x80\xe0\x60"
-+                        "\x7f\xf9\x92\x60\x83\xbd\x60\x9c"
-+                        "\xf6\x62\x8b\xa9\x7d\x56\xe2\xaf"
-+                        "\x80\x43\xbc\x41\x4a\x63\x0b\xa0"
-+                        "\x16\x25\xe2\xfe\x0a\x96\xf6\xa5"
-+                        "\x6c\x0b\xc2\x53\xb4\x27\xd9\x42",
-+              .clen   = 16 + 48,
++                        "\x17\xe8\x00\x76\x70\x71\xd1\x72"
++                        "\xf8\xd0\x91\x51\x67\xf9\xdf\xd6"
++                        "\x0d\x56\x1a\xb3\x52\x19\x85\xae"
++                        "\x46\x74\xb6\x98",
++              .clen   = 16 + 28,
 +      }, { /* RFC 3602 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -85,17 +81,15 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
-+                        "\x40\x41\x42\x43\x44\x45\x46\x47"
-+                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
++                        "\x38\x39\x3a\x3b"
 +                        "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
 +                        "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
-+              .klen   = 8 + 48 + 16,
++              .klen   = 8 + 28 + 16,
 +              .iv     = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
 +                        "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
 +              .assoc  = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
 +                        "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
 +                        "\x10\x11\x12\x13\x14\x15\x16\x17"
@@ -105,13 +99,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a"
 +                        "\x75\x86\x60\x2d\x25\x3c\xff\xf9"
 +                        "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1"
-+                        "\x4e\x5b\xa8\x65\x51\xc6\x58\xaf"
-+                        "\x31\x57\x50\x3d\x01\xa1\xa4\x3f"
-+                        "\x42\xd1\xd7\x31\x76\x8d\xf8\xc8"
-+                        "\xe4\xd2\x7e\xc5\x23\xe7\xc6\x2e"
-+                        "\x2d\xfd\x9d\xc1\xac\x50\x1e\xcf"
-+                        "\xa0\x10\xeb\x1a\x9c\xb7\xe1\xca",
-+              .clen   = 32 + 48,
++                        "\xa1\x11\xfa\xbb\x1e\x04\x7e\xe7"
++                        "\x4c\x5f\x65\xbf\x68\x8d\x33\x9d"
++                        "\xbc\x74\x9b\xf3\x15\xf3\x8f\x8d"
++                        "\xe8\xaf\x33\xe0",
++
++              .clen   = 32 + 28,
 +      }, { /* RFC 3602 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -124,17 +117,15 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x6c\x3e\xa0\x47\x76\x30\xce\x21"
 +                        "\xa2\xce\x33\x4a\xa7\x46\xc2\xcd",
-+              .klen   = 8 + 48 + 16,
++              .klen   = 8 + 28 + 16,
 +              .iv     = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
 +                        "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
 +              .assoc  = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
 +                        "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "This is a 48-byte message (exactly 3 AES blocks)",
 +              .plen   = 48,
 +              .ctext  = "\xd0\xa0\x2b\x38\x36\x45\x17\x53"
@@ -143,13 +134,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x50\x69\x39\x27\x67\x72\xf8\xd5"
 +                        "\x02\x1c\x19\x21\x6b\xad\x52\x5c"
 +                        "\x85\x79\x69\x5d\x83\xba\x26\x84"
-+                        "\xa1\x52\xe7\xda\xf7\x05\xb6\xca"
-+                        "\xad\x0f\x51\xed\x5a\xd3\x0f\xdf"
-+                        "\xde\xeb\x3f\x31\xed\x3a\x43\x93"
-+                        "\x3b\xb7\xca\xc8\x1b\xe7\x3b\x61"
-+                        "\x6a\x05\xfd\x2d\x6a\x5c\xb1\x0d"
-+                        "\x6e\x7a\xeb\x1c\x84\xec\xdb\xde",
-+              .clen   = 48 + 48,
++                        "\x60\xb3\xca\x0e\xc1\xfe\xf2\x27"
++                        "\x5a\x41\xe4\x99\xa8\x19\x56\xf1"
++                        "\x44\x98\x27\x9f\x99\xb0\x4a\xad"
++                        "\x4d\xc1\x1e\x88",
++              .clen   = 48 + 28,
 +      }, { /* RFC 3602 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -162,17 +151,15 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x56\xe4\x7a\x38\xc5\x59\x89\x74"
 +                        "\xbc\x46\x90\x3d\xba\x29\x03\x49",
-+              .klen   = 8 + 48 + 16,
++              .klen   = 8 + 28 + 16,
 +              .iv     = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
 +                        "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
 +              .assoc  = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
 +                        "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
-+              .alen   = 16,
++              .alen   = 16,
 +              .ptext  = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
 +                        "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
 +                        "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
@@ -190,13 +177,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x86\x8b\xb7\xb2\x9d\x3d\x46\xad"
 +                        "\x83\xce\x9f\x9a\x10\x2e\xe9\x9d"
 +                        "\x49\xa5\x3e\x87\xf4\xc3\xda\x55"
-+                        "\x85\x7b\x91\xe0\x29\xeb\xd3\x59"
-+                        "\x7c\xe3\x67\x14\xbe\x71\x2a\xd2"
-+                        "\x8a\x1a\xd2\x35\x78\x6b\x69\xba"
-+                        "\x64\xa5\x04\x00\x19\xc3\x4c\xae"
-+                        "\x71\xff\x76\x9f\xbb\xc3\x29\x22"
-+                        "\xc2\xc6\x51\xf1\xe6\x29\x5e\xa5",
-+              .clen   = 64 + 48,
++                        "\xbb\xe9\x38\xf8\xb9\xbf\xcb\x7b"
++                        "\xa8\x22\x91\xea\x1e\xaf\x13\xba"
++                        "\x24\x18\x64\x9c\xcb\xb4\xa9\x16"
++                        "\x4b\x83\x9c\xec",
++              .clen   = 64 + 28,
 +      }, { /* RFC 3602 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -209,12 +194,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x90\xd3\x82\xb4\x10\xee\xba\x7a"
 +                        "\xd9\x38\xc4\x6c\xec\x1a\x82\xbf",
-+              .klen   = 8 + 48 + 16,
++              .klen   = 8 + 28 + 16,
 +              .iv     = "\xe9\x6e\x8c\x08\xab\x46\x57\x63"
 +                        "\xfd\x09\x8d\x45\xdd\x3f\xf8\x93",
 +              .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01"
@@ -242,13 +225,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x53\x8a\xb5\x0c\x55\x1b\x87\x4a"
 +                        "\xa2\x69\xad\xd0\x47\xad\x2d\x59"
 +                        "\x13\xac\x19\xb7\xcf\xba\xd4\xa6"
-+                        "\x57\x5f\xb4\xd7\x74\x6f\x18\x97"
-+                        "\xb7\xde\xfc\xf3\x4e\x0d\x29\x4d"
-+                        "\xa0\xff\x39\x9e\x2d\xbf\x27\xac"
-+                        "\x54\xb9\x8a\x3e\xab\x3b\xac\xd3"
-+                        "\x36\x43\x74\xfc\xc2\x64\x81\x8a"
-+                        "\x2c\x15\x72\xdf\x3f\x9d\x5b\xa4",
-+              .clen   = 80 + 48,
++                        "\x04\x5e\x83\x45\xc5\x6a\x5b\xe2"
++                        "\x5e\xd8\x59\x06\xbd\xc7\xd2\x9b"
++                        "\x0b\x65\x1f\x31\xc7\xe6\x9c\x39"
++                        "\xa3\x66\xdb\xb8",
++              .clen   = 80 + 28,
 +      }, { /* NIST SP800-38A F.2.3 CBC-AES192.Encrypt */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -261,13 +242,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x8e\x73\xb0\xf7\xda\x0e\x64\x52"
 +                        "\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
 +                        "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b",
-+              .klen   = 8 + 48 + 24,
++              .klen   = 8 + 28 + 24,
 +              .iv     = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
 +              .assoc  = "\x00\x01\x02\x03\x04\x05\x06\x07"
@@ -290,13 +269,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0"
 +                        "\x08\xb0\xe2\x79\x88\x59\x88\x81"
 +                        "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd"
-+                        "\x29\x9b\x42\x47\x0b\xbf\xf3\x54"
-+                        "\x54\x95\xb0\x89\xd5\xa0\xc3\x78"
-+                        "\x60\x6c\x18\x39\x6d\xc9\xfb\x2a"
-+                        "\x34\x1c\xed\x95\x10\x1e\x43\x0a"
-+                        "\x72\xce\x26\xbc\x74\xd9\x6f\xa2"
-+                        "\xf1\xd9\xd0\xb1\xdf\x3d\x93\x14",
-+              .clen   = 64 + 48,
++                        "\x67\x35\xcd\x86\x94\x51\x3b\x3a"
++                        "\xaa\x07\xb1\xed\x18\x55\x62\x01"
++                        "\x95\xb2\x53\xb5\x20\x78\x16\xd7"
++                        "\xb8\x49\x7f\x96",
++
++              .clen   = 64 + 28,
 +      }, { /* NIST SP800-38A F.2.5 CBC-AES256.Encrypt */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -309,14 +287,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
 +                        "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
 +                        "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
 +                        "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
-+              .klen   = 8 + 48 + 32,
++              .klen   = 8 + 28 + 32,
 +              .iv     = "\x00\x01\x02\x03\x04\x05\x06\x07"
 +                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
 +              .assoc  = "\x00\x01\x02\x03\x04\x05\x06\x07"
@@ -339,16 +315,14 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\xa5\x30\xe2\x63\x04\x23\x14\x61"
 +                        "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc"
 +                        "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b"
-+                        "\x9f\x50\xce\x64\xd9\xa3\xc9\x7a"
-+                        "\x15\x3a\x3d\x46\x9a\x90\xf3\x06"
-+                        "\x22\xad\xc5\x24\x77\x50\xb8\xfe"
-+                        "\xbe\x37\x16\x86\x34\x5f\xaf\x97"
-+                        "\x00\x9d\x86\xc8\x32\x4f\x72\x2f"
-+                        "\x48\x97\xad\xb6\xb9\x77\x33\xbc",
-+              .clen   = 64 + 48,
++                        "\xe0\xe2\x3d\x3f\x55\x24\x2c\x4d"
++                        "\xb9\x13\x2a\xc0\x07\xbb\x3b\xda"
++                        "\xfd\xa4\x51\x32\x3f\x44\xb1\x13"
++                        "\x98\xf9\xbc\xb9",
++              .clen   = 64 + 28,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha512_aes_cbc_tv_temp[] = {
+ static const struct aead_testvec hmac_sha256_aes_cbc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
  #ifdef __LITTLE_ENDIAN
similarity index 98%
rename from target/linux/generic/backport-6.18/912-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
rename to target/linux/generic/backport-6.18/913-v7.0-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
index f867b19af518a95ba4978e5a26e15c855ff09e13..21079706e302dbc159941a2f38d9f4d39d830ba6 100644 (file)
@@ -34,7 +34,7 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
                .test = alg_test_aead,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -17714,6 +17714,65 @@ static const struct aead_testvec hmac_sh
+@@ -17834,6 +17834,65 @@ static const struct aead_testvec hmac_sh
        },
  };
  
similarity index 98%
rename from target/linux/generic/backport-6.18/914-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
rename to target/linux/generic/backport-6.18/915-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
index cad39889f40ae590350677013567ce1a772b2cde..0407ef4280ca5352a38f0e413883711e1e4dc267 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
                .test = alg_test_aead,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -17401,6 +17401,63 @@ static const struct aead_testvec hmac_sh
+@@ -17521,6 +17521,63 @@ static const struct aead_testvec hmac_sh
        },
  };
  
index 888d4b5f0a4b7e9579182d901417195eb18eac4d..e775b83603e0d948e6d4697a2128cfc69812ada6 100644 (file)
@@ -1,11 +1,11 @@
-From 3f4d32aff1d4e06501f909b1e5037ec8caa76d01 Mon Sep 17 00:00:00 2001
+From b45b4314d3e55be70b597baa1f0ab9283e68003b Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Thu, 5 Mar 2026 21:08:21 +0100
-Subject: [PATCH 2/5] crypto: testmgr - Add test vectors for
- authenc(hmac(sha224),rfc3686(ctr(aes)))
+Date: Thu, 5 Mar 2026 21:08:20 +0100
+Subject: [PATCH 1/5] crypto: testmgr - Add test vectors for
+ authenc(hmac(sha1),rfc3686(ctr(aes)))
 
 Test vectors were generated starting from existing RFC3686(CTR(AES)) test
-vectors and adding HMAC(SHA224) computed with software implementation.
+vectors and adding HMAC(SHA1) computed with software implementation.
 Then, the results were double-checked on Mediatek MT7986 (safexcel).
 Platform pass self-tests.
 
@@ -13,32 +13,32 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   6 +-
- crypto/testmgr.h | 235 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 240 insertions(+), 1 deletion(-)
+ crypto/testmgr.h | 221 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 226 insertions(+), 1 deletion(-)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4261,8 +4261,12 @@ static const struct alg_test_desc alg_te
+@@ -4232,8 +4232,12 @@ static const struct alg_test_desc alg_te
                }
        }, {
-               .alg = "authenc(hmac(sha224),rfc3686(ctr(aes)))",
+               .alg = "authenc(hmac(sha1),rfc3686(ctr(aes)))",
 -              .test = alg_test_null,
-+              .generic_driver = "authenc(hmac-sha224-lib,rfc3686(ctr(aes-lib)))",
++              .generic_driver = "authenc(hmac-sha1-lib,rfc3686(ctr(aes-lib)))",
 +              .test = alg_test_aead,
                .fips_allowed = 1,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha224_aes_ctr_rfc3686_tv_temp)
++                      .aead = __VECS(hmac_sha1_aes_ctr_rfc3686_tv_temp)
 +              }
        }, {
-               .alg = "authenc(hmac(sha256),cbc(aes))",
-               .generic_driver = "authenc(hmac-sha256-lib,cbc(aes-generic))",
+               .alg = "authenc(hmac(sha224),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha224-lib,cbc(aes-generic))",
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -16689,6 +16689,241 @@ static const struct aead_testvec hmac_sh
+@@ -16257,6 +16257,227 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha224_aes_ctr_rfc3686_tv_temp[] = {
++static const struct aead_testvec hmac_sha1_aes_ctr_rfc3686_tv_temp[] = {
 +      { /* RFC 3686 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -50,12 +50,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00"
 +                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
 +                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
 +                        "\x00\x00\x00\x30",
-+              .klen   = 8 + 28 + 20,
++              .klen   = 8 + 20 + 20,
 +              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .alen   = 8,
@@ -63,11 +62,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
 +                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
-+                        "\x36\xb4\x3b\x9c\x62\xed\xcf\x77"
-+                        "\xdc\x19\x27\x3f\x92\x80\x52\xce"
-+                        "\x8f\xad\x01\x0b\x79\xda\x04\x83"
-+                        "\xcb\x45\x1a\x52",
-+              .clen   = 16 + 28,
++                        "\x70\xdc\x6b\x62\x43\xa1\x2f\x08"
++                        "\xf1\xec\x93\x7d\x69\xb2\x8e\x1f"
++                        "\x0a\x97\x39\x86",
++              .clen   = 16 + 20,
 +      }, { /* RFC 3686 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -79,12 +77,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b"
++                        "\x30\x31\x32\x33"
 +                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
 +                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
 +                        "\x00\x6c\xb6\xdb",
-+              .klen   = 8 + 28 + 20,
++              .klen   = 8 + 20 + 20,
 +              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .alen   = 8,
@@ -97,11 +94,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
 +                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
 +                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
-+                        "\x7f\xe4\x8f\xa7\x06\x71\xe9\xe5"
-+                        "\x16\x79\xef\xf9\x7e\x5c\x93\x4d"
-+                        "\xa0\xf8\x3b\x3a\xaa\x1c\xc0\xd9"
-+                        "\x6b\x48\x49\x01",
-+              .clen   = 32 + 28,
++                        "\x6b\x7b\x4d\x39\x36\x1c\x12\x5f"
++                        "\x72\xd2\x88\xb2\x26\xa6\xa6\xb5"
++                        "\x1d\x3a\x49\xa6",
++              .clen   = 32 + 20,
 +      }, { /* RFC 3686 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -113,12 +109,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
-+                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd"
++                        "\x22\x33\x44\x55"
 +                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
 +                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
 +                        "\x00\xe0\x01\x7b",
-+              .klen   = 8 + 28 + 20,
++              .klen   = 8 + 20 + 20,
 +              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .alen   = 8,
@@ -133,11 +128,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
 +                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
 +                        "\x25\xb2\x07\x2f"
-+                        "\xb0\x19\x45\xee\xa7\x31\xd9\xd0"
-+                        "\x74\x6b\xb8\xb1\x67\x61\x2f\x8c"
-+                        "\x68\xde\xe3\xc9\x3b\x0c\x72\xda"
-+                        "\x48\xba\x1b\x51",
-+              .clen   = 36 + 28,
++                        "\x2c\x86\xa0\x90\x8e\xc1\x02\x1d"
++                        "\x51\xdc\xd6\x21\xc7\x30\xcc\x32"
++                        "\x38\x55\x47\x64",
++              .clen   = 36 + 20,
 +      }, { /* RFC 3686 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -149,13 +143,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x1c"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00"
 +                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
 +                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
 +                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
 +                        "\x00\x00\x00\x48",
-+              .klen   = 8 + 28 + 28,
++              .klen   = 8 + 20 + 28,
 +              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .alen   = 8,
@@ -163,11 +156,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
 +                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
-+                        "\xfd\xf5\x35\x26\x50\x3d\xdf\x80"
-+                        "\x6e\xbe\xba\x8d\x56\xf3\x03\xb7"
-+                        "\x27\xb8\x13\xe8\x72\x8f\xc9\x52"
-+                        "\x4a\xb7\xc3\x3a",
-+              .clen   = 16 + 28,
++                        "\xe9\x4e\x49\xf0\x6b\x8d\x58\x2b"
++                        "\x26\x7f\xf3\xab\xeb\x2f\x74\x2f"
++                        "\x45\x43\x64\xc1",
++              .clen   = 16 + 20,
 +      }, { /* RFC 3686 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -179,13 +171,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x1c"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b"
++                        "\x30\x31\x32\x33"
 +                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
 +                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
 +                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
 +                        "\x00\x96\xb0\x3b",
-+              .klen   = 8 + 28 + 28,
++              .klen   = 8 + 20 + 28,
 +              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .alen   = 8,
@@ -198,11 +189,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
 +                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
 +                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
-+                        "\x72\x89\xa8\x04\xa5\xac\x8f\x29"
-+                        "\xe6\xb8\x58\xe8\xcf\x6a\x91\x89"
-+                        "\xd3\x66\x3b\xdc\xce\x43\x23\xb7"
-+                        "\x6a\xdd\x9d\xbd",
-+              .clen   = 32 + 28,
++                        "\xab\xc4\xfa\x6d\x20\xe1\xce\x72"
++                        "\x0e\x92\x4e\x97\xaa\x4d\x30\x84"
++                        "\xb6\xd8\x4d\x3b",
++              .clen   = 32 + 20,
 +      }, { /* RFC 3686 Case 7 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -214,14 +204,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x24"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00"
 +                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
 +                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
 +                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
 +                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
 +                        "\x00\x00\x00\x60",
-+              .klen   = 8 + 28 + 36,
++              .klen   = 8 + 20 + 36,
 +              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .alen   = 8,
@@ -229,11 +218,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
 +                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
-+                        "\xfe\xdf\x6f\x62\x8a\x79\xb5\x34"
-+                        "\xd0\x6f\x32\xaf\x31\x50\x5b\x1f"
-+                        "\xe0\x6d\x0b\xbc\x02\x25\xee\x74"
-+                        "\x7a\xdf\x97\x3c",
-+              .clen   = 16 + 28,
++                        "\x3d\x6c\x23\x27\xda\x0e\x7f\x29"
++                        "\xfd\x8d\x3c\x1b\xf7\x7a\x63\xd9"
++                        "\x7e\x0f\xe9\xf6",
++              .clen   = 16 + 20,
 +      }, { /* RFC 3686 Case 8 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -245,14 +233,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x24"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b"
++                        "\x30\x31\x32\x33"
 +                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
 +                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
 +                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
 +                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
 +                        "\x00\xfa\xac\x24",
-+              .klen   = 8 + 28 + 36,
++              .klen   = 8 + 20 + 36,
 +              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .alen   = 8,
@@ -265,14 +252,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
 +                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
 +                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
-+                        "\x19\x1e\x9c\x2c\x6d\x4e\x21\xda"
-+                        "\x6c\x4d\x88\x90\xf8\x5f\xa5\x9d"
-+                        "\xb4\xd4\x40\xad\xfa\x67\x3f\x0e"
-+                        "\x11\x12\xd6\x10",
-+              .clen   = 32 + 28,
++                        "\xe7\xee\x22\xa4\xdd\xbf\x5d\x44"
++                        "\x3b\x43\x1c\x69\x55\x11\xd5\xad"
++                        "\x14\x5f\x44\xa6",
++              .clen   = 32 + 20,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha256_aes_cbc_tv_temp[] = {
-       { /* RFC 3602 Case 1 */
+ static const struct aead_testvec hmac_sha1_ecb_cipher_null_tv_temp[] = {
+       { /* Input data from RFC 2410 Case 1 */
  #ifdef __LITTLE_ENDIAN
index db7ccb9661034e1968014267f668be6f66b16db1..c6b2a88deddbd074173ee27ad3df069f70bfab91 100644 (file)
@@ -1,11 +1,11 @@
-From 65af3a0bff7264ab84f9e1f2099c658601ca1b66 Mon Sep 17 00:00:00 2001
+From d46c27c01f132082095342b5abf4e83e250b70b8 Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Thu, 5 Mar 2026 21:08:22 +0100
-Subject: [PATCH 3/5] crypto: testmgr - Add test vectors for
- authenc(hmac(sha256),rfc3686(ctr(aes)))
+Date: Thu, 5 Mar 2026 21:08:21 +0100
+Subject: [PATCH 2/5] crypto: testmgr - Add test vectors for
+ authenc(hmac(sha224),rfc3686(ctr(aes)))
 
 Test vectors were generated starting from existing RFC3686(CTR(AES)) test
-vectors and adding HMAC(SHA256) computed with software implementation.
+vectors and adding HMAC(SHA224) computed with software implementation.
 Then, the results were double-checked on Mediatek MT7986 (safexcel).
 Platform pass self-tests.
 
@@ -18,27 +18,27 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4302,8 +4302,12 @@ static const struct alg_test_desc alg_te
+@@ -4261,8 +4261,12 @@ static const struct alg_test_desc alg_te
                }
        }, {
-               .alg = "authenc(hmac(sha256),rfc3686(ctr(aes)))",
+               .alg = "authenc(hmac(sha224),rfc3686(ctr(aes)))",
 -              .test = alg_test_null,
-+              .generic_driver = "authenc(hmac-sha256-lib,rfc3686(ctr(aes-lib)))",
++              .generic_driver = "authenc(hmac-sha224-lib,rfc3686(ctr(aes-lib)))",
 +              .test = alg_test_aead,
                .fips_allowed = 1,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha256_aes_ctr_rfc3686_tv_temp)
++                      .aead = __VECS(hmac_sha224_aes_ctr_rfc3686_tv_temp)
 +              }
        }, {
-               .alg = "authenc(hmac(sha384),cbc(aes))",
-               .generic_driver = "authenc(hmac-sha384-lib,cbc(aes-generic))",
+               .alg = "authenc(hmac(sha256),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha256-lib,cbc(aes-generic))",
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -17207,6 +17207,241 @@ static const struct aead_testvec hmac_sh
+@@ -16809,6 +16809,241 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha256_aes_ctr_rfc3686_tv_temp[] = {
++static const struct aead_testvec hmac_sha224_aes_ctr_rfc3686_tv_temp[] = {
 +      { /* RFC 3686 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -51,11 +51,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00"
 +                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
 +                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
 +                        "\x00\x00\x00\x30",
-+              .klen   = 8 + 32 + 20,
++              .klen   = 8 + 28 + 20,
 +              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .alen   = 8,
@@ -63,11 +63,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
 +                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
-+                        "\x9b\xa2\x34\x62\xe5\xb3\xe8\x2d"
-+                        "\x6d\xdb\x93\x64\xa5\x08\x2e\x77"
-+                        "\x72\x1f\x21\x94\xc7\xbe\x14\xa6"
-+                        "\xcd\xea\x96\xa1\x29\x8f\x30\xc3",
-+              .clen   = 16 + 32,
++                        "\x36\xb4\x3b\x9c\x62\xed\xcf\x77"
++                        "\xdc\x19\x27\x3f\x92\x80\x52\xce"
++                        "\x8f\xad\x01\x0b\x79\xda\x04\x83"
++                        "\xcb\x45\x1a\x52",
++              .clen   = 16 + 28,
 +      }, { /* RFC 3686 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -80,11 +80,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x38\x39\x3a\x3b"
 +                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
 +                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
 +                        "\x00\x6c\xb6\xdb",
-+              .klen   = 8 + 32 + 20,
++              .klen   = 8 + 28 + 20,
 +              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .alen   = 8,
@@ -97,11 +97,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
 +                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
 +                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
-+                        "\x22\xf7\x95\xa8\xbb\xcd\x19\xf4"
-+                        "\x58\x16\x54\x28\x2b\xf4\x52\xe7"
-+                        "\x5c\x6c\xe1\x44\x0b\xd5\x10\x6e"
-+                        "\xe1\xf7\x04\xc4\x2c\xab\x93\xdd",
-+              .clen   = 32 + 32,
++                        "\x7f\xe4\x8f\xa7\x06\x71\xe9\xe5"
++                        "\x16\x79\xef\xf9\x7e\x5c\x93\x4d"
++                        "\xa0\xf8\x3b\x3a\xaa\x1c\xc0\xd9"
++                        "\x6b\x48\x49\x01",
++              .clen   = 32 + 28,
 +      }, { /* RFC 3686 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -114,11 +114,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
-+                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\xaa\xbb\xcc\xdd"
 +                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
 +                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
 +                        "\x00\xe0\x01\x7b",
-+              .klen   = 8 + 32 + 20,
++              .klen   = 8 + 28 + 20,
 +              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .alen   = 8,
@@ -133,11 +133,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
 +                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
 +                        "\x25\xb2\x07\x2f"
-+                        "\x1d\x05\x5f\x77\x3b\x4f\x5c\x21"
-+                        "\x29\xea\xf1\xa8\x71\x49\x7b\x0b"
-+                        "\x66\x0d\xff\x18\x81\x63\xfc\xc3"
-+                        "\x91\xb6\x38\xc8\xcd\x2d\x39\x83",
-+              .clen   = 36 + 32,
++                        "\xb0\x19\x45\xee\xa7\x31\xd9\xd0"
++                        "\x74\x6b\xb8\xb1\x67\x61\x2f\x8c"
++                        "\x68\xde\xe3\xc9\x3b\x0c\x72\xda"
++                        "\x48\xba\x1b\x51",
++              .clen   = 36 + 28,
 +      }, { /* RFC 3686 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -150,12 +150,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00"
 +                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
 +                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
 +                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
 +                        "\x00\x00\x00\x48",
-+              .klen   = 8 + 32 + 28,
++              .klen   = 8 + 28 + 28,
 +              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .alen   = 8,
@@ -163,11 +163,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
 +                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
-+                        "\x8d\x03\x77\xb2\x1c\xc9\xe0\xac"
-+                        "\xde\x69\xbe\x8a\xef\x5b\x13\x74"
-+                        "\x1d\x39\xbc\xdc\x95\xa4\xbf\xc3"
-+                        "\xd5\xc6\xd1\xda\xda\x3b\xca\x78",
-+              .clen   = 16 + 32,
++                        "\xfd\xf5\x35\x26\x50\x3d\xdf\x80"
++                        "\x6e\xbe\xba\x8d\x56\xf3\x03\xb7"
++                        "\x27\xb8\x13\xe8\x72\x8f\xc9\x52"
++                        "\x4a\xb7\xc3\x3a",
++              .clen   = 16 + 28,
 +      }, { /* RFC 3686 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -180,12 +180,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x38\x39\x3a\x3b"
 +                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
 +                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
 +                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
 +                        "\x00\x96\xb0\x3b",
-+              .klen   = 8 + 32 + 28,
++              .klen   = 8 + 28 + 28,
 +              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .alen   = 8,
@@ -198,11 +198,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
 +                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
 +                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
-+                        "\x34\x06\x2b\x3d\xf1\xa8\x3d\xf1"
-+                        "\xa6\x5e\x5c\x1a\xdb\x0c\xb5\x1e"
-+                        "\x8f\xdb\xf4\xca\x7d\x09\x5e\x81"
-+                        "\xdb\x32\x07\x4a\x1d\x1c\x6d\x83",
-+              .clen   = 32 + 32,
++                        "\x72\x89\xa8\x04\xa5\xac\x8f\x29"
++                        "\xe6\xb8\x58\xe8\xcf\x6a\x91\x89"
++                        "\xd3\x66\x3b\xdc\xce\x43\x23\xb7"
++                        "\x6a\xdd\x9d\xbd",
++              .clen   = 32 + 28,
 +      }, { /* RFC 3686 Case 7 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -215,13 +215,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00"
 +                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
 +                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
 +                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
 +                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
 +                        "\x00\x00\x00\x60",
-+              .klen   = 8 + 32 + 36,
++              .klen   = 8 + 28 + 36,
 +              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .alen   = 8,
@@ -229,11 +229,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
 +                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
-+                        "\xc3\xb4\x5f\xb0\xbf\xf5\x1b\xff"
-+                        "\x7c\xf1\x79\x00\x63\x50\xdd\x77"
-+                        "\xc0\x4a\xba\xcd\xdc\x47\x05\x2a"
-+                        "\x5d\x85\x2d\x83\x44\xca\x79\x2c",
-+              .clen   = 16 + 32,
++                        "\xfe\xdf\x6f\x62\x8a\x79\xb5\x34"
++                        "\xd0\x6f\x32\xaf\x31\x50\x5b\x1f"
++                        "\xe0\x6d\x0b\xbc\x02\x25\xee\x74"
++                        "\x7a\xdf\x97\x3c",
++              .clen   = 16 + 28,
 +      }, { /* RFC 3686 Case 8 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -246,13 +246,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
-+                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x38\x39\x3a\x3b"
 +                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
 +                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
 +                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
 +                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
 +                        "\x00\xfa\xac\x24",
-+              .klen   = 8 + 32 + 36,
++              .klen   = 8 + 28 + 36,
 +              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .alen   = 8,
@@ -265,14 +265,14 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
 +                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
 +                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
-+                        "\xc8\x59\x5d\xe1\xba\xac\x13\x82"
-+                        "\xfd\x21\x7c\x8c\x23\x31\x04\x02"
-+                        "\x9e\x69\x5b\x57\xa8\x13\xe7\x21"
-+                        "\x60\x0c\x24\xc2\x80\x4a\x93\x6e",
-+              .clen   = 32 + 32,
++                        "\x19\x1e\x9c\x2c\x6d\x4e\x21\xda"
++                        "\x6c\x4d\x88\x90\xf8\x5f\xa5\x9d"
++                        "\xb4\xd4\x40\xad\xfa\x67\x3f\x0e"
++                        "\x11\x12\xd6\x10",
++              .clen   = 32 + 28,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha384_aes_cbc_tv_temp[] = {
+ static const struct aead_testvec hmac_sha256_aes_cbc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
  #ifdef __LITTLE_ENDIAN
index d0ced9c61a9b903f7ccf8dcdd00570a06a42c0e3..2a6321f7d3f34d02f4da5a0bedd63d899a47060c 100644 (file)
@@ -1,11 +1,11 @@
-From 07cbbf6f38e6a91a7fecab3d6f86485425748d3e Mon Sep 17 00:00:00 2001
+From 5ac6b904c70ff163fd2f9e152056300ce5ed6c26 Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Thu, 5 Mar 2026 21:08:23 +0100
-Subject: [PATCH 4/5] crypto: testmgr - Add test vectors for
- authenc(hmac(sha384),rfc3686(ctr(aes)))
+Date: Thu, 5 Mar 2026 21:08:22 +0100
+Subject: [PATCH 3/5] crypto: testmgr - Add test vectors for
+ authenc(hmac(sha256),rfc3686(ctr(aes)))
 
 Test vectors were generated starting from existing RFC3686(CTR(AES)) test
-vectors and adding HMAC(SHA384) computed with software implementation.
+vectors and adding HMAC(SHA256) computed with software implementation.
 Then, the results were double-checked on Mediatek MT7986 (safexcel).
 Platform pass self-tests.
 
@@ -13,32 +13,32 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   6 +-
- crypto/testmgr.h | 263 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 268 insertions(+), 1 deletion(-)
+ crypto/testmgr.h | 235 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 240 insertions(+), 1 deletion(-)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4342,8 +4342,12 @@ static const struct alg_test_desc alg_te
+@@ -4302,8 +4302,12 @@ static const struct alg_test_desc alg_te
                }
        }, {
-               .alg = "authenc(hmac(sha384),rfc3686(ctr(aes)))",
+               .alg = "authenc(hmac(sha256),rfc3686(ctr(aes)))",
 -              .test = alg_test_null,
-+              .generic_driver = "authenc(hmac-sha384-lib,rfc3686(ctr(aes-lib)))",
++              .generic_driver = "authenc(hmac-sha256-lib,rfc3686(ctr(aes-lib)))",
 +              .test = alg_test_aead,
                .fips_allowed = 1,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha384_aes_ctr_rfc3686_tv_temp)
++                      .aead = __VECS(hmac_sha256_aes_ctr_rfc3686_tv_temp)
 +              }
        }, {
-               .alg = "authenc(hmac(sha512),cbc(aes))",
-               .generic_driver = "authenc(hmac-sha512-lib,cbc(aes-generic))",
+               .alg = "authenc(hmac(sha384),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha384-lib,cbc(aes-generic))",
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -17753,6 +17753,269 @@ static const struct aead_testvec hmac_sh
+@@ -17327,6 +17327,241 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha384_aes_ctr_rfc3686_tv_temp[] = {
++static const struct aead_testvec hmac_sha256_aes_ctr_rfc3686_tv_temp[] = {
 +      { /* RFC 3686 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -52,12 +52,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
 +                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
 +                        "\x00\x00\x00\x30",
-+              .klen   = 8 + 48 + 20,
++              .klen   = 8 + 32 + 20,
 +              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .alen   = 8,
@@ -65,13 +63,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
 +                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
-+                        "\x45\x51\x59\x72\x16\xd3\xc6\x15"
-+                        "\x25\x1e\xe8\x92\x2e\x47\x52\xcc"
-+                        "\x91\x9c\x24\xef\x11\xb2\x53\x00"
-+                        "\x10\x20\x43\x06\xe2\x35\x88\x9e"
-+                        "\x18\x32\x5a\x79\x7d\x73\x7e\x89"
-+                        "\xfe\xa1\xda\xa4\x86\xc4\x2a\x04",
-+              .clen   = 16 + 48,
++                        "\x9b\xa2\x34\x62\xe5\xb3\xe8\x2d"
++                        "\x6d\xdb\x93\x64\xa5\x08\x2e\x77"
++                        "\x72\x1f\x21\x94\xc7\xbe\x14\xa6"
++                        "\xcd\xea\x96\xa1\x29\x8f\x30\xc3",
++              .clen   = 16 + 32,
 +      }, { /* RFC 3686 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -85,12 +81,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
-+                        "\x40\x41\x42\x43\x44\x45\x46\x47"
-+                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
 +                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
 +                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
 +                        "\x00\x6c\xb6\xdb",
-+              .klen   = 8 + 48 + 20,
++              .klen   = 8 + 32 + 20,
 +              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .alen   = 8,
@@ -103,13 +97,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
 +                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
 +                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
-+                        "\x83\x65\x32\x1e\x6b\x60\xe6\x4a"
-+                        "\xe2\xab\x52\x2b\xa6\x70\x3a\xfa"
-+                        "\xd2\xec\x83\xe4\x31\x0c\x28\x40"
-+                        "\x9b\x5e\x18\xa4\xdc\x48\xb8\x56"
-+                        "\x33\xab\x7f\x2b\xaf\xe4\x3a\xe3"
-+                        "\x8a\x61\xf6\x22\xb4\x6b\xfe\x7d",
-+              .clen   = 32 + 48,
++                        "\x22\xf7\x95\xa8\xbb\xcd\x19\xf4"
++                        "\x58\x16\x54\x28\x2b\xf4\x52\xe7"
++                        "\x5c\x6c\xe1\x44\x0b\xd5\x10\x6e"
++                        "\xe1\xf7\x04\xc4\x2c\xab\x93\xdd",
++              .clen   = 32 + 32,
 +      }, { /* RFC 3686 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -123,12 +115,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
 +                        "\x22\x33\x44\x55\x66\x77\x88\x99"
 +                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
-+                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
-+                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
 +                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
 +                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
 +                        "\x00\xe0\x01\x7b",
-+              .klen   = 8 + 48 + 20,
++              .klen   = 8 + 32 + 20,
 +              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .alen   = 8,
@@ -143,13 +133,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
 +                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
 +                        "\x25\xb2\x07\x2f"
-+                        "\x4a\xaa\xad\x3b\x3b\xb6\x9a\xba"
-+                        "\xa1\x7b\xc6\xce\x96\xc3\xff\x67"
-+                        "\xf3\x0c\x33\x57\xf0\x51\x24\x08"
-+                        "\xed\x4f\x6a\x9c\x22\x42\xbd\x18"
-+                        "\x97\x74\x68\x36\x00\xf1\x69\x3a"
-+                        "\x18\x77\x40\xf0\x56\xba\xba\xe0",
-+              .clen   = 36 + 48,
++                        "\x1d\x05\x5f\x77\x3b\x4f\x5c\x21"
++                        "\x29\xea\xf1\xa8\x71\x49\x7b\x0b"
++                        "\x66\x0d\xff\x18\x81\x63\xfc\xc3"
++                        "\x91\xb6\x38\xc8\xcd\x2d\x39\x83",
++              .clen   = 36 + 32,
 +      }, { /* RFC 3686 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -163,13 +151,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
 +                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
 +                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
 +                        "\x00\x00\x00\x48",
-+              .klen   = 8 + 48 + 28,
++              .klen   = 8 + 32 + 28,
 +              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .alen   = 8,
@@ -177,13 +163,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
 +                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
-+                        "\x36\xd6\xc7\x55\xac\xb6\x0b\x14"
-+                        "\x95\x71\xf9\x86\x30\xe3\x96\xc3"
-+                        "\x76\x85\x6d\xa5\x06\xed\x6f\x34"
-+                        "\xcc\x1f\xcc\x2d\x88\x06\xb0\x1d"
-+                        "\xbe\xd9\xa2\xd3\x64\xf1\x33\x03"
-+                        "\x13\x50\x8f\xae\x61\x2d\x82\xb8",
-+              .clen   = 16 + 48,
++                        "\x8d\x03\x77\xb2\x1c\xc9\xe0\xac"
++                        "\xde\x69\xbe\x8a\xef\x5b\x13\x74"
++                        "\x1d\x39\xbc\xdc\x95\xa4\xbf\xc3"
++                        "\xd5\xc6\xd1\xda\xda\x3b\xca\x78",
++              .clen   = 16 + 32,
 +      }, { /* RFC 3686 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -197,13 +181,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
-+                        "\x40\x41\x42\x43\x44\x45\x46\x47"
-+                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
 +                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
 +                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
 +                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
 +                        "\x00\x96\xb0\x3b",
-+              .klen   = 8 + 48 + 28,
++              .klen   = 8 + 32 + 28,
 +              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .alen   = 8,
@@ -216,13 +198,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
 +                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
 +                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
-+                        "\x80\x12\x67\x22\xf2\x4d\x9b\xbf"
-+                        "\xdc\x38\xd3\xaa\x12\xc0\x58\x1a"
-+                        "\x9a\x62\x6e\x42\x3d\x44\x63\xdd"
-+                        "\xee\x7e\xe3\xa3\xdf\x2a\x65\x05"
-+                        "\xd0\xc1\xd2\x54\x55\x35\x5c\xc7"
-+                        "\xb0\xb5\xb1\x36\xe0\x0b\xaf\x72",
-+              .clen   = 32 + 48,
++                        "\x34\x06\x2b\x3d\xf1\xa8\x3d\xf1"
++                        "\xa6\x5e\x5c\x1a\xdb\x0c\xb5\x1e"
++                        "\x8f\xdb\xf4\xca\x7d\x09\x5e\x81"
++                        "\xdb\x32\x07\x4a\x1d\x1c\x6d\x83",
++              .clen   = 32 + 32,
 +      }, { /* RFC 3686 Case 7 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -236,14 +216,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
 +                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
 +                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
 +                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
 +                        "\x00\x00\x00\x60",
-+              .klen   = 8 + 48 + 36,
++              .klen   = 8 + 32 + 36,
 +              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .alen   = 8,
@@ -251,13 +229,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
 +                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
-+                        "\xb1\x7b\xb1\xec\xca\x94\x55\xc4"
-+                        "\x3f\x2b\xb1\x70\x04\x91\xf5\x9d"
-+                        "\x1a\xc0\xe1\x2a\x93\x5f\x96\x2a"
-+                        "\x12\x85\x38\x36\xe1\xb2\xe9\xf0"
-+                        "\xf2\x6e\x5d\x81\xcc\x49\x07\x9c"
-+                        "\x5b\x88\xc8\xcc\xc4\x21\x4f\x32",
-+              .clen   = 16 + 48,
++                        "\xc3\xb4\x5f\xb0\xbf\xf5\x1b\xff"
++                        "\x7c\xf1\x79\x00\x63\x50\xdd\x77"
++                        "\xc0\x4a\xba\xcd\xdc\x47\x05\x2a"
++                        "\x5d\x85\x2d\x83\x44\xca\x79\x2c",
++              .clen   = 16 + 32,
 +      }, { /* RFC 3686 Case 8 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -271,14 +247,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
 +                        "\x30\x31\x32\x33\x34\x35\x36\x37"
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
-+                        "\x40\x41\x42\x43\x44\x45\x46\x47"
-+                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
 +                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
 +                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
 +                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
 +                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
 +                        "\x00\xfa\xac\x24",
-+              .klen   = 8 + 48 + 36,
++              .klen   = 8 + 32 + 36,
 +              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .alen   = 8,
@@ -291,16 +265,14 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
 +                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
 +                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
-+                        "\xd6\x96\xbb\x12\x39\xc4\x4d\xe2"
-+                        "\x4c\x02\xe7\x1f\xdc\xb2\xb1\x57"
-+                        "\x38\x0d\xdd\x13\xb3\x89\x57\x9e"
-+                        "\x1f\xb5\x48\x32\xc4\xd3\x9d\x1f"
-+                        "\x68\xab\x8d\xc6\xa8\x05\x3a\xc2"
-+                        "\x87\xaf\x23\xb3\xe4\x1b\xde\xb3",
-+              .clen   = 32 + 48,
++                        "\xc8\x59\x5d\xe1\xba\xac\x13\x82"
++                        "\xfd\x21\x7c\x8c\x23\x31\x04\x02"
++                        "\x9e\x69\x5b\x57\xa8\x13\xe7\x21"
++                        "\x60\x0c\x24\xc2\x80\x4a\x93\x6e",
++              .clen   = 32 + 32,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha512_aes_cbc_tv_temp[] = {
+ static const struct aead_testvec hmac_sha384_aes_cbc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
  #ifdef __LITTLE_ENDIAN
index c5e7513b1ea2a074e0560ba18003f7022184a205..11a0c34eee2b826d0db47dd5f98d8a6e5d9f108e 100644 (file)
@@ -1,11 +1,11 @@
-From 07f1bc80c478c7198065d3896ed3685428314a9c Mon Sep 17 00:00:00 2001
+From 2f0814271715f974ae1fc6247c9918906c83e24b Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Thu, 5 Mar 2026 21:08:24 +0100
-Subject: [PATCH 5/5] crypto: testmgr - Add test vectors for
- authenc(hmac(sha512),rfc3686(ctr(aes)))
+Date: Thu, 5 Mar 2026 21:08:23 +0100
+Subject: [PATCH 4/5] crypto: testmgr - Add test vectors for
+ authenc(hmac(sha384),rfc3686(ctr(aes)))
 
 Test vectors were generated starting from existing RFC3686(CTR(AES)) test
-vectors and adding HMAC(SHA512) computed with software implementation.
+vectors and adding HMAC(SHA384) computed with software implementation.
 Then, the results were double-checked on Mediatek MT7986 (safexcel).
 Platform pass self-tests.
 
@@ -13,32 +13,32 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
  crypto/testmgr.c |   6 +-
- crypto/testmgr.h | 291 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 296 insertions(+), 1 deletion(-)
+ crypto/testmgr.h | 263 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 268 insertions(+), 1 deletion(-)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4376,8 +4376,12 @@ static const struct alg_test_desc alg_te
-               .fips_allowed = 1,
+@@ -4342,8 +4342,12 @@ static const struct alg_test_desc alg_te
+               }
        }, {
-               .alg = "authenc(hmac(sha512),rfc3686(ctr(aes)))",
+               .alg = "authenc(hmac(sha384),rfc3686(ctr(aes)))",
 -              .test = alg_test_null,
-+              .generic_driver = "authenc(hmac-sha512-lib,rfc3686(ctr(aes-lib)))",
++              .generic_driver = "authenc(hmac-sha384-lib,rfc3686(ctr(aes-lib)))",
 +              .test = alg_test_aead,
                .fips_allowed = 1,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha512_aes_ctr_rfc3686_tv_temp)
++                      .aead = __VECS(hmac_sha384_aes_ctr_rfc3686_tv_temp)
 +              }
        }, {
-               .alg = "blake2b-160",
-               .test = alg_test_hash,
+               .alg = "authenc(hmac(sha512),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha512-lib,cbc(aes-generic))",
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -18412,6 +18412,297 @@ static const struct aead_testvec hmac_md
+@@ -17873,6 +17873,269 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha512_aes_ctr_rfc3686_tv_temp[] = {
++static const struct aead_testvec hmac_sha384_aes_ctr_rfc3686_tv_temp[] = {
 +      { /* RFC 3686 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -54,12 +54,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
 +                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
 +                        "\x00\x00\x00\x30",
-+              .klen   = 8 + 64 + 20,
++              .klen   = 8 + 48 + 20,
 +              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .alen   = 8,
@@ -67,15 +65,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
 +                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
-+                        "\xa4\x45\x3a\x44\x9c\xe5\x1c\xd9"
-+                        "\x10\x43\x51\x2e\x76\x5e\xf8\x9d"
-+                        "\x03\x12\x1a\x31\x00\x33\x10\xb4"
-+                        "\x94\x4b\x70\x84\x6c\xda\xb1\x46"
-+                        "\x24\xb6\x3b\x2a\xec\xd5\x67\xb8"
-+                        "\x65\xa2\xbd\xac\x18\xe2\xf8\x55"
-+                        "\xc6\x91\xb0\x92\x84\x2d\x74\x44"
-+                        "\xa7\xee\xc3\x44\xa0\x07\x0e\x62",
-+              .clen   = 16 + 64,
++                        "\x45\x51\x59\x72\x16\xd3\xc6\x15"
++                        "\x25\x1e\xe8\x92\x2e\x47\x52\xcc"
++                        "\x91\x9c\x24\xef\x11\xb2\x53\x00"
++                        "\x10\x20\x43\x06\xe2\x35\x88\x9e"
++                        "\x18\x32\x5a\x79\x7d\x73\x7e\x89"
++                        "\xfe\xa1\xda\xa4\x86\xc4\x2a\x04",
++              .clen   = 16 + 48,
 +      }, { /* RFC 3686 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -91,12 +87,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
 +                        "\x40\x41\x42\x43\x44\x45\x46\x47"
 +                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
-+                        "\x50\x51\x52\x53\x54\x55\x56\x57"
-+                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
 +                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
 +                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
 +                        "\x00\x6c\xb6\xdb",
-+              .klen   = 8 + 64 + 20,
++              .klen   = 8 + 48 + 20,
 +              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .alen   = 8,
@@ -109,15 +103,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
 +                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
 +                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
-+                        "\xec\x67\x0d\xb3\xbd\x98\x13\x01"
-+                        "\x2b\x04\x9b\xe6\x06\x67\x3c\x76"
-+                        "\xcd\x41\xb7\xcc\x70\x6c\x7f\xc8"
-+                        "\x67\xbd\x22\x39\xb2\xaa\xe8\x88"
-+                        "\xe0\x4f\x81\x52\xdf\xc9\xc3\xd6"
-+                        "\x44\xf4\x66\x33\x87\x64\x61\x02"
-+                        "\x02\xa2\x64\x15\x2b\xe9\x0b\x3d"
-+                        "\x4c\xea\xa1\xa5\xa7\xc9\xd3\x1b",
-+              .clen   = 32 + 64,
++                        "\x83\x65\x32\x1e\x6b\x60\xe6\x4a"
++                        "\xe2\xab\x52\x2b\xa6\x70\x3a\xfa"
++                        "\xd2\xec\x83\xe4\x31\x0c\x28\x40"
++                        "\x9b\x5e\x18\xa4\xdc\x48\xb8\x56"
++                        "\x33\xab\x7f\x2b\xaf\xe4\x3a\xe3"
++                        "\x8a\x61\xf6\x22\xb4\x6b\xfe\x7d",
++              .clen   = 32 + 48,
 +      }, { /* RFC 3686 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -133,12 +125,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
 +                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
 +                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
-+                        "\x44\x55\x66\x77\x88\x99\xaa\xbb"
-+                        "\xcc\xdd\xee\xff\x11\x22\x33\x44"
 +                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
 +                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
 +                        "\x00\xe0\x01\x7b",
-+              .klen   = 8 + 64 + 20,
++              .klen   = 8 + 48 + 20,
 +              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .alen   = 8,
@@ -153,15 +143,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
 +                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
 +                        "\x25\xb2\x07\x2f"
-+                        "\x6f\x90\xb6\xa3\x35\x43\x59\xff"
-+                        "\x1e\x32\xd6\xfe\xfa\x33\xf9\xf0"
-+                        "\x31\x2f\x03\x2d\x88\x1d\xab\xbf"
-+                        "\x0e\x19\x16\xd9\xf3\x98\x3e\xdd"
-+                        "\x0c\xec\xfe\xe8\x89\x13\x91\x15"
-+                        "\xf6\x61\x65\x5c\x1b\x7d\xde\xc0"
-+                        "\xe4\xba\x6d\x27\xe2\x89\x23\x24"
-+                        "\x15\x82\x37\x3d\x48\xd3\xc9\x32",
-+              .clen   = 36 + 64,
++                        "\x4a\xaa\xad\x3b\x3b\xb6\x9a\xba"
++                        "\xa1\x7b\xc6\xce\x96\xc3\xff\x67"
++                        "\xf3\x0c\x33\x57\xf0\x51\x24\x08"
++                        "\xed\x4f\x6a\x9c\x22\x42\xbd\x18"
++                        "\x97\x74\x68\x36\x00\xf1\x69\x3a"
++                        "\x18\x77\x40\xf0\x56\xba\xba\xe0",
++              .clen   = 36 + 48,
 +      }, { /* RFC 3686 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -177,13 +165,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
 +                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
 +                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
 +                        "\x00\x00\x00\x48",
-+              .klen   = 8 + 64 + 28,
++              .klen   = 8 + 48 + 28,
 +              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .alen   = 8,
@@ -191,15 +177,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
 +                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
-+                        "\x25\xea\xdc\xad\x52\xb8\x0f\x70"
-+                        "\xe7\x39\x83\x80\x10\x3f\x18\xc4"
-+                        "\xf8\x59\x14\x25\x5f\xba\x20\x87"
-+                        "\x0b\x04\x5e\xf7\xde\x41\x39\xff"
-+                        "\xa2\xee\x84\x3f\x9d\x38\xfd\x17"
-+                        "\xc0\x66\x5e\x74\x39\xe3\xd3\xd7"
-+                        "\x3d\xbc\xe3\x99\x2f\xe7\xef\x37"
-+                        "\x61\x03\xf3\x9e\x01\xaf\xba\x9d",
-+              .clen   = 16 + 64,
++                        "\x36\xd6\xc7\x55\xac\xb6\x0b\x14"
++                        "\x95\x71\xf9\x86\x30\xe3\x96\xc3"
++                        "\x76\x85\x6d\xa5\x06\xed\x6f\x34"
++                        "\xcc\x1f\xcc\x2d\x88\x06\xb0\x1d"
++                        "\xbe\xd9\xa2\xd3\x64\xf1\x33\x03"
++                        "\x13\x50\x8f\xae\x61\x2d\x82\xb8",
++              .clen   = 16 + 48,
 +      }, { /* RFC 3686 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -215,13 +199,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
 +                        "\x40\x41\x42\x43\x44\x45\x46\x47"
 +                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
-+                        "\x50\x51\x52\x53\x54\x55\x56\x57"
-+                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
 +                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
 +                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
 +                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
 +                        "\x00\x96\xb0\x3b",
-+              .klen   = 8 + 64 + 28,
++              .klen   = 8 + 48 + 28,
 +              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .alen   = 8,
@@ -234,15 +216,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
 +                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
 +                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
-+                        "\x51\xa3\xe6\x1d\x23\x7d\xd1\x18"
-+                        "\x55\x9c\x1c\x92\x2b\xc2\xcd\xfe"
-+                        "\x8a\xa8\xa5\x96\x65\x2e\x9d\xdb"
-+                        "\x06\xd2\x1c\x57\x2b\x76\xb5\x9c"
-+                        "\xd4\x3e\x8b\x61\x54\x2d\x08\xe5"
-+                        "\xb2\xf8\x88\x20\x0c\xad\xe8\x85"
-+                        "\x61\x8e\x5c\xa4\x96\x2c\xe2\x7d"
-+                        "\x4f\xb6\x1d\xb2\x8c\xd7\xe3\x38",
-+              .clen   = 32 + 64,
++                        "\x80\x12\x67\x22\xf2\x4d\x9b\xbf"
++                        "\xdc\x38\xd3\xaa\x12\xc0\x58\x1a"
++                        "\x9a\x62\x6e\x42\x3d\x44\x63\xdd"
++                        "\xee\x7e\xe3\xa3\xdf\x2a\x65\x05"
++                        "\xd0\xc1\xd2\x54\x55\x35\x5c\xc7"
++                        "\xb0\xb5\xb1\x36\xe0\x0b\xaf\x72",
++              .clen   = 32 + 48,
 +      }, { /* RFC 3686 Case 7 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -258,14 +238,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
 +                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
 +                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
 +                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
 +                        "\x00\x00\x00\x60",
-+              .klen   = 8 + 64 + 36,
++              .klen   = 8 + 48 + 36,
 +              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .alen   = 8,
@@ -273,15 +251,13 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
 +                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
-+                        "\x6b\x68\x0b\x99\x9a\x4d\xc8\xb9"
-+                        "\x35\xea\xcd\x56\x3f\x40\xa2\xb6"
-+                        "\x68\xda\x59\xd8\xa0\x89\xcd\x52"
-+                        "\xb1\x6e\xed\xc1\x42\x10\xa5\x0f"
-+                        "\x88\x0b\x80\xce\xc4\x67\xf0\x45"
-+                        "\x5d\xb2\x9e\xde\x1c\x79\x52\x0d"
-+                        "\xff\x75\x36\xd5\x0f\x52\x8e\xe5"
-+                        "\x31\x85\xcf\x1d\x31\xf8\x62\x67",
-+              .clen   = 16 + 64,
++                        "\xb1\x7b\xb1\xec\xca\x94\x55\xc4"
++                        "\x3f\x2b\xb1\x70\x04\x91\xf5\x9d"
++                        "\x1a\xc0\xe1\x2a\x93\x5f\x96\x2a"
++                        "\x12\x85\x38\x36\xe1\xb2\xe9\xf0"
++                        "\xf2\x6e\x5d\x81\xcc\x49\x07\x9c"
++                        "\x5b\x88\xc8\xcc\xc4\x21\x4f\x32",
++              .clen   = 16 + 48,
 +      }, { /* RFC 3686 Case 8 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -297,14 +273,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
 +                        "\x40\x41\x42\x43\x44\x45\x46\x47"
 +                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
-+                        "\x50\x51\x52\x53\x54\x55\x56\x57"
-+                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
 +                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
 +                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
 +                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
 +                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
 +                        "\x00\xfa\xac\x24",
-+              .klen   = 8 + 64 + 36,
++              .klen   = 8 + 48 + 36,
 +              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .alen   = 8,
@@ -317,18 +291,16 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
 +                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
 +                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
-+                        "\x9a\xac\x38\xbd\xf3\xcf\xd5\xd0"
-+                        "\x09\x07\xa6\xe1\x7f\xd6\x79\x98"
-+                        "\x4e\x90\x0e\xc0\x3d\xa0\xf2\x12"
-+                        "\x52\x79\x9c\x17\xff\xb9\xb8\xe3"
-+                        "\x2f\x31\xcb\xbd\x63\x70\x72\x7b"
-+                        "\x4e\x1e\xd1\xde\xb5\x6b\x7d\x54"
-+                        "\x68\x56\xdd\xe5\x53\xee\x29\xd2"
-+                        "\x85\xa1\x73\x61\x00\xa9\x26\x8f",
-+              .clen   = 32 + 64,
++                        "\xd6\x96\xbb\x12\x39\xc4\x4d\xe2"
++                        "\x4c\x02\xe7\x1f\xdc\xb2\xb1\x57"
++                        "\x38\x0d\xdd\x13\xb3\x89\x57\x9e"
++                        "\x1f\xb5\x48\x32\xc4\xd3\x9d\x1f"
++                        "\x68\xab\x8d\xc6\xa8\x05\x3a\xc2"
++                        "\x87\xaf\x23\xb3\xe4\x1b\xde\xb3",
++              .clen   = 32 + 48,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha1_des_cbc_tv_temp[] = {
-       { /*Generated with cryptopp*/
+ static const struct aead_testvec hmac_sha512_aes_cbc_tv_temp[] = {
+       { /* RFC 3602 Case 1 */
  #ifdef __LITTLE_ENDIAN
diff --git a/target/linux/generic/backport-6.18/920-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch b/target/linux/generic/backport-6.18/920-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
new file mode 100644 (file)
index 0000000..42f6b10
--- /dev/null
@@ -0,0 +1,334 @@
+From 82fc2b17fa5b9b12d34770afcc8e3c4288735429 Mon Sep 17 00:00:00 2001
+From: Aleksander Jan Bajkowski <olek2@wp.pl>
+Date: Thu, 5 Mar 2026 21:08:24 +0100
+Subject: [PATCH 5/5] crypto: testmgr - Add test vectors for
+ authenc(hmac(sha512),rfc3686(ctr(aes)))
+
+Test vectors were generated starting from existing RFC3686(CTR(AES)) test
+vectors and adding HMAC(SHA512) computed with software implementation.
+Then, the results were double-checked on Mediatek MT7986 (safexcel).
+Platform pass self-tests.
+
+Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ crypto/testmgr.c |   6 +-
+ crypto/testmgr.h | 291 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 296 insertions(+), 1 deletion(-)
+
+--- a/crypto/testmgr.c
++++ b/crypto/testmgr.c
+@@ -4376,8 +4376,12 @@ static const struct alg_test_desc alg_te
+               .fips_allowed = 1,
+       }, {
+               .alg = "authenc(hmac(sha512),rfc3686(ctr(aes)))",
+-              .test = alg_test_null,
++              .generic_driver = "authenc(hmac-sha512-lib,rfc3686(ctr(aes-lib)))",
++              .test = alg_test_aead,
+               .fips_allowed = 1,
++              .suite = {
++                      .aead = __VECS(hmac_sha512_aes_ctr_rfc3686_tv_temp)
++              }
+       }, {
+               .alg = "blake2b-160",
+               .test = alg_test_hash,
+--- a/crypto/testmgr.h
++++ b/crypto/testmgr.h
+@@ -18532,6 +18532,297 @@ static const struct aead_testvec hmac_md
+       },
+ };
++static const struct aead_testvec hmac_sha512_aes_ctr_rfc3686_tv_temp[] = {
++      { /* RFC 3686 Case 1 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x14"    /* enc key length */
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
++                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
++                        "\x00\x00\x00\x30",
++              .klen   = 8 + 64 + 20,
++              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
++              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
++              .alen   = 8,
++              .ptext  = "Single block msg",
++              .plen   = 16,
++              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
++                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
++                        "\xa4\x45\x3a\x44\x9c\xe5\x1c\xd9"
++                        "\x10\x43\x51\x2e\x76\x5e\xf8\x9d"
++                        "\x03\x12\x1a\x31\x00\x33\x10\xb4"
++                        "\x94\x4b\x70\x84\x6c\xda\xb1\x46"
++                        "\x24\xb6\x3b\x2a\xec\xd5\x67\xb8"
++                        "\x65\xa2\xbd\xac\x18\xe2\xf8\x55"
++                        "\xc6\x91\xb0\x92\x84\x2d\x74\x44"
++                        "\xa7\xee\xc3\x44\xa0\x07\x0e\x62",
++              .clen   = 16 + 64,
++      }, { /* RFC 3686 Case 2 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x14"    /* enc key length */
++                        "\x20\x21\x22\x23\x24\x25\x26\x27"
++                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
++                        "\x30\x31\x32\x33\x34\x35\x36\x37"
++                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x40\x41\x42\x43\x44\x45\x46\x47"
++                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
++                        "\x50\x51\x52\x53\x54\x55\x56\x57"
++                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
++                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
++                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
++                        "\x00\x6c\xb6\xdb",
++              .klen   = 8 + 64 + 20,
++              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
++              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
++              .alen   = 8,
++              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
++                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
++                        "\x10\x11\x12\x13\x14\x15\x16\x17"
++                        "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
++              .plen   = 32,
++              .ctext  = "\x51\x04\xa1\x06\x16\x8a\x72\xd9"
++                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
++                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
++                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
++                        "\xec\x67\x0d\xb3\xbd\x98\x13\x01"
++                        "\x2b\x04\x9b\xe6\x06\x67\x3c\x76"
++                        "\xcd\x41\xb7\xcc\x70\x6c\x7f\xc8"
++                        "\x67\xbd\x22\x39\xb2\xaa\xe8\x88"
++                        "\xe0\x4f\x81\x52\xdf\xc9\xc3\xd6"
++                        "\x44\xf4\x66\x33\x87\x64\x61\x02"
++                        "\x02\xa2\x64\x15\x2b\xe9\x0b\x3d"
++                        "\x4c\xea\xa1\xa5\xa7\xc9\xd3\x1b",
++              .clen   = 32 + 64,
++      }, { /* RFC 3686 Case 3 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x14"    /* enc key length */
++                        "\x11\x22\x33\x44\x55\x66\x77\x88"
++                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
++                        "\x22\x33\x44\x55\x66\x77\x88\x99"
++                        "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
++                        "\x33\x44\x55\x66\x77\x88\x99\xaa"
++                        "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
++                        "\x44\x55\x66\x77\x88\x99\xaa\xbb"
++                        "\xcc\xdd\xee\xff\x11\x22\x33\x44"
++                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
++                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
++                        "\x00\xe0\x01\x7b",
++              .klen   = 8 + 64 + 20,
++              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
++              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
++              .alen   = 8,
++              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
++                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
++                        "\x10\x11\x12\x13\x14\x15\x16\x17"
++                        "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
++                        "\x20\x21\x22\x23",
++              .plen   = 36,
++              .ctext  = "\xc1\xcf\x48\xa8\x9f\x2f\xfd\xd9"
++                        "\xcf\x46\x52\xe9\xef\xdb\x72\xd7"
++                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
++                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
++                        "\x25\xb2\x07\x2f"
++                        "\x6f\x90\xb6\xa3\x35\x43\x59\xff"
++                        "\x1e\x32\xd6\xfe\xfa\x33\xf9\xf0"
++                        "\x31\x2f\x03\x2d\x88\x1d\xab\xbf"
++                        "\x0e\x19\x16\xd9\xf3\x98\x3e\xdd"
++                        "\x0c\xec\xfe\xe8\x89\x13\x91\x15"
++                        "\xf6\x61\x65\x5c\x1b\x7d\xde\xc0"
++                        "\xe4\xba\x6d\x27\xe2\x89\x23\x24"
++                        "\x15\x82\x37\x3d\x48\xd3\xc9\x32",
++              .clen   = 36 + 64,
++      }, { /* RFC 3686 Case 4 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x1c"    /* enc key length */
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
++                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
++                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
++                        "\x00\x00\x00\x48",
++              .klen   = 8 + 64 + 28,
++              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
++              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
++              .alen   = 8,
++              .ptext  = "Single block msg",
++              .plen   = 16,
++              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
++                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
++                        "\x25\xea\xdc\xad\x52\xb8\x0f\x70"
++                        "\xe7\x39\x83\x80\x10\x3f\x18\xc4"
++                        "\xf8\x59\x14\x25\x5f\xba\x20\x87"
++                        "\x0b\x04\x5e\xf7\xde\x41\x39\xff"
++                        "\xa2\xee\x84\x3f\x9d\x38\xfd\x17"
++                        "\xc0\x66\x5e\x74\x39\xe3\xd3\xd7"
++                        "\x3d\xbc\xe3\x99\x2f\xe7\xef\x37"
++                        "\x61\x03\xf3\x9e\x01\xaf\xba\x9d",
++              .clen   = 16 + 64,
++      }, { /* RFC 3686 Case 5 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x1c"    /* enc key length */
++                        "\x20\x21\x22\x23\x24\x25\x26\x27"
++                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
++                        "\x30\x31\x32\x33\x34\x35\x36\x37"
++                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x40\x41\x42\x43\x44\x45\x46\x47"
++                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
++                        "\x50\x51\x52\x53\x54\x55\x56\x57"
++                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
++                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
++                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
++                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
++                        "\x00\x96\xb0\x3b",
++              .klen   = 8 + 64 + 28,
++              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
++              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
++              .alen   = 8,
++              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
++                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
++                        "\x10\x11\x12\x13\x14\x15\x16\x17"
++                        "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
++              .plen   = 32,
++              .ctext  = "\x45\x32\x43\xfc\x60\x9b\x23\x32"
++                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
++                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
++                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
++                        "\x51\xa3\xe6\x1d\x23\x7d\xd1\x18"
++                        "\x55\x9c\x1c\x92\x2b\xc2\xcd\xfe"
++                        "\x8a\xa8\xa5\x96\x65\x2e\x9d\xdb"
++                        "\x06\xd2\x1c\x57\x2b\x76\xb5\x9c"
++                        "\xd4\x3e\x8b\x61\x54\x2d\x08\xe5"
++                        "\xb2\xf8\x88\x20\x0c\xad\xe8\x85"
++                        "\x61\x8e\x5c\xa4\x96\x2c\xe2\x7d"
++                        "\x4f\xb6\x1d\xb2\x8c\xd7\xe3\x38",
++              .clen   = 32 + 64,
++      }, { /* RFC 3686 Case 7 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x24"    /* enc key length */
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x00\x00\x00\x00\x00\x00\x00\x00"
++                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
++                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
++                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
++                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
++                        "\x00\x00\x00\x60",
++              .klen   = 8 + 64 + 36,
++              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
++              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
++              .alen   = 8,
++              .ptext  = "Single block msg",
++              .plen   = 16,
++              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
++                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
++                        "\x6b\x68\x0b\x99\x9a\x4d\xc8\xb9"
++                        "\x35\xea\xcd\x56\x3f\x40\xa2\xb6"
++                        "\x68\xda\x59\xd8\xa0\x89\xcd\x52"
++                        "\xb1\x6e\xed\xc1\x42\x10\xa5\x0f"
++                        "\x88\x0b\x80\xce\xc4\x67\xf0\x45"
++                        "\x5d\xb2\x9e\xde\x1c\x79\x52\x0d"
++                        "\xff\x75\x36\xd5\x0f\x52\x8e\xe5"
++                        "\x31\x85\xcf\x1d\x31\xf8\x62\x67",
++              .clen   = 16 + 64,
++      }, { /* RFC 3686 Case 8 */
++#ifdef __LITTLE_ENDIAN
++              .key    = "\x08\x00"            /* rta length */
++                        "\x01\x00"            /* rta type */
++#else
++              .key    = "\x00\x08"            /* rta length */
++                        "\x00\x01"            /* rta type */
++#endif
++                        "\x00\x00\x00\x24"    /* enc key length */
++                        "\x20\x21\x22\x23\x24\x25\x26\x27"
++                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
++                        "\x30\x31\x32\x33\x34\x35\x36\x37"
++                        "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
++                        "\x40\x41\x42\x43\x44\x45\x46\x47"
++                        "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
++                        "\x50\x51\x52\x53\x54\x55\x56\x57"
++                        "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
++                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
++                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
++                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
++                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
++                        "\x00\xfa\xac\x24",
++              .klen   = 8 + 64 + 36,
++              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
++              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
++              .alen   = 8,
++              .ptext  = "\x00\x01\x02\x03\x04\x05\x06\x07"
++                        "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
++                        "\x10\x11\x12\x13\x14\x15\x16\x17"
++                        "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
++              .plen   = 32,
++              .ctext  = "\xf0\x5e\x23\x1b\x38\x94\x61\x2c"
++                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
++                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
++                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
++                        "\x9a\xac\x38\xbd\xf3\xcf\xd5\xd0"
++                        "\x09\x07\xa6\xe1\x7f\xd6\x79\x98"
++                        "\x4e\x90\x0e\xc0\x3d\xa0\xf2\x12"
++                        "\x52\x79\x9c\x17\xff\xb9\xb8\xe3"
++                        "\x2f\x31\xcb\xbd\x63\x70\x72\x7b"
++                        "\x4e\x1e\xd1\xde\xb5\x6b\x7d\x54"
++                        "\x68\x56\xdd\xe5\x53\xee\x29\xd2"
++                        "\x85\xa1\x73\x61\x00\xa9\x26\x8f",
++              .clen   = 32 + 64,
++      },
++};
++
+ static const struct aead_testvec hmac_sha1_des_cbc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+ #ifdef __LITTLE_ENDIAN
diff --git a/target/linux/generic/backport-6.18/921-v7.1-crypto-tesmgr-allow-authenc-hmac-sha224-sha384-cbc-a.patch b/target/linux/generic/backport-6.18/921-v7.1-crypto-tesmgr-allow-authenc-hmac-sha224-sha384-cbc-a.patch
new file mode 100644 (file)
index 0000000..ddaa285
--- /dev/null
@@ -0,0 +1,33 @@
+From 0441ee8d35ad6998da5043c65c4124904e8daee2 Mon Sep 17 00:00:00 2001
+From: Aleksander Jan Bajkowski <olek2@wp.pl>
+Date: Fri, 6 Feb 2026 20:26:59 +0100
+Subject: [PATCH] crypto: tesmgr - allow authenc(hmac(sha224/sha384),cbc(aes))
+ in fips mode
+
+The remaining combinations of AES-CBC and SHA* have already been marked
+as allowed. This commit does the same for SHA224 and SHA384.
+
+Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ crypto/testmgr.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/crypto/testmgr.c
++++ b/crypto/testmgr.c
+@@ -4242,6 +4242,7 @@ static const struct alg_test_desc alg_te
+               .alg = "authenc(hmac(sha224),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha224-lib,cbc(aes-generic))",
+               .test = alg_test_aead,
++              .fips_allowed = 1,
+               .suite = {
+                       .aead = __VECS(hmac_sha224_aes_cbc_tv_temp)
+               }
+@@ -4312,6 +4313,7 @@ static const struct alg_test_desc alg_te
+               .alg = "authenc(hmac(sha384),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha384-lib,cbc(aes-generic))",
+               .test = alg_test_aead,
++              .fips_allowed = 1,
+               .suite = {
+                       .aead = __VECS(hmac_sha384_aes_cbc_tv_temp)
+               }
similarity index 74%
rename from target/linux/generic/backport-6.12/915-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-sha.patch
rename to target/linux/generic/backport-6.18/922-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
index c6018305d47c922ce42ba34c5a80dc1dd166cfa3..6fb705a5fb9145795a2da02b4f90685e0259d056 100644 (file)
@@ -1,44 +1,44 @@
-From 2a2468bf33d3fac5192429207a439d23e615173a Mon Sep 17 00:00:00 2001
+From d0c0a414cc1893b195b9523ecdfbeee00b98fd0d Mon Sep 17 00:00:00 2001
 From: Aleksander Jan Bajkowski <olek2@wp.pl>
-Date: Thu, 5 Mar 2026 21:08:20 +0100
-Subject: [PATCH 1/5] crypto: testmgr - Add test vectors for
- authenc(hmac(sha1),rfc3686(ctr(aes)))
+Date: Thu, 19 Mar 2026 18:11:21 +0100
+Subject: [PATCH] crypto: testmgr - Add test vectors for
+ authenc(hmac(md5),rfc3686(ctr(aes)))
 
 Test vectors were generated starting from existing RFC3686(CTR(AES)) test
-vectors and adding HMAC(SHA1) computed with software implementation.
+vectors and adding HMAC(MD5) computed with software implementation.
 Then, the results were double-checked on Mediatek MT7986 (safexcel).
 Platform pass self-tests.
 
 Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 ---
- crypto/testmgr.c |   6 +-
- crypto/testmgr.h | 221 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 226 insertions(+), 1 deletion(-)
+ crypto/testmgr.c |   7 ++
+ crypto/testmgr.h | 207 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 214 insertions(+)
 
 --- a/crypto/testmgr.c
 +++ b/crypto/testmgr.c
-@@ -4425,8 +4425,12 @@ static const struct alg_test_desc alg_te
+@@ -4198,6 +4198,13 @@ static const struct alg_test_desc alg_te
+                       .aead = __VECS(hmac_md5_ecb_cipher_null_tv_template)
                }
        }, {
-               .alg = "authenc(hmac(sha1),rfc3686(ctr(aes)))",
--              .test = alg_test_null,
-+              .generic_driver = "authenc(hmac-sha1-lib,rfc3686(ctr(aes-lib)))",
++              .alg = "authenc(hmac(md5),rfc3686(ctr(aes)))",
++              .generic_driver = "authenc(hmac-md5-lib,rfc3686(ctr(aes-lib)))",
 +              .test = alg_test_aead,
-               .fips_allowed = 1,
 +              .suite = {
-+                      .aead = __VECS(hmac_sha1_aes_ctr_rfc3686_tv_temp)
++                      .aead = __VECS(hmac_md5_aes_ctr_rfc3686_tv_temp)
 +              }
-       }, {
-               .alg = "authenc(hmac(sha224),cbc(aes))",
-               .generic_driver = "authenc(hmac-sha224-lib,cbc(aes-generic))",
++      }, {
+               .alg = "authenc(hmac(sha1),cbc(aes))",
+               .generic_driver = "authenc(hmac-sha1-lib,cbc(aes-generic))",
+               .test = alg_test_aead,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -17444,6 +17444,227 @@ static const struct aead_testvec hmac_sh
+@@ -19136,6 +19136,213 @@ static const struct aead_testvec hmac_sh
        },
  };
  
-+static const struct aead_testvec hmac_sha1_aes_ctr_rfc3686_tv_temp[] = {
++static const struct aead_testvec hmac_md5_aes_ctr_rfc3686_tv_temp[] = {
 +      { /* RFC 3686 Case 1 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -50,11 +50,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00"
 +                        "\xae\x68\x52\xf8\x12\x10\x67\xcc"
 +                        "\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
 +                        "\x00\x00\x00\x30",
-+              .klen   = 8 + 20 + 20,
++              .klen   = 8 + 16 + 20,
 +              .iv     = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .assoc  = "\x00\x00\x00\x00\x00\x00\x00\x00",
 +              .alen   = 8,
@@ -62,10 +61,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
 +                        "\x2d\x61\x75\xa3\x26\x13\x11\xb8"
-+                        "\x70\xdc\x6b\x62\x43\xa1\x2f\x08"
-+                        "\xf1\xec\x93\x7d\x69\xb2\x8e\x1f"
-+                        "\x0a\x97\x39\x86",
-+              .clen   = 16 + 20,
++                        "\xdd\x5f\xea\x13\x2a\xf2\xb0\xf1"
++                        "\x91\x79\x46\x40\x62\x6c\x87\x5b",
++              .clen   = 16 + 16,
 +      }, { /* RFC 3686 Case 2 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -77,11 +75,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33"
 +                        "\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
 +                        "\x43\xd6\xce\x1f\x32\x53\x91\x63"
 +                        "\x00\x6c\xb6\xdb",
-+              .klen   = 8 + 20 + 20,
++              .klen   = 8 + 16 + 20,
 +              .iv     = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .assoc  = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
 +              .alen   = 8,
@@ -94,10 +91,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x79\x0d\x41\xee\x8e\xda\xd3\x88"
 +                        "\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
 +                        "\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
-+                        "\x6b\x7b\x4d\x39\x36\x1c\x12\x5f"
-+                        "\x72\xd2\x88\xb2\x26\xa6\xa6\xb5"
-+                        "\x1d\x3a\x49\xa6",
-+              .clen   = 32 + 20,
++                        "\x03\x39\x23\xcd\x22\x5f\x1b\x8b"
++                        "\x93\x70\xbc\x45\xf3\xba\xde\x2e",
++              .clen   = 32 + 16,
 +      }, { /* RFC 3686 Case 3 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -109,11 +105,10 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x14"    /* enc key length */
 +                        "\x11\x22\x33\x44\x55\x66\x77\x88"
 +                        "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
-+                        "\x22\x33\x44\x55"
 +                        "\x76\x91\xbe\x03\x5e\x50\x20\xa8"
 +                        "\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
 +                        "\x00\xe0\x01\x7b",
-+              .klen   = 8 + 20 + 20,
++              .klen   = 8 + 16 + 20,
 +              .iv     = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .assoc  = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
 +              .alen   = 8,
@@ -128,10 +123,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x45\x40\xa4\x2b\xde\x6d\x78\x36"
 +                        "\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
 +                        "\x25\xb2\x07\x2f"
-+                        "\x2c\x86\xa0\x90\x8e\xc1\x02\x1d"
-+                        "\x51\xdc\xd6\x21\xc7\x30\xcc\x32"
-+                        "\x38\x55\x47\x64",
-+              .clen   = 36 + 20,
++                        "\xb4\x40\x0c\x7b\x4c\x55\x8a\x4b"
++                        "\x04\xf7\x48\x9e\x0f\x9a\xae\x73",
++              .clen   = 36 + 16,
 +      }, { /* RFC 3686 Case 4 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -143,12 +137,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x1c"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00"
 +                        "\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
 +                        "\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
 +                        "\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
 +                        "\x00\x00\x00\x48",
-+              .klen   = 8 + 20 + 28,
++              .klen   = 8 + 16 + 28,
 +              .iv     = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .assoc  = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
 +              .alen   = 8,
@@ -156,10 +149,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
 +                        "\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
-+                        "\xe9\x4e\x49\xf0\x6b\x8d\x58\x2b"
-+                        "\x26\x7f\xf3\xab\xeb\x2f\x74\x2f"
-+                        "\x45\x43\x64\xc1",
-+              .clen   = 16 + 20,
++                        "\xc4\x5d\xa1\x16\x6c\x2d\xa5\x43"
++                        "\x60\x7b\x58\x98\x11\x9b\x50\x06",
++              .clen   = 16 + 16,
 +      }, { /* RFC 3686 Case 5 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -171,12 +163,11 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x1c"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33"
 +                        "\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
 +                        "\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
 +                        "\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
 +                        "\x00\x96\xb0\x3b",
-+              .klen   = 8 + 20 + 28,
++              .klen   = 8 + 16 + 28,
 +              .iv     = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .assoc  = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
 +              .alen   = 8,
@@ -189,10 +180,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
 +                        "\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
 +                        "\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
-+                        "\xab\xc4\xfa\x6d\x20\xe1\xce\x72"
-+                        "\x0e\x92\x4e\x97\xaa\x4d\x30\x84"
-+                        "\xb6\xd8\x4d\x3b",
-+              .clen   = 32 + 20,
++                        "\xc5\xec\x47\x33\xae\x05\x28\x49"
++                        "\xd5\x2b\x08\xad\x10\x98\x24\x01",
++              .clen   = 32 + 16,
 +      }, { /* RFC 3686 Case 7 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -204,13 +194,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x24"    /* enc key length */
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
 +                        "\x00\x00\x00\x00\x00\x00\x00\x00"
-+                        "\x00\x00\x00\x00"
 +                        "\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
 +                        "\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
 +                        "\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
 +                        "\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
 +                        "\x00\x00\x00\x60",
-+              .klen   = 8 + 20 + 36,
++              .klen   = 8 + 16 + 36,
 +              .iv     = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .assoc  = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
 +              .alen   = 8,
@@ -218,10 +207,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +              .plen   = 16,
 +              .ctext  = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
 +                        "\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
-+                        "\x3d\x6c\x23\x27\xda\x0e\x7f\x29"
-+                        "\xfd\x8d\x3c\x1b\xf7\x7a\x63\xd9"
-+                        "\x7e\x0f\xe9\xf6",
-+              .clen   = 16 + 20,
++                        "\xc6\x26\xb2\x27\x0d\x21\xd4\x40"
++                        "\x6c\x4f\x53\xea\x19\x75\xda\x8e",
++              .clen   = 16 + 16,
 +      }, { /* RFC 3686 Case 8 */
 +#ifdef __LITTLE_ENDIAN
 +              .key    = "\x08\x00"            /* rta length */
@@ -233,13 +221,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x00\x00\x00\x24"    /* enc key length */
 +                        "\x20\x21\x22\x23\x24\x25\x26\x27"
 +                        "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
-+                        "\x30\x31\x32\x33"
 +                        "\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
 +                        "\x07\x96\x36\x58\x79\xef\xf8\x86"
 +                        "\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
 +                        "\x4b\x50\x59\x0c\x87\xa2\x38\x84"
 +                        "\x00\xfa\xac\x24",
-+              .klen   = 8 + 20 + 36,
++              .klen   = 8 + 16 + 36,
 +              .iv     = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .assoc  = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
 +              .alen   = 8,
@@ -252,13 +239,12 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 +                        "\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
 +                        "\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
 +                        "\x55\x30\x83\x1d\x93\x44\xaf\x1c"
-+                        "\xe7\xee\x22\xa4\xdd\xbf\x5d\x44"
-+                        "\x3b\x43\x1c\x69\x55\x11\xd5\xad"
-+                        "\x14\x5f\x44\xa6",
-+              .clen   = 32 + 20,
++                        "\x8c\x4d\x2a\x8d\x23\x47\x59\x6f"
++                        "\x1e\x74\x62\x39\xed\x14\x50\x6c",
++              .clen   = 32 + 16,
 +      },
 +};
 +
- static const struct aead_testvec hmac_sha1_ecb_cipher_null_tv_temp[] = {
-       { /* Input data from RFC 2410 Case 1 */
+ static const struct aead_testvec hmac_md5_des3_ede_cbc_tv_temp[] = {
+       { /*Generated with cryptopp*/
  #ifdef __LITTLE_ENDIAN
similarity index 99%
rename from target/linux/generic/pending-6.18/910-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
rename to target/linux/generic/backport-6.18/923-v7.1-crypto-testmgr-Add-test-vectors-for-authenc-hmac-md5.patch
index c79f93a5a85fb4222944a699f82db3ec5b80df0c..ac27fb317393292de7e8c7bddc51c5e7fb292abe 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
                .test = alg_test_aead,
 --- a/crypto/testmgr.h
 +++ b/crypto/testmgr.h
-@@ -15826,6 +15826,261 @@ static const struct cipher_testvec aes_c
+@@ -15946,6 +15946,261 @@ static const struct cipher_testvec aes_c
        },
  };