mirror of
https://github.com/shadps4-emu/ext-cryptopp.git
synced 2024-11-27 03:40:22 +00:00
Updated documentation (Issue 328)
This commit is contained in:
parent
d45763a7ae
commit
7cc8ad1a1d
14
eccrypto.h
14
eccrypto.h
@ -181,8 +181,22 @@ public:
|
|||||||
{this->AccessGroupParameters() = params; this->SetPrivateExponent(x);}
|
{this->AccessGroupParameters() = params; this->SetPrivateExponent(x);}
|
||||||
void Initialize(const EC &ec, const Element &G, const Integer &n, const Integer &x)
|
void Initialize(const EC &ec, const Element &G, const Integer &n, const Integer &x)
|
||||||
{this->AccessGroupParameters().Initialize(ec, G, n); this->SetPrivateExponent(x);}
|
{this->AccessGroupParameters().Initialize(ec, G, n); this->SetPrivateExponent(x);}
|
||||||
|
//! \brief Create an EC private key
|
||||||
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
|
//! \param params the EC group parameters
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, const DL_GroupParameters_EC<EC> ¶ms)
|
void Initialize(RandomNumberGenerator &rng, const DL_GroupParameters_EC<EC> ¶ms)
|
||||||
{this->GenerateRandom(rng, params);}
|
{this->GenerateRandom(rng, params);}
|
||||||
|
//! \brief Create an EC private key
|
||||||
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
|
//! \param ec the elliptic curve
|
||||||
|
//! \param G the base point
|
||||||
|
//! \param n the cofactor
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, const EC &ec, const Element &G, const Integer &n)
|
void Initialize(RandomNumberGenerator &rng, const EC &ec, const Element &G, const Integer &n)
|
||||||
{this->GenerateRandom(rng, DL_GroupParameters_EC<EC>(ec, G, n));}
|
{this->GenerateRandom(rng, DL_GroupParameters_EC<EC>(ec, G, n));}
|
||||||
|
|
||||||
|
8
esign.h
8
esign.h
@ -64,7 +64,13 @@ class InvertibleESIGNFunction : public ESIGNFunction, public RandomizedTrapdoorF
|
|||||||
public:
|
public:
|
||||||
void Initialize(const Integer &n, const Integer &e, const Integer &p, const Integer &q)
|
void Initialize(const Integer &n, const Integer &e, const Integer &p, const Integer &q)
|
||||||
{m_n = n; m_e = e; m_p = p; m_q = q;}
|
{m_n = n; m_e = e; m_p = p; m_q = q;}
|
||||||
// generate a random private key
|
|
||||||
|
//! \brief Create a RSA private key
|
||||||
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
|
//! \param modulusBits the size of the modulud, in bits
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits)
|
void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits)
|
||||||
{GenerateRandomWithKeySize(rng, modulusBits);}
|
{GenerateRandomWithKeySize(rng, modulusBits);}
|
||||||
|
|
||||||
|
31
gfpcrypt.h
31
gfpcrypt.h
@ -39,6 +39,12 @@ public:
|
|||||||
|
|
||||||
void Initialize(const DL_GroupParameters_IntegerBased ¶ms)
|
void Initialize(const DL_GroupParameters_IntegerBased ¶ms)
|
||||||
{Initialize(params.GetModulus(), params.GetSubgroupOrder(), params.GetSubgroupGenerator());}
|
{Initialize(params.GetModulus(), params.GetSubgroupOrder(), params.GetSubgroupGenerator());}
|
||||||
|
//! \brief Create a trapdoor function keypair
|
||||||
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
|
//! \param pbits the size of p, in bits
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, unsigned int pbits)
|
void Initialize(RandomNumberGenerator &rng, unsigned int pbits)
|
||||||
{GenerateRandom(rng, MakeParameters("ModulusSize", (int)pbits));}
|
{GenerateRandom(rng, MakeParameters("ModulusSize", (int)pbits));}
|
||||||
void Initialize(const Integer &p, const Integer &g)
|
void Initialize(const Integer &p, const Integer &g)
|
||||||
@ -271,14 +277,39 @@ class DL_PrivateKey_GFP : public DL_PrivateKeyImpl<GP>
|
|||||||
public:
|
public:
|
||||||
virtual ~DL_PrivateKey_GFP() {}
|
virtual ~DL_PrivateKey_GFP() {}
|
||||||
|
|
||||||
|
//! \brief Create a private key
|
||||||
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
|
//! \param modulusBits the size of the modulus, in bits
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits)
|
void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits)
|
||||||
{this->GenerateRandomWithKeySize(rng, modulusBits);}
|
{this->GenerateRandomWithKeySize(rng, modulusBits);}
|
||||||
|
|
||||||
|
//! \brief Create a private key
|
||||||
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
|
//! \param p TODO
|
||||||
|
//! \param g TODO
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, const Integer &p, const Integer &g)
|
void Initialize(RandomNumberGenerator &rng, const Integer &p, const Integer &g)
|
||||||
{this->GenerateRandom(rng, MakeParameters("Modulus", p)("SubgroupGenerator", g));}
|
{this->GenerateRandom(rng, MakeParameters("Modulus", p)("SubgroupGenerator", g));}
|
||||||
|
|
||||||
|
//! \brief Create a private key
|
||||||
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
|
//! \param p TODO
|
||||||
|
//! \param q TODO
|
||||||
|
//! \param g TODO
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, const Integer &p, const Integer &q, const Integer &g)
|
void Initialize(RandomNumberGenerator &rng, const Integer &p, const Integer &q, const Integer &g)
|
||||||
{this->GenerateRandom(rng, MakeParameters("Modulus", p)("SubgroupOrder", q)("SubgroupGenerator", g));}
|
{this->GenerateRandom(rng, MakeParameters("Modulus", p)("SubgroupOrder", q)("SubgroupGenerator", g));}
|
||||||
|
|
||||||
void Initialize(const DL_GroupParameters_IntegerBased ¶ms, const Integer &x)
|
void Initialize(const DL_GroupParameters_IntegerBased ¶ms, const Integer &x)
|
||||||
{this->AccessGroupParameters().Initialize(params); this->SetPrivateExponent(x);}
|
{this->AccessGroupParameters().Initialize(params); this->SetPrivateExponent(x);}
|
||||||
|
|
||||||
void Initialize(const Integer &p, const Integer &g, const Integer &x)
|
void Initialize(const Integer &p, const Integer &g, const Integer &x)
|
||||||
{this->AccessGroupParameters().Initialize(p, g); this->SetPrivateExponent(x);}
|
{this->AccessGroupParameters().Initialize(p, g); this->SetPrivateExponent(x);}
|
||||||
void Initialize(const Integer &p, const Integer &q, const Integer &g, const Integer &x)
|
void Initialize(const Integer &p, const Integer &q, const Integer &g, const Integer &x)
|
||||||
|
8
luc.h
8
luc.h
@ -76,6 +76,14 @@ class InvertibleLUCFunction : public LUCFunction, public TrapdoorFunctionInverse
|
|||||||
public:
|
public:
|
||||||
virtual ~InvertibleLUCFunction() {}
|
virtual ~InvertibleLUCFunction() {}
|
||||||
|
|
||||||
|
//! \brief Create a LUC private key
|
||||||
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
|
//! \param modulusBits the size of the modulus, in bits
|
||||||
|
//! \param eStart the desired starting public exponent
|
||||||
|
//! \details Initialize() creates a new keypair using a starting public exponent of 17.
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits, const Integer &eStart=17);
|
void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits, const Integer &eStart=17);
|
||||||
void Initialize(const Integer &n, const Integer &e, const Integer &p, const Integer &q, const Integer &u)
|
void Initialize(const Integer &n, const Integer &e, const Integer &p, const Integer &q, const Integer &u)
|
||||||
{m_n = n; m_e = e; m_p = p; m_q = q; m_u = u;}
|
{m_n = n; m_e = e; m_p = p; m_q = q; m_u = u;}
|
||||||
|
24
rabin.h
24
rabin.h
@ -13,7 +13,9 @@
|
|||||||
|
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
//! _
|
//! \class RabinFunction
|
||||||
|
//! \brief Rabin trapdoor function using the public key
|
||||||
|
//! \since Crypto++ 2.0
|
||||||
class RabinFunction : public TrapdoorFunction, public PublicKey
|
class RabinFunction : public TrapdoorFunction, public PublicKey
|
||||||
{
|
{
|
||||||
typedef RabinFunction ThisClass;
|
typedef RabinFunction ThisClass;
|
||||||
@ -45,7 +47,9 @@ protected:
|
|||||||
Integer m_n, m_r, m_s;
|
Integer m_n, m_r, m_s;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! _
|
//! \class InvertibleRabinFunction
|
||||||
|
//! \brief Rabin trapdoor function using the private key
|
||||||
|
//! \since Crypto++ 2.0
|
||||||
class InvertibleRabinFunction : public RabinFunction, public TrapdoorFunctionInverse, public PrivateKey
|
class InvertibleRabinFunction : public RabinFunction, public TrapdoorFunctionInverse, public PrivateKey
|
||||||
{
|
{
|
||||||
typedef InvertibleRabinFunction ThisClass;
|
typedef InvertibleRabinFunction ThisClass;
|
||||||
@ -54,6 +58,13 @@ public:
|
|||||||
void Initialize(const Integer &n, const Integer &r, const Integer &s,
|
void Initialize(const Integer &n, const Integer &r, const Integer &s,
|
||||||
const Integer &p, const Integer &q, const Integer &u)
|
const Integer &p, const Integer &q, const Integer &u)
|
||||||
{m_n = n; m_r = r; m_s = s; m_p = p; m_q = q; m_u = u;}
|
{m_n = n; m_r = r; m_s = s; m_p = p; m_q = q; m_u = u;}
|
||||||
|
|
||||||
|
//! \brief Create a Rabin private key
|
||||||
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
|
//! \param keybits the size of the key, in bits
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, unsigned int keybits)
|
void Initialize(RandomNumberGenerator &rng, unsigned int keybits)
|
||||||
{GenerateRandomWithKeySize(rng, keybits);}
|
{GenerateRandomWithKeySize(rng, keybits);}
|
||||||
|
|
||||||
@ -80,7 +91,7 @@ protected:
|
|||||||
Integer m_p, m_q, m_u;
|
Integer m_p, m_q, m_u;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Rabin
|
//! \brief Rabin keys
|
||||||
struct Rabin
|
struct Rabin
|
||||||
{
|
{
|
||||||
static std::string StaticAlgorithmName() {return "Rabin-Crypto++Variant";}
|
static std::string StaticAlgorithmName() {return "Rabin-Crypto++Variant";}
|
||||||
@ -88,13 +99,16 @@ struct Rabin
|
|||||||
typedef InvertibleRabinFunction PrivateKey;
|
typedef InvertibleRabinFunction PrivateKey;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Rabin encryption
|
//! \brief Rabin encryption scheme
|
||||||
|
//! \tparam STANDARD encryption standard
|
||||||
template <class STANDARD>
|
template <class STANDARD>
|
||||||
struct RabinES : public TF_ES<Rabin, STANDARD>
|
struct RabinES : public TF_ES<Rabin, STANDARD>
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Rabin signature
|
//! \brief Rabin signature scheme
|
||||||
|
//! \tparam STANDARD signature standard
|
||||||
|
//! \tparam H hash transformation
|
||||||
template <class STANDARD, class H>
|
template <class STANDARD, class H>
|
||||||
struct RabinSS : public TF_SS<Rabin, STANDARD, H>
|
struct RabinSS : public TF_SS<Rabin, STANDARD, H>
|
||||||
{
|
{
|
||||||
|
7
rsa.h
7
rsa.h
@ -68,8 +68,12 @@ class CRYPTOPP_DLL InvertibleRSAFunction : public RSAFunction, public TrapdoorFu
|
|||||||
public:
|
public:
|
||||||
//! \brief Create a RSA private key
|
//! \brief Create a RSA private key
|
||||||
//! \param rng a RandomNumberGenerator derived class
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
//! \param modulusBits the size of the modulud, in bits
|
//! \param modulusBits the size of the modulus, in bits
|
||||||
//! \param e the desired public exponent
|
//! \param e the desired public exponent
|
||||||
|
//! \details Initialize() creates a new keypair using a public exponent of 17.
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits, const Integer &e = 17);
|
void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits, const Integer &e = 17);
|
||||||
|
|
||||||
//! \brief Initialize a RSA private key with {n,e,d,p,q,dp,dq,u}
|
//! \brief Initialize a RSA private key with {n,e,d,p,q,dp,dq,u}
|
||||||
@ -83,6 +87,7 @@ public:
|
|||||||
//! \param u q<sup>-1</sup> mod p
|
//! \param u q<sup>-1</sup> mod p
|
||||||
void Initialize(const Integer &n, const Integer &e, const Integer &d, const Integer &p, const Integer &q, const Integer &dp, const Integer &dq, const Integer &u)
|
void Initialize(const Integer &n, const Integer &e, const Integer &d, const Integer &p, const Integer &q, const Integer &dp, const Integer &dq, const Integer &u)
|
||||||
{m_n = n; m_e = e; m_d = d; m_p = p; m_q = q; m_dp = dp; m_dq = dq; m_u = u;}
|
{m_n = n; m_e = e; m_d = d; m_p = p; m_q = q; m_dp = dp; m_dq = dq; m_u = u;}
|
||||||
|
|
||||||
//! \brief Initialize a RSA private key with {n,e,d}
|
//! \brief Initialize a RSA private key with {n,e,d}
|
||||||
//! \param n modulus
|
//! \param n modulus
|
||||||
//! \param e public exponent
|
//! \param e public exponent
|
||||||
|
19
rw.h
19
rw.h
@ -19,6 +19,7 @@ NAMESPACE_BEGIN(CryptoPP)
|
|||||||
|
|
||||||
//! \class RWFunction
|
//! \class RWFunction
|
||||||
//! \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
|
||||||
class CRYPTOPP_DLL RWFunction : public TrapdoorFunction, public PublicKey
|
class CRYPTOPP_DLL RWFunction : public TrapdoorFunction, public PublicKey
|
||||||
{
|
{
|
||||||
typedef RWFunction ThisClass;
|
typedef RWFunction ThisClass;
|
||||||
@ -52,7 +53,7 @@ protected:
|
|||||||
|
|
||||||
//! \class InvertibleRWFunction
|
//! \class InvertibleRWFunction
|
||||||
//! \brief Rabin-Williams trapdoor function using the private key
|
//! \brief Rabin-Williams trapdoor function using the private key
|
||||||
//! \since Tweaked roots using <em>e</em> and <em>f</em> since Crypto++ 5.6.4
|
//! \since Crypto++ 2.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;
|
||||||
@ -61,7 +62,13 @@ public:
|
|||||||
InvertibleRWFunction() : m_precompute(false) {}
|
InvertibleRWFunction() : m_precompute(false) {}
|
||||||
|
|
||||||
void Initialize(const Integer &n, const Integer &p, const Integer &q, const Integer &u);
|
void Initialize(const Integer &n, const Integer &p, const Integer &q, const Integer &u);
|
||||||
// generate a random private key
|
|
||||||
|
//! \brief Create a Rabin-Williams private key
|
||||||
|
//! \param rng a RandomNumberGenerator derived class
|
||||||
|
//! \param modulusBits the size of the modulus, in bits
|
||||||
|
//! \details This function overload of Initialize() creates a new keypair because it
|
||||||
|
//! takes a RandomNumberGenerator() as a parameter. If you have an existing keypair,
|
||||||
|
//! then use one of the other Initialize() overloads.
|
||||||
void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits)
|
void Initialize(RandomNumberGenerator &rng, unsigned int modulusBits)
|
||||||
{GenerateRandomWithKeySize(rng, modulusBits);}
|
{GenerateRandomWithKeySize(rng, modulusBits);}
|
||||||
|
|
||||||
@ -107,17 +114,17 @@ protected:
|
|||||||
mutable bool m_precompute;
|
mutable bool m_precompute;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! \class RW
|
//! \brief Rabin-Williams keys
|
||||||
//! \brief Rabin-Williams algorithm
|
|
||||||
struct RW
|
struct RW
|
||||||
{
|
{
|
||||||
static std::string StaticAlgorithmName() {return "RW";}
|
CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "RW";}
|
||||||
typedef RWFunction PublicKey;
|
typedef RWFunction PublicKey;
|
||||||
typedef InvertibleRWFunction PrivateKey;
|
typedef InvertibleRWFunction PrivateKey;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! \class RWSS
|
|
||||||
//! \brief Rabin-Williams signature scheme
|
//! \brief Rabin-Williams signature scheme
|
||||||
|
//! \tparam STANDARD signature standard
|
||||||
|
//! \tparam H hash transformation
|
||||||
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>
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user