Took me all evening to track down a simple issue in the single block shani optimization (difference in endianness between the buffered and rotating sha algorithms). But we are now getting the same 5x benefit for single and padding blocks. Just a little more to do to get half and dual half blocks integrated, which target double hashing and Merkle hashing respectively.