* [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures
@ 2026-06-10 5:54 Kuldeep Singh
2026-06-10 5:54 ` [PATCH 1/2] crypto: qce: Fix xts-aes-qce for weak keys Kuldeep Singh
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Kuldeep Singh @ 2026-06-10 5:54 UTC (permalink / raw)
To: Thara Gopinath, Herbert Xu, David S. Miller, Bartosz Golaszewski,
Eric Biggers
Cc: Thara Gopinath, linux-crypto, linux-arm-msm, linux-kernel,
Kuldeep Singh
QCE currents fails with crypto_sefltests for below 2 ciphers.
xts-aes qce and ctr-aes-qce.
Failure log snippet:
[ 5.599170] alg: skcipher: xts-aes-qce setkey failed on test vector 0; expected_error=0, actual_error=-126, flags=0x1
[ 5.599184] alg: self-tests for xts(aes) using xts-aes-qce failed (rc=-126)
[ 5.599187] ------------[ cut here ]------------
[ 5.599189] alg: self-tests for xts(aes) using xts-aes-qce failed (rc=-126)
[ 5.599222] WARNING: crypto/testmgr.c:5804 at alg_test+0x2a0/0x3bc, CPU#3: cryptomgr_test/150
[ 5.606169] alg: skcipher: ctr-aes-qce encryption test failed (wrong output IV) on test vector 4, cfg="in-place (one sglist)"
[ 5.606176] 00000000: e7 82 1d b8 53 11 ac 47 e2 7d 18 d6 71 0c a7 61
[ 5.606192] alg: self-tests for ctr(aes) using ctr-aes-qce failed (rc=-22)
[ 5.606196] ------------[ cut here ]------------
[ 5.606198] alg: self-tests for ctr(aes) using ctr-aes-qce failed (rc=-22)
[ 5.606231] WARNING: crypto/testmgr.c:5804 at alg_test+0x2a0/0x3bc, CPU#3: cryptomgr_test/149
This patch series attempt to stabilize QCE and stabilize selftest
framework. The failures are common for all targets and is currently
validated on sm8750-mtp and qcs6490-rb3gen2 device.
Steps followed:
- Enable EXPERT and CRYPTO_SEFLTESTS config.
- Bootup validation and confirm selftests is triggered.
Signed-off-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
---
Kuldeep Singh (2):
crypto: qce: Fix xts-aes-qce for weak keys
crypto: qce: Fix CTR-AES for partial block requests
drivers/crypto/qce/cipher.h | 1 +
drivers/crypto/qce/skcipher.c | 29 ++++++++++++++++++++++-------
2 files changed, 23 insertions(+), 7 deletions(-)
---
base-commit: 49e02880ec0a8c378e811bc9d85da188d7c6204c
change-id: 20260610-qce_selftest_fix-2e0b66148651
Best regards,
--
Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/2] crypto: qce: Fix xts-aes-qce for weak keys
2026-06-10 5:54 [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures Kuldeep Singh
@ 2026-06-10 5:54 ` Kuldeep Singh
2026-06-12 0:40 ` Dmitry Baryshkov
2026-06-10 5:54 ` [PATCH 2/2] crypto: qce: Fix CTR-AES for partial block requests Kuldeep Singh
2026-06-10 18:42 ` [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures Eric Biggers
2 siblings, 1 reply; 12+ messages in thread
From: Kuldeep Singh @ 2026-06-10 5:54 UTC (permalink / raw)
To: Thara Gopinath, Herbert Xu, David S. Miller, Bartosz Golaszewski,
Eric Biggers
Cc: Thara Gopinath, linux-crypto, linux-arm-msm, linux-kernel,
Kuldeep Singh
The QCE hardware does not support AES XTS mode when key1 and key2 are
equal. The driver was handling this by unconditionally rejecting the
keys with -ENOKEY(-126), regardless of whether FIPS mode is active or
the FORBID_WEAK_KEYS flag is set.
[ 5.599170] alg: skcipher: xts-aes-qce setkey failed on test vector 0; expected_error=0, actual_error=-126, flags=0x1
[ 5.599184] alg: self-tests for xts(aes) using xts-aes-qce failed (rc=-126)
In general for weak keys,
- If FIPS mode is active or FORBID_WEAK_KEYS is set: return -EINVAL.
- In non-FIPS mode, Accept the key and encrypt successfully.
Since QCE was returning -ENOKEY for non-FIPS mode whereas the
expectation is to encrypt content and return success, the selftest saw a
mismatch and failed.
There are two problems in QCE behavior:
* -ENOKEY is returned instead of -EINVAL for the FIPS/weak-key
rejection case.
* key1 == key2 is rejected even in non-FIPS mode
Fix xts-aes-qce behavior by using generic helper xts_verify_key() to
reject keys early with -EINVAL for FIPS mode active(or FORBID_WEAK_KEYS
set). For non-FIPS mode, since QCE hardware cannot accept the keys, use
software fallback mechanism to encrypt the data.
Fixes: f0d078dd6c49 ("crypto: qce - Return unsupported if key1 and key 2 are same for AES XTS algorithm")
Signed-off-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
---
drivers/crypto/qce/cipher.h | 1 +
drivers/crypto/qce/skcipher.c | 20 +++++++++++++-------
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/drivers/crypto/qce/cipher.h b/drivers/crypto/qce/cipher.h
index 850f257d00f3..daea07551118 100644
--- a/drivers/crypto/qce/cipher.h
+++ b/drivers/crypto/qce/cipher.h
@@ -14,6 +14,7 @@
struct qce_cipher_ctx {
u8 enc_key[QCE_MAX_KEY_SIZE];
unsigned int enc_keylen;
+ bool use_fallback;
struct crypto_skcipher *fallback;
};
diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c
index db0b648a56eb..224693a831f5 100644
--- a/drivers/crypto/qce/skcipher.c
+++ b/drivers/crypto/qce/skcipher.c
@@ -13,6 +13,7 @@
#include <crypto/aes.h>
#include <crypto/internal/des.h>
#include <crypto/internal/skcipher.h>
+#include <crypto/xts.h>
#include "cipher.h"
@@ -180,14 +181,17 @@ static int qce_skcipher_setkey(struct crypto_skcipher *ablk, const u8 *key,
if (!key || !keylen)
return -EINVAL;
- /*
- * AES XTS key1 = key2 not supported by crypto engine.
- * Revisit to request a fallback cipher in this case.
- */
if (IS_XTS(flags)) {
+ ret = xts_verify_key(ablk, key, keylen);
+ if (ret)
+ return ret;
__keylen = keylen >> 1;
- if (!memcmp(key, key + __keylen, __keylen))
- return -ENOKEY;
+ /*
+ * QCE does not support key1 == key2 for XTS.
+ * Use fallback cipher in this case.
+ */
+ ctx->use_fallback = !crypto_memneq(key, key + __keylen,
+ __keylen);
} else {
__keylen = keylen;
}
@@ -287,12 +291,14 @@ static int qce_skcipher_crypt(struct skcipher_request *req, int encrypt)
* AES-XTS request with len > QCE_SECTOR_SIZE and
* is not a multiple of it.(Revisit this condition to check if it is
* needed in all versions of CE)
+ * AES-XTS for weak keys in non-FIPS mode.
*/
if (IS_AES(rctx->flags) &&
((keylen != AES_KEYSIZE_128 && keylen != AES_KEYSIZE_256) ||
(IS_XTS(rctx->flags) && ((req->cryptlen <= aes_sw_max_len) ||
(req->cryptlen > QCE_SECTOR_SIZE &&
- req->cryptlen % QCE_SECTOR_SIZE))))) {
+ req->cryptlen % QCE_SECTOR_SIZE))) ||
+ (IS_XTS(rctx->flags) && ctx->use_fallback))) {
skcipher_request_set_tfm(&rctx->fallback_req, ctx->fallback);
skcipher_request_set_callback(&rctx->fallback_req,
req->base.flags,
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/2] crypto: qce: Fix CTR-AES for partial block requests
2026-06-10 5:54 [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures Kuldeep Singh
2026-06-10 5:54 ` [PATCH 1/2] crypto: qce: Fix xts-aes-qce for weak keys Kuldeep Singh
@ 2026-06-10 5:54 ` Kuldeep Singh
2026-06-10 18:46 ` Eric Biggers
2026-06-10 18:42 ` [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures Eric Biggers
2 siblings, 1 reply; 12+ messages in thread
From: Kuldeep Singh @ 2026-06-10 5:54 UTC (permalink / raw)
To: Thara Gopinath, Herbert Xu, David S. Miller, Bartosz Golaszewski,
Eric Biggers
Cc: Thara Gopinath, linux-crypto, linux-arm-msm, linux-kernel,
Kuldeep Singh
In CTR mode, the IV acts as the initial counter block.
APer NIST SP 800-38A, after a CTR mode operation the next unused counter
value is:
IV_next = IV_in + ceil(cryptlen / AES_BLOCK_SIZE)
The skcipher requires req->iv to hold this updated counter on
completion, ensuring chained requests produce correct results.
Referring to Crypto6.0 documentation, Section 2.2.5 says:
"The count value increments automatically once per block of data (in
AES, a block is 16 bytes) based on the value in the
CRYPTO_ENCR_CNTR_MASK registers."
QCE increments internal counter register once per full 16-byte block(for
ctr-aes) is processed. In case of partial request length, the hardware
uses the current counter to generate keystreams but does not increment
the counter register afterwards. So the counter value written in
CRYPTO_ENCR_CNTRn_IVn later once read by software is one less than the
expected value.
Crypto selftest framework capture this scenario with test vector
4 comprising of a 499-byte payload (31 full blocks + 3 partial bytes).
Error:
[ 5.606169] alg: skcipher: ctr-aes-qce encryption test failed (wrong output IV) on test vector 4, cfg="in-place (one sglist)"
[ 5.606176] 00000000: e7 82 1d b8 53 11 ac 47 e2 7d 18 d6 71 0c a7 61
[ 5.606192] alg: self-tests for ctr(aes) using ctr-aes-qce failed (rc=-22)
Expected iv_out: 0x62 (iv_in + 32)
Obtained iv_out: 0x61 (iv_in + 31, partial block not counted)
To fix this, just increase the counter value for partial block requests
by 1 and for the full block size requests, don't take any action as
expected value is already returned by the hardware.
Signed-off-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
---
drivers/crypto/qce/skcipher.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c
index 224693a831f5..b25e3b76b6c8 100644
--- a/drivers/crypto/qce/skcipher.c
+++ b/drivers/crypto/qce/skcipher.c
@@ -11,6 +11,7 @@
#include <linux/types.h>
#include <linux/errno.h>
#include <crypto/aes.h>
+#include <crypto/algapi.h>
#include <crypto/internal/des.h>
#include <crypto/internal/skcipher.h>
#include <crypto/xts.h>
@@ -59,6 +60,14 @@ static void qce_skcipher_done(void *data)
dev_dbg(qce->dev, "skcipher operation error (%x)\n", status);
memcpy(rctx->iv, result_buf->encr_cntr_iv, rctx->ivsize);
+ /*
+ * QCE hardware does not increment the counter for a partial final
+ * block. Increment it in software so that iv_out reflects the correct
+ * next counter value expected by the CTR mode.
+ */
+ if (IS_CTR(rctx->flags) &&
+ (rctx->cryptlen % crypto_skcipher_chunksize(crypto_skcipher_reqtfm(req))))
+ crypto_inc(rctx->iv, rctx->ivsize);
qce->async_req_done(tmpl->qce, error);
}
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures
2026-06-10 5:54 [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures Kuldeep Singh
2026-06-10 5:54 ` [PATCH 1/2] crypto: qce: Fix xts-aes-qce for weak keys Kuldeep Singh
2026-06-10 5:54 ` [PATCH 2/2] crypto: qce: Fix CTR-AES for partial block requests Kuldeep Singh
@ 2026-06-10 18:42 ` Eric Biggers
2026-06-11 9:47 ` Kuldeep Singh
2 siblings, 1 reply; 12+ messages in thread
From: Eric Biggers @ 2026-06-10 18:42 UTC (permalink / raw)
To: Kuldeep Singh
Cc: Thara Gopinath, Herbert Xu, David S. Miller, Bartosz Golaszewski,
Thara Gopinath, linux-crypto, linux-arm-msm, linux-kernel
On Wed, Jun 10, 2026 at 11:24:03AM +0530, Kuldeep Singh wrote:
> Steps followed:
> - Enable EXPERT and CRYPTO_SEFLTESTS config.
So the full tests (CRYPTO_SELFTESTS_FULL) still haven't been run?
- Eric
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] crypto: qce: Fix CTR-AES for partial block requests
2026-06-10 5:54 ` [PATCH 2/2] crypto: qce: Fix CTR-AES for partial block requests Kuldeep Singh
@ 2026-06-10 18:46 ` Eric Biggers
2026-06-11 9:49 ` Kuldeep Singh
0 siblings, 1 reply; 12+ messages in thread
From: Eric Biggers @ 2026-06-10 18:46 UTC (permalink / raw)
To: Kuldeep Singh
Cc: Thara Gopinath, Herbert Xu, David S. Miller, Bartosz Golaszewski,
Thara Gopinath, linux-crypto, linux-arm-msm, linux-kernel
On Wed, Jun 10, 2026 at 11:24:05AM +0530, Kuldeep Singh wrote:
> In CTR mode, the IV acts as the initial counter block.
> APer NIST SP 800-38A, after a CTR mode operation the next unused counter
> value is:
>
> IV_next = IV_in + ceil(cryptlen / AES_BLOCK_SIZE)
>
> The skcipher requires req->iv to hold this updated counter on
> completion, ensuring chained requests produce correct results.
>
> Referring to Crypto6.0 documentation, Section 2.2.5 says:
> "The count value increments automatically once per block of data (in
> AES, a block is 16 bytes) based on the value in the
> CRYPTO_ENCR_CNTR_MASK registers."
>
> QCE increments internal counter register once per full 16-byte block(for
> ctr-aes) is processed. In case of partial request length, the hardware
> uses the current counter to generate keystreams but does not increment
> the counter register afterwards. So the counter value written in
> CRYPTO_ENCR_CNTRn_IVn later once read by software is one less than the
> expected value.
>
> Crypto selftest framework capture this scenario with test vector
> 4 comprising of a 499-byte payload (31 full blocks + 3 partial bytes).
> Error:
> [ 5.606169] alg: skcipher: ctr-aes-qce encryption test failed (wrong output IV) on test vector 4, cfg="in-place (one sglist)"
> [ 5.606176] 00000000: e7 82 1d b8 53 11 ac 47 e2 7d 18 d6 71 0c a7 61
> [ 5.606192] alg: self-tests for ctr(aes) using ctr-aes-qce failed (rc=-22)
> Expected iv_out: 0x62 (iv_in + 32)
> Obtained iv_out: 0x61 (iv_in + 31, partial block not counted)
>
> To fix this, just increase the counter value for partial block requests
> by 1 and for the full block size requests, don't take any action as
> expected value is already returned by the hardware.
>
> Signed-off-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
This fix isn't Cc'ed to stable, so stable kernels will remain vulnerable
to this bug.
- Eric
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures
2026-06-10 18:42 ` [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures Eric Biggers
@ 2026-06-11 9:47 ` Kuldeep Singh
2026-06-12 0:43 ` Dmitry Baryshkov
0 siblings, 1 reply; 12+ messages in thread
From: Kuldeep Singh @ 2026-06-11 9:47 UTC (permalink / raw)
To: Eric Biggers, Bartosz Golaszewski
Cc: Thara Gopinath, Herbert Xu, David S. Miller, Bartosz Golaszewski,
Thara Gopinath, linux-crypto, linux-arm-msm, linux-kernel
On 11-06-2026 00:12, Eric Biggers wrote:
> On Wed, Jun 10, 2026 at 11:24:03AM +0530, Kuldeep Singh wrote:
>> Steps followed:
>> - Enable EXPERT and CRYPTO_SEFLTESTS config.
>
> So the full tests (CRYPTO_SELFTESTS_FULL) still haven't been run?
Crypto_selftests was only run as there's some discussion ongoing with
Bartosz on removal of deprecated/unsafe algos.
Seems Bartosz will be sending patches for algorithm removal changes.
The rest relevant selftests issues we'll fix accordingly.
--
Regards
Kuldeep
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] crypto: qce: Fix CTR-AES for partial block requests
2026-06-10 18:46 ` Eric Biggers
@ 2026-06-11 9:49 ` Kuldeep Singh
0 siblings, 0 replies; 12+ messages in thread
From: Kuldeep Singh @ 2026-06-11 9:49 UTC (permalink / raw)
To: Eric Biggers
Cc: Thara Gopinath, Herbert Xu, David S. Miller, Bartosz Golaszewski,
Thara Gopinath, linux-crypto, linux-arm-msm, linux-kernel
> This fix isn't Cc'ed to stable, so stable kernels will remain vulnerable
> to this bug.
Sure, I'll Cc stable tag in v2 with any other feedback/comments on these
patches.
--
Regards
Kuldeep
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] crypto: qce: Fix xts-aes-qce for weak keys
2026-06-10 5:54 ` [PATCH 1/2] crypto: qce: Fix xts-aes-qce for weak keys Kuldeep Singh
@ 2026-06-12 0:40 ` Dmitry Baryshkov
2026-06-12 3:45 ` Herbert Xu
0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Baryshkov @ 2026-06-12 0:40 UTC (permalink / raw)
To: Kuldeep Singh
Cc: Thara Gopinath, Herbert Xu, David S. Miller, Bartosz Golaszewski,
Eric Biggers, Thara Gopinath, linux-crypto, linux-arm-msm,
linux-kernel
On Wed, Jun 10, 2026 at 11:24:04AM +0530, Kuldeep Singh wrote:
> The QCE hardware does not support AES XTS mode when key1 and key2 are
> equal. The driver was handling this by unconditionally rejecting the
> keys with -ENOKEY(-126), regardless of whether FIPS mode is active or
> the FORBID_WEAK_KEYS flag is set.
> [ 5.599170] alg: skcipher: xts-aes-qce setkey failed on test vector 0; expected_error=0, actual_error=-126, flags=0x1
> [ 5.599184] alg: self-tests for xts(aes) using xts-aes-qce failed (rc=-126)
>
> In general for weak keys,
> - If FIPS mode is active or FORBID_WEAK_KEYS is set: return -EINVAL.
> - In non-FIPS mode, Accept the key and encrypt successfully.
>
> Since QCE was returning -ENOKEY for non-FIPS mode whereas the
> expectation is to encrypt content and return success, the selftest saw a
> mismatch and failed.
>
> There are two problems in QCE behavior:
> * -ENOKEY is returned instead of -EINVAL for the FIPS/weak-key
> rejection case.
> * key1 == key2 is rejected even in non-FIPS mode
Rewrite this commit message to English text rather than multiple kinds
of the bullet lists. For example:
QCE hardware can't support the insecure setup of the AES XTS cipher
mode, where key1 and key2 are equal. Currently driver unconditionally
returns -ENOKEY, while the rest of the system expects to get -EINVAL in
FIPS mode or if FORBID_WEAK_KEYS is true. Correct the driver to return
-EINVAL instead of -ENOKEY.
Then another commit to crypto testmgr to let crypto drivers fail for
AES-XTS (and also another commit with docs update).
>
> Fix xts-aes-qce behavior by using generic helper xts_verify_key() to
> reject keys early with -EINVAL for FIPS mode active(or FORBID_WEAK_KEYS
> set). For non-FIPS mode, since QCE hardware cannot accept the keys, use
> software fallback mechanism to encrypt the data.
No, if it is a hardware driver, there should be no software fallback.
>
> Fixes: f0d078dd6c49 ("crypto: qce - Return unsupported if key1 and key 2 are same for AES XTS algorithm")
> Signed-off-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
> ---
> drivers/crypto/qce/cipher.h | 1 +
> drivers/crypto/qce/skcipher.c | 20 +++++++++++++-------
> 2 files changed, 14 insertions(+), 7 deletions(-)
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures
2026-06-11 9:47 ` Kuldeep Singh
@ 2026-06-12 0:43 ` Dmitry Baryshkov
2026-06-17 9:45 ` Kuldeep Singh
0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Baryshkov @ 2026-06-12 0:43 UTC (permalink / raw)
To: Kuldeep Singh
Cc: Eric Biggers, Bartosz Golaszewski, Thara Gopinath, Herbert Xu,
David S. Miller, Thara Gopinath, linux-crypto, linux-arm-msm,
linux-kernel
On Thu, Jun 11, 2026 at 03:17:24PM +0530, Kuldeep Singh wrote:
> On 11-06-2026 00:12, Eric Biggers wrote:
> > On Wed, Jun 10, 2026 at 11:24:03AM +0530, Kuldeep Singh wrote:
> >> Steps followed:
> >> - Enable EXPERT and CRYPTO_SEFLTESTS config.
> >
> > So the full tests (CRYPTO_SELFTESTS_FULL) still haven't been run?
>
> Crypto_selftests was only run as there's some discussion ongoing with
> Bartosz on removal of deprecated/unsafe algos.
pointer?
>
> Seems Bartosz will be sending patches for algorithm removal changes.
> The rest relevant selftests issues we'll fix accordingly.
So, the old kernels will remain broken? Or do we expect to backport the
cipher removal patches too?
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] crypto: qce: Fix xts-aes-qce for weak keys
2026-06-12 0:40 ` Dmitry Baryshkov
@ 2026-06-12 3:45 ` Herbert Xu
2026-06-12 6:11 ` Dmitry Baryshkov
0 siblings, 1 reply; 12+ messages in thread
From: Herbert Xu @ 2026-06-12 3:45 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Kuldeep Singh, Thara Gopinath, David S. Miller,
Bartosz Golaszewski, Eric Biggers, Thara Gopinath, linux-crypto,
linux-arm-msm, linux-kernel
On Fri, Jun 12, 2026 at 03:40:49AM +0300, Dmitry Baryshkov wrote:
>
> > Fix xts-aes-qce behavior by using generic helper xts_verify_key() to
> > reject keys early with -EINVAL for FIPS mode active(or FORBID_WEAK_KEYS
> > set). For non-FIPS mode, since QCE hardware cannot accept the keys, use
> > software fallback mechanism to encrypt the data.
>
> No, if it is a hardware driver, there should be no software fallback.
The driver must support everything that the software implementation
supports. So if the hardware can't do something, it has to use a
fallback.
Cheers,
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] crypto: qce: Fix xts-aes-qce for weak keys
2026-06-12 3:45 ` Herbert Xu
@ 2026-06-12 6:11 ` Dmitry Baryshkov
0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2026-06-12 6:11 UTC (permalink / raw)
To: Herbert Xu
Cc: Kuldeep Singh, Thara Gopinath, David S. Miller,
Bartosz Golaszewski, Eric Biggers, Thara Gopinath, linux-crypto,
linux-arm-msm, linux-kernel
On Fri, Jun 12, 2026 at 11:45:52AM +0800, Herbert Xu wrote:
> On Fri, Jun 12, 2026 at 03:40:49AM +0300, Dmitry Baryshkov wrote:
> >
> > > Fix xts-aes-qce behavior by using generic helper xts_verify_key() to
> > > reject keys early with -EINVAL for FIPS mode active(or FORBID_WEAK_KEYS
> > > set). For non-FIPS mode, since QCE hardware cannot accept the keys, use
> > > software fallback mechanism to encrypt the data.
> >
> > No, if it is a hardware driver, there should be no software fallback.
>
> The driver must support everything that the software implementation
> supports. So if the hardware can't do something, it has to use a
> fallback.
It's unexpected. But you know it better than I do.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures
2026-06-12 0:43 ` Dmitry Baryshkov
@ 2026-06-17 9:45 ` Kuldeep Singh
0 siblings, 0 replies; 12+ messages in thread
From: Kuldeep Singh @ 2026-06-17 9:45 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Eric Biggers, Bartosz Golaszewski, Thara Gopinath, Herbert Xu,
David S. Miller, Thara Gopinath, linux-crypto, linux-arm-msm,
linux-kernel
>> Seems Bartosz will be sending patches for algorithm removal changes.
>> The rest relevant selftests issues we'll fix accordingly.
>
> So, the old kernels will remain broken? Or do we expect to backport the
> cipher removal patches too?
Kindly see Barotsz series on top of this one[1].
Fixes will be backported on older kernels too.
[1]
https://lore.kernel.org/linux-arm-msm/20260615-qce-fix-self-tests-v2-0-dc911f1aad42@oss.qualcomm.com/
--
Regards
Kuldeep
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-06-17 9:45 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-10 5:54 [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures Kuldeep Singh
2026-06-10 5:54 ` [PATCH 1/2] crypto: qce: Fix xts-aes-qce for weak keys Kuldeep Singh
2026-06-12 0:40 ` Dmitry Baryshkov
2026-06-12 3:45 ` Herbert Xu
2026-06-12 6:11 ` Dmitry Baryshkov
2026-06-10 5:54 ` [PATCH 2/2] crypto: qce: Fix CTR-AES for partial block requests Kuldeep Singh
2026-06-10 18:46 ` Eric Biggers
2026-06-11 9:49 ` Kuldeep Singh
2026-06-10 18:42 ` [PATCH 0/2] Fix Qualcomm Crypto engine self tests failures Eric Biggers
2026-06-11 9:47 ` Kuldeep Singh
2026-06-12 0:43 ` Dmitry Baryshkov
2026-06-17 9:45 ` Kuldeep Singh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox