diff --git a/threefish.h b/threefish.h index a103e094..b7dac5c7 100644 --- a/threefish.h +++ b/threefish.h @@ -39,7 +39,7 @@ struct Threefish_Info : public FixedBlockSize, FixedKeyLength //! \sa Threefish256, Threefish512, Threefish1024, Threefish //! \since Crypto++ 6.0 template -struct CRYPTOPP_NO_VTABLE Threefish_Base : public Threefish_Info +struct CRYPTOPP_NO_VTABLE Threefish_Base { void SetTweak(const NameValuePairs ¶ms) @@ -71,13 +71,13 @@ struct CRYPTOPP_NO_VTABLE Threefish_Base : public Threefish_Info //! \note Crypto++ provides a byte oriented implementation //! \sa Threefish256, Threefish512, Threefish1024, Threefish //! \since Crypto++ 6.0 -class CRYPTOPP_NO_VTABLE Threefish256 : public Threefish_Base<32>, public BlockCipherDocumentation +class CRYPTOPP_NO_VTABLE Threefish256 : public Threefish_Info<32>, public BlockCipherDocumentation { public: //! \brief Threefish block cipher transformation functions //! \details Provides implementation common to encryption and decryption //! \since Crypto++ 6.0 - class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl > + class CRYPTOPP_NO_VTABLE Base : public Threefish_Base<32>, public BlockCipherImpl > { protected: void UncheckedSetKey(const byte *userKey, unsigned int keyLength, const NameValuePairs ¶ms); @@ -116,13 +116,13 @@ typedef Threefish256::Decryption Threefish256Decryption; //! \note Crypto++ provides a byte oriented implementation //! \sa Threefish256, Threefish512, Threefish1024, Threefish //! \since Crypto++ 6.0 -class CRYPTOPP_NO_VTABLE Threefish512 : public Threefish_Base<64>, public BlockCipherDocumentation +class CRYPTOPP_NO_VTABLE Threefish512 : public Threefish_Base<32>, public BlockCipherDocumentation { public: //! \brief Threefish block cipher transformation functions //! \details Provides implementation common to encryption and decryption //! \since Crypto++ 6.0 - class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl > + class CRYPTOPP_NO_VTABLE Base : public Threefish_Base<64>, public BlockCipherImpl > { protected: void UncheckedSetKey(const byte *userKey, unsigned int keyLength, const NameValuePairs ¶ms); @@ -161,13 +161,13 @@ typedef Threefish512::Decryption Threefish512Decryption; //! \note Crypto++ provides a byte oriented implementation //! \sa Threefish256, Threefish512, Threefish1024, Threefish //! \since Crypto++ 6.0 -class CRYPTOPP_NO_VTABLE Threefish1024 : public Threefish_Base<128>, public BlockCipherDocumentation +class CRYPTOPP_NO_VTABLE Threefish1024 : public Threefish_Base<32>, public BlockCipherDocumentation { public: //! \brief Threefish block cipher transformation functions //! \details Provides implementation common to encryption and decryption //! \since Crypto++ 6.0 - class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl > + class CRYPTOPP_NO_VTABLE Base : public Threefish_Base<128>, public BlockCipherImpl > { protected: void UncheckedSetKey(const byte *userKey, unsigned int keyLength, const NameValuePairs ¶ms);