Message ID | 20200903131242.128665-6-tianjia.zhang@linux.alibaba.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | crpyto: introduce OSCCA certificate and SM2 asymmetric algorithm | expand |
On Thu, Sep 03, 2020 at 09:12:39PM +0800, Tianjia Zhang wrote: > 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> > --- > crypto/testmgr.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) Is there supposed to be another patch that contains test vectors? Thanks,
On 9/18/20 2:47 PM, Herbert Xu wrote: > On Thu, Sep 03, 2020 at 09:12:39PM +0800, Tianjia Zhang wrote: >> 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> >> --- >> crypto/testmgr.c | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) > > Is there supposed to be another patch that contains test vectors? > > Thanks, > Yes, I was negligent. It is necessary to provide a test vector and I will support it as soon as possible. Thanks, Tianjia
diff --git a/crypto/testmgr.c b/crypto/testmgr.c index 23c27fc96394..cd002a030af5 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c @@ -4025,7 +4025,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); @@ -4056,6 +4056,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;