From 8efd972ef96a3f77ded9a838005d49efa9a96243 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 14 Feb 2019 00:03:51 -0800 Subject: crypto: testmgr - support checking skcipher output IV Allow skcipher test vectors to declare the value the IV buffer should be updated to at the end of the encryption or decryption operation. (This check actually used to be supported in testmgr, but it was never used and therefore got removed except for the AES-Keywrap special case. But it will be used by CBC and CTR now, so re-add it.) Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu --- crypto/testmgr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'crypto/testmgr.c') diff --git a/crypto/testmgr.c b/crypto/testmgr.c index d582a2758feb..8386038d67c7 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c @@ -1542,7 +1542,9 @@ static int test_skcipher_vec_cfg(const char *driver, int enc, if (ivsize) { if (WARN_ON(ivsize > MAX_IVLEN)) return -EINVAL; - if (vec->iv && !(vec->generates_iv && enc)) + if (vec->generates_iv && !enc) + memcpy(iv, vec->iv_out, ivsize); + else if (vec->iv) memcpy(iv, vec->iv, ivsize); else memset(iv, 0, ivsize); @@ -1635,7 +1637,7 @@ static int test_skcipher_vec_cfg(const char *driver, int enc, } /* If applicable, check that the algorithm generated the correct IV */ - if (vec->generates_iv && enc && memcmp(iv, vec->iv, ivsize) != 0) { + if (vec->iv_out && memcmp(iv, vec->iv_out, ivsize) != 0) { pr_err("alg: skcipher: %s %s test failed (wrong output IV) on test vector %u, cfg=\"%s\"\n", driver, op, vec_num, cfg->name); hexdump(iv, ivsize); -- cgit v1.2.3