Updated documentation
parent
e4e01a6af3
commit
36d769e907
7
blake2.h
7
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:
|
||||
//! <pre>CXXFLAGS="-DNDEBUG -march=armv8-a+crc -mcpu=cortex-a53 ..."</pre>
|
||||
//! \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 <bool T_64bit>
|
||||
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<true>, while BLAKE2s
|
||||
//! uses BLAKE2_ParameterBlock<false>.
|
||||
//! \since Crypto++ 5.6.4
|
||||
template <bool T_64bit>
|
||||
struct CRYPTOPP_NO_VTABLE BLAKE2_ParameterBlock
|
||||
{
|
||||
|
|
@ -128,6 +131,7 @@ struct CRYPTOPP_NO_VTABLE BLAKE2_ParameterBlock<false>
|
|||
//! \tparam T_64bit flag indicating 64-bit
|
||||
//! \details BLAKE2b uses BLAKE2_State<word64, true>, while BLAKE2s
|
||||
//! uses BLAKE2_State<word32, false>.
|
||||
//! \since Crypto++ 5.6.4
|
||||
template <class W, bool T_64bit>
|
||||
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<word64, true>, while BLAKE2s
|
||||
//! uses BLAKE2_Base<word32, false>.
|
||||
//! \since Crypto++ 5.6.4
|
||||
template <class W, bool T_64bit>
|
||||
class BLAKE2_Base : public SimpleKeyingInterfaceImpl<MessageAuthenticationCode, BLAKE2_Info<T_64bit> >
|
||||
{
|
||||
|
|
@ -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
|
||||
//! <A HREF="http://blake2.net/blake2.pdf">BLAKE2: simpler, smaller, fast as MD5</A> (2013.01.29).
|
||||
//! \since Crypto++ 5.6.4
|
||||
class BLAKE2b : public BLAKE2_Base<word64, true>
|
||||
{
|
||||
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
|
||||
//! <A HREF="http://blake2.net/blake2.pdf">BLAKE2: simpler, smaller, fast as MD5</A> (2013.01.29).
|
||||
//! \since Crypto++ 5.6.4
|
||||
class BLAKE2s : public BLAKE2_Base<word32, false>
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
6
chacha.h
6
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 <unsigned int R>
|
||||
struct ChaCha_Info : public VariableKeyLength<32, 16, 32, 16, SimpleKeyingInterface::UNIQUE_IV, 8>, public FixedRounds<R>
|
||||
{
|
||||
|
|
@ -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 <unsigned int R>
|
||||
class CRYPTOPP_NO_VTABLE ChaCha_Policy : public AdditiveCipherConcretePolicy<word32, 16>
|
||||
{
|
||||
|
|
@ -46,6 +49,7 @@ protected:
|
|||
//! \class ChaCha8
|
||||
//! \brief ChaCha8 stream cipher
|
||||
//! \sa <a href="http://cr.yp.to/chacha/chacha-20080128.pdf">ChaCha, a variant of Salsa20</a> (2008.01.28).
|
||||
//! \since Crypto++ 5.6.4
|
||||
struct ChaCha8 : public ChaCha_Info<8>, public SymmetricCipherDocumentation
|
||||
{
|
||||
typedef SymmetricCipherFinal<ConcretePolicyHolder<ChaCha_Policy<8>, AdditiveCipherTemplate<> >, ChaCha_Info<8> > Encryption;
|
||||
|
|
@ -55,6 +59,7 @@ struct ChaCha8 : public ChaCha_Info<8>, public SymmetricCipherDocumentation
|
|||
//! \class ChaCha12
|
||||
//! \brief ChaCha12 stream cipher
|
||||
//! \sa <a href="http://cr.yp.to/chacha/chacha-20080128.pdf">ChaCha, a variant of Salsa20</a> (2008.01.28).
|
||||
//! \since Crypto++ 5.6.4
|
||||
struct ChaCha12 : public ChaCha_Info<12>, public SymmetricCipherDocumentation
|
||||
{
|
||||
typedef SymmetricCipherFinal<ConcretePolicyHolder<ChaCha_Policy<12>, AdditiveCipherTemplate<> >, ChaCha_Info<12> > Encryption;
|
||||
|
|
@ -64,6 +69,7 @@ struct ChaCha12 : public ChaCha_Info<12>, public SymmetricCipherDocumentation
|
|||
//! \class ChaCha20
|
||||
//! \brief ChaCha20 stream cipher
|
||||
//! \sa <a href="http://cr.yp.to/chacha/chacha-20080128.pdf">ChaCha, a variant of Salsa20</a> (2008.01.28).
|
||||
//! \since Crypto++ 5.6.4
|
||||
struct ChaCha20 : public ChaCha_Info<20>, public SymmetricCipherDocumentation
|
||||
{
|
||||
typedef SymmetricCipherFinal<ConcretePolicyHolder<ChaCha_Policy<20>, AdditiveCipherTemplate<> >, ChaCha_Info<20> > Encryption;
|
||||
|
|
|
|||
3
fhmqv.h
3
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 href="http://eprint.iacr.org/2009/408">A Secure and Efficient Authenticated Diffie-Hellman Protocol</a>.
|
||||
//! 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 GROUP_PARAMETERS, class COFACTOR_OPTION = CPP_TYPENAME GROUP_PARAMETERS::DefaultCofactorOption, class HASH = SHA512>
|
||||
class FHMQV_Domain : public AuthenticatedKeyAgreementDomain
|
||||
{
|
||||
|
|
@ -294,6 +296,7 @@ private:
|
|||
//! <a href="http://eprint.iacr.org/2009/408">A Secure and Efficient Authenticated Diffie-Hellman Protocol</a>.
|
||||
//! 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<DL_GroupParameters_GFP_DefaultSafePrime> FHMQV;
|
||||
|
||||
NAMESPACE_END
|
||||
|
|
|
|||
2
hkdf.h
2
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 <A HREF="http://eprint.iacr.org/2010/264">Cryptographic Extraction and Key Derivation: The HKDF Scheme</A>
|
||||
//! and <A HREF="http://tools.ietf.org/html/rfc5869">HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</A>
|
||||
//! \since Crypto++ 5.6.3
|
||||
template <class T>
|
||||
class HKDF : public KeyDerivationFunction
|
||||
{
|
||||
|
|
|
|||
3
hmqv.h
3
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 <a href="http://eprint.iacr.org/2005/176">HMQV: A High-Performance
|
||||
//! Secure Diffie-Hellman Protocol</a>. 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 GROUP_PARAMETERS, class COFACTOR_OPTION = CPP_TYPENAME GROUP_PARAMETERS::DefaultCofactorOption, class HASH = SHA512>
|
||||
class HMQV_Domain: public AuthenticatedKeyAgreementDomain
|
||||
{
|
||||
|
|
@ -302,6 +304,7 @@ private:
|
|||
//! \details This implementation follows Hugo Krawczyk's <a href="http://eprint.iacr.org/2005/176">HMQV: A High-Performance
|
||||
//! Secure Diffie-Hellman Protocol</a>. 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<DL_GroupParameters_GFP_DefaultSafePrime> HMQV;
|
||||
|
||||
NAMESPACE_END
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
7
keccak.h
7
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 <a href="http://en.wikipedia.org/wiki/Keccak">Keccak</a>
|
||||
//! \since Crypto++ 5.6.4
|
||||
|
||||
#ifndef CRYPTOPP_KECCAK_H
|
||||
#define CRYPTOPP_KECCAK_H
|
||||
|
|
@ -38,6 +39,7 @@ NAMESPACE_BEGIN(CryptoPP)
|
|||
//! </pre>
|
||||
//!
|
||||
//! \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:
|
||||
|
|
|
|||
6
sha3.h
6
sha3.h
|
|
@ -6,6 +6,7 @@
|
|||
//! Previous behavior is available in SHA3 classes.
|
||||
//! \sa <a href="http://en.wikipedia.org/wiki/SHA-3">SHA-3</a>,
|
||||
//! <A HREF="http://csrc.nist.gov/groups/ST/hash/sha-3/fips202_standard_2015.html">SHA-3 STANDARD (FIPS 202)</A>.
|
||||
//! \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:
|
||||
|
|
|
|||
Loading…
Reference in New Issue