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: