From ced7cff64f87ae4fec781e00e4e111f6c188dea2 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Fri, 22 Sep 2017 09:39:36 -0400 Subject: Add Power8 SHA256 and SHA512 support (GH #513) --- sha.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'sha.cpp') diff --git a/sha.cpp b/sha.cpp index 04dfb4d9..d1c8d454 100644 --- a/sha.cpp +++ b/sha.cpp @@ -783,6 +783,13 @@ size_t SHA224::HashMultipleBlocks(const word32 *input, size_t length) return length & (SHA256::BLOCKSIZE - 1); } #endif +#if CRYPTOPP_POWER8_SHA_AVAILABLE + if (HasSHA256()) + { + SHA256_HashMultipleBlocks_POWER8(m_state, input, length, BIG_ENDIAN_ORDER); + return length & (SHA256::BLOCKSIZE - 1); + } +#endif const bool noReverse = NativeByteOrderIs(this->GetByteOrder()); word32 *dataBuf = this->DataBuf(); @@ -1164,6 +1171,13 @@ void SHA512::Transform(word64 *state, const word64 *data) return; } #endif +#if CRYPTOPP_POWER8_SHA_AVAILABLE + if (HasSHA512()) + { + SHA512_HashMultipleBlocks_POWER8(state, data, SHA512::BLOCKSIZE, BIG_ENDIAN_ORDER); + return; + } +#endif SHA512_HashBlock_CXX(state, data); } -- cgit v1.2.1