summaryrefslogtreecommitdiff
path: root/cham.h
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2018-06-21 00:37:10 -0400
committerJeffrey Walton <noloader@gmail.com>2018-06-21 00:37:10 -0400
commitb00a378a8d3057f94adb9f7168969c21466ff6f6 (patch)
tree9bc29dd8583730b1a446740a3a48cffafe3fa9ad /cham.h
parenta80b1d35b00082728f9fd12816da4c2ca010b1f4 (diff)
downloadcryptopp-git-b00a378a8d3057f94adb9f7168969c21466ff6f6.tar.gz
Add CHAM64 SSSE3 implementation (PR #670)
CHAM64 from 20 cpb to 14 cpb on modern iCore. CHAM64 from 90 cpb to 18 cpb antique Core2 Duo
Diffstat (limited to 'cham.h')
-rw-r--r--cham.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/cham.h b/cham.h
index 1c8b02b1..0d0da501 100644
--- a/cham.h
+++ b/cham.h
@@ -16,7 +16,7 @@
#include "algparam.h"
#if (CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X86)
-# define CRYPTOPP_CHAM128_ADVANCED_PROCESS_BLOCKS 1
+# define CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS 1
#endif
NAMESPACE_BEGIN(CryptoPP)
@@ -74,6 +74,10 @@ public:
{
public:
void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const;
+
+#if CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS
+ size_t AdvancedProcessBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const;
+#endif
};
/// \brief Provides implementation for encryption transformation
@@ -84,6 +88,10 @@ public:
{
public:
void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const;
+
+#if CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS
+ size_t AdvancedProcessBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const;
+#endif
};
typedef BlockCipherFinal<ENCRYPTION, Enc> Encryption;
@@ -125,7 +133,7 @@ public:
public:
void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const;
-#if CRYPTOPP_CHAM128_ADVANCED_PROCESS_BLOCKS
+#if CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS
size_t AdvancedProcessBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const;
#endif
};
@@ -139,7 +147,7 @@ public:
public:
void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const;
-#if CRYPTOPP_CHAM128_ADVANCED_PROCESS_BLOCKS
+#if CRYPTOPP_CHAM_ADVANCED_PROCESS_BLOCKS
size_t AdvancedProcessBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const;
#endif
};