Commit a668ee56 authored by Sivaprakash Murugesan's avatar Sivaprakash Murugesan Committed by Herbert Xu

crypto: qce - re-initialize context on import

crypto testmgr deliberately corrupts the request context while passing
vectors to the import. This is to make sure that drivers do not rely on
request but they take all the necessary input from io vec passed to it.

qce casts the request context from request parameter, since it is corrupted
the sub squent hash request fails and qce hangs.

To avoid this re-initialize request context on import. The qce import
API alreasy takes care of taking the input vectors from passed io vec.
Signed-off-by: default avatarSivaprakash Murugesan <sivaprak@codeaurora.org>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 8ac1b9cc
...@@ -203,10 +203,18 @@ static int qce_import_common(struct ahash_request *req, u64 in_count, ...@@ -203,10 +203,18 @@ static int qce_import_common(struct ahash_request *req, u64 in_count,
static int qce_ahash_import(struct ahash_request *req, const void *in) static int qce_ahash_import(struct ahash_request *req, const void *in)
{ {
struct qce_sha_reqctx *rctx = ahash_request_ctx(req); struct qce_sha_reqctx *rctx;
unsigned long flags = rctx->flags; unsigned long flags;
bool hmac = IS_SHA_HMAC(flags); bool hmac;
int ret = -EINVAL; int ret;
ret = qce_ahash_init(req);
if (ret)
return ret;
rctx = ahash_request_ctx(req);
flags = rctx->flags;
hmac = IS_SHA_HMAC(flags);
if (IS_SHA1(flags) || IS_SHA1_HMAC(flags)) { if (IS_SHA1(flags) || IS_SHA1_HMAC(flags)) {
const struct sha1_state *state = in; const struct sha1_state *state = in;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment