summaryrefslogtreecommitdiff
path: root/blowfish.h
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2019-10-12 09:40:34 -0400
committerJeffrey Walton <noloader@gmail.com>2019-10-12 09:40:34 -0400
commitb91ce07bfbbf53d03ce002b08cf6ef3ea699af5a (patch)
treee37fd84eebb3e3739e7cbc5da468d45064c6774d /blowfish.h
parentdd005c4bc3fb6db1ff98081c9901d79bcc086c48 (diff)
downloadcryptopp-git-b91ce07bfbbf53d03ce002b08cf6ef3ea699af5a.tar.gz
Revert BlowfishCompat changes (PR #877)
Diffstat (limited to 'blowfish.h')
-rw-r--r--blowfish.h58
1 files changed, 21 insertions, 37 deletions
diff --git a/blowfish.h b/blowfish.h
index 855795b2..5f34609f 100644
--- a/blowfish.h
+++ b/blowfish.h
@@ -11,25 +11,6 @@
NAMESPACE_BEGIN(CryptoPP)
-/// \brief Class specific implementation and overrides used to operate the cipher.
-/// \details Implementations and overrides in \p Base apply to both \p ENCRYPTION and \p DECRYPTION directions
-template<class Info, class ByteOrder>
-class CRYPTOPP_NO_VTABLE Blowfish_Base : public BlockCipherImpl<Info>
-{
-public:
- void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const;
- void UncheckedSetKey(const byte *key_string, unsigned int keylength, const NameValuePairs &params);
-
-private:
- void crypt_block(const word32 in[2], word32 out[2]) const;
-
- static const word32 p_init[Info::ROUNDS+2];
- static const word32 s_init[4*256];
-
- FixedSizeSecBlock<word32, Info::ROUNDS+2> pbox;
- FixedSizeSecBlock<word32, 4*256> sbox;
-};
-
/// \brief Blowfish block cipher information
struct Blowfish_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 4, 56>, public FixedRounds<16>
{
@@ -40,30 +21,33 @@ struct Blowfish_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 4,
/// \brief Blowfish block cipher
/// \since Crypto++ 1.0
-struct Blowfish : public Blowfish_Info, public BlockCipherDocumentation
+class Blowfish : public Blowfish_Info, public BlockCipherDocumentation
{
- typedef BlockCipherFinal<ENCRYPTION, Blowfish_Base<Blowfish_Info, BigEndian> > Encryption;
- typedef BlockCipherFinal<DECRYPTION, Blowfish_Base<Blowfish_Info, BigEndian> > Decryption;
-};
+ /// \brief Class specific implementation and overrides used to operate the cipher.
+ /// \details Implementations and overrides in \p Base apply to both \p ENCRYPTION and \p DECRYPTION directions
+ class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<Blowfish_Info>
+ {
+ public:
+ void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const;
+ void UncheckedSetKey(const byte *key_string, unsigned int keylength, const NameValuePairs &params);
-typedef Blowfish::Encryption BlowfishEncryption;
-typedef Blowfish::Decryption BlowfishDecryption;
+ private:
+ void crypt_block(const word32 in[2], word32 out[2]) const;
-/// \brief BlowfishCompat block cipher information
-struct BlowfishCompat_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 4, 56>, public FixedRounds<16>
-{
- CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "BlowfishCompat";}
-};
+ static const word32 p_init[ROUNDS+2];
+ static const word32 s_init[4*256];
-/// \brief BlowfishCompat block cipher
-struct BlowfishCompat : public BlowfishCompat_Info, public BlockCipherDocumentation
-{
- typedef BlockCipherFinal<ENCRYPTION, Blowfish_Base<BlowfishCompat_Info, LittleEndian> > Encryption;
- typedef BlockCipherFinal<DECRYPTION, Blowfish_Base<BlowfishCompat_Info, LittleEndian> > Decryption;
+ FixedSizeSecBlock<word32, ROUNDS+2> pbox;
+ FixedSizeSecBlock<word32, 4*256> sbox;
+ };
+
+public:
+ typedef BlockCipherFinal<ENCRYPTION, Base> Encryption;
+ typedef BlockCipherFinal<DECRYPTION, Base> Decryption;
};
-typedef BlowfishCompat::Encryption BlowfishCompatEncryption;
-typedef BlowfishCompat::Decryption BlowfishCompatDecryption;
+typedef Blowfish::Encryption BlowfishEncryption;
+typedef Blowfish::Decryption BlowfishDecryption;
NAMESPACE_END