On Wed, May 27, 2015 at 11:20:28AM +0100, Gordan Bobic wrote: > On 2015-05-27 11:07, Phil Sutter wrote: > > Hi, > > > > On Wed, May 27, 2015 at 10:25:00AM +0100, Gordan Bobic wrote: > >> ./cipher-aead-srtp > >> ioctl(CIOCGSESSION): Invalid argument > > > > Not sure if this should succeed at all, at least that's not my code. ;) > > > >> # ./hmac_comp > >> requested cipher CRYPTO_AES_CBC and mac CRYPTO_SHA1_HMAC, got cipher > >> cbc(aes) with driver mv-cbc-aes and hash hmac(sha1) with driver > >> mv-hmac-sha1 > >> fail for datalen 0x10, MACs do not match! > >> wrong mac: > >> \xd7\xd1\xa6\xef\x0a\x38\xe1\x09\x45\xe1\x8b\x48\x88\xaa\xa9\x23\x4c\xd4\x67\xd1 > >> right mac: > >> \xd7\xd1\xa6\xef\x0a\x38\xe1\x09\x45\xe1\x8b\x48\x88\xaa\xa9\x23\x4c\xd4\x67\xd1 > >> test_crypto() failed for datalen of 16 > > > > That's bad. I'm pretty sure SSH uses HMAC. Unless there is a bug in > > hmac_comp, the fact that identical binary strings are shown for actual > > and expected result makes me suspect a caching issue (the additional > > data access while printing sometimes leads to a cache flush so one does > > not see the complained difference). > > But - my OpenSSL is built without -DUSE_CRYPTODEV_DIGESTS, so if OpenSSH > used OpenSSL for that, there should be no attempt to even use hardware > digests.
Does this cover HMAC as well? > > You are using MV_CESA, therefore you are probably on a Kirkwood with > > VIVT cache architecture - which is pretty delicate when it comes to the > > zero-copy stuff involved. Please make sure your kernel doesn't miss any > > fixes in mv_cesa regarding cache flushes. > > That is easier said than done. I'm using the upstream vendor provided > sources that are both ancient (3.4.6) and heavily patched (the diff > between mainline 3.4.6 and their kernel is MBs). Sounds familiar. For mv_cesa though, it should be possible to just take over mainline mv_cesa.c with minimal adjustments (drop clock gating e.g.). > > Also, for the sake of testing > > you could turn off zero-copy in cryptodev as well. > > How? I don't see any obvious options in the Makefile to do that. > All I see is the async option, which is disabled by default. You can set COP_FLAG_NO_ZC in struct crypt_op. So you need to recompile openssl. Alternatively you could change the code in cryptodev referring to that flag so it always behaves as if it had been set. Cheers, Phil _______________________________________________ Cryptodev-linux-devel mailing list Cryptodev-linux-devel@gna.org https://mail.gna.org/listinfo/cryptodev-linux-devel