Fabcoin Core  0.16.2
P2P Digital Currency
Classes | Public Member Functions | List of all members
PK_Encryptor Class Referenceabstract

Interface for public-key encryptors. More...

#include <cryptlib.h>

Inheritance diagram for PK_Encryptor:
[legend]
Collaboration diagram for PK_Encryptor:
[legend]

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 BufferedTransformationCreateEncryptionFilter (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 ~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
virtual ~PublicKeyAlgorithm ()
 
CryptoMaterialAccessMaterial ()
 Retrieves a reference to a Public Key. More...
 
const CryptoMaterialGetMaterial () const
 Retrieves a reference to a Public Key. More...
 
virtual PublicKeyAccessPublicKey ()=0
 Retrieves a reference to a Public Key. More...
 
virtual const PublicKeyGetPublicKey () const
 Retrieves a reference to a Public Key. More...
 
- Public Member Functions inherited from AsymmetricAlgorithm
virtual ~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
virtual ~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 ()
 
virtual ClonableClone () const
 Copies this object. More...
 

Detailed Description

Interface for public-key encryptors.

Definition at line 2336 of file cryptlib.h.

Member Function Documentation

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

Create a new encryption filter.

Parameters
rnga RandomNumberGenerator derived class
attachmentan attached transformation
parametersa 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 825 of file cryptlib.cpp.

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
rnga RandomNumberGenerator derived class
plaintextthe plaintext byte buffer
plaintextLengththe size of the plaintext byte buffer
ciphertexta byte buffer to hold the encrypted string
parametersa 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.

Here is the caller graph for this function:


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