2011-11-17 12:19:32

by satpal parmar

[permalink] [raw]
Subject: authenc_verify_ahash_done and H/W accelerator

Hi all!

I am currently debugging a drivers for our crypto HW which offload
IPSec (ESP for now) to HW. With SHA driver I am facing a strange
problem. For reasons unknown to me 'authenc_verify_ahash_done' is
failing (http://lxr.linux.no/linux+v2.6.37/crypto/authenc.c). This api
got called from my SHA driver.

File:http://lxr.linux.no/linux+v2.6.37/crypto/authenc.c

224 authsize = crypto_aead_authsize(authenc);
225 cryptlen -= authsize;
226 ihash = ahreq->result + authsize;
227 scatterwalk_map_and_copy(ihash, areq_ctx->sg, areq_ctx->cryptlen,
228 authsize, 0);
229
230 err = memcmp(ihash, ahreq->result, authsize) ? -EBADMSG :
0; ------>> this is giving bad message.

I am trying to understand authenc_verify_ahash_done to debug this
issue. I do not know if authsize is wrong or scatterwalk_map_and_copy
was a failure or struct crypto_async_request *areq received is
corrupted. Since this API is not involved when I use s/w crypto I do
not have any working example to follow. Just wondering if anyone come
across any such problem or issue while developing H/W crypto driver.

I am using Linux 2.6.37 for my development.

Appreciate any suggestion/pointer regarding my problem.

SP