From c9b00c14fd9c238ac3a797a53b3c01c4ab92f00e Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Mon, 22 Jan 2018 20:13:18 -0500 Subject: [PATCH] Update documentation --- arc4.h | 8 +++++--- cast.h | 6 ++++++ cbcmac.h | 3 +++ cryptlib.h | 4 ++++ des.h | 7 ++++++- dh2.h | 3 ++- dmac.h | 2 ++ eccrypto.h | 5 +++++ mars.h | 3 +++ md2.h | 10 +++++++++- modes.h | 4 ++++ mqv.h | 3 +++ rc2.h | 3 +++ rc6.h | 3 +++ rijndael.h | 10 +++++----- rw.h | 7 +++++-- seal.h | 4 ++++ serpent.h | 2 ++ square.h | 2 ++ twofish.h | 4 +++- 20 files changed, 79 insertions(+), 14 deletions(-) diff --git a/arc4.h b/arc4.h index a5b20da6..15daf914 100644 --- a/arc4.h +++ b/arc4.h @@ -2,6 +2,7 @@ /// \file arc4.h /// \brief Classes for ARC4 cipher +/// \since Crypto++ 3.1 #ifndef CRYPTOPP_ARC4_H #define CRYPTOPP_ARC4_H @@ -17,7 +18,7 @@ namespace Weak1 { /// \brief ARC4 base class /// \details Implementations and overrides in \p Base apply to both \p ENCRYPTION and \p DECRYPTION directions -/// \since Crypto++ 1.0 +/// \since Crypto++ 3.1 class CRYPTOPP_NO_VTABLE ARC4_Base : public VariableKeyLength<16, 1, 256>, public RandomNumberGenerator, public SymmetricCipher, public SymmetricCipherDocumentation { public: @@ -47,12 +48,13 @@ protected: /// \brief Alleged RC4 /// \sa Alleged RC4 -/// \since Crypto++ 1.0 +/// \since Crypto++ 3.1 DOCUMENTED_TYPEDEF(SymmetricCipherFinal, ARC4) /// \brief MARC4 base class /// \details Implementations and overrides in \p Base apply to both \p ENCRYPTION and \p DECRYPTION directions /// \details MARC4 discards the first 256 bytes of keystream, which may be weaker than the rest +/// \since Crypto++ 3.1 class CRYPTOPP_NO_VTABLE MARC4_Base : public ARC4_Base { public: @@ -67,7 +69,7 @@ protected: /// \brief Modified Alleged RC4 /// \sa Alleged RC4 -/// \since Crypto++ 1.0 +/// \since Crypto++ 3.1 DOCUMENTED_TYPEDEF(SymmetricCipherFinal, MARC4) } diff --git a/cast.h b/cast.h index 515b3a97..08ac2951 100644 --- a/cast.h +++ b/cast.h @@ -2,6 +2,7 @@ /// \file cast.h /// \brief Classes for the CAST-128 and CAST-256 block ciphers +/// \since Crypto++ 2.2 #ifndef CRYPTOPP_CAST_H #define CRYPTOPP_CAST_H @@ -12,6 +13,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief CAST block cipher base +/// \since Crypto++ 2.2 class CAST { protected: @@ -19,6 +21,7 @@ protected: }; /// \brief CAST128 block cipher information +/// \since Crypto++ 2.2 struct CAST128_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 5, 16> { CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "CAST-128";} @@ -26,6 +29,7 @@ struct CAST128_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 5, /// \brief CAST128 block cipher /// \sa CAST-128 +/// \since Crypto++ 2.2 class CAST128 : public CAST128_Info, public BlockCipherDocumentation { /// \brief CAST128 block cipher default operation @@ -59,6 +63,7 @@ public: }; /// \brief CAST256 block cipher information +/// \since Crypto++ 4.0 struct CAST256_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 4> { CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "CAST-256";} @@ -66,6 +71,7 @@ struct CAST256_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16 /// \brief CAST256 block cipher /// \sa CAST-256 +/// \since Crypto++ 4.0 class CAST256 : public CAST256_Info, public BlockCipherDocumentation { /// \brief CAST256 block cipher default operation diff --git a/cbcmac.h b/cbcmac.h index ec047253..8ad81b52 100644 --- a/cbcmac.h +++ b/cbcmac.h @@ -2,6 +2,7 @@ /// \file /// \brief Classes for CBC MAC +/// \since Crypto++ 3.1 #ifndef CRYPTOPP_CBCMAC_H #define CRYPTOPP_CBCMAC_H @@ -12,6 +13,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief CBC-MAC base class +/// \since Crypto++ 3.1 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE CBC_MAC_Base : public MessageAuthenticationCode { public: @@ -36,6 +38,7 @@ private: /// \details CBC-MAC is compatible with FIPS 113. The MAC is secure only for fixed /// length messages. For variable length messages use CMAC or DMAC. /// \sa CBC-MAC +/// \since Crypto++ 3.1 template class CBC_MAC : public MessageAuthenticationCodeImpl >, public SameKeyLengthAs { diff --git a/cryptlib.h b/cryptlib.h index 15067c4f..a552f47d 100644 --- a/cryptlib.h +++ b/cryptlib.h @@ -2763,6 +2763,7 @@ public: /// \details A key agreement domain is a set of parameters that must be shared /// by two parties in a key agreement protocol, along with the algorithms /// for generating key pairs and deriving agreed values. +/// \since Crypto++ 3.0 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE SimpleKeyAgreementDomain : public KeyAgreementAlgorithm { public: @@ -2821,6 +2822,7 @@ public: /// \details In an authenticated key agreement protocol, each party has two /// key pairs. The long-lived key pair is called the static key pair, /// and the short-lived key pair is called the ephemeral key pair. +/// \since Crypto++ 3.0 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE AuthenticatedKeyAgreementDomain : public KeyAgreementAlgorithm { public: @@ -3000,6 +3002,8 @@ public: const byte *passwordOrVerifier, unsigned int passwordOrVerifierLength); }; +/// \brief Password based key agreement domain +/// \since Crypto++ 3.0 class PasswordAuthenticatedKeyAgreementDomain : public KeyAgreementAlgorithm { public: diff --git a/des.h b/des.h index 569e7d93..ece7b378 100644 --- a/des.h +++ b/des.h @@ -12,6 +12,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief DES block cipher base class +/// \since Crypto++ 1.0 class CRYPTOPP_DLL RawDES { public: @@ -25,6 +26,7 @@ protected: }; /// \brief DES block cipher information +/// \since Crypto++ 1.0 struct DES_Info : public FixedBlockSize<8>, public FixedKeyLength<8> { // disable DES in DLL version by not exporting this function @@ -58,6 +60,7 @@ public: }; /// \brief 2-key TripleDES block cipher information +/// \since Crypto++ 1.0 struct DES_EDE2_Info : public FixedBlockSize<8>, public FixedKeyLength<16> { CRYPTOPP_DLL static const char * CRYPTOPP_API StaticAlgorithmName() {return "DES-EDE2";} @@ -85,6 +88,7 @@ public: }; /// \brief 3-key TripleDES block cipher information +/// \since Crypto++ 1.0 struct DES_EDE3_Info : public FixedBlockSize<8>, public FixedKeyLength<24> { CRYPTOPP_DLL static const char * CRYPTOPP_API StaticAlgorithmName() {return "DES-EDE3";} @@ -112,6 +116,7 @@ public: }; /// \brief DESX block cipher information +/// \since Crypto++ 3.2 struct DES_XEX3_Info : public FixedBlockSize<8>, public FixedKeyLength<24> { CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "DES-XEX3";} @@ -119,7 +124,7 @@ struct DES_XEX3_Info : public FixedBlockSize<8>, public FixedKeyLength<24> /// \brief DESX block cipher /// \sa DES-XEX3, AKA DESX -/// \since Crypto++ 1.0 +/// \since Crypto++ 3.2 class DES_XEX3 : public DES_XEX3_Info, public BlockCipherDocumentation { /// \brief DES_XEX3 block cipher default operation diff --git a/dh2.h b/dh2.h index 48b8d464..b86161d7 100644 --- a/dh2.h +++ b/dh2.h @@ -2,6 +2,7 @@ /// \file dh2.h /// \brief Classes for Unified Diffie-Hellman key exchange +/// \since Crypto++ 3.0 #ifndef CRYPTOPP_DH2_H #define CRYPTOPP_DH2_H @@ -15,7 +16,7 @@ NAMESPACE_BEGIN(CryptoPP) /// by two parties in a key agreement protocol, along with the algorithms /// for generating key pairs and deriving agreed values. /// \sa AuthenticatedKeyAgreementDomain, Unified Diffie-Hellman -/// \since Crypto++ 1.0 +/// \since Crypto++ 3.0 class DH2 : public AuthenticatedKeyAgreementDomain { public: diff --git a/dmac.h b/dmac.h index 62be7ee0..539f69fe 100644 --- a/dmac.h +++ b/dmac.h @@ -12,6 +12,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief DMAC message authentication code base class /// \tparam T class derived from BlockCipherDocumentation +/// \since Crypto++ 3.1 template class CRYPTOPP_NO_VTABLE DMAC_Base : public SameKeyLengthAs, public MessageAuthenticationCode { @@ -41,6 +42,7 @@ private: /// \tparam T class derived from BlockCipherDocumentation /// \sa CBC MAC for Real-Time Data Sources (08.15.1997) /// by Erez Petrank and Charles Rackoff +/// \since Crypto++ 3.1 template class DMAC : public MessageAuthenticationCodeFinal > { diff --git a/eccrypto.h b/eccrypto.h index 455dca17..40e3cb9a 100644 --- a/eccrypto.h +++ b/eccrypto.h @@ -258,6 +258,7 @@ DL_PrivateKey_EC::~DL_PrivateKey_EC() {} /// \tparam EC elliptic curve field /// \tparam COFACTOR_OPTION cofactor multiplication option /// \sa CofactorMultiplicationOption, Elliptic Curve Diffie-Hellman, AKA ECDH +/// \since Crypto++ 3.0 template ::DefaultCofactorOption> struct ECDH { @@ -324,6 +325,7 @@ struct ECDSA; /// \brief Elliptic Curve DSA keys /// \tparam EC elliptic curve field +/// \since Crypto++ 3.2 template struct DL_Keys_ECDSA { @@ -333,6 +335,7 @@ struct DL_Keys_ECDSA /// \brief Elliptic Curve DSA (ECDSA) signature algorithm /// \tparam EC elliptic curve field +/// \since Crypto++ 3.2 template class DL_Algorithm_ECDSA : public DL_Algorithm_GDSA { @@ -365,6 +368,7 @@ public: /// \tparam EC elliptic curve field /// \tparam H HashTransformation derived class /// \sa ECDSA +/// \since Crypto++ 3.2 template struct ECDSA : public DL_SS, DL_Algorithm_ECDSA, DL_SignatureMessageEncodingMethod_DSA, H> { @@ -375,6 +379,7 @@ struct ECDSA : public DL_SS, DL_Algorithm_ECDSA, DL_Signat /// \tparam H HashTransformation derived class /// \sa Deterministic Usage of the /// Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA) +/// \since Crypto++ 6.0 template struct ECDSA_RFC6979 : public DL_SS< DL_Keys_ECDSA, diff --git a/mars.h b/mars.h index b27fe1a6..1a1f2019 100644 --- a/mars.h +++ b/mars.h @@ -2,6 +2,7 @@ /// \file mars.h /// \brief Classes for the MARS block cipher (IBM AES submission) +/// \since Crypto++ 3.0 #ifndef CRYPTOPP_MARS_H #define CRYPTOPP_MARS_H @@ -12,6 +13,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief MARS block cipher information +/// \since Crypto++ 3.0 struct MARS_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 56, 8> { CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "MARS";} @@ -19,6 +21,7 @@ struct MARS_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 5 /// \brief MARS block cipher /// \sa MARS +/// \since Crypto++ 3.0 class MARS : public MARS_Info, public BlockCipherDocumentation { class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl diff --git a/md2.h b/md2.h index b98e5453..655c2232 100644 --- a/md2.h +++ b/md2.h @@ -1,3 +1,9 @@ +// md2.h - originally written and placed in the public domain by Wei Dai + +/// \file md2.h +/// \brief Classes for the MD2 message digest +/// \since Crypto++ 3.0 + #ifndef CRYPTOPP_MD2_H #define CRYPTOPP_MD2_H @@ -8,7 +14,9 @@ NAMESPACE_BEGIN(CryptoPP) namespace Weak1 { -/// MD2 +/// \brief MD2 message digest +/// \sa MD2 +/// \since Crypto++ 3.0 class MD2 : public HashTransformation { public: diff --git a/modes.h b/modes.h index cbffe46d..b199ef6d 100644 --- a/modes.h +++ b/modes.h @@ -237,6 +237,7 @@ public: }; /// \brief CBC-CTS block cipher mode of operation encryption operation +/// \since Crypto++ 3.0 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE CBC_CTS_Encryption : public CBC_Encryption { public: @@ -270,6 +271,7 @@ protected: }; /// \brief CBC-CTS block cipher mode of operation decryption operation +/// \since Crypto++ 3.0 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE CBC_CTS_Decryption : public CBC_Decryption { public: @@ -456,6 +458,7 @@ struct CBC_Mode_ExternalCipher : public CipherModeDocumentation /// \brief CBC-CTS block cipher mode of operation /// \sa Modes of Operation /// on the Crypto++ wiki. +/// \since Crypto++ 3.0 template struct CBC_CTS_Mode : public CipherModeDocumentation { @@ -469,6 +472,7 @@ CRYPTOPP_DLL_TEMPLATE_CLASS CipherModeFinalTemplate_ExternalCipherModes of Operation /// on the Crypto++ wiki. +/// \since Crypto++ 3.0 struct CBC_CTS_Mode_ExternalCipher : public CipherModeDocumentation { typedef CipherModeFinalTemplate_ExternalCipher Encryption; diff --git a/mqv.h b/mqv.h index 6ab8d207..14f4d592 100644 --- a/mqv.h +++ b/mqv.h @@ -2,6 +2,7 @@ /// \file mqv.h /// \brief Classes for Menezes–Qu–Vanstone (MQV) key agreement +/// \since Crypto++ 3.0 #ifndef CRYPTOPP_MQV_H #define CRYPTOPP_MQV_H @@ -22,6 +23,7 @@ NAMESPACE_BEGIN(CryptoPP) /// Binary curves use a polynomial to represent its characteristic, while prime curves /// use a prime number. /// \sa MQV, HMQV, FHMQV, and AuthenticatedKeyAgreementDomain +/// \since Crypto++ 3.0 template class MQV_Domain : public AuthenticatedKeyAgreementDomain { @@ -213,6 +215,7 @@ private: /// Menezes-Qu-Vanstone in GF(p) with key validation, AKA MQV /// \sa MQV, HMQV_Domain, FHMQV_Domain, AuthenticatedKeyAgreementDomain +/// \since Crypto++ 3.0 typedef MQV_Domain MQV; NAMESPACE_END diff --git a/rc2.h b/rc2.h index 8baf1288..f7a0d4fb 100644 --- a/rc2.h +++ b/rc2.h @@ -2,6 +2,7 @@ /// \file rc2.h /// \brief Classes for the RC2 block cipher +/// \since Crypto++ 3.0 #ifndef CRYPTOPP_RC2_H #define CRYPTOPP_RC2_H @@ -13,6 +14,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief RC2 block cipher information +/// \since Crypto++ 3.0 struct RC2_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 1, 128> { CRYPTOPP_CONSTANT(DEFAULT_EFFECTIVE_KEYLENGTH = 1024) @@ -22,6 +24,7 @@ struct RC2_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 1, 128> /// \brief RC2 block cipher /// \sa RC2 on the Crypto Lounge. +/// \since Crypto++ 3.0 class RC2 : public RC2_Info, public BlockCipherDocumentation { /// \brief Class specific methods used to operate the cipher. diff --git a/rc6.h b/rc6.h index ce2227d6..1a41ab2c 100644 --- a/rc6.h +++ b/rc6.h @@ -2,6 +2,7 @@ /// \file rc6.h /// \brief Classes for the RC6 block cipher +/// \since Crypto++ 3.0 #ifndef CRYPTOPP_RC6_H #define CRYPTOPP_RC6_H @@ -12,6 +13,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief RC6 block cipher information +/// \since Crypto++ 3.0 struct RC6_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>, public VariableRounds<20> { CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "RC6";} @@ -20,6 +22,7 @@ struct RC6_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32 /// \brief RC6 block cipher /// \sa RC6 +/// \since Crypto++ 3.0 class RC6 : public RC6_Info, public BlockCipherDocumentation { class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl diff --git a/rijndael.h b/rijndael.h index 413d2ebf..a0316442 100644 --- a/rijndael.h +++ b/rijndael.h @@ -4,7 +4,7 @@ /// \brief Classes for Rijndael encryption algorithm /// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks, /// and not 192-bit or 256-bit blocks -/// \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, +/// \since Rijndael since Crypto++ 3.1, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, /// Power8 AES since Crypto++ 6.0 #ifndef CRYPTOPP_RIJNDAEL_H @@ -23,7 +23,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief Rijndael block cipher information /// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks, /// and not 192-bit or 256-bit blocks -/// \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, +/// \since Rijndael since Crypto++ 3.1, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, /// Power8 AES since Crypto++ 6.0 struct Rijndael_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8> { @@ -33,7 +33,7 @@ struct Rijndael_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 1 /// \brief Rijndael block cipher /// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks, /// and not 192-bit or 256-bit blocks -/// \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, +/// \since Rijndael since Crypto++ 3.1, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, /// Power8 AES since Crypto++ 6.0 /// \sa Rijndael class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentation @@ -63,7 +63,7 @@ class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentat /// \brief Provides implementation for encryption transformation /// \details Enc provides implementation for encryption transformation. All key sizes are supported. /// The library only provides Rijndael with 128-bit blocks, and not 192-bit or 256-bit blocks - /// \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, + /// \since Rijndael since Crypto++ 3.1, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, /// Power8 AES since Crypto++ 6.0 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Enc : public Base { @@ -77,7 +77,7 @@ class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentat /// \brief Provides implementation for decryption transformation /// \details Dec provides implementation for decryption transformation. All key sizes are supported. /// The library only provides Rijndael with 128-bit blocks, and not 192-bit or 256-bit blocks - /// \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, + /// \since Rijndael since Crypto++ 3.1, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0, /// Power8 AES since Crypto++ 6.0 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Dec : public Base { diff --git a/rw.h b/rw.h index 21f60d03..48aa2891 100644 --- a/rw.h +++ b/rw.h @@ -7,6 +7,7 @@ /// speedup calculations. /// \sa RSA signatures and Rabin–Williams /// signatures: the state of the art (20080131), Section 6, The tweaks e and f. +/// \since Crypto++ 3.0 #ifndef CRYPTOPP_RW_H #define CRYPTOPP_RW_H @@ -18,7 +19,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief Rabin-Williams trapdoor function using the public key -/// \since Crypto++ 2.0, Tweaked roots using e and f since Crypto++ 5.6.4 +/// \since Crypto++ 3.0, Tweaked roots using e and f since Crypto++ 5.6.4 class CRYPTOPP_DLL RWFunction : public TrapdoorFunction, public PublicKey { typedef RWFunction ThisClass; @@ -54,7 +55,7 @@ protected: }; /// \brief Rabin-Williams trapdoor function using the private key -/// \since Crypto++ 2.0, Tweaked roots using e and f since Crypto++ 5.6.4 +/// \since Crypto++ 3.0, Tweaked roots using e and f since Crypto++ 5.6.4 class CRYPTOPP_DLL InvertibleRWFunction : public RWFunction, public TrapdoorFunctionInverse, public PrivateKey { typedef InvertibleRWFunction ThisClass; @@ -123,6 +124,7 @@ protected: }; /// \brief Rabin-Williams keys +/// \since Crypto++ 3.0 struct RW { CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "RW";} @@ -133,6 +135,7 @@ struct RW /// \brief Rabin-Williams signature scheme /// \tparam STANDARD signature standard /// \tparam H hash transformation +/// \since Crypto++ 3.0 template struct RWSS : public TF_SS { diff --git a/seal.h b/seal.h index 861bd35c..d8826aec 100644 --- a/seal.h +++ b/seal.h @@ -2,6 +2,7 @@ /// \file seal.h /// \brief Classes for SEAL stream cipher +/// \since Crypto++ 2.2 #ifndef CRYPTOPP_SEAL_H #define CRYPTOPP_SEAL_H @@ -13,6 +14,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief SEAL stream cipher information /// \tparam B Endianness of the stream cipher +/// \since Crypto++ 2.2 template struct SEAL_Info : public FixedKeyLength<20, SimpleKeyingInterface::INTERNALLY_GENERATED_IV, 4> { @@ -21,6 +23,7 @@ struct SEAL_Info : public FixedKeyLength<20, SimpleKeyingInterface::INTERNALLY_G /// \brief SEAL stream cipher operation /// \tparam B Endianness of the stream cipher +/// \since Crypto++ 2.2 template class CRYPTOPP_NO_VTABLE SEAL_Policy : public AdditiveCipherConcretePolicy, public SEAL_Info { @@ -43,6 +46,7 @@ private: /// \brief SEAL stream cipher /// \tparam B Endianness of the stream cipher /// \sa SEAL +/// \since Crypto++ 2.2 template struct SEAL : public SEAL_Info, public SymmetricCipherDocumentation { diff --git a/serpent.h b/serpent.h index 37d53995..4f76e056 100644 --- a/serpent.h +++ b/serpent.h @@ -12,6 +12,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief Serpent block cipher information +/// \since Crypto++ 3.1 struct Serpent_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>, public FixedRounds<32> { CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "Serpent";} @@ -19,6 +20,7 @@ struct Serpent_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16 /// \brief Serpent block cipher /// \sa Serpent +/// \since Crypto++ 3.1 class Serpent : public Serpent_Info, public BlockCipherDocumentation { class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl diff --git a/square.h b/square.h index f1e9ee2c..962b229d 100644 --- a/square.h +++ b/square.h @@ -12,6 +12,7 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief Square block cipher information +/// \since Crypto++ 2.2 struct Square_Info : public FixedBlockSize<16>, public FixedKeyLength<16>, FixedRounds<8> { CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "Square";} @@ -19,6 +20,7 @@ struct Square_Info : public FixedBlockSize<16>, public FixedKeyLength<16>, Fixed /// \brief Square block cipher /// \sa Square +/// \since Crypto++ 2.2 class Square : public Square_Info, public BlockCipherDocumentation { class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl diff --git a/twofish.h b/twofish.h index 84b2bb53..16284b48 100644 --- a/twofish.h +++ b/twofish.h @@ -12,13 +12,15 @@ NAMESPACE_BEGIN(CryptoPP) /// \brief Twofish block cipher information +/// \since Crypto++ 3.1 struct Twofish_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>, FixedRounds<16> { CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "Twofish";} }; /// \brief Twofish block cipher -//~ \sa Twofish +/// \sa Twofish +/// \since Crypto++ 3.1 class Twofish : public Twofish_Info, public BlockCipherDocumentation { class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl