35 OID GetAlgorithmID()
const;
41 bool GetVoidValue(
const char *name,
const std::type_info &valueType,
void *pValue)
const;
50 const Integer & GetModulus()
const {
return m_n;}
51 const Integer & GetPublicExponent()
const {
return m_e;}
53 void SetModulus(
const Integer &n) {m_n = n;}
54 void SetPublicExponent(
const Integer &e) {m_e = e;}
88 {m_n = n; m_e = e; m_d = d; m_p = p; m_q = q; m_dp = dp; m_dq = dq; m_u = u;}
118 bool GetVoidValue(
const char *name,
const std::type_info &valueType,
void *pValue)
const;
122 const Integer& GetPrime1()
const {
return m_p;}
123 const Integer& GetPrime2()
const {
return m_q;}
124 const Integer& GetPrivateExponent()
const {
return m_d;}
125 const Integer& GetModPrime1PrivateExponent()
const {
return m_dp;}
126 const Integer& GetModPrime2PrivateExponent()
const {
return m_dq;}
127 const Integer& GetMultiplicativeInverseOfPrime2ModPrime1()
const {
return m_u;}
129 void SetPrime1(
const Integer &p) {m_p = p;}
130 void SetPrime2(
const Integer &q) {m_q = q;}
131 void SetPrivateExponent(
const Integer &d) {m_d = d;}
132 void SetModPrime1PrivateExponent(
const Integer &dp) {m_dp = dp;}
133 void SetModPrime2PrivateExponent(
const Integer &dq) {m_dq = dq;}
134 void SetMultiplicativeInverseOfPrime2ModPrime1(
const Integer &u) {m_u = u;}
137 Integer m_d, m_p, m_q, m_dp, m_dq, m_u;
162 CRYPTOPP_STATIC_CONSTEXPR
const char* CRYPTOPP_API StaticAlgorithmName() {
return "RSA";}
171 template <
class STANDARD>
182 template <
class STANDARD,
class H>
191 CRYPTOPP_STATIC_CONSTEXPR
const char* CRYPTOPP_API StaticAlgorithmName() {
return "RSA-ISO";}
218 #ifdef CRYPTOPP_DOXYGEN_PROCESSING 259 #endif // CRYPTOPP_DOXYGEN_PROCESSING virtual void AssignFrom(const NameValuePairs &source)=0
Assign values to this object.
RSAES<PKCS1v15>::Encryptor typedef
virtual void BERDecodePrivateKey(BufferedTransformation &bt, bool parametersPresent, size_t size)=0
decode privateKey part of privateKeyInfo, without the OCTET STRING header
void Load(BufferedTransformation &bt)
Loads a key from a BufferedTransformation.
Trapdoor Function (TF) encryption scheme.
Classes and functions for various padding schemes used in public key algorithms.
This file contains helper classes/functions for implementing public key algorithms.
void Save(BufferedTransformation &bt) const
Saves a key to a BufferedTransformation.
Encodes and Decodes privateKeyInfo.
RSASS<PKCS1v15, Weak::MD2>::Verifier typedef
Abstract base classes that provide a uniform interface to this library.
OID GetAlgorithmID() const
Retrieves the OID of the algorithm.
Interface for random number generators.
virtual void DEREncodePrivateKey(BufferedTransformation &bt) const =0
encode privateKey part of privateKeyInfo, without the OCTET STRING header
void BERDecode(BufferedTransformation &bt)
Decode this object from a BufferedTransformation.
Integer ApplyFunction(const Integer &x) const
Applies the trapdoor.
RSASS<PKCS1v15, Weak::MD2>::Signer typedef
RSASS<PKCS1v15, Weak::MD5>::Signer typedef
Applies the inverse of the trapdoor function.
Classes for PKCS padding schemes.
virtual bool Validate(RandomNumberGenerator &rng, unsigned int level) const =0
Check this object for errors.
RSAES<OAEP<SHA1>>::Decryptor typedef
PKCS #1 version 1.5, for use with RSAES and RSASS .
Integer ImageBound() const
Returns the maximum size of a message after the trapdoor function is applied.
RSASS<PKCS1v15,SHA1>::Verifier typedef
RSAES<OAEP<SHA1>>::Encryptor typedef
Multiple precision integer with arithmetic operations.
RSA trapdoor function using the private key.
void Initialize(const Integer &n, const Integer &e)
Initialize a RSA public key.
void DEREncode(BufferedTransformation &bt) const
Encode this object into a BufferedTransformation.
virtual bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const =0
Get a named value.
Applies the trapdoor function.
Integer CalculateInverse(RandomNumberGenerator &rng, const Integer &x) const
Calculates the inverse of an element.
void BERDecode(BufferedTransformation &bt)
Decode this object from a BufferedTransformation.
virtual Integer CalculateInverse(RandomNumberGenerator &rng, const Integer &x) const =0
Calculates the inverse of an element.
Classes for optimal asymmetric encryption padding.
Classes and functions for working with ANS.1 objects.
RSAES<PKCS1v15>::Decryptor typedef
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)
Initialize a RSA private key.
RSASS<PKCS1v15, Weak::MD5>::Verifier typedef
void DEREncode(BufferedTransformation &bt) const
Encode this object into a BufferedTransformation.
virtual void GenerateRandom(RandomNumberGenerator &rng, const NameValuePairs ¶ms=g_nullNameValuePairs)
Generate a random key or crypto parameters.
RSA encryption algorithm.
Multiple precision integer with arithmetic operations.
RSA trapdoor function using the public key.
Crypto++ library namespace.
Encodes and decodes subjectPublicKeyInfo.
RSASS<PKCS1v15,SHA1>::Signer typedef
Integer PreimageBound() const
Returns the maximum size of a message before the trapdoor function is applied.
Namespace containing weak and wounded algorithms.
RSA trapdoor function using the public key.
Integer PreimageBound() const
Returns the maximum size of a message before the trapdoor function is applied.
OID GetAlgorithmID() const
Retrieves the OID of the algorithm.
Integer PreimageBound() const
Returns the maximum size of a message before the trapdoor function is applied.
Interface for retrieving values given their names.
Template implementing constructors for public key algorithm classes.
Trapdoor Function (TF) Signature Scheme.
RSA trapdoor function using the private key.