Hi Everyone,

The fix for SHA::Transform was checked in at 
https://github.com/weidai11/cryptopp/commit/2aff92ddb6e679fc. Also see 
https://github.com/weidai11/cryptopp/issues/455.

SHA basically got overhauled. Formerly IterHashBase dispatched a single 
block to digested when Update() was called. IterHashBase also performed 
endian conversions. Eventually the static SHA::Transform was called to hash 
a single block at a time.

We added freestanding HashMultipleBlocks that handles multiple blocks. 
Effectively, Multiple blocks is our core now, and not a single block. We 
have two or three variants of it - a CXX, a SHA-NI, and an ARM version.

IterHashBase no longer handles dispatching. We added a class override for 
HashMultipleBlocks that calls into the free standing function. The 
freestanding HashMultipleBlocks also has a ByteOrder parameter to tell us 
how the incoming data is presented. Now we can select a mask on the fly as 
needed to arrange the data as required.

SHA-1 is pushing data at 2.3 cpb on ARM servers, 4.0 cpb on ARM gadgets, 
and 1.8 cpb on desktops. The numbers look good. I think we've pulled all 
the performance out of them we can.

Jeff

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to cryptopp-users-unsubscr...@googlegroups.com.
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cryptopp-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to