Hi Stephan, I also tried test program in libkcapi and it works. libkcapi opens socket of type "hmac(sha1)" .Openssl opens multiple "sha1" type socket and uses the partial results to calculate hmac. "crypto_ahash_init()" function initialises the *tfm variable in crypto_shash structure.It gets called when user calls write() system call. To give a try I updated the hash_accept() function and re-run. This time kernel didn't crashed but result calculated is wrong. How accept() sys call decide weather to call alg_accept() or hash_accept()? Find attached patch and strace.Right now af_alg code is not accessible to me. I will share it tomorrow. Thanks and Regards Harsh jain On Sun, Oct 25, 2015 at 5:28 PM, Stephan Mueller <smueller@xxxxxxxxxx> wrote: > Am Sonntag, 25. Oktober 2015, 11:56:27 schrieb Harsh Jain: > > Hi Harsh, > >>Hi, >> >> >>When trying to calculate HMAC(SHA1) with openssl using af-alg engine >>kernel crashes.Find below the command used and kernel. I have added >>some debug print in logs. >> >>Command used : ./openssl dgst -engine af_alg -sha1 -hmac "key" r.txt >>kernel version : 3.17.8 >> >>Initial Investigation : In shash_desc structure tfm pointer contains >>5a5a5a5a5a5a5a5a(invalid pointer), when it triess to reference export >>function pointer it crashes. As per my understanding tfm object should >>have pointer of memory bloack allocated in >>"crypto_init_shash_ops_async" function >> >>Please give some pointers to debug the issue.Any documentation to >>understand the crypto-api code. > > May I ask you to send 2 things: the source code of the OpenSSL af_alg engine > that you use (IIRC it is not included upstream, I want to be sure I used the > right one). > > Further, can you attach an strace of the aforementioned command? > > Note, I am playing and abusing the AF_ALG interface for quite some time with > [1] but I did not come across any issues like the one you describe here. > > [1] http://www.chronox.de/libkcapi.html > > Ciao > Stephan
Attachment:
algif_hash.patch
Description: Binary data
Attachment:
strace.log
Description: Binary data