diff --git a/gost.h b/gost.h
index f24dc5a3..fe6e1576 100644
--- a/gost.h
+++ b/gost.h
@@ -12,6 +12,7 @@
NAMESPACE_BEGIN(CryptoPP)
/// \brief GOST block cipher information
+/// \since Crypto++ 2.1
struct GOST_Info : public FixedBlockSize<8>, public FixedKeyLength<32>
{
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "GOST";}
@@ -19,6 +20,7 @@ struct GOST_Info : public FixedBlockSize<8>, public FixedKeyLength<32>
/// \brief GOST block cipher
/// \sa GOST
+/// \since Crypto++ 2.1
class GOST : public GOST_Info, public BlockCipherDocumentation
{
/// \brief GOST block cipher default operation
diff --git a/hmac.h b/hmac.h
index 8367517d..dc69606d 100644
--- a/hmac.h
+++ b/hmac.h
@@ -13,6 +13,7 @@ NAMESPACE_BEGIN(CryptoPP)
/// \brief HMAC information
/// \details HMAC_Base derives from VariableKeyLength and MessageAuthenticationCode
+/// \since Crypto++ 2.1
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE HMAC_Base : public VariableKeyLength<16, 0, INT_MAX>, public MessageAuthenticationCode
{
public:
@@ -44,6 +45,7 @@ private:
/// \details HMAC derives from MessageAuthenticationCodeImpl. It calculates the HMAC using
/// HMAC(K, text) = H(K XOR opad, H(K XOR ipad, text)).
/// \sa HMAC
+/// \since Crypto++ 2.1
template
class HMAC : public MessageAuthenticationCodeImpl >
{
diff --git a/luc.h b/luc.h
index 3d021461..d38d5611 100644
--- a/luc.h
+++ b/luc.h
@@ -5,6 +5,7 @@
/// \details This class is here for historical and pedagogical interest. It has no practical advantages over other
/// trapdoor functions and probably shouldn't be used in production software. The discrete log based LUC schemes
/// defined later in this .h file may be of more practical interest.
+/// \since Crypto++ 2.1
#ifndef CRYPTOPP_LUC_H
#define CRYPTOPP_LUC_H
@@ -33,6 +34,7 @@ NAMESPACE_BEGIN(CryptoPP)
/// \details This class is here for historical and pedagogical interest. It has no practical advantages over other
/// trapdoor functions and probably shouldn't be used in production software. The discrete log based LUC schemes
/// defined later in this .h file may be of more practical interest.
+/// \since Crypto++ 2.1
class LUCFunction : public TrapdoorFunction, public PublicKey
{
typedef LUCFunction ThisClass;
@@ -72,6 +74,7 @@ protected:
/// \details This class is here for historical and pedagogical interest. It has no practical advantages over other
/// trapdoor functions and probably shouldn't be used in production software. The discrete log based LUC schemes
/// defined later in this .h file may be of more practical interest.
+/// \since Crypto++ 2.1
class InvertibleLUCFunction : public LUCFunction, public TrapdoorFunctionInverse, public PrivateKey
{
typedef InvertibleLUCFunction ThisClass;
@@ -124,6 +127,7 @@ protected:
};
/// \brief LUC cryptosystem
+/// \since Crypto++ 2.1
struct LUC
{
static std::string StaticAlgorithmName() {return "LUC";}
@@ -136,6 +140,7 @@ struct LUC
/// \details This class is here for historical and pedagogical interest. It has no practical advantages over other
/// trapdoor functions and probably shouldn't be used in production software. The discrete log based LUC schemes
/// defined later in this .h file may be of more practical interest.
+/// \since Crypto++ 2.1
template
struct LUCES : public TF_ES
{
@@ -147,6 +152,7 @@ struct LUCES : public TF_ES
/// \details This class is here for historical and pedagogical interest. It has no practical advantages over other
/// trapdoor functions and probably shouldn't be used in production software. The discrete log based LUC schemes
/// defined later in this .h file may be of more practical interest.
+/// \since Crypto++ 2.1
template
struct LUCSS : public TF_SS
{
@@ -179,7 +185,8 @@ private:
Integer m_p;
};
-/// _
+/// \brief LUC Precomputation
+/// \since Crypto++ 2.1
class DL_BasePrecomputation_LUC : public DL_FixedBasePrecomputation
{
public:
@@ -210,6 +217,7 @@ private:
};
/// \brief LUC GroupParameters specialization
+/// \since Crypto++ 2.1
class DL_GroupParameters_LUC : public DL_GroupParameters_IntegerBasedImpl
{
public:
@@ -240,6 +248,7 @@ private:
};
/// \brief GF(p) group parameters that default to safe primes
+/// \since Crypto++ 2.1
class DL_GroupParameters_LUC_DefaultSafePrime : public DL_GroupParameters_LUC
{
public:
@@ -250,6 +259,7 @@ protected:
};
/// \brief LUC HMP signature algorithm
+/// \since Crypto++ 2.1
class DL_Algorithm_LUC_HMP : public DL_ElgamalLikeSignatureAlgorithm
{
public:
@@ -265,6 +275,7 @@ public:
};
/// \brief LUC signature keys
+/// \since Crypto++ 2.1
struct DL_SignatureKeys_LUC
{
typedef DL_GroupParameters_LUC GroupParameters;
@@ -277,6 +288,7 @@ struct DL_SignatureKeys_LUC
/// \details This class is here for historical and pedagogical interest. It has no practical advantages over other
/// trapdoor functions and probably shouldn't be used in production software. The discrete log based LUC schemes
/// defined later in this .h file may be of more practical interest.
+/// \since Crypto++ 2.1
template
struct LUC_HMP : public DL_SS
{
@@ -296,7 +308,7 @@ struct DL_CryptoKeys_LUC
/// \tparam DHAES_MODE flag indicating if the MAC includes additional context parameters such as u·V, v·U and label
/// \tparam LABEL_OCTETS flag indicating if the label size is specified in octets or bits
/// \sa CofactorMultiplicationOption
-/// \since Crypto++ 4.0, Crypto++ 5.7 for Bouncy Castle and Botan compatibility
+/// \since Crypto++ 2.1, Crypto++ 5.7 for Bouncy Castle and Botan compatibility
template
struct LUC_IES
: public DL_ES<
diff --git a/oaep.h b/oaep.h
index ec4172b2..76be7f24 100644
--- a/oaep.h
+++ b/oaep.h
@@ -1,3 +1,9 @@
+// oaep.h - originally written and placed in the public domain by Wei Dai
+
+/// \file oaep.h
+/// \brief Classes for optimal asymmetric encryption padding
+/// \since Crypto++ 2.1
+
#ifndef CRYPTOPP_OAEP_H
#define CRYPTOPP_OAEP_H
@@ -8,6 +14,7 @@
NAMESPACE_BEGIN(CryptoPP)
/// \brief OAEP padding base class
+/// \since Crypto++ 2.1
class CRYPTOPP_DLL OAEP_Base : public PK_EncryptionMessageEncodingMethod
{
public:
@@ -23,7 +30,10 @@ protected:
};
/// \brief OAEP padding
+/// \tparam H HashTransformation derived class
+/// \tparam MGF MaskGeneratingFunction derived class
/// \sa EME-OAEP, for use with classes derived from TF_ES
+/// \since Crypto++ 2.1
template
class OAEP : public OAEP_Base, public EncryptionStandard
{
diff --git a/pssr.h b/pssr.h
index 377900ee..7122549d 100644
--- a/pssr.h
+++ b/pssr.h
@@ -2,6 +2,7 @@
/// \file pssr.h
/// \brief Classes for probablistic signature schemes
+/// \since Crypto++ 2.1
#ifndef CRYPTOPP_PSSR_H
#define CRYPTOPP_PSSR_H
@@ -17,6 +18,7 @@
NAMESPACE_BEGIN(CryptoPP)
/// \brief PSSR Message Encoding Method interface
+/// \since Crypto++ 2.1
class CRYPTOPP_DLL PSSR_MEM_Base : public PK_RecoverableSignatureMessageEncodingMethod
{
public:
@@ -46,6 +48,7 @@ private:
/// \brief PSSR Message Encoding Method with Hash Identifier
/// \tparam USE_HASH_ID flag indicating whether the HashId is used
+/// \since Crypto++ 2.1
template class PSSR_MEM_BaseWithHashId;
/// \brief PSSR Message Encoding Method with Hash Identifier
@@ -54,6 +57,7 @@ template<> class PSSR_MEM_BaseWithHashId : public EMSA2HashIdLookup class PSSR_MEM_BaseWithHashId : public PSSR_MEM_Base {};
/// \brief PSSR Message Encoding Method
@@ -65,6 +69,7 @@ template<> class PSSR_MEM_BaseWithHashId : public PSSR_MEM_Base {};
/// \details If ALLOW_RECOVERY is true, the the signature scheme provides message recovery. If
/// ALLOW_RECOVERY is false, the the signature scheme is appendix, and the message must be
/// provided during verification.
+/// \since Crypto++ 2.1
template
class PSSR_MEM : public PSSR_MEM_BaseWithHashId
{
@@ -80,6 +85,7 @@ public:
/// \brief Probabilistic Signature Scheme with Recovery
/// \details Signature Schemes with Recovery encode the message with the signature.
/// \sa PSSR-MGF1
+/// \since Crypto++ 2.1
struct PSSR : public SignatureStandard
{
typedef PSSR_MEM SignatureMessageEncodingMethod;
@@ -88,6 +94,7 @@ struct PSSR : public SignatureStandard
/// \brief Probabilistic Signature Scheme with Appendix
/// \details Signature Schemes with Appendix require the message to be provided during verification.
/// \sa PSS-MGF1
+/// \since Crypto++ 2.1
struct PSS : public SignatureStandard
{
typedef PSSR_MEM SignatureMessageEncodingMethod;
diff --git a/ripemd.h b/ripemd.h
index e1f5081f..b5fbb4ae 100644
--- a/ripemd.h
+++ b/ripemd.h
@@ -13,6 +13,7 @@ NAMESPACE_BEGIN(CryptoPP)
/// \brief RIPEMD-160 message digest
/// \details Digest size is 160-bits.
/// \sa RIPEMD-160
+/// \since Crypto++ 2.1
class RIPEMD160 : public IteratedHashWithStaticTransform
{
public:
@@ -24,6 +25,7 @@ public:
/// \brief RIPEMD-320 message digest
/// \details Digest size is 320-bits.
/// \sa RIPEMD-320
+/// \since Crypto++ 2.1
class RIPEMD320 : public IteratedHashWithStaticTransform
{
public:
@@ -36,6 +38,7 @@ public:
/// \details Digest size is 128-bits.
/// \warning RIPEMD-128 is considered insecure, and should not be used unless you absolutely need it for compatibility.
/// \sa RIPEMD-128
+/// \since Crypto++ 2.1
class RIPEMD128 : public IteratedHashWithStaticTransform
{
public:
@@ -48,6 +51,7 @@ public:
/// \details Digest size is 256-bits.
/// \warning RIPEMD-256 is considered insecure, and should not be used unless you absolutely need it for compatibility.
/// \sa RIPEMD-256
+/// \since Crypto++ 2.1
class RIPEMD256 : public IteratedHashWithStaticTransform
{
public:
diff --git a/shark.h b/shark.h
index 4072667f..09459adc 100644
--- a/shark.h
+++ b/shark.h
@@ -2,6 +2,7 @@
/// \file shark.h
/// \brief Classes for the SHARK block cipher
+/// \since Crypto++ 2.1
#ifndef CRYPTOPP_SHARK_H
#define CRYPTOPP_SHARK_H
@@ -13,6 +14,7 @@
NAMESPACE_BEGIN(CryptoPP)
/// \brief SHARK block cipher information
+/// \since Crypto++ 2.1
struct SHARK_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, public VariableRounds<6, 2>
{
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "SHARK-E";}
@@ -20,9 +22,11 @@ struct SHARK_Info : public FixedBlockSize<8>, public FixedKeyLength<16>, public
/// \brief SHARK block cipher
/// SHARK-E
+/// \since Crypto++ 2.1
class SHARK : public SHARK_Info, public BlockCipherDocumentation
{
/// \brief SHARK block cipher default operation
+ /// \since Crypto++ 2.1
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl
{
public:
@@ -34,6 +38,7 @@ class SHARK : public SHARK_Info, public BlockCipherDocumentation
};
/// \brief SHARK block cipher encryption operation
+ /// \since Crypto++ 2.1
class CRYPTOPP_NO_VTABLE Enc : public Base
{
public:
@@ -48,6 +53,7 @@ class SHARK : public SHARK_Info, public BlockCipherDocumentation
};
/// \brief SHARK block cipher decryption operation
+ /// \since Crypto++ 2.1
class CRYPTOPP_NO_VTABLE Dec : public Base
{
public:
diff --git a/tiger.h b/tiger.h
index aaca69a0..107a5d1c 100644
--- a/tiger.h
+++ b/tiger.h
@@ -1,3 +1,9 @@
+// tiger.h - originally written and placed in the public domain by Wei Dai
+
+/// \file tiger.h
+/// \brief Classes for the Tiger message digest
+/// \since Crypto++ 2.1
+
#ifndef CRYPTOPP_TIGER_H
#define CRYPTOPP_TIGER_H
@@ -12,7 +18,9 @@
NAMESPACE_BEGIN(CryptoPP)
-/// Tiger
+/// \brief Tiger message digest
+/// \sa Tiger
+/// \since Crypto++ 2.1
class Tiger : public IteratedHashWithStaticTransform
{
public: