Crypto++ 8.0 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 2582 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()

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.

Definition at line 856 of file cryptlib.cpp.

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

- cryptlib.h
- cryptlib.cpp