PK_Decryptor Class Referenceabstract

Interface for public-key decryptors. More...

Inheritance diagram for PK_Decryptor:

## Public Member Functions

virtual DecodingResult | Decrypt (RandomNumberGenerator &rng, const byte *ciphertext, size_t ciphertextLength, byte *plaintext, const NameValuePairs &parameters=g_nullNameValuePairs) const =0
| Decrypt a byte string. More...
virtual BufferedTransformation * | CreateDecryptionFilter (RandomNumberGenerator &rng, BufferedTransformation *attachment=NULL, const NameValuePairs &parameters=g_nullNameValuePairs) const
| Create a new decryption filter. More...
DecodingResult | FixedLengthDecrypt (RandomNumberGenerator &rng, const byte *ciphertext, byte *plaintext, const NameValuePairs &parameters=g_nullNameValuePairs) const
| Decrypt a fixed size ciphertext. More...
Public Member Functions inherited from PK_CryptoSystem
virtual size_t | MaxPlaintextLength (size_t ciphertextLength) const =0
| Provides the maximum length of plaintext for a given ciphertext length. More...
virtual size_t | CiphertextLength (size_t plaintextLength) const =0
| Calculate the length of ciphertext given length of plaintext. More...
virtual bool | ParameterSupported (const char *name) const =0
| Determines whether this object supports the use of a named parameter. More...
virtual size_t | FixedCiphertextLength () const
| Provides the fixed ciphertext length, if one exists. More...
virtual size_t | FixedMaxPlaintextLength () const
| Provides the maximum plaintext length given a fixed ciphertext length. More...
Public Member Functions inherited from PrivateKeyAlgorithm
CryptoMaterial & | AccessMaterial ()
| Retrieves a reference to a Private Key. More...
const CryptoMaterial & | GetMaterial () const
| Retrieves a reference to a Private Key. More...
virtual PrivateKey & | AccessPrivateKey ()=0
| Retrieves a reference to a Private Key. More...
virtual const PrivateKey & | GetPrivateKey () const
| Retrieves a reference to a Private Key. More...
Public Member Functions inherited from AsymmetricAlgorithm
void | BERDecode (BufferedTransformation &bt)
| Loads this object from a BufferedTransformation. More...
void | DEREncode (BufferedTransformation &bt) const
| Saves this object to a BufferedTransformation. More...
Public Member Functions inherited from Algorithm
| Algorithm (bool checkSelfTestStatus=true)
| Interface for all crypto algorithms. More...
virtual std::string | AlgorithmName () const
| Provides the name of this algorithm. More...
Public Member Functions inherited from Clonable
virtual Clonable * | Clone () const
| Copies this object. More...

## Detailed Description

Interface for public-key decryptors.

Definition at line 2385 of file cryptlib.h.

## Member Function Documentation

## Decrypt()

virtual DecodingResult PK_Decryptor::Decrypt | ( | RandomNumberGenerator & | rng,
|  | const byte * | ciphertext,
|  | size_t | ciphertextLength,
|  | byte * | plaintext,
|  | const NameValuePairs & | parameters = `g_nullNameValuePairs`
| ) |  | const

pure virtual

Decrypt a byte string.

Parameters

  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 | a set of NameValuePairs to initialize this object

Returns
  the result of the decryption operation

If DecodingResult::isValidCoding is true, then DecodingResult::messageLength is valid and holds the the actual length of the plaintext recovered. The result is undefined if decryption failed. If DecodingResult::isValidCoding is false, then DecodingResult::messageLength is undefined.

Precondition
  `COUNTOF(plaintext) == MaxPlaintextLength(ciphertextLength)` ensures the output byte buffer is large enough

See also
  PK_Encryptor

Implemented in DL_DecryptorBase< T >, DL_DecryptorBase< SCHEME_OPTIONS::Element >, and TF_DecryptorBase.

## CreateDecryptionFilter()

BufferedTransformation * PK_Decryptor::CreateDecryptionFilter | ( | RandomNumberGenerator & | rng,
|  | BufferedTransformation * | attachment = `NULL`,
|  | const NameValuePairs & | parameters = `g_nullNameValuePairs`
| ) |  | const

virtual

Create a new decryption filter.

Parameters

  rng | a RandomNumberGenerator derived class
  attachment | an attached transformation
  parameters | a set of NameValuePairs to initialize this object

Returns
  the newly created decryption filter

Note
  the caller is responsible for deleting the returned pointer

Definition at line 865 of file cryptlib.cpp.

## FixedLengthDecrypt()

DecodingResult PK_Decryptor::FixedLengthDecrypt | ( | RandomNumberGenerator & | rng,
|  | const byte * | ciphertext,
|  | byte * | plaintext,
|  | const NameValuePairs & | parameters = `g_nullNameValuePairs`
| ) |  | const

inline

Decrypt a fixed size ciphertext.

Parameters

  rng | a RandomNumberGenerator derived class
  ciphertext | the encrypted byte buffer
  plaintext | a byte buffer to hold the decrypted string
  parameters | a set of NameValuePairs to initialize this object

Returns
  the result of the decryption operation

If DecodingResult::isValidCoding is true, then DecodingResult::messageLength is valid and holds the the actual length of the plaintext recovered. The result is undefined if decryption failed. If DecodingResult::isValidCoding is false, then DecodingResult::messageLength is undefined.

Precondition
  `COUNTOF(plaintext) == MaxPlaintextLength(ciphertextLength)` ensures the output byte buffer is large enough

See also
  PK_Encryptor

Definition at line 2432 of file cryptlib.h.

The documentation for this class was generated from the following files:

- cryptlib.h
- cryptlib.cpp