diff --git a/blake2.h b/blake2.h
index ef7819df..5c1655da 100644
--- a/blake2.h
+++ b/blake2.h
@@ -13,6 +13,7 @@
//! \details The library provides specialized SSE2, SSE4 and NEON version of the BLAKE2 compression
//! function. For best results under ARM NEON, specify both an architecture and cpu. For example:
//!
CXXFLAGS="-DNDEBUG -march=armv8-a+crc -mcpu=cortex-a53 ..."
+//! \since Crypto++ 5.6.4
#ifndef CRYPTOPP_BLAKE2_H
#define CRYPTOPP_BLAKE2_H
@@ -26,6 +27,7 @@ NAMESPACE_BEGIN(CryptoPP)
//! \class BLAKE2_Info
//! \brief BLAKE2 hash information
//! \tparam T_64bit flag indicating 64-bit
+//! \since Crypto++ 5.6.4
template
struct BLAKE2_Info : public VariableKeyLength<(T_64bit ? 64 : 32),0,(T_64bit ? 64 : 32),1,SimpleKeyingInterface::NOT_RESYNCHRONIZABLE>
{
@@ -47,6 +49,7 @@ struct BLAKE2_Info : public VariableKeyLength<(T_64bit ? 64 : 32),0,(T_64bit ? 6
//! \tparam T_64bit flag indicating 64-bit
//! \details BLAKE2b uses BLAKE2_ParameterBlock, while BLAKE2s
//! uses BLAKE2_ParameterBlock.
+//! \since Crypto++ 5.6.4
template
struct CRYPTOPP_NO_VTABLE BLAKE2_ParameterBlock
{
@@ -128,6 +131,7 @@ struct CRYPTOPP_NO_VTABLE BLAKE2_ParameterBlock
//! \tparam T_64bit flag indicating 64-bit
//! \details BLAKE2b uses BLAKE2_State, while BLAKE2s
//! uses BLAKE2_State.
+//! \since Crypto++ 5.6.4
template
struct CRYPTOPP_NO_VTABLE BLAKE2_State
{
@@ -153,6 +157,7 @@ struct CRYPTOPP_NO_VTABLE BLAKE2_State
//! \tparam T_64bit flag indicating 64-bit
//! \details BLAKE2b uses BLAKE2_Base, while BLAKE2s
//! uses BLAKE2_Base.
+//! \since Crypto++ 5.6.4
template
class BLAKE2_Base : public SimpleKeyingInterfaceImpl >
{
@@ -240,6 +245,7 @@ private:
//! method that accepts a ParameterBlock does not allow you to change it.
//! \sa Aumasson, Neves, Wilcox-O'Hearn and Winnerlein's
//! BLAKE2: simpler, smaller, fast as MD5 (2013.01.29).
+//! \since Crypto++ 5.6.4
class BLAKE2b : public BLAKE2_Base
{
public:
@@ -275,6 +281,7 @@ public:
//! method that accepts a ParameterBlock does not allow you to change it.
//! \sa Aumasson, Neves, Wilcox-O'Hearn and Winnerlein's
//! BLAKE2: simpler, smaller, fast as MD5 (2013.01.29).
+//! \since Crypto++ 5.6.4
class BLAKE2s : public BLAKE2_Base
{
public:
diff --git a/chacha.h b/chacha.h
index 462003d9..b1099a35 100644
--- a/chacha.h
+++ b/chacha.h
@@ -5,6 +5,7 @@
//! \file chacha.h
//! \brief Classes for ChaCha8, ChaCha12 and ChaCha20 stream ciphers
+//! \since Crypto++ 5.6.4
#ifndef CRYPTOPP_CHACHA_H
#define CRYPTOPP_CHACHA_H
@@ -16,6 +17,7 @@ NAMESPACE_BEGIN(CryptoPP)
//! \class ChaCha_Info
//! \brief ChaCha stream cipher information
+//! \since Crypto++ 5.6.4
template
struct ChaCha_Info : public VariableKeyLength<32, 16, 32, 16, SimpleKeyingInterface::UNIQUE_IV, 8>, public FixedRounds
{
@@ -26,6 +28,7 @@ struct ChaCha_Info : public VariableKeyLength<32, 16, 32, 16, SimpleKeyingInterf
//! \class ChaCha_Policy
//! \brief ChaCha stream cipher implementation
+//! \since Crypto++ 5.6.4
template
class CRYPTOPP_NO_VTABLE ChaCha_Policy : public AdditiveCipherConcretePolicy
{
@@ -46,6 +49,7 @@ protected:
//! \class ChaCha8
//! \brief ChaCha8 stream cipher
//! \sa ChaCha, a variant of Salsa20 (2008.01.28).
+//! \since Crypto++ 5.6.4
struct ChaCha8 : public ChaCha_Info<8>, public SymmetricCipherDocumentation
{
typedef SymmetricCipherFinal, AdditiveCipherTemplate<> >, ChaCha_Info<8> > Encryption;
@@ -55,6 +59,7 @@ struct ChaCha8 : public ChaCha_Info<8>, public SymmetricCipherDocumentation
//! \class ChaCha12
//! \brief ChaCha12 stream cipher
//! \sa ChaCha, a variant of Salsa20 (2008.01.28).
+//! \since Crypto++ 5.6.4
struct ChaCha12 : public ChaCha_Info<12>, public SymmetricCipherDocumentation
{
typedef SymmetricCipherFinal, AdditiveCipherTemplate<> >, ChaCha_Info<12> > Encryption;
@@ -64,6 +69,7 @@ struct ChaCha12 : public ChaCha_Info<12>, public SymmetricCipherDocumentation
//! \class ChaCha20
//! \brief ChaCha20 stream cipher
//! \sa ChaCha, a variant of Salsa20 (2008.01.28).
+//! \since Crypto++ 5.6.4
struct ChaCha20 : public ChaCha_Info<20>, public SymmetricCipherDocumentation
{
typedef SymmetricCipherFinal, AdditiveCipherTemplate<> >, ChaCha_Info<20> > Encryption;
diff --git a/fhmqv.h b/fhmqv.h
index 6a527b70..0e9a317b 100644
--- a/fhmqv.h
+++ b/fhmqv.h
@@ -6,6 +6,7 @@
//! \file fhmqv.h
//! \brief Classes for Fully Hashed Menezes-Qu-Vanstone key agreement in GF(p)
+//! \since Crypto++ 5.6.4
#include "gfpcrypt.h"
#include "algebra.h"
@@ -18,6 +19,7 @@ NAMESPACE_BEGIN(CryptoPP)
//! A Secure and Efficient Authenticated Diffie-Hellman Protocol.
//! Note: this is FHMQV, Protocol 5, from page 11; and not FHMQV-C.
//! \sa MQV, HMQV, FHMQV, and AuthenticatedKeyAgreementDomain
+//! \since Crypto++ 5.6.4
template
class FHMQV_Domain : public AuthenticatedKeyAgreementDomain
{
@@ -294,6 +296,7 @@ private:
//! A Secure and Efficient Authenticated Diffie-Hellman Protocol.
//! Note: this is FHMQV, Protocol 5, from page 11; and not FHMQV-C.
//! \sa FHMQV, MQV_Domain, HMQV_Domain, AuthenticatedKeyAgreementDomain
+//! \since Crypto++ 5.6.4
typedef FHMQV_Domain FHMQV;
NAMESPACE_END
diff --git a/hkdf.h b/hkdf.h
index 57c456b1..447d15dc 100644
--- a/hkdf.h
+++ b/hkdf.h
@@ -2,6 +2,7 @@
//! \file hkdf.h
//! \brief Classes for HKDF from RFC 5869
+//! \since Crypto++ 5.6.3
#ifndef CRYPTOPP_HASH_KEY_DERIVATION_FUNCTION_H
#define CRYPTOPP_HASH_KEY_DERIVATION_FUNCTION_H
@@ -30,6 +31,7 @@ public:
//! \tparam T HashTransformation class
//! \sa Cryptographic Extraction and Key Derivation: The HKDF Scheme
//! and HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
+//! \since Crypto++ 5.6.3
template
class HKDF : public KeyDerivationFunction
{
diff --git a/hmqv.h b/hmqv.h
index 697ae343..2aa4058b 100644
--- a/hmqv.h
+++ b/hmqv.h
@@ -6,6 +6,7 @@
//! \file hmqv.h
//! \brief Classes for Hashed Menezes-Qu-Vanstone key agreement in GF(p)
+//! \since Crypto++ 5.6.4
#include "gfpcrypt.h"
#include "algebra.h"
@@ -17,6 +18,7 @@ NAMESPACE_BEGIN(CryptoPP)
//! \details This implementation follows Hugo Krawczyk's HMQV: A High-Performance
//! Secure Diffie-Hellman Protocol. Note: this implements HMQV only. HMQV-C with Key Confirmation is not provided.
//! \sa MQV, HMQV, FHMQV, and AuthenticatedKeyAgreementDomain
+//! \since Crypto++ 5.6.4
template
class HMQV_Domain: public AuthenticatedKeyAgreementDomain
{
@@ -302,6 +304,7 @@ private:
//! \details This implementation follows Hugo Krawczyk's HMQV: A High-Performance
//! Secure Diffie-Hellman Protocol. Note: this implements HMQV only. HMQV-C with Key Confirmation is not provided.
//! \sa HMQV, MQV_Domain, FHMQV_Domain, AuthenticatedKeyAgreementDomain
+//! \since Crypto++ 5.6.4
typedef HMQV_Domain HMQV;
NAMESPACE_END
diff --git a/integer.h b/integer.h
index ffd8bce6..66267c5a 100644
--- a/integer.h
+++ b/integer.h
@@ -1,8 +1,11 @@
+// integer.h - written and placed in the public domain by Wei Dai
+
+//! \file integer.h
+//! \brief High performance arbitrary size integer class
+
#ifndef CRYPTOPP_INTEGER_H
#define CRYPTOPP_INTEGER_H
-/** \file */
-
#include "cryptlib.h"
#include "secblock.h"
#include "stdcpp.h"
diff --git a/keccak.h b/keccak.h
index 41302c79..9103963d 100644
--- a/keccak.h
+++ b/keccak.h
@@ -8,6 +8,7 @@
//! \details Keccak will likely change in the future to accomodate extensibility of the
//! round function and the XOF functions.
//! \sa Keccak
+//! \since Crypto++ 5.6.4
#ifndef CRYPTOPP_KECCAK_H
#define CRYPTOPP_KECCAK_H
@@ -38,6 +39,7 @@ NAMESPACE_BEGIN(CryptoPP)
//!
//!
//! \sa SHA3, Keccak_224, Keccak_256, Keccak_384 and Keccak_512.
+//! \since Crypto++ 5.6.4
class Keccak : public HashTransformation
{
public:
@@ -46,6 +48,7 @@ public:
//! \details Keccak is the base class for Keccak_224, Keccak_256, Keccak_384 and Keccak_512.
//! Library users should instantiate a derived class, and only use Keccak
//! as a base class reference or pointer.
+ //! \since Crypto++ 5.6.4
Keccak(unsigned int digestSize) : m_digestSize(digestSize) {Restart();}
unsigned int DigestSize() const {return m_digestSize;}
std::string AlgorithmName() const {return "Keccak-" + IntToString(m_digestSize*8);}
@@ -64,6 +67,7 @@ protected:
//! \class Keccak_224
//! \brief Keccak-224 message digest
+//! \since Crypto++ 5.6.4
class Keccak_224 : public Keccak
{
public:
@@ -76,6 +80,7 @@ public:
//! \class Keccak_256
//! \brief Keccak-256 message digest
+//! \since Crypto++ 5.6.4
class Keccak_256 : public Keccak
{
public:
@@ -88,6 +93,7 @@ public:
//! \class Keccak_384
//! \brief Keccak-384 message digest
+//! \since Crypto++ 5.6.4
class Keccak_384 : public Keccak
{
public:
@@ -100,6 +106,7 @@ public:
//! \class Keccak_512
//! \brief Keccak-512 message digest
+//! \since Crypto++ 5.6.4
class Keccak_512 : public Keccak
{
public:
diff --git a/sha3.h b/sha3.h
index 0337fbac..2f111845 100644
--- a/sha3.h
+++ b/sha3.h
@@ -6,6 +6,7 @@
//! Previous behavior is available in SHA3 classes.
//! \sa SHA-3,
//! SHA-3 STANDARD (FIPS 202).
+//! \since Crypto++ 5.6.2
#ifndef CRYPTOPP_SHA3_H
#define CRYPTOPP_SHA3_H
@@ -21,6 +22,7 @@ NAMESPACE_BEGIN(CryptoPP)
//! Library users should instantiate a derived class, and only use SHA3
//! as a base class reference or pointer.
//! \sa Keccak, SHA3_224, SHA3_256, SHA3_384 and SHA3_512.
+ //! \since Crypto++ 5.6.2
class SHA3 : public HashTransformation
{
public:
@@ -47,6 +49,7 @@ protected:
//! \class SHA3_224
//! \brief SHA3-224 message digest
+//! \since Crypto++ 5.6.2
class SHA3_224 : public SHA3
{
public:
@@ -59,6 +62,7 @@ public:
//! \class SHA3_256
//! \brief SHA3-256 message digest
+//! \since Crypto++ 5.6.2
class SHA3_256 : public SHA3
{
public:
@@ -71,6 +75,7 @@ public:
//! \class SHA3_384
//! \brief SHA3-384 message digest
+//! \since Crypto++ 5.6.2
class SHA3_384 : public SHA3
{
public:
@@ -83,6 +88,7 @@ public:
//! \class SHA3_512
//! \brief SHA3-512 message digest
+//! \since Crypto++ 5.6.2
class SHA3_512 : public SHA3
{
public: