Crypto++
5.6.3
Free C++ class library of cryptographic schemes
|
Interface for public-key decryptors. More...
Public Member Functions | |
virtual DecodingResult | Decrypt (RandomNumberGenerator &rng, const byte *ciphertext, size_t ciphertextLength, byte *plaintext, const NameValuePairs ¶meters=g_nullNameValuePairs) const =0 |
Decrypt a byte string. More... | |
virtual BufferedTransformation * | CreateDecryptionFilter (RandomNumberGenerator &rng, BufferedTransformation *attachment=NULL, const NameValuePairs ¶meters=g_nullNameValuePairs) const |
create a new decryption filter More... | |
DecodingResult | FixedLengthDecrypt (RandomNumberGenerator &rng, const byte *ciphertext, byte *plaintext, const NameValuePairs ¶meters=g_nullNameValuePairs) const |
decrypt a fixed size ciphertext | |
virtual size_t | MaxPlaintextLength (size_t ciphertextLength) const =0 |
maximum length of plaintext for a given ciphertext length More... | |
virtual size_t | CiphertextLength (size_t plaintextLength) const =0 |
calculate length of ciphertext given length of plaintext More... | |
virtual bool | ParameterSupported (const char *name) const =0 |
this object supports the use of the parameter with the given name More... | |
virtual size_t | FixedCiphertextLength () const |
return fixed ciphertext length, if one exists, otherwise return 0 More... | |
virtual size_t | FixedMaxPlaintextLength () const |
return maximum plaintext length given the fixed ciphertext length, if one exists, otherwise return 0 | |
CryptoMaterial & | AccessMaterial () |
returns a reference to the crypto material used by this object | |
const CryptoMaterial & | GetMaterial () const |
returns a const reference to the crypto material used by this object | |
virtual PrivateKey & | AccessPrivateKey ()=0 |
virtual const PrivateKey & | GetPrivateKey () const |
void | BERDecode (BufferedTransformation &bt) |
for backwards compatibility, calls AccessMaterial().Load(bt) | |
void | DEREncode (BufferedTransformation &bt) const |
for backwards compatibility, calls GetMaterial().Save(bt) | |
virtual std::string | AlgorithmName () const |
Provides the name of this algorithm. More... | |
virtual Clonable * | Clone () const |
Copies this object. More... | |
Interface for public-key decryptors.
Definition at line 2196 of file cryptlib.h.
|
pure virtual |
Decrypt a byte string.
rng | a RandomNumberGenerator derived class |
ciphertext | the encrypted byte buffer |
ciphertextLength | the size of the encrypted byte buffer |
plaintext | a byte buffer to hold the decrypted string |
parameters | additional configuration options |
COUNTOF(plaintext) == MaxPlaintextLength(ciphertextLength)
ensures the output byte buffer is large enoughIf DecodingResult::isValidCoding is true, then DecodingResult::messageLength is valid and holds the the actual length of the plaintext recovered. on success. The result is undefined if decryption failed. If DecodingResult::isValidCoding is false, then DecodingResult::messageLength is undefined.
Implemented in DL_DecryptorBase< T >, DL_DecryptorBase< SCHEME_OPTIONS::Element >, and TF_DecryptorBase.
Referenced by FixedRNG::GenerateBlock().
|
virtual |
create a new decryption filter
Definition at line 864 of file cryptlib.cpp.
|
pure virtualinherited |
maximum length of plaintext for a given ciphertext length
Referenced by FixedRNG::GenerateBlock().
|
pure virtualinherited |
calculate length of ciphertext given length of plaintext
Referenced by FixedRNG::GenerateBlock().
|
pure virtualinherited |
this object supports the use of the parameter with the given name
some possible parameter names: EncodingParameters, KeyDerivationParameters
|
inlinevirtualinherited |
return fixed ciphertext length, if one exists, otherwise return 0
Definition at line 2150 of file cryptlib.h.
|
inlinevirtualinherited |
Provides the name of this algorithm.
The standard algorithm name can be a name like AES or AES/GCM. Some algorithms do not have standard names yet. For example, there is no standard algorithm name for Shoup's ECIES.
Reimplemented in AuthenticatedSymmetricCipher, SignatureVerificationFilter, SignerFilter, AuthenticatedDecryptionFilter, HashVerificationFilter, HashFilter, StreamTransformationFilter, ClassNullRNG, BitBucket, RDSEED, DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >, HMAC< T >, RDRAND, CRC32, GCM_Base, Adler32, EAX_Base, CCM_Base, SHA3, and VMAC_Base.
Definition at line 488 of file cryptlib.h.
Referenced by VariableRounds< 6, 2 >::StaticGetDefaultRounds().
|
inlinevirtualinherited |
Copies this object.
NotImplemented |
Definition at line 464 of file cryptlib.h.