#include <rsa.h>
Inheritance diagram for InvertibleRSAFunction:

Definition at line 53 of file rsa.h.
Public Member Functions | |
| void | Initialize (RandomNumberGenerator &rng, unsigned int modulusBits, const Integer &e=17) |
| 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) |
| factor n given private exponent | |
| void | BERDecode (BufferedTransformation &bt) |
| decode this object from a BufferedTransformation, using BER (Basic Encoding Rules) | |
| void | DEREncode (BufferedTransformation &bt) const |
| encode this object into a BufferedTransformation, using DER (Distinguished Encoding Rules) | |
| void | Load (BufferedTransformation &bt) |
| load key from a BufferedTransformation | |
| void | Save (BufferedTransformation &bt) const |
| save key into a BufferedTransformation | |
| OID | GetAlgorithmID () const |
| void | BERDecodePrivateKey (BufferedTransformation &bt, bool parametersPresent, size_t size) |
| decode privateKey part of privateKeyInfo, without the OCTET STRING header | |
| void | DEREncodePrivateKey (BufferedTransformation &bt) const |
| encode privateKey part of privateKeyInfo, without the OCTET STRING header | |
| Integer | CalculateInverse (RandomNumberGenerator &rng, const Integer &x) const |
| bool | Validate (RandomNumberGenerator &rng, unsigned int level) const |
| check this object for errors | |
| void | GenerateRandom (RandomNumberGenerator &rng, const NameValuePairs &alg) |
| bool | GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const |
| to be implemented by derived classes, users should use one of the above functions instead | |
| void | AssignFrom (const NameValuePairs &source) |
| assign values from source to this object | |
| const Integer & | GetPrime1 () const |
| const Integer & | GetPrime2 () const |
| const Integer & | GetPrivateExponent () const |
| const Integer & | GetModPrime1PrivateExponent () const |
| const Integer & | GetModPrime2PrivateExponent () const |
| const Integer & | GetMultiplicativeInverseOfPrime2ModPrime1 () const |
| void | SetPrime1 (const Integer &p) |
| void | SetPrime2 (const Integer &q) |
| void | SetPrivateExponent (const Integer &d) |
| void | SetModPrime1PrivateExponent (const Integer &dp) |
| void | SetModPrime2PrivateExponent (const Integer &dq) |
| void | SetMultiplicativeInverseOfPrime2ModPrime1 (const Integer &u) |
| void | Initialize (const Integer &n, const Integer &e) |
| void | BERDecodePublicKey (BufferedTransformation &bt, bool parametersPresent, size_t size) |
| decode subjectPublicKey part of subjectPublicKeyInfo, without the BIT STRING header | |
| void | DEREncodePublicKey (BufferedTransformation &bt) const |
| encode subjectPublicKey part of subjectPublicKeyInfo, without the BIT STRING header | |
| Integer | ApplyFunction (const Integer &x) const |
| Integer | PreimageBound () const |
| Integer | ImageBound () const |
| const Integer & | GetModulus () const |
| const Integer & | GetPublicExponent () const |
| void | SetModulus (const Integer &n) |
| void | SetPublicExponent (const Integer &e) |
| Integer | ApplyRandomizedFunction (RandomNumberGenerator &rng, const Integer &x) const |
| bool | IsRandomized () const |
| virtual Integer | MaxPreimage () const |
| virtual Integer | MaxImage () const |
| virtual bool | BERDecodeAlgorithmParameters (BufferedTransformation &bt) |
| virtual bool | DEREncodeAlgorithmParameters (BufferedTransformation &bt) const |
| virtual void | BEREncode (BufferedTransformation &bt) const |
| encode this object into a BufferedTransformation, using BER | |
| Integer | CalculateRandomizedInverse (RandomNumberGenerator &rng, const Integer &x) const |
| bool | IsRandomized () const |
| virtual bool | BERDecodeAlgorithmParameters (BufferedTransformation &bt) |
| virtual bool | DEREncodeAlgorithmParameters (BufferedTransformation &bt) const |
| virtual void | BERDecodeOptionalAttributes (BufferedTransformation &bt) |
| decode optional attributes including context-specific tag | |
| virtual void | DEREncodeOptionalAttributes (BufferedTransformation &bt) const |
| encode optional attributes including context-specific tag | |
Protected Attributes | |
| Integer | m_d |
| Integer | m_p |
| Integer | m_q |
| Integer | m_dp |
| Integer | m_dq |
| Integer | m_u |
| Integer | m_n |
| Integer | m_e |
| ByteQueue | m_optionalAttributes |
| void InvertibleRSAFunction::Load | ( | BufferedTransformation & | bt | ) | [inline, virtual] |
load key from a BufferedTransformation
| KeyingErr | if decode fails |
Reimplemented from ASN1CryptoMaterial< PrivateKey >.
Definition at line 69 of file rsa.h.
References PKCS8PrivateKey::BERDecode().
| bool InvertibleRSAFunction::Validate | ( | RandomNumberGenerator & | rng, | |
| unsigned int | level | |||
| ) | const [virtual] |
check this object for errors
| level | denotes the level of thoroughness: 0 - using this object won't cause a crash or exception (rng is ignored) 1 - this object will probably function (encrypt, sign, etc.) correctly (but may not check for weak keys and such) 2 - make sure this object will function correctly, and do reasonable security checks 3 - do checks that may take a long time |
Reimplemented from RSAFunction.
Definition at line 243 of file rsa.cpp.
References Integer::IsOdd(), Integer::IsPositive(), m_d, m_dp, m_dq, RSAFunction::m_e, RSAFunction::m_n, m_p, m_q, m_u, Integer::One(), and RSAFunction::Validate().
| void InvertibleRSAFunction::GenerateRandom | ( | RandomNumberGenerator & | rng, | |
| const NameValuePairs & | alg | |||
| ) | [virtual] |
parameters: (ModulusSize, PublicExponent (default 17))
Reimplemented from GeneratableCryptoMaterial.
Definition at line 104 of file rsa.cpp.
References Integer::GenerateRandom(), NameValuePairs::GetIntValue(), PrimeSelector::GetSelectorPointer(), NameValuePairs::GetValueWithDefault(), Integer::InverseMod(), Integer::IsEven(), Integer::IsPositive(), Name::KeySize(), m_d, m_dp, m_dq, RSAFunction::m_e, RSAFunction::m_n, m_p, m_q, m_u, Name::ModulusSize(), Name::PointerToPrimeSelector(), and Name::PublicExponent().
Referenced by Initialize().
| void InvertibleRSAFunction::AssignFrom | ( | const NameValuePairs & | source | ) | [virtual] |
assign values from source to this object
Reimplemented from RSAFunction.
| virtual void ASN1Object::BEREncode | ( | BufferedTransformation & | bt | ) | const [inline, virtual, inherited] |
encode this object into a BufferedTransformation, using BER
this may be useful if DEREncode() would be too inefficient
Definition at line 1579 of file cryptlib.h.
Referenced by ASN1CryptoMaterial< PublicKey >::Save().
| void PKCS8PrivateKey::BERDecodeOptionalAttributes | ( | BufferedTransformation & | bt | ) | [virtual, inherited] |
decode optional attributes including context-specific tag
/note default implementation stores attributes to be output in DEREncodeOptionalAttributes
Definition at line 583 of file asn.cpp.
References PKCS8PrivateKey::m_optionalAttributes.
Referenced by PKCS8PrivateKey::BERDecode().
1.5.1-p1