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;}
83 {m_n = n; m_e = e; m_d = d; m_p = p; m_q = q; m_dp = dp; m_dq = dq; m_u = u;}
111 bool GetVoidValue(
const char *name,
const std::type_info &valueType,
void *pValue)
const;
115 const Integer& GetPrime1()
const {
return m_p;}
116 const Integer& GetPrime2()
const {
return m_q;}
117 const Integer& GetPrivateExponent()
const {
return m_d;}
118 const Integer& GetModPrime1PrivateExponent()
const {
return m_dp;}
119 const Integer& GetModPrime2PrivateExponent()
const {
return m_dq;}
120 const Integer& GetMultiplicativeInverseOfPrime2ModPrime1()
const {
return m_u;}
122 void SetPrime1(
const Integer &p) {m_p = p;}
123 void SetPrime2(
const Integer &q) {m_q = q;}
124 void SetPrivateExponent(
const Integer &d) {m_d = d;}
125 void SetModPrime1PrivateExponent(
const Integer &dp) {m_dp = dp;}
126 void SetModPrime2PrivateExponent(
const Integer &dq) {m_dq = dq;}
127 void SetMultiplicativeInverseOfPrime2ModPrime1(
const Integer &u) {m_u = u;}
130 Integer m_d, m_p, m_q, m_dp, m_dq, m_u;
155 CRYPTOPP_CONSTEXPR
static const char * CRYPTOPP_API StaticAlgorithmName() {
return "RSA";}
164 template <
class STANDARD>
175 template <
class STANDARD,
class H>
184 CRYPTOPP_CONSTEXPR
static const char * CRYPTOPP_API StaticAlgorithmName() {
return "RSA-ISO";}
211 #ifdef CRYPTOPP_DOXYGEN_PROCESSING 246 #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 DEREncode(BufferedTransformation &bt) const
Encode this object into a BufferedTransformation.
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.
Encodes and decodesprivateKeyInfo.
RSASS<PKCS1v15, Weak::MD2>::Verifier typedef
Abstract base classes that provide a uniform interface to this library.
void DEREncode(BufferedTransformation &bt) const
Encode this object into a BufferedTransformation.
Interface for random number generators.
OID GetAlgorithmID() const
Retrieves the OID of the algorithm.
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.
RSASS<PKCS1v15, Weak::MD2>::Signer typedef
RSASS<PKCS1v15, Weak::MD5>::Signer typedef
Applies the inverse of the trapdoor function.
virtual bool Validate(RandomNumberGenerator &rng, unsigned int level) const =0
Check this object for errors.
RSAES<OAEP<SHA>>::Decryptor typedef
void Save(BufferedTransformation &bt) const
Saves a key to a BufferedTransformation.
RSASS<PKCS1v15,SHA>::Verifier typedef
RSAES<OAEP<SHA>>::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 with {n,e}.
virtual bool GetVoidValue(const char *name, const std::type_info &valueType, void *pValue) const =0
Get a named value.
Applies the trapdoor function.
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 and functions for working with ANS.1 objects.
Integer PreimageBound() const
Returns the maximum size of a message before the trapdoor function is applied.
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 with {n,e,d,p,q,dp,dq,u}.
RSASS<PKCS1v15, Weak::MD5>::Verifier typedef
virtual void GenerateRandom(RandomNumberGenerator &rng, const NameValuePairs ¶ms=g_nullNameValuePairs)
Generate a random key or crypto parameters.
Integer ImageBound() const
Returns the maximum size of a message after the trapdoor function is applied.
OID GetAlgorithmID() const
Retrieves the OID of the algorithm.
RSA encryption algorithm.
Multiple precision integer with arithmetic operations.
RSA trapdoor function using the public key.
Crypto++ library namespace.
Integer ApplyFunction(const Integer &x) const
Applies the trapdoor.
Encodes and decodes subjectPublicKeyInfo.
RSASS<PKCS1v15,SHA>::Signer typedef
Integer PreimageBound() const
Returns the maximum size of a message before the trapdoor function is applied.
Integer CalculateInverse(RandomNumberGenerator &rng, const Integer &x) const
Calculates the inverse of an element.
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.
EME-OAEP, for use with classes derived from TF_ES
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.