Crypto++ 8.4 Free C++ class library of cryptographic schemes

Classes | Public Member Functions | List of all members
PK_Encryptor Class Referenceabstract

Interface for public-key encryptors. More...

Inheritance diagram for PK_Encryptor:

## Classes
class | InvalidPlaintextLength
| Exception thrown when trying to encrypt plaintext of invalid length. More...

## Public Member Functions
virtual void | Encrypt (RandomNumberGenerator &rng, const byte *plaintext, size_t plaintextLength, byte *ciphertext, const NameValuePairs &parameters=g_nullNameValuePairs) const =0
| Encrypt a byte string. More...
virtual BufferedTransformation * | CreateEncryptionFilter (RandomNumberGenerator &rng, BufferedTransformation *attachment=NULL, const NameValuePairs &parameters=g_nullNameValuePairs) const
| Create a new encryption filter. 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 PublicKeyAlgorithm
CryptoMaterial & | AccessMaterial ()
| Retrieves a reference to a Public Key. More...
const CryptoMaterial & | GetMaterial () const
| Retrieves a reference to a Public Key. More...
virtual PublicKey & | AccessPublicKey ()=0
| Retrieves a reference to a Public Key. More...
virtual const PublicKey & | GetPublicKey () const
| Retrieves a reference to a Public Key. 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...
virtual std::string | AlgorithmProvider () const
| Retrieve the provider of this algorithm. More...
Public Member Functions inherited from Clonable
virtual Clonable * | Clone () const
| Copies this object. More...

## Detailed Description

Interface for public-key encryptors.

Definition at line 2680 of file cryptlib.h.

## Member Function Documentation

## ◆ Encrypt()

virtual void PK_Encryptor::Encrypt | ( | RandomNumberGenerator & | rng,
|  | const byte * | plaintext,
|  | size_t | plaintextLength,
|  | byte * | ciphertext,
|  | const NameValuePairs & | parameters = `g_nullNameValuePairs`
| ) |  | const
| pure virtual

Encrypt a byte string.

Parameters

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

Precondition
  `CiphertextLength(plaintextLength) != 0` ensures the plaintext isn't too large
  `COUNTOF(ciphertext) == CiphertextLength(plaintextLength)` ensures the output byte buffer is large enough.

See also
  PK_Decryptor

Implemented in DL_EncryptorBase< T >, DL_EncryptorBase< SCHEME_OPTIONS::Element >, and TF_EncryptorBase.

## ◆ CreateEncryptionFilter()

virtual BufferedTransformation* PK_Encryptor::CreateEncryptionFilter | ( | RandomNumberGenerator & | rng,
|  | BufferedTransformation * | attachment = `NULL`,
|  | const NameValuePairs & | parameters = `g_nullNameValuePairs`
| ) |  | const
| virtual

Create a new encryption filter.

Parameters

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

`attachment` can be `NULL`. The caller is responsible for deleting the returned pointer. Encoding parameters should be passed in the "EP" channel.

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

- cryptlib.h