summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTianjia Zhang <tianjia.zhang@linux.alibaba.com>2020-09-21 00:20:58 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2020-09-25 17:48:54 +1000
commit696e2e97ed2c7fe56fef6148ae2b35da352fa0a3 (patch)
tree709032b1d85208f803162c6f7942bb6638368830
parent5185c5f829fd9355c76d2e0cf9723e717f593986 (diff)
downloadlinux-crypto-696e2e97ed2c7fe56fef6148ae2b35da352fa0a3.tar.gz
linux-crypto-696e2e97ed2c7fe56fef6148ae2b35da352fa0a3.zip
crypto: testmgr - support test with different ciphertext per encryption
Some asymmetric algorithms will get different ciphertext after each encryption, such as SM2, and let testmgr support the testing of such algorithms. In struct akcipher_testvec, set c and c_size to be empty, skip the comparison of the ciphertext, and compare the decrypted plaintext with m to achieve the test purpose. Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com> Tested-by: Xufeng Zhang <yunbo.xufeng@linux.alibaba.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--crypto/testmgr.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 66ee3bbc..d084de4c 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -4026,7 +4026,7 @@ static int test_akcipher_one(struct crypto_akcipher *tfm,
pr_err("alg: akcipher: %s test failed. err %d\n", op, err);
goto free_all;
}
- if (!vecs->siggen_sigver_test) {
+ if (!vecs->siggen_sigver_test && c) {
if (req->dst_len != c_size) {
pr_err("alg: akcipher: %s test failed. Invalid output len\n",
op);
@@ -4057,6 +4057,11 @@ static int test_akcipher_one(struct crypto_akcipher *tfm,
goto free_all;
}
+ if (!vecs->siggen_sigver_test && !c) {
+ c = outbuf_enc;
+ c_size = req->dst_len;
+ }
+
op = vecs->siggen_sigver_test ? "sign" : "decrypt";
if (WARN_ON(c_size > PAGE_SIZE))
goto free_all;