Update documentation
parent
e3d79bf98c
commit
c9b00c14fd
8
arc4.h
8
arc4.h
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
/// \file arc4.h
|
/// \file arc4.h
|
||||||
/// \brief Classes for ARC4 cipher
|
/// \brief Classes for ARC4 cipher
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
|
|
||||||
#ifndef CRYPTOPP_ARC4_H
|
#ifndef CRYPTOPP_ARC4_H
|
||||||
#define CRYPTOPP_ARC4_H
|
#define CRYPTOPP_ARC4_H
|
||||||
|
|
@ -17,7 +18,7 @@ namespace Weak1 {
|
||||||
|
|
||||||
/// \brief ARC4 base class
|
/// \brief ARC4 base class
|
||||||
/// \details Implementations and overrides in \p Base apply to both \p ENCRYPTION and \p DECRYPTION directions
|
/// \details Implementations and overrides in \p Base apply to both \p ENCRYPTION and \p DECRYPTION directions
|
||||||
/// \since Crypto++ 1.0
|
/// \since Crypto++ 3.1
|
||||||
class CRYPTOPP_NO_VTABLE ARC4_Base : public VariableKeyLength<16, 1, 256>, public RandomNumberGenerator, public SymmetricCipher, public SymmetricCipherDocumentation
|
class CRYPTOPP_NO_VTABLE ARC4_Base : public VariableKeyLength<16, 1, 256>, public RandomNumberGenerator, public SymmetricCipher, public SymmetricCipherDocumentation
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -47,12 +48,13 @@ protected:
|
||||||
|
|
||||||
/// \brief Alleged RC4
|
/// \brief Alleged RC4
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/RC4">Alleged RC4</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/RC4">Alleged RC4</a>
|
||||||
/// \since Crypto++ 1.0
|
/// \since Crypto++ 3.1
|
||||||
DOCUMENTED_TYPEDEF(SymmetricCipherFinal<ARC4_Base>, ARC4)
|
DOCUMENTED_TYPEDEF(SymmetricCipherFinal<ARC4_Base>, ARC4)
|
||||||
|
|
||||||
/// \brief MARC4 base class
|
/// \brief MARC4 base class
|
||||||
/// \details Implementations and overrides in \p Base apply to both \p ENCRYPTION and \p DECRYPTION directions
|
/// \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
|
/// \details MARC4 discards the first 256 bytes of keystream, which may be weaker than the rest
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
class CRYPTOPP_NO_VTABLE MARC4_Base : public ARC4_Base
|
class CRYPTOPP_NO_VTABLE MARC4_Base : public ARC4_Base
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -67,7 +69,7 @@ protected:
|
||||||
|
|
||||||
/// \brief Modified Alleged RC4
|
/// \brief Modified Alleged RC4
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/RC4">Alleged RC4</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/RC4">Alleged RC4</a>
|
||||||
/// \since Crypto++ 1.0
|
/// \since Crypto++ 3.1
|
||||||
DOCUMENTED_TYPEDEF(SymmetricCipherFinal<MARC4_Base>, MARC4)
|
DOCUMENTED_TYPEDEF(SymmetricCipherFinal<MARC4_Base>, MARC4)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
6
cast.h
6
cast.h
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
/// \file cast.h
|
/// \file cast.h
|
||||||
/// \brief Classes for the CAST-128 and CAST-256 block ciphers
|
/// \brief Classes for the CAST-128 and CAST-256 block ciphers
|
||||||
|
/// \since Crypto++ 2.2
|
||||||
|
|
||||||
#ifndef CRYPTOPP_CAST_H
|
#ifndef CRYPTOPP_CAST_H
|
||||||
#define CRYPTOPP_CAST_H
|
#define CRYPTOPP_CAST_H
|
||||||
|
|
@ -12,6 +13,7 @@
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief CAST block cipher base
|
/// \brief CAST block cipher base
|
||||||
|
/// \since Crypto++ 2.2
|
||||||
class CAST
|
class CAST
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
@ -19,6 +21,7 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief CAST128 block cipher information
|
/// \brief CAST128 block cipher information
|
||||||
|
/// \since Crypto++ 2.2
|
||||||
struct CAST128_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 5, 16>
|
struct CAST128_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 5, 16>
|
||||||
{
|
{
|
||||||
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "CAST-128";}
|
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "CAST-128";}
|
||||||
|
|
@ -26,6 +29,7 @@ struct CAST128_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 5,
|
||||||
|
|
||||||
/// \brief CAST128 block cipher
|
/// \brief CAST128 block cipher
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/CAST-128">CAST-128</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/CAST-128">CAST-128</a>
|
||||||
|
/// \since Crypto++ 2.2
|
||||||
class CAST128 : public CAST128_Info, public BlockCipherDocumentation
|
class CAST128 : public CAST128_Info, public BlockCipherDocumentation
|
||||||
{
|
{
|
||||||
/// \brief CAST128 block cipher default operation
|
/// \brief CAST128 block cipher default operation
|
||||||
|
|
@ -59,6 +63,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief CAST256 block cipher information
|
/// \brief CAST256 block cipher information
|
||||||
|
/// \since Crypto++ 4.0
|
||||||
struct CAST256_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 4>
|
struct CAST256_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 4>
|
||||||
{
|
{
|
||||||
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "CAST-256";}
|
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "CAST-256";}
|
||||||
|
|
@ -66,6 +71,7 @@ struct CAST256_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16
|
||||||
|
|
||||||
/// \brief CAST256 block cipher
|
/// \brief CAST256 block cipher
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/CAST-256">CAST-256</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/CAST-256">CAST-256</a>
|
||||||
|
/// \since Crypto++ 4.0
|
||||||
class CAST256 : public CAST256_Info, public BlockCipherDocumentation
|
class CAST256 : public CAST256_Info, public BlockCipherDocumentation
|
||||||
{
|
{
|
||||||
/// \brief CAST256 block cipher default operation
|
/// \brief CAST256 block cipher default operation
|
||||||
|
|
|
||||||
3
cbcmac.h
3
cbcmac.h
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
/// \file
|
/// \file
|
||||||
/// \brief Classes for CBC MAC
|
/// \brief Classes for CBC MAC
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
|
|
||||||
#ifndef CRYPTOPP_CBCMAC_H
|
#ifndef CRYPTOPP_CBCMAC_H
|
||||||
#define CRYPTOPP_CBCMAC_H
|
#define CRYPTOPP_CBCMAC_H
|
||||||
|
|
@ -12,6 +13,7 @@
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief CBC-MAC base class
|
/// \brief CBC-MAC base class
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE CBC_MAC_Base : public MessageAuthenticationCode
|
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE CBC_MAC_Base : public MessageAuthenticationCode
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -36,6 +38,7 @@ private:
|
||||||
/// \details CBC-MAC is compatible with FIPS 113. The MAC is secure only for fixed
|
/// \details CBC-MAC is compatible with FIPS 113. The MAC is secure only for fixed
|
||||||
/// length messages. For variable length messages use CMAC or DMAC.
|
/// length messages. For variable length messages use CMAC or DMAC.
|
||||||
/// \sa <a href="http://www.weidai.com/scan-mirror/mac.html#CBC-MAC">CBC-MAC</a>
|
/// \sa <a href="http://www.weidai.com/scan-mirror/mac.html#CBC-MAC">CBC-MAC</a>
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
template <class T>
|
template <class T>
|
||||||
class CBC_MAC : public MessageAuthenticationCodeImpl<CBC_MAC_Base, CBC_MAC<T> >, public SameKeyLengthAs<T>
|
class CBC_MAC : public MessageAuthenticationCodeImpl<CBC_MAC_Base, CBC_MAC<T> >, public SameKeyLengthAs<T>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2763,6 +2763,7 @@ public:
|
||||||
/// \details A key agreement domain is a set of parameters that must be shared
|
/// \details A key agreement domain is a set of parameters that must be shared
|
||||||
/// by two parties in a key agreement protocol, along with the algorithms
|
/// by two parties in a key agreement protocol, along with the algorithms
|
||||||
/// for generating key pairs and deriving agreed values.
|
/// for generating key pairs and deriving agreed values.
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE SimpleKeyAgreementDomain : public KeyAgreementAlgorithm
|
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE SimpleKeyAgreementDomain : public KeyAgreementAlgorithm
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -2821,6 +2822,7 @@ public:
|
||||||
/// \details In an authenticated key agreement protocol, each party has two
|
/// \details In an authenticated key agreement protocol, each party has two
|
||||||
/// key pairs. The long-lived key pair is called the static key pair,
|
/// key pairs. The long-lived key pair is called the static key pair,
|
||||||
/// and the short-lived key pair is called the ephemeral key pair.
|
/// and the short-lived key pair is called the ephemeral key pair.
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE AuthenticatedKeyAgreementDomain : public KeyAgreementAlgorithm
|
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE AuthenticatedKeyAgreementDomain : public KeyAgreementAlgorithm
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -3000,6 +3002,8 @@ public:
|
||||||
const byte *passwordOrVerifier, unsigned int passwordOrVerifierLength);
|
const byte *passwordOrVerifier, unsigned int passwordOrVerifierLength);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// \brief Password based key agreement domain
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
class PasswordAuthenticatedKeyAgreementDomain : public KeyAgreementAlgorithm
|
class PasswordAuthenticatedKeyAgreementDomain : public KeyAgreementAlgorithm
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
7
des.h
7
des.h
|
|
@ -12,6 +12,7 @@
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief DES block cipher base class
|
/// \brief DES block cipher base class
|
||||||
|
/// \since Crypto++ 1.0
|
||||||
class CRYPTOPP_DLL RawDES
|
class CRYPTOPP_DLL RawDES
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -25,6 +26,7 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief DES block cipher information
|
/// \brief DES block cipher information
|
||||||
|
/// \since Crypto++ 1.0
|
||||||
struct DES_Info : public FixedBlockSize<8>, public FixedKeyLength<8>
|
struct DES_Info : public FixedBlockSize<8>, public FixedKeyLength<8>
|
||||||
{
|
{
|
||||||
// disable DES in DLL version by not exporting this function
|
// disable DES in DLL version by not exporting this function
|
||||||
|
|
@ -58,6 +60,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief 2-key TripleDES block cipher information
|
/// \brief 2-key TripleDES block cipher information
|
||||||
|
/// \since Crypto++ 1.0
|
||||||
struct DES_EDE2_Info : public FixedBlockSize<8>, public FixedKeyLength<16>
|
struct DES_EDE2_Info : public FixedBlockSize<8>, public FixedKeyLength<16>
|
||||||
{
|
{
|
||||||
CRYPTOPP_DLL static const char * CRYPTOPP_API StaticAlgorithmName() {return "DES-EDE2";}
|
CRYPTOPP_DLL static const char * CRYPTOPP_API StaticAlgorithmName() {return "DES-EDE2";}
|
||||||
|
|
@ -85,6 +88,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief 3-key TripleDES block cipher information
|
/// \brief 3-key TripleDES block cipher information
|
||||||
|
/// \since Crypto++ 1.0
|
||||||
struct DES_EDE3_Info : public FixedBlockSize<8>, public FixedKeyLength<24>
|
struct DES_EDE3_Info : public FixedBlockSize<8>, public FixedKeyLength<24>
|
||||||
{
|
{
|
||||||
CRYPTOPP_DLL static const char * CRYPTOPP_API StaticAlgorithmName() {return "DES-EDE3";}
|
CRYPTOPP_DLL static const char * CRYPTOPP_API StaticAlgorithmName() {return "DES-EDE3";}
|
||||||
|
|
@ -112,6 +116,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief DESX block cipher information
|
/// \brief DESX block cipher information
|
||||||
|
/// \since Crypto++ 3.2
|
||||||
struct DES_XEX3_Info : public FixedBlockSize<8>, public FixedKeyLength<24>
|
struct DES_XEX3_Info : public FixedBlockSize<8>, public FixedKeyLength<24>
|
||||||
{
|
{
|
||||||
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "DES-XEX3";}
|
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "DES-XEX3";}
|
||||||
|
|
@ -119,7 +124,7 @@ struct DES_XEX3_Info : public FixedBlockSize<8>, public FixedKeyLength<24>
|
||||||
|
|
||||||
/// \brief DESX block cipher
|
/// \brief DESX block cipher
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/TripleDES">DES-XEX3</a>, AKA DESX
|
/// \sa <a href="http://www.cryptopp.com/wiki/TripleDES">DES-XEX3</a>, AKA DESX
|
||||||
/// \since Crypto++ 1.0
|
/// \since Crypto++ 3.2
|
||||||
class DES_XEX3 : public DES_XEX3_Info, public BlockCipherDocumentation
|
class DES_XEX3 : public DES_XEX3_Info, public BlockCipherDocumentation
|
||||||
{
|
{
|
||||||
/// \brief DES_XEX3 block cipher default operation
|
/// \brief DES_XEX3 block cipher default operation
|
||||||
|
|
|
||||||
3
dh2.h
3
dh2.h
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
/// \file dh2.h
|
/// \file dh2.h
|
||||||
/// \brief Classes for Unified Diffie-Hellman key exchange
|
/// \brief Classes for Unified Diffie-Hellman key exchange
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
|
|
||||||
#ifndef CRYPTOPP_DH2_H
|
#ifndef CRYPTOPP_DH2_H
|
||||||
#define CRYPTOPP_DH2_H
|
#define CRYPTOPP_DH2_H
|
||||||
|
|
@ -15,7 +16,7 @@ NAMESPACE_BEGIN(CryptoPP)
|
||||||
/// by two parties in a key agreement protocol, along with the algorithms
|
/// by two parties in a key agreement protocol, along with the algorithms
|
||||||
/// for generating key pairs and deriving agreed values.
|
/// for generating key pairs and deriving agreed values.
|
||||||
/// \sa AuthenticatedKeyAgreementDomain, <a href="http://www.weidai.com/scan-mirror/ka.html#DH2">Unified Diffie-Hellman</a>
|
/// \sa AuthenticatedKeyAgreementDomain, <a href="http://www.weidai.com/scan-mirror/ka.html#DH2">Unified Diffie-Hellman</a>
|
||||||
/// \since Crypto++ 1.0
|
/// \since Crypto++ 3.0
|
||||||
class DH2 : public AuthenticatedKeyAgreementDomain
|
class DH2 : public AuthenticatedKeyAgreementDomain
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
2
dmac.h
2
dmac.h
|
|
@ -12,6 +12,7 @@ NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief DMAC message authentication code base class
|
/// \brief DMAC message authentication code base class
|
||||||
/// \tparam T class derived from BlockCipherDocumentation
|
/// \tparam T class derived from BlockCipherDocumentation
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
template <class T>
|
template <class T>
|
||||||
class CRYPTOPP_NO_VTABLE DMAC_Base : public SameKeyLengthAs<T>, public MessageAuthenticationCode
|
class CRYPTOPP_NO_VTABLE DMAC_Base : public SameKeyLengthAs<T>, public MessageAuthenticationCode
|
||||||
{
|
{
|
||||||
|
|
@ -41,6 +42,7 @@ private:
|
||||||
/// \tparam T class derived from BlockCipherDocumentation
|
/// \tparam T class derived from BlockCipherDocumentation
|
||||||
/// \sa <A HREF="https://eprint.iacr.org/1997/010">CBC MAC for Real-Time Data Sources (08.15.1997)</A>
|
/// \sa <A HREF="https://eprint.iacr.org/1997/010">CBC MAC for Real-Time Data Sources (08.15.1997)</A>
|
||||||
/// by Erez Petrank and Charles Rackoff
|
/// by Erez Petrank and Charles Rackoff
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
template <class T>
|
template <class T>
|
||||||
class DMAC : public MessageAuthenticationCodeFinal<DMAC_Base<T> >
|
class DMAC : public MessageAuthenticationCodeFinal<DMAC_Base<T> >
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -258,6 +258,7 @@ DL_PrivateKey_EC<EC>::~DL_PrivateKey_EC() {}
|
||||||
/// \tparam EC elliptic curve field
|
/// \tparam EC elliptic curve field
|
||||||
/// \tparam COFACTOR_OPTION cofactor multiplication option
|
/// \tparam COFACTOR_OPTION cofactor multiplication option
|
||||||
/// \sa CofactorMultiplicationOption, <a href="http://www.weidai.com/scan-mirror/ka.html#ECDH">Elliptic Curve Diffie-Hellman, AKA ECDH</a>
|
/// \sa CofactorMultiplicationOption, <a href="http://www.weidai.com/scan-mirror/ka.html#ECDH">Elliptic Curve Diffie-Hellman, AKA ECDH</a>
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
template <class EC, class COFACTOR_OPTION = typename DL_GroupParameters_EC<EC>::DefaultCofactorOption>
|
template <class EC, class COFACTOR_OPTION = typename DL_GroupParameters_EC<EC>::DefaultCofactorOption>
|
||||||
struct ECDH
|
struct ECDH
|
||||||
{
|
{
|
||||||
|
|
@ -324,6 +325,7 @@ struct ECDSA;
|
||||||
|
|
||||||
/// \brief Elliptic Curve DSA keys
|
/// \brief Elliptic Curve DSA keys
|
||||||
/// \tparam EC elliptic curve field
|
/// \tparam EC elliptic curve field
|
||||||
|
/// \since Crypto++ 3.2
|
||||||
template <class EC>
|
template <class EC>
|
||||||
struct DL_Keys_ECDSA
|
struct DL_Keys_ECDSA
|
||||||
{
|
{
|
||||||
|
|
@ -333,6 +335,7 @@ struct DL_Keys_ECDSA
|
||||||
|
|
||||||
/// \brief Elliptic Curve DSA (ECDSA) signature algorithm
|
/// \brief Elliptic Curve DSA (ECDSA) signature algorithm
|
||||||
/// \tparam EC elliptic curve field
|
/// \tparam EC elliptic curve field
|
||||||
|
/// \since Crypto++ 3.2
|
||||||
template <class EC>
|
template <class EC>
|
||||||
class DL_Algorithm_ECDSA : public DL_Algorithm_GDSA<typename EC::Point>
|
class DL_Algorithm_ECDSA : public DL_Algorithm_GDSA<typename EC::Point>
|
||||||
{
|
{
|
||||||
|
|
@ -365,6 +368,7 @@ public:
|
||||||
/// \tparam EC elliptic curve field
|
/// \tparam EC elliptic curve field
|
||||||
/// \tparam H HashTransformation derived class
|
/// \tparam H HashTransformation derived class
|
||||||
/// \sa <a href="http://www.weidai.com/scan-mirror/sig.html#ECDSA">ECDSA</a>
|
/// \sa <a href="http://www.weidai.com/scan-mirror/sig.html#ECDSA">ECDSA</a>
|
||||||
|
/// \since Crypto++ 3.2
|
||||||
template <class EC, class H>
|
template <class EC, class H>
|
||||||
struct ECDSA : public DL_SS<DL_Keys_ECDSA<EC>, DL_Algorithm_ECDSA<EC>, DL_SignatureMessageEncodingMethod_DSA, H>
|
struct ECDSA : public DL_SS<DL_Keys_ECDSA<EC>, DL_Algorithm_ECDSA<EC>, DL_SignatureMessageEncodingMethod_DSA, H>
|
||||||
{
|
{
|
||||||
|
|
@ -375,6 +379,7 @@ struct ECDSA : public DL_SS<DL_Keys_ECDSA<EC>, DL_Algorithm_ECDSA<EC>, DL_Signat
|
||||||
/// \tparam H HashTransformation derived class
|
/// \tparam H HashTransformation derived class
|
||||||
/// \sa <a href="http://tools.ietf.org/rfc/rfc6979.txt">Deterministic Usage of the
|
/// \sa <a href="http://tools.ietf.org/rfc/rfc6979.txt">Deterministic Usage of the
|
||||||
/// Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)</a>
|
/// Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)</a>
|
||||||
|
/// \since Crypto++ 6.0
|
||||||
template <class EC, class H>
|
template <class EC, class H>
|
||||||
struct ECDSA_RFC6979 : public DL_SS<
|
struct ECDSA_RFC6979 : public DL_SS<
|
||||||
DL_Keys_ECDSA<EC>,
|
DL_Keys_ECDSA<EC>,
|
||||||
|
|
|
||||||
3
mars.h
3
mars.h
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
/// \file mars.h
|
/// \file mars.h
|
||||||
/// \brief Classes for the MARS block cipher (IBM AES submission)
|
/// \brief Classes for the MARS block cipher (IBM AES submission)
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
|
|
||||||
#ifndef CRYPTOPP_MARS_H
|
#ifndef CRYPTOPP_MARS_H
|
||||||
#define CRYPTOPP_MARS_H
|
#define CRYPTOPP_MARS_H
|
||||||
|
|
@ -12,6 +13,7 @@
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief MARS block cipher information
|
/// \brief MARS block cipher information
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
struct MARS_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 56, 8>
|
struct MARS_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 56, 8>
|
||||||
{
|
{
|
||||||
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "MARS";}
|
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "MARS";}
|
||||||
|
|
@ -19,6 +21,7 @@ struct MARS_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 5
|
||||||
|
|
||||||
/// \brief MARS block cipher
|
/// \brief MARS block cipher
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/MARS">MARS</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/MARS">MARS</a>
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
class MARS : public MARS_Info, public BlockCipherDocumentation
|
class MARS : public MARS_Info, public BlockCipherDocumentation
|
||||||
{
|
{
|
||||||
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<MARS_Info>
|
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<MARS_Info>
|
||||||
|
|
|
||||||
10
md2.h
10
md2.h
|
|
@ -1,3 +1,9 @@
|
||||||
|
// md2.h - originally written and placed in the public domain by Wei Dai
|
||||||
|
|
||||||
|
/// \file md2.h
|
||||||
|
/// \brief Classes for the MD2 message digest
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
|
|
||||||
#ifndef CRYPTOPP_MD2_H
|
#ifndef CRYPTOPP_MD2_H
|
||||||
#define CRYPTOPP_MD2_H
|
#define CRYPTOPP_MD2_H
|
||||||
|
|
||||||
|
|
@ -8,7 +14,9 @@ NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
namespace Weak1 {
|
namespace Weak1 {
|
||||||
|
|
||||||
/// <a href="http://www.cryptolounge.org/wiki/MD2">MD2</a>
|
/// \brief MD2 message digest
|
||||||
|
/// \sa <a href="http://www.cryptolounge.org/wiki/MD2">MD2</a>
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
class MD2 : public HashTransformation
|
class MD2 : public HashTransformation
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
4
modes.h
4
modes.h
|
|
@ -237,6 +237,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief CBC-CTS block cipher mode of operation encryption operation
|
/// \brief CBC-CTS block cipher mode of operation encryption operation
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE CBC_CTS_Encryption : public CBC_Encryption
|
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE CBC_CTS_Encryption : public CBC_Encryption
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -270,6 +271,7 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief CBC-CTS block cipher mode of operation decryption operation
|
/// \brief CBC-CTS block cipher mode of operation decryption operation
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE CBC_CTS_Decryption : public CBC_Decryption
|
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE CBC_CTS_Decryption : public CBC_Decryption
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -456,6 +458,7 @@ struct CBC_Mode_ExternalCipher : public CipherModeDocumentation
|
||||||
/// \brief CBC-CTS block cipher mode of operation
|
/// \brief CBC-CTS block cipher mode of operation
|
||||||
/// \sa <A HREF="http://www.cryptopp.com/wiki/Modes_of_Operation">Modes of Operation</A>
|
/// \sa <A HREF="http://www.cryptopp.com/wiki/Modes_of_Operation">Modes of Operation</A>
|
||||||
/// on the Crypto++ wiki.
|
/// on the Crypto++ wiki.
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
template <class CIPHER>
|
template <class CIPHER>
|
||||||
struct CBC_CTS_Mode : public CipherModeDocumentation
|
struct CBC_CTS_Mode : public CipherModeDocumentation
|
||||||
{
|
{
|
||||||
|
|
@ -469,6 +472,7 @@ CRYPTOPP_DLL_TEMPLATE_CLASS CipherModeFinalTemplate_ExternalCipher<CBC_CTS_Decry
|
||||||
/// \brief CBC mode with ciphertext stealing, external cipher
|
/// \brief CBC mode with ciphertext stealing, external cipher
|
||||||
/// \sa <A HREF="http://www.cryptopp.com/wiki/Modes_of_Operation">Modes of Operation</A>
|
/// \sa <A HREF="http://www.cryptopp.com/wiki/Modes_of_Operation">Modes of Operation</A>
|
||||||
/// on the Crypto++ wiki.
|
/// on the Crypto++ wiki.
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
struct CBC_CTS_Mode_ExternalCipher : public CipherModeDocumentation
|
struct CBC_CTS_Mode_ExternalCipher : public CipherModeDocumentation
|
||||||
{
|
{
|
||||||
typedef CipherModeFinalTemplate_ExternalCipher<CBC_CTS_Encryption> Encryption;
|
typedef CipherModeFinalTemplate_ExternalCipher<CBC_CTS_Encryption> Encryption;
|
||||||
|
|
|
||||||
3
mqv.h
3
mqv.h
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
/// \file mqv.h
|
/// \file mqv.h
|
||||||
/// \brief Classes for Menezes–Qu–Vanstone (MQV) key agreement
|
/// \brief Classes for Menezes–Qu–Vanstone (MQV) key agreement
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
|
|
||||||
#ifndef CRYPTOPP_MQV_H
|
#ifndef CRYPTOPP_MQV_H
|
||||||
#define CRYPTOPP_MQV_H
|
#define CRYPTOPP_MQV_H
|
||||||
|
|
@ -22,6 +23,7 @@ NAMESPACE_BEGIN(CryptoPP)
|
||||||
/// Binary curves use a polynomial to represent its characteristic, while prime curves
|
/// Binary curves use a polynomial to represent its characteristic, while prime curves
|
||||||
/// use a prime number.
|
/// use a prime number.
|
||||||
/// \sa MQV, HMQV, FHMQV, and AuthenticatedKeyAgreementDomain
|
/// \sa MQV, HMQV, FHMQV, and AuthenticatedKeyAgreementDomain
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
template <class GROUP_PARAMETERS, class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption>
|
template <class GROUP_PARAMETERS, class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption>
|
||||||
class MQV_Domain : public AuthenticatedKeyAgreementDomain
|
class MQV_Domain : public AuthenticatedKeyAgreementDomain
|
||||||
{
|
{
|
||||||
|
|
@ -213,6 +215,7 @@ private:
|
||||||
|
|
||||||
/// Menezes-Qu-Vanstone in GF(p) with key validation, AKA <a href="http://www.weidai.com/scan-mirror/ka.html#MQV">MQV</a>
|
/// Menezes-Qu-Vanstone in GF(p) with key validation, AKA <a href="http://www.weidai.com/scan-mirror/ka.html#MQV">MQV</a>
|
||||||
/// \sa MQV, HMQV_Domain, FHMQV_Domain, AuthenticatedKeyAgreementDomain
|
/// \sa MQV, HMQV_Domain, FHMQV_Domain, AuthenticatedKeyAgreementDomain
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
typedef MQV_Domain<DL_GroupParameters_GFP_DefaultSafePrime> MQV;
|
typedef MQV_Domain<DL_GroupParameters_GFP_DefaultSafePrime> MQV;
|
||||||
|
|
||||||
NAMESPACE_END
|
NAMESPACE_END
|
||||||
|
|
|
||||||
3
rc2.h
3
rc2.h
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
/// \file rc2.h
|
/// \file rc2.h
|
||||||
/// \brief Classes for the RC2 block cipher
|
/// \brief Classes for the RC2 block cipher
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
|
|
||||||
#ifndef CRYPTOPP_RC2_H
|
#ifndef CRYPTOPP_RC2_H
|
||||||
#define CRYPTOPP_RC2_H
|
#define CRYPTOPP_RC2_H
|
||||||
|
|
@ -13,6 +14,7 @@
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief RC2 block cipher information
|
/// \brief RC2 block cipher information
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
struct RC2_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 1, 128>
|
struct RC2_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 1, 128>
|
||||||
{
|
{
|
||||||
CRYPTOPP_CONSTANT(DEFAULT_EFFECTIVE_KEYLENGTH = 1024)
|
CRYPTOPP_CONSTANT(DEFAULT_EFFECTIVE_KEYLENGTH = 1024)
|
||||||
|
|
@ -22,6 +24,7 @@ struct RC2_Info : public FixedBlockSize<8>, public VariableKeyLength<16, 1, 128>
|
||||||
|
|
||||||
/// \brief RC2 block cipher
|
/// \brief RC2 block cipher
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/RC2">RC2</a> on the Crypto Lounge.
|
/// \sa <a href="http://www.cryptopp.com/wiki/RC2">RC2</a> on the Crypto Lounge.
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
class RC2 : public RC2_Info, public BlockCipherDocumentation
|
class RC2 : public RC2_Info, public BlockCipherDocumentation
|
||||||
{
|
{
|
||||||
/// \brief Class specific methods used to operate the cipher.
|
/// \brief Class specific methods used to operate the cipher.
|
||||||
|
|
|
||||||
3
rc6.h
3
rc6.h
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
/// \file rc6.h
|
/// \file rc6.h
|
||||||
/// \brief Classes for the RC6 block cipher
|
/// \brief Classes for the RC6 block cipher
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
|
|
||||||
#ifndef CRYPTOPP_RC6_H
|
#ifndef CRYPTOPP_RC6_H
|
||||||
#define CRYPTOPP_RC6_H
|
#define CRYPTOPP_RC6_H
|
||||||
|
|
@ -12,6 +13,7 @@
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief RC6 block cipher information
|
/// \brief RC6 block cipher information
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
struct RC6_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>, public VariableRounds<20>
|
struct RC6_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>, public VariableRounds<20>
|
||||||
{
|
{
|
||||||
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "RC6";}
|
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "RC6";}
|
||||||
|
|
@ -20,6 +22,7 @@ struct RC6_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32
|
||||||
|
|
||||||
/// \brief RC6 block cipher
|
/// \brief RC6 block cipher
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/RC6">RC6</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/RC6">RC6</a>
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
class RC6 : public RC6_Info, public BlockCipherDocumentation
|
class RC6 : public RC6_Info, public BlockCipherDocumentation
|
||||||
{
|
{
|
||||||
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<RC6_Info>
|
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<RC6_Info>
|
||||||
|
|
|
||||||
10
rijndael.h
10
rijndael.h
|
|
@ -4,7 +4,7 @@
|
||||||
/// \brief Classes for Rijndael encryption algorithm
|
/// \brief Classes for Rijndael encryption algorithm
|
||||||
/// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks,
|
/// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks,
|
||||||
/// and not 192-bit or 256-bit blocks
|
/// and not 192-bit or 256-bit blocks
|
||||||
/// \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
|
/// \since Rijndael since Crypto++ 3.1, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
|
||||||
/// Power8 AES since Crypto++ 6.0
|
/// Power8 AES since Crypto++ 6.0
|
||||||
|
|
||||||
#ifndef CRYPTOPP_RIJNDAEL_H
|
#ifndef CRYPTOPP_RIJNDAEL_H
|
||||||
|
|
@ -23,7 +23,7 @@ NAMESPACE_BEGIN(CryptoPP)
|
||||||
/// \brief Rijndael block cipher information
|
/// \brief Rijndael block cipher information
|
||||||
/// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks,
|
/// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks,
|
||||||
/// and not 192-bit or 256-bit blocks
|
/// and not 192-bit or 256-bit blocks
|
||||||
/// \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
|
/// \since Rijndael since Crypto++ 3.1, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
|
||||||
/// Power8 AES since Crypto++ 6.0
|
/// Power8 AES since Crypto++ 6.0
|
||||||
struct Rijndael_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>
|
struct Rijndael_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>
|
||||||
{
|
{
|
||||||
|
|
@ -33,7 +33,7 @@ struct Rijndael_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 1
|
||||||
/// \brief Rijndael block cipher
|
/// \brief Rijndael block cipher
|
||||||
/// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks,
|
/// \details All key sizes are supported. The library only provides Rijndael with 128-bit blocks,
|
||||||
/// and not 192-bit or 256-bit blocks
|
/// and not 192-bit or 256-bit blocks
|
||||||
/// \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
|
/// \since Rijndael since Crypto++ 3.1, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
|
||||||
/// Power8 AES since Crypto++ 6.0
|
/// Power8 AES since Crypto++ 6.0
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/Rijndael">Rijndael</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/Rijndael">Rijndael</a>
|
||||||
class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentation
|
class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentation
|
||||||
|
|
@ -63,7 +63,7 @@ class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentat
|
||||||
/// \brief Provides implementation for encryption transformation
|
/// \brief Provides implementation for encryption transformation
|
||||||
/// \details Enc provides implementation for encryption transformation. All key sizes are supported.
|
/// \details Enc provides implementation for encryption transformation. All key sizes are supported.
|
||||||
/// The library only provides Rijndael with 128-bit blocks, and not 192-bit or 256-bit blocks
|
/// The library only provides Rijndael with 128-bit blocks, and not 192-bit or 256-bit blocks
|
||||||
/// \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
|
/// \since Rijndael since Crypto++ 3.1, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
|
||||||
/// Power8 AES since Crypto++ 6.0
|
/// Power8 AES since Crypto++ 6.0
|
||||||
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Enc : public Base
|
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Enc : public Base
|
||||||
{
|
{
|
||||||
|
|
@ -77,7 +77,7 @@ class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentat
|
||||||
/// \brief Provides implementation for decryption transformation
|
/// \brief Provides implementation for decryption transformation
|
||||||
/// \details Dec provides implementation for decryption transformation. All key sizes are supported.
|
/// \details Dec provides implementation for decryption transformation. All key sizes are supported.
|
||||||
/// The library only provides Rijndael with 128-bit blocks, and not 192-bit or 256-bit blocks
|
/// The library only provides Rijndael with 128-bit blocks, and not 192-bit or 256-bit blocks
|
||||||
/// \since Rijndael since Crypto++ 3.2, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
|
/// \since Rijndael since Crypto++ 3.1, Intel AESNI since Crypto++ 5.6.1, ARMv8 AES since Crypto++ 6.0,
|
||||||
/// Power8 AES since Crypto++ 6.0
|
/// Power8 AES since Crypto++ 6.0
|
||||||
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Dec : public Base
|
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Dec : public Base
|
||||||
{
|
{
|
||||||
|
|
|
||||||
7
rw.h
7
rw.h
|
|
@ -7,6 +7,7 @@
|
||||||
/// speedup calculations.
|
/// speedup calculations.
|
||||||
/// \sa <A HREF="http://cr.yp.to/sigs/rwsota-20080131.pdf">RSA signatures and Rabin–Williams
|
/// \sa <A HREF="http://cr.yp.to/sigs/rwsota-20080131.pdf">RSA signatures and Rabin–Williams
|
||||||
/// signatures: the state of the art (20080131)</A>, Section 6, <em>The tweaks e and f</em>.
|
/// signatures: the state of the art (20080131)</A>, Section 6, <em>The tweaks e and f</em>.
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
|
|
||||||
#ifndef CRYPTOPP_RW_H
|
#ifndef CRYPTOPP_RW_H
|
||||||
#define CRYPTOPP_RW_H
|
#define CRYPTOPP_RW_H
|
||||||
|
|
@ -18,7 +19,7 @@
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief Rabin-Williams trapdoor function using the public key
|
/// \brief Rabin-Williams trapdoor function using the public key
|
||||||
/// \since Crypto++ 2.0, Tweaked roots using <em>e</em> and <em>f</em> since Crypto++ 5.6.4
|
/// \since Crypto++ 3.0, Tweaked roots using <em>e</em> and <em>f</em> since Crypto++ 5.6.4
|
||||||
class CRYPTOPP_DLL RWFunction : public TrapdoorFunction, public PublicKey
|
class CRYPTOPP_DLL RWFunction : public TrapdoorFunction, public PublicKey
|
||||||
{
|
{
|
||||||
typedef RWFunction ThisClass;
|
typedef RWFunction ThisClass;
|
||||||
|
|
@ -54,7 +55,7 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Rabin-Williams trapdoor function using the private key
|
/// \brief Rabin-Williams trapdoor function using the private key
|
||||||
/// \since Crypto++ 2.0, Tweaked roots using <em>e</em> and <em>f</em> since Crypto++ 5.6.4
|
/// \since Crypto++ 3.0, Tweaked roots using <em>e</em> and <em>f</em> since Crypto++ 5.6.4
|
||||||
class CRYPTOPP_DLL InvertibleRWFunction : public RWFunction, public TrapdoorFunctionInverse, public PrivateKey
|
class CRYPTOPP_DLL InvertibleRWFunction : public RWFunction, public TrapdoorFunctionInverse, public PrivateKey
|
||||||
{
|
{
|
||||||
typedef InvertibleRWFunction ThisClass;
|
typedef InvertibleRWFunction ThisClass;
|
||||||
|
|
@ -123,6 +124,7 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Rabin-Williams keys
|
/// \brief Rabin-Williams keys
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
struct RW
|
struct RW
|
||||||
{
|
{
|
||||||
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "RW";}
|
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "RW";}
|
||||||
|
|
@ -133,6 +135,7 @@ struct RW
|
||||||
/// \brief Rabin-Williams signature scheme
|
/// \brief Rabin-Williams signature scheme
|
||||||
/// \tparam STANDARD signature standard
|
/// \tparam STANDARD signature standard
|
||||||
/// \tparam H hash transformation
|
/// \tparam H hash transformation
|
||||||
|
/// \since Crypto++ 3.0
|
||||||
template <class STANDARD, class H>
|
template <class STANDARD, class H>
|
||||||
struct RWSS : public TF_SS<RW, STANDARD, H>
|
struct RWSS : public TF_SS<RW, STANDARD, H>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
4
seal.h
4
seal.h
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
/// \file seal.h
|
/// \file seal.h
|
||||||
/// \brief Classes for SEAL stream cipher
|
/// \brief Classes for SEAL stream cipher
|
||||||
|
/// \since Crypto++ 2.2
|
||||||
|
|
||||||
#ifndef CRYPTOPP_SEAL_H
|
#ifndef CRYPTOPP_SEAL_H
|
||||||
#define CRYPTOPP_SEAL_H
|
#define CRYPTOPP_SEAL_H
|
||||||
|
|
@ -13,6 +14,7 @@ NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief SEAL stream cipher information
|
/// \brief SEAL stream cipher information
|
||||||
/// \tparam B Endianness of the stream cipher
|
/// \tparam B Endianness of the stream cipher
|
||||||
|
/// \since Crypto++ 2.2
|
||||||
template <class B = BigEndian>
|
template <class B = BigEndian>
|
||||||
struct SEAL_Info : public FixedKeyLength<20, SimpleKeyingInterface::INTERNALLY_GENERATED_IV, 4>
|
struct SEAL_Info : public FixedKeyLength<20, SimpleKeyingInterface::INTERNALLY_GENERATED_IV, 4>
|
||||||
{
|
{
|
||||||
|
|
@ -21,6 +23,7 @@ struct SEAL_Info : public FixedKeyLength<20, SimpleKeyingInterface::INTERNALLY_G
|
||||||
|
|
||||||
/// \brief SEAL stream cipher operation
|
/// \brief SEAL stream cipher operation
|
||||||
/// \tparam B Endianness of the stream cipher
|
/// \tparam B Endianness of the stream cipher
|
||||||
|
/// \since Crypto++ 2.2
|
||||||
template <class B = BigEndian>
|
template <class B = BigEndian>
|
||||||
class CRYPTOPP_NO_VTABLE SEAL_Policy : public AdditiveCipherConcretePolicy<word32, 256>, public SEAL_Info<B>
|
class CRYPTOPP_NO_VTABLE SEAL_Policy : public AdditiveCipherConcretePolicy<word32, 256>, public SEAL_Info<B>
|
||||||
{
|
{
|
||||||
|
|
@ -43,6 +46,7 @@ private:
|
||||||
/// \brief SEAL stream cipher
|
/// \brief SEAL stream cipher
|
||||||
/// \tparam B Endianness of the stream cipher
|
/// \tparam B Endianness of the stream cipher
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/SEAL-3.0-BE">SEAL</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/SEAL-3.0-BE">SEAL</a>
|
||||||
|
/// \since Crypto++ 2.2
|
||||||
template <class B = BigEndian>
|
template <class B = BigEndian>
|
||||||
struct SEAL : public SEAL_Info<B>, public SymmetricCipherDocumentation
|
struct SEAL : public SEAL_Info<B>, public SymmetricCipherDocumentation
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief Serpent block cipher information
|
/// \brief Serpent block cipher information
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
struct Serpent_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>, public FixedRounds<32>
|
struct Serpent_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>, public FixedRounds<32>
|
||||||
{
|
{
|
||||||
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "Serpent";}
|
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "Serpent";}
|
||||||
|
|
@ -19,6 +20,7 @@ struct Serpent_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16
|
||||||
|
|
||||||
/// \brief Serpent block cipher
|
/// \brief Serpent block cipher
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/Serpent">Serpent</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/Serpent">Serpent</a>
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
class Serpent : public Serpent_Info, public BlockCipherDocumentation
|
class Serpent : public Serpent_Info, public BlockCipherDocumentation
|
||||||
{
|
{
|
||||||
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<Serpent_Info>
|
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<Serpent_Info>
|
||||||
|
|
|
||||||
2
square.h
2
square.h
|
|
@ -12,6 +12,7 @@
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief Square block cipher information
|
/// \brief Square block cipher information
|
||||||
|
/// \since Crypto++ 2.2
|
||||||
struct Square_Info : public FixedBlockSize<16>, public FixedKeyLength<16>, FixedRounds<8>
|
struct Square_Info : public FixedBlockSize<16>, public FixedKeyLength<16>, FixedRounds<8>
|
||||||
{
|
{
|
||||||
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "Square";}
|
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "Square";}
|
||||||
|
|
@ -19,6 +20,7 @@ struct Square_Info : public FixedBlockSize<16>, public FixedKeyLength<16>, Fixed
|
||||||
|
|
||||||
/// \brief Square block cipher
|
/// \brief Square block cipher
|
||||||
/// \sa <a href="http://www.cryptopp.com/wiki/Square">Square</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/Square">Square</a>
|
||||||
|
/// \since Crypto++ 2.2
|
||||||
class Square : public Square_Info, public BlockCipherDocumentation
|
class Square : public Square_Info, public BlockCipherDocumentation
|
||||||
{
|
{
|
||||||
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<Square_Info>
|
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<Square_Info>
|
||||||
|
|
|
||||||
|
|
@ -12,13 +12,15 @@
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
/// \brief Twofish block cipher information
|
/// \brief Twofish block cipher information
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
struct Twofish_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>, FixedRounds<16>
|
struct Twofish_Info : public FixedBlockSize<16>, public VariableKeyLength<16, 16, 32, 8>, FixedRounds<16>
|
||||||
{
|
{
|
||||||
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "Twofish";}
|
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "Twofish";}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// \brief Twofish block cipher
|
/// \brief Twofish block cipher
|
||||||
//~ \sa <a href="http://www.cryptopp.com/wiki/Twofish">Twofish</a>
|
/// \sa <a href="http://www.cryptopp.com/wiki/Twofish">Twofish</a>
|
||||||
|
/// \since Crypto++ 3.1
|
||||||
class Twofish : public Twofish_Info, public BlockCipherDocumentation
|
class Twofish : public Twofish_Info, public BlockCipherDocumentation
|
||||||
{
|
{
|
||||||
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<Twofish_Info>
|
class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<Twofish_Info>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue