diff options
author | Jeffrey Walton <noloader@gmail.com> | 2019-10-12 09:40:34 -0400 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2019-10-12 09:40:34 -0400 |
commit | b91ce07bfbbf53d03ce002b08cf6ef3ea699af5a (patch) | |
tree | e37fd84eebb3e3739e7cbc5da468d45064c6774d /blowfish.h | |
parent | dd005c4bc3fb6db1ff98081c9901d79bcc086c48 (diff) | |
download | cryptopp-git-b91ce07bfbbf53d03ce002b08cf6ef3ea699af5a.tar.gz |
Revert BlowfishCompat changes (PR #877)
Diffstat (limited to 'blowfish.h')
-rw-r--r-- | blowfish.h | 58 |
1 files changed, 21 insertions, 37 deletions
@@ -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 ¶ms);
-
-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 ¶ms);
-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
|