From c77029f142e053ee6b1735144abe82baf4bd96d9 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Wed, 26 Oct 2016 00:38:51 -0400 Subject: [PATCH] Updated documentation for Crypto++ 1.0 algorithms --- arc4.h | 14 +++++++++++--- blowfish.h | 3 ++- des.h | 6 +++++- dh.h | 10 ++++++---- dh2.h | 22 +++++++++++++++------- dsa.h | 1 + elgamal.h | 27 +++++++++++++++++++-------- gfpcrypt.h | 4 +++- ida.h | 34 +++++++++++++++++++++++++++++----- idea.h | 2 ++ md5.h | 5 ++++- rc5.h | 2 ++ rsa.h | 15 +++++++++++++++ sha.h | 25 ++++++++++++++++++++----- wake.h | 3 +++ zdeflate.h | 5 +++++ zinflate.h | 12 ++++++++---- 17 files changed, 150 insertions(+), 40 deletions(-) diff --git a/arc4.h b/arc4.h index 6c02524c..21268076 100644 --- a/arc4.h +++ b/arc4.h @@ -16,8 +16,9 @@ NAMESPACE_BEGIN(CryptoPP) namespace Weak1 { //! \class ARC4_Base -//! \brief Class specific methods used to operate the cipher. +//! \brief ARC4 base class //! \details Implementations and overrides in \p Base apply to both \p ENCRYPTION and \p DECRYPTION directions +//! \since Crypto++ 1.0 class CRYPTOPP_NO_VTABLE ARC4_Base : public VariableKeyLength<16, 1, 256>, public RandomNumberGenerator, public SymmetricCipher, public SymmetricCipherDocumentation { public: @@ -45,11 +46,14 @@ protected: byte m_x, m_y; }; -//! Alleged RC4 +//! \class ARC4 +//! \brief Alleged RC4 +//! \sa Alleged RC4 +//! \since Crypto++ 1.0 DOCUMENTED_TYPEDEF(SymmetricCipherFinal, ARC4) //! \class MARC4_Base -//! \brief Class specific methods used to operate the cipher. +//! \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 class CRYPTOPP_NO_VTABLE MARC4_Base : public ARC4_Base @@ -64,6 +68,10 @@ protected: unsigned int GetDefaultDiscardBytes() const {return 256;} }; +//! \class MARC4 +//! \brief Modified Alleged RC4 +//! \sa Alleged RC4 +//! \since Crypto++ 1.0 DOCUMENTED_TYPEDEF(SymmetricCipherFinal, MARC4) } diff --git a/blowfish.h b/blowfish.h index dc770c9e..740fd375 100644 --- a/blowfish.h +++ b/blowfish.h @@ -20,8 +20,9 @@ struct Blowfish_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 4, // Blowfish -//! \class Blowfish_Info +//! \class Blowfish //! \brief Blowfish block cipher +//! \since Crypto++ 1.0 class Blowfish : public Blowfish_Info, public BlockCipherDocumentation { //! \class Base diff --git a/des.h b/des.h index 3e686dc0..0b621b1d 100644 --- a/des.h +++ b/des.h @@ -39,6 +39,7 @@ struct DES_Info : public FixedBlockSize<8>, public FixedKeyLength<8> //! (the least significant bits of each byte) in the key. However you can use CheckKeyParityBits() //! and CorrectKeyParityBits() to check or correct the parity bits if you wish. //! \sa DES +//! \since Crypto++ 1.0 class DES : public DES_Info, public BlockCipherDocumentation { //! \class Base @@ -69,7 +70,8 @@ struct DES_EDE2_Info : public FixedBlockSize<8>, public FixedKeyLength<16> //! \class DES_EDE2 //! \brief 2-key TripleDES block cipher -/// \sa DES-EDE2 +//! \sa DES-EDE2 +//! \since Crypto++ 1.0 class DES_EDE2 : public DES_EDE2_Info, public BlockCipherDocumentation { //! \class Base @@ -99,6 +101,7 @@ struct DES_EDE3_Info : public FixedBlockSize<8>, public FixedKeyLength<24> //! \class DES_EDE3 //! \brief 3-key TripleDES block cipher //! \sa DES-EDE3 +//! \since Crypto++ 1.0 class DES_EDE3 : public DES_EDE3_Info, public BlockCipherDocumentation { //! \class Base @@ -128,6 +131,7 @@ struct DES_XEX3_Info : public FixedBlockSize<8>, public FixedKeyLength<24> //! \class DES_XEX3 //! \brief DESX block cipher //! \sa DES-XEX3, AKA DESX +//! \since Crypto++ 1.0 class DES_XEX3 : public DES_XEX3_Info, public BlockCipherDocumentation { //! \class Base diff --git a/dh.h b/dh.h index f0558a89..ddc1534e 100644 --- a/dh.h +++ b/dh.h @@ -19,6 +19,8 @@ NAMESPACE_BEGIN(CryptoPP) //! \details A Diffie-Hellman 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. +//! \sa DL_SimpleKeyAgreementDomainBase +//! \since Crypto++ 1.0 template class DH_Domain : public DL_SimpleKeyAgreementDomainBase { @@ -30,6 +32,10 @@ public: typedef DL_KeyAgreementAlgorithm_DH DH_Algorithm; typedef DH_Domain Domain; +#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 + virtual ~DH_Domain() {} +#endif + //! \brief Construct a Diffie-Hellman domain DH_Domain() {} @@ -153,10 +159,6 @@ public: {return GroupParameters::StaticAlgorithmNamePrefix() + DH_Algorithm::StaticAlgorithmName();} std::string AlgorithmName() const {return StaticAlgorithmName();} -#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 - virtual ~DH_Domain() {} -#endif - private: const DL_KeyAgreementAlgorithm & GetKeyAgreementAlgorithm() const {return Singleton().Ref();} diff --git a/dh2.h b/dh2.h index 85db8861..83f7552e 100644 --- a/dh2.h +++ b/dh2.h @@ -1,7 +1,6 @@ // dh2.h - written and placed in the public domain by Wei Dai -//! \file -//! \headerfile dh2.h +//! \file dh2.h //! \brief Classes for Diffie-Hellman authenticated key exchange #ifndef CRYPTOPP_DH2_H @@ -11,12 +10,25 @@ NAMESPACE_BEGIN(CryptoPP) -/// Unified Diffie-Hellman +//! \class DH2 +//! \brief Unified Diffie-Hellman +//! \details A Diffie-Hellman 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. +//! \sa AuthenticatedKeyAgreementDomain, Unified Diffie-Hellman +//! \since Crypto++ 1.0 class DH2 : public AuthenticatedKeyAgreementDomain { public: + +#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 + virtual ~DH2() {} +#endif + + //! \brief Construct a DH2 DH2(SimpleKeyAgreementDomain &domain) : d1(domain), d2(domain) {} + //! \brief Construct a DH2 DH2(SimpleKeyAgreementDomain &staticDomain, SimpleKeyAgreementDomain &ephemeralDomain) : d1(staticDomain), d2(ephemeralDomain) {} @@ -52,10 +64,6 @@ public: const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey, bool validateStaticOtherPublicKey=true) const; -#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 - virtual ~DH2() {} -#endif - protected: SimpleKeyAgreementDomain &d1, &d2; }; diff --git a/dsa.h b/dsa.h index 41c95062..faaa2fba 100644 --- a/dsa.h +++ b/dsa.h @@ -33,6 +33,7 @@ enum DSASignatureFormat { //! \details This function converts between these formats, and returns length //! of signature in the target format. If toFormat == DSA_P1363, then //! bufferSize must equal publicKey.SignatureLength() +//! \since Crypto++ 1.0 size_t DSAConvertSignatureFormat(byte *buffer, size_t bufferSize, DSASignatureFormat toFormat, const byte *signature, size_t signatureLen, DSASignatureFormat fromFormat); diff --git a/elgamal.h b/elgamal.h index 93eccd7f..934256a8 100644 --- a/elgamal.h +++ b/elgamal.h @@ -16,11 +16,19 @@ NAMESPACE_BEGIN(CryptoPP) +//! \class ElGamalBase +//! \brief ElGamal key agreement and encryption schemes base class +//! \since Crypto++ 1.0 class CRYPTOPP_NO_VTABLE ElGamalBase : public DL_KeyAgreementAlgorithm_DH, public DL_KeyDerivationAlgorithm, public DL_SymmetricEncryptionAlgorithm { public: + +#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 + virtual ~ElGamalBase() {} +#endif + void Derive(const DL_GroupParameters &groupParams, byte *derivedKey, size_t derivedLength, const Integer &agreedElement, const Integer &ephemeralPublicKey, const NameValuePairs &derivationParams) const { CRYPTOPP_UNUSED(groupParams), CRYPTOPP_UNUSED(ephemeralPublicKey), CRYPTOPP_UNUSED(derivationParams); @@ -86,16 +94,20 @@ public: } virtual const DL_GroupParameters_GFP & GetGroupParameters() const =0; - -#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 - virtual ~ElGamalBase() {} -#endif }; +//! \class ElGamalObjectImpl +//! \brief ElGamal key agreement and encryption schemes default implementation +//! \since Crypto++ 1.0 template class ElGamalObjectImpl : public DL_ObjectImplBase, public ElGamalBase { public: + +#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 + virtual ~ElGamalObjectImpl() {} +#endif + size_t FixedMaxPlaintextLength() const {return this->MaxPlaintextLength(FixedCiphertextLength());} size_t FixedCiphertextLength() const {return this->CiphertextLength(0);} @@ -104,16 +116,14 @@ public: DecodingResult FixedLengthDecrypt(RandomNumberGenerator &rng, const byte *cipherText, byte *plainText) const {return Decrypt(rng, cipherText, FixedCiphertextLength(), plainText);} -#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 - virtual ~ElGamalObjectImpl() {} -#endif - protected: const DL_KeyAgreementAlgorithm & GetKeyAgreementAlgorithm() const {return *this;} const DL_KeyDerivationAlgorithm & GetKeyDerivationAlgorithm() const {return *this;} const DL_SymmetricEncryptionAlgorithm & GetSymmetricEncryptionAlgorithm() const {return *this;} }; +//! \class ElGamalKeys +//! \brief ElGamal key agreement and encryption schemes keys struct ElGamalKeys { typedef DL_CryptoKeys_GFP::GroupParameters GroupParameters; @@ -123,6 +133,7 @@ struct ElGamalKeys //! \class ElGamal //! \brief ElGamal encryption scheme with non-standard padding +//! \since Crypto++ 1.0 struct ElGamal { typedef DL_CryptoSchemeOptions SchemeOptions; diff --git a/gfpcrypt.h b/gfpcrypt.h index 24f6e6eb..04a5a1ef 100644 --- a/gfpcrypt.h +++ b/gfpcrypt.h @@ -436,6 +436,7 @@ public: //! \brief DSA signature scheme //! \tparam H HashTransformation derived class //! \sa DSA-1363 +//! \since Crypto++ 1.0 for DSA, Crypto++ 5.6.2 for DSA2 template struct GDSA : public DL_SS< DL_SignatureKeys_GFP, @@ -508,6 +509,7 @@ struct DL_Keys_DSA //! \tparam H HashTransformation derived class //! \details The class is named DSA2 instead of DSA for backwards compatibility because DSA was a non-template class. //! \sa DSA, as specified in FIPS 186-3 +//! \since Crypto++ 1.0 for DSA, Crypto++ 5.6.2 for DSA2 template class DSA2 : public DL_SS< DL_Keys_DSA, @@ -529,7 +531,7 @@ public: }; //! DSA with SHA-1, typedef'd for backwards compatibility -typedef DSA2 DSA; +typedef DSA2 DSA; CRYPTOPP_DLL_TEMPLATE_CLASS DL_PublicKey_GFP; CRYPTOPP_DLL_TEMPLATE_CLASS DL_PrivateKey_GFP; diff --git a/ida.h b/ida.h index 525a7d65..0532a816 100644 --- a/ida.h +++ b/ida.h @@ -1,7 +1,7 @@ // ida.h - written and placed in the public domain by Wei Dai //! \file ida.h -//! \brief Classes for Information Dispersal Algorithm (IDA) +//! \brief Classes for Rabin's Information Dispersal and Shamir's Secret Sharing algorithms #ifndef CRYPTOPP_IDA_H #define CRYPTOPP_IDA_H @@ -16,7 +16,9 @@ NAMESPACE_BEGIN(CryptoPP) -/// base class for secret sharing and information dispersal +//! \class RawIDA +//! \brief Secret sharing and information dispersal base class +//! \since Crypto++ 1.0 class RawIDA : public AutoSignaling > > { public: @@ -61,10 +63,15 @@ protected: SecBlock m_u, m_w, m_y; }; -/// a variant of Shamir's Secret Sharing Algorithm +//! \class SecretSharing +//! \brief Shamir's Secret Sharing Algorithm +//! \details SecretSharing is a variant of Shamir's secret sharing algorithm +//! \sa SecretRecovery, SecretRecovery, InformationDispersal, InformationRecovery +//! \since Crypto++ 1.0 class SecretSharing : public CustomFlushPropagation { public: + //! \brief Construct a SecretSharing SecretSharing(RandomNumberGenerator &rng, int threshold, int nShares, BufferedTransformation *attachment=NULL, bool addPadding=true) : m_rng(rng), m_ida(new OutputProxy(*this, true)) { @@ -82,10 +89,15 @@ protected: bool m_pad; }; -/// a variant of Shamir's Secret Sharing Algorithm +//! \class SecretRecovery +//! \brief Shamir's Secret Sharing Algorithm +//! \details SecretSharing is a variant of Shamir's secret sharing algorithm +//! \sa SecretRecovery, SecretRecovery, InformationDispersal, InformationRecovery +//! \since Crypto++ 1.0 class SecretRecovery : public RawIDA { public: + //! \brief Construct a SecretRecovery SecretRecovery(int threshold, BufferedTransformation *attachment=NULL, bool removePadding=true) : RawIDA(attachment) {IsolatedInitialize(MakeParameters("RecoveryThreshold", threshold)("RemovePadding", removePadding));} @@ -100,9 +112,16 @@ protected: }; /// a variant of Rabin's Information Dispersal Algorithm + +//! \class InformationDispersal +//! \brief Rabin's Information Dispersal Algorithm +//! \details InformationDispersal is a variant of Rabin's information dispersal algorithm +//! \sa SecretRecovery, SecretRecovery, InformationDispersal, InformationRecovery +//! \since Crypto++ 1.0 class InformationDispersal : public CustomFlushPropagation { public: + //! \brief Construct a InformationDispersal InformationDispersal(int threshold, int nShares, BufferedTransformation *attachment=NULL, bool addPadding=true) : m_ida(new OutputProxy(*this, true)), m_pad(false), m_nextChannel(0) { @@ -120,10 +139,15 @@ protected: unsigned int m_nextChannel; }; -/// a variant of Rabin's Information Dispersal Algorithm +//! \class InformationRecovery +//! \brief Rabin's Information Dispersal Algorithm +//! \details InformationDispersal is a variant of Rabin's information dispersal algorithm +//! \sa SecretRecovery, SecretRecovery, InformationDispersal, InformationRecovery +//! \since Crypto++ 1.0 class InformationRecovery : public RawIDA { public: + //! \brief Construct a InformationRecovery InformationRecovery(int threshold, BufferedTransformation *attachment=NULL, bool removePadding=true) : RawIDA(attachment), m_pad(false) {IsolatedInitialize(MakeParameters("RecoveryThreshold", threshold)("RemovePadding", removePadding));} diff --git a/idea.h b/idea.h index 501308b2..dc1981b8 100644 --- a/idea.h +++ b/idea.h @@ -13,6 +13,7 @@ NAMESPACE_BEGIN(CryptoPP) //! \class IDEA_Info //! \brief IDEA block cipher information +//! \since Crypto++ 1.0 struct IDEA_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, public FixedRounds<8> { CRYPTOPP_CONSTEXPR static const char *StaticAlgorithmName() {return "IDEA";} @@ -21,6 +22,7 @@ struct IDEA_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, public F //! \class IDEA //! \brief IDEA block cipher //! \sa IDEA +//! \since Crypto++ 1.0 class IDEA : public IDEA_Info, public BlockCipherDocumentation { public: // made public for internal purposes diff --git a/md5.h b/md5.h index d3791230..6baadd6e 100644 --- a/md5.h +++ b/md5.h @@ -7,7 +7,10 @@ NAMESPACE_BEGIN(CryptoPP) namespace Weak1 { -//! MD5 +//! \class MD5 +//! \brief MD5 message digest +//! \sa MD5 +//! \since Crypto++ 1.0 class MD5 : public IteratedHashWithStaticTransform { public: diff --git a/rc5.h b/rc5.h index b76a5217..feab5fbd 100644 --- a/rc5.h +++ b/rc5.h @@ -13,6 +13,7 @@ NAMESPACE_BEGIN(CryptoPP) //! \class RC5_Info //! \brief RC5 block cipher information +//! \since Crypto++ 1.0 struct RC5_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 0, 255>, public VariableRounds<16> { CRYPTOPP_CONSTEXPR static const char *StaticAlgorithmName() {return "RC5";} @@ -22,6 +23,7 @@ struct RC5_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 0, 255> //! \class RC5 //! \brief RC5 block cipher //! \sa RC5 +//! \since Crypto++ 1.0 class RC5 : public RC5_Info, public BlockCipherDocumentation { class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl diff --git a/rsa.h b/rsa.h index df401043..a7529e90 100644 --- a/rsa.h +++ b/rsa.h @@ -20,6 +20,7 @@ NAMESPACE_BEGIN(CryptoPP) //! \class RSAFunction //! \brief RSA trapdoor function using the public key +//! \since Crypto++ 1.0 class CRYPTOPP_DLL RSAFunction : public TrapdoorFunction, public X509PublicKey { typedef RSAFunction ThisClass; @@ -59,6 +60,7 @@ protected: //! \class InvertibleRSAFunction //! \brief RSA trapdoor function using the private key +//! \since Crypto++ 1.0 class CRYPTOPP_DLL InvertibleRSAFunction : public RSAFunction, public TrapdoorFunctionInverse, public PKCS8PrivateKey { typedef InvertibleRSAFunction ThisClass; @@ -132,6 +134,7 @@ protected: //! \class RSAFunction_ISO //! \brief RSA trapdoor function using the public key +//! \since Crypto++ 1.0 class CRYPTOPP_DLL RSAFunction_ISO : public RSAFunction { public: @@ -141,6 +144,7 @@ public: //! \class InvertibleRSAFunction_ISO //! \brief RSA trapdoor function using the private key +//! \since Crypto++ 1.0 class CRYPTOPP_DLL InvertibleRSAFunction_ISO : public InvertibleRSAFunction { public: @@ -150,6 +154,7 @@ public: //! \class RSA //! \brief RSA algorithm +//! \since Crypto++ 1.0 struct CRYPTOPP_DLL RSA { CRYPTOPP_CONSTEXPR static const char * CRYPTOPP_API StaticAlgorithmName() {return "RSA";} @@ -161,6 +166,7 @@ struct CRYPTOPP_DLL RSA //! \brief RSA encryption algorithm //! \tparam STANDARD signature standard //! \sa RSA cryptosystem +//! \since Crypto++ 1.0 template struct RSAES : public TF_ES { @@ -172,6 +178,7 @@ struct RSAES : public TF_ES //! \tparam H hash transformation //! \details See documentation of PKCS1v15 for a list of hash functions that can be used with it. //! \sa RSA signature scheme with appendix +//! \since Crypto++ 1.0 template struct RSASS : public TF_SS { @@ -179,6 +186,7 @@ struct RSASS : public TF_SS //! \class RSA_ISO //! \brief RSA algorithm +//! \since Crypto++ 1.0 struct CRYPTOPP_DLL RSA_ISO { CRYPTOPP_CONSTEXPR static const char * CRYPTOPP_API StaticAlgorithmName() {return "RSA-ISO";} @@ -189,6 +197,7 @@ struct CRYPTOPP_DLL RSA_ISO //! \class RSASS_ISO //! \brief RSA signature algorithm //! \tparam H hash transformation +//! \since Crypto++ 1.0 template struct RSASS_ISO : public TF_SS { @@ -211,25 +220,31 @@ DOCUMENTED_TYPEDEF(RSAES >::Encryptor, RSAES_OAEP_SHA_Encryptor); #ifdef CRYPTOPP_DOXYGEN_PROCESSING //! \brief \ref RSASS "RSASS::Signer" typedef //! \details RSA signature schemes defined in PKCS #1 v2.0 +//! \since Crypto++ 1.0 class RSASSA_PKCS1v15_SHA_Signer : public RSASS::Signer {}; //! \brief \ref RSASS "RSASS::Verifier" typedef //! \details RSA signature schemes defined in PKCS #1 v2.0 +//! \since Crypto++ 1.0 class RSASSA_PKCS1v15_SHA_Verifier : public RSASS::Verifier {}; namespace Weak { //! \brief \ref RSASS "RSASS::Signer" typedef //! \details RSA signature schemes defined in PKCS #1 v2.0 +//! \since Crypto++ 1.0 class RSASSA_PKCS1v15_MD2_Signer : public RSASS::Signer {}; //! \brief \ref RSASS "RSASS::Verifier" typedef //! \details RSA signature schemes defined in PKCS #1 v2.0 +//! \since Crypto++ 1.0 class RSASSA_PKCS1v15_MD2_Verifier : public RSASS::Verifier {}; //! \brief \ref RSASS "RSASS::Signer" typedef //! \details RSA signature schemes defined in PKCS #1 v2.0 +//! \since Crypto++ 1.0 class RSASSA_PKCS1v15_MD5_Signer : public RSASS::Signer {}; //! \brief \ref RSASS "RSASS::Verifier" typedef //! \details RSA signature schemes defined in PKCS #1 v2.0 +//! \since Crypto++ 1.0 class RSASSA_PKCS1v15_MD5_Verifier : public RSASS::Verifier {}; } diff --git a/sha.h b/sha.h index 86151cc2..f22d0cff 100644 --- a/sha.h +++ b/sha.h @@ -18,7 +18,10 @@ NAMESPACE_BEGIN(CryptoPP) -/// SHA-1 +//! \class SHA1 +//! \brief SHA-1 message digest +//! \sa SHA-1 +//! \since Crypto++ 1.0 class CRYPTOPP_DLL SHA1 : public IteratedHashWithStaticTransform { public: @@ -29,7 +32,10 @@ public: typedef SHA1 SHA; // for backwards compatibility -//! implements the SHA-256 standard +//! \class SHA256 +//! \brief SHA-256 message digest +//! \sa SHA-256 +//! \since Crypto++ 4.0 class CRYPTOPP_DLL SHA256 : public IteratedHashWithStaticTransform { public: @@ -41,7 +47,10 @@ public: CRYPTOPP_CONSTEXPR static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-256";} }; -//! implements the SHA-224 standard +//! \class SHA224 +//! \brief SHA-224 message digest +//! \sa SHA-224 +//! \since Crypto++ 4.0 class CRYPTOPP_DLL SHA224 : public IteratedHashWithStaticTransform { public: @@ -53,7 +62,10 @@ public: CRYPTOPP_CONSTEXPR static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-224";} }; -//! implements the SHA-512 standard +//! \class SHA512 +//! \brief SHA-512 message digest +//! \sa SHA-512 +//! \since Crypto++ 4.0 class CRYPTOPP_DLL SHA512 : public IteratedHashWithStaticTransform { public: @@ -62,7 +74,10 @@ public: CRYPTOPP_CONSTEXPR static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-512";} }; -//! implements the SHA-384 standard +//! \class SHA384 +//! \brief SHA-384 message digest +//! \sa SHA-384 +//! \since Crypto++ 4.0 class CRYPTOPP_DLL SHA384 : public IteratedHashWithStaticTransform { public: diff --git a/wake.h b/wake.h index 972216d3..14c38140 100644 --- a/wake.h +++ b/wake.h @@ -15,6 +15,7 @@ NAMESPACE_BEGIN(CryptoPP) //! \class WAKE_OFB_Info //! \brief WAKE stream cipher information //! \tparam B Endianess of the stream cipher +//! \since Crypto++ 1.0 template struct WAKE_OFB_Info : public FixedKeyLength<32> { @@ -34,6 +35,7 @@ protected: //! \class WAKE_Policy //! \brief WAKE stream cipher operation //! \tparam B Endianess of the stream cipher +//! \since Crypto++ 1.0 template class CRYPTOPP_NO_VTABLE WAKE_Policy : public AdditiveCipherConcretePolicy, protected WAKE_Base { @@ -47,6 +49,7 @@ protected: //! \class WAKE_OFB //! \brief WAKE stream cipher //! \tparam B Endianess of the stream cipher +//! \since Crypto++ 1.0 template struct WAKE_OFB : public WAKE_OFB_Info, public SymmetricCipherDocumentation { diff --git a/zdeflate.h b/zdeflate.h index f6b42c21..a1608901 100644 --- a/zdeflate.h +++ b/zdeflate.h @@ -12,7 +12,9 @@ NAMESPACE_BEGIN(CryptoPP) +//! \class LowFirstBitWriter //! \brief Encoding table writer +//! \since Crypto++ 1.0 class LowFirstBitWriter : public Filter { public: @@ -36,6 +38,8 @@ protected: }; //! \class HuffmanEncoder +//! \brief Huffman Encoder +//! \since Crypto++ 1.0 class HuffmanEncoder { public: @@ -70,6 +74,7 @@ public: //! \class Deflator //! \brief DEFLATE compressor (RFC 1951) +//! \since Crypto++ 1.0 class Deflator : public LowFirstBitWriter { public: diff --git a/zinflate.h b/zinflate.h index 8c08ed08..26017261 100644 --- a/zinflate.h +++ b/zinflate.h @@ -8,7 +8,8 @@ NAMESPACE_BEGIN(CryptoPP) -//! _ +//! \class LowFirstBitReader +//! \since Crypto++ 1.0 class LowFirstBitReader { public: @@ -29,7 +30,9 @@ private: struct CodeLessThan; -//! Huffman Decoder +//! \class HuffmanDecoder +//! \brief Huffman Decoder +//! \since Crypto++ 1.0 class HuffmanDecoder { public: @@ -83,8 +86,9 @@ private: mutable std::vector > m_cache; }; -//! DEFLATE (RFC 1951) decompressor - +//! \class Inflator +//! \brief DEFLATE decompressor (RFC 1951) +//! \since Crypto++ 1.0 class Inflator : public AutoSignaling { public: