ElGamal::EncryptorImpl Class Reference

Inheritance diagram for ElGamal::EncryptorImpl:

ElGamalObjectImpl< DL_EncryptorBase< Integer >, SchemeOptions, SchemeOptions::PublicKey > PublicKeyCopier< SchemeOptions > DL_ObjectImplBase< DL_EncryptorBase< Integer >, SchemeOptions, SchemeOptions::PublicKey > ElGamalBase AlgorithmImpl< DL_EncryptorBase< Integer >, SchemeOptions::AlgorithmInfo > DL_KeyAgreementAlgorithm_DH< Integer, NoCofactorMultiplication > DL_KeyDerivationAlgorithm< Integer > DL_SymmetricEncryptionAlgorithm DL_EncryptorBase< Integer > DL_KeyAgreementAlgorithm< Integer > DL_CryptoSystemBase< PK_Encryptor, DL_PublicKey< Integer > > PK_Encryptor DL_Base< DL_PublicKey< Integer > > PK_CryptoSystem PublicKeyAlgorithm AsymmetricAlgorithm Algorithm Clonable List of all members.

Detailed Description

Definition at line 109 of file elgamal.h.

Public Types

typedef SchemeOptions SchemeOptions
typedef SchemeOptions::PublicKey::Element Element
typedef Integer Element
typedef SchemeOptions::PublicKey KeyClass

Public Member Functions

void CopyKeyInto (SchemeOptions::PublicKey &key) const
unsigned int FixedMaxPlaintextLength () const
 return maximum plaintext length given the fixed ciphertext length, if one exists, otherwise return 0
unsigned int FixedCiphertextLength () const
 return fixed ciphertext length, if one exists, otherwise return 0
const DL_GroupParameters_GFPGetGroupParameters () const
DecodingResult FixedLengthDecrypt (RandomNumberGenerator &rng, const byte *cipherText, byte *plainText) const
PrivateKeyAccessPrivateKey ()
PublicKeyAccessPublicKey ()
const SchemeOptions::PublicKeyGetKey () const
SchemeOptions::PublicKeyAccessKey ()
std::string AlgorithmName () const
 returns name of this algorithm, not universally implemented yet
void Encrypt (RandomNumberGenerator &rng, const byte *plaintext, unsigned int plaintextLength, byte *ciphertext, const NameValuePairs &parameters=g_nullNameValuePairs) const
 encrypt a byte string
unsigned int MaxPlaintextLength (unsigned int ciphertextLength) const
 maximum length of plaintext for a given ciphertext length
unsigned int CiphertextLength (unsigned int plaintextLength) const
 calculate length of ciphertext given length of plaintext
bool ParameterSupported (const char *name) const
 this object supports the use of the parameter with the given name
virtual bool ParameterSupported (const char *name) const
virtual bool ParameterSupported (const char *name) const
virtual BufferedTransformationCreateEncryptionFilter (RandomNumberGenerator &rng, BufferedTransformation *attachment=NULL, const NameValuePairs &parameters=g_nullNameValuePairs) const
 create a new encryption filter
CryptoMaterialAccessMaterial ()
 returns a reference to the crypto material used by this object
const CryptoMaterialGetMaterial () const
 returns a const reference to the crypto material used by this object
virtual const PublicKeyGetPublicKey () 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 ClonableClone () const
 this is not implemented by most classes yet
void Derive (const DL_GroupParameters< Integer > &groupParams, byte *derivedKey, unsigned int derivedLength, const Integer &agreedElement, const Integer &ephemeralPublicKey, const NameValuePairs &derivationParams) const
unsigned int GetSymmetricKeyLength (unsigned int plainTextLength) const
unsigned int GetSymmetricCiphertextLength (unsigned int plainTextLength) const
unsigned int GetMaxSymmetricPlaintextLength (unsigned int cipherTextLength) const
void SymmetricEncrypt (RandomNumberGenerator &rng, const byte *key, const byte *plainText, unsigned int plainTextLength, byte *cipherText, const NameValuePairs &parameters) const
DecodingResult SymmetricDecrypt (const byte *key, const byte *cipherText, unsigned int cipherTextLength, byte *plainText, const NameValuePairs &parameters) const
Element AgreeWithEphemeralPrivateKey (const DL_GroupParameters< Element > &params, const DL_FixedBasePrecomputation< Element > &publicPrecomputation, const Integer &privateExponent) const
Element AgreeWithStaticPrivateKey (const DL_GroupParameters< Element > &params, const Element &publicElement, bool validateOtherPublicKey, const Integer &privateExponent) const

Static Public Member Functions

static std::string StaticAlgorithmName ()
static const char * StaticAlgorithmName ()

Protected Types

typedef DL_PublicKey< IntegerKeyInterface

Protected Member Functions

const DL_KeyAgreementAlgorithm<
Integer > & 
GetKeyAgreementAlgorithm () const
const DL_KeyDerivationAlgorithm<
Integer > & 
GetKeyDerivationAlgorithm () const
const DL_SymmetricEncryptionAlgorithmGetSymmetricEncryptionAlgorithm () const
DL_EncryptorBase< Integer
>::KeyInterface
AccessKeyInterface ()
const DL_EncryptorBase< Integer
>::KeyInterface
GetKeyInterface () const
HashIdentifier GetHashIdentifier () const
unsigned int GetDigestSize () const
const DL_GroupParameters<
Element > & 
GetAbstractGroupParameters () const
DL_GroupParameters< Element > & AccessAbstractGroupParameters ()


Member Function Documentation

unsigned int ElGamalObjectImpl< DL_EncryptorBase< Integer > , SchemeOptions , SchemeOptions::PublicKey >::FixedCiphertextLength  )  const [inline, virtual, inherited]
 

Reimplemented from PK_CryptoSystem.

Definition at line 82 of file elgamal.h.

void DL_EncryptorBase< Integer >::Encrypt RandomNumberGenerator rng,
const byte *  plaintext,
unsigned int  plaintextLength,
byte *  ciphertext,
const NameValuePairs parameters = g_nullNameValuePairs
const [inline, virtual, inherited]
 

encrypt a byte string

Precondition:
CiphertextLength(plaintextLength) != 0 (i.e., plaintext isn't too long)

size of ciphertext == CiphertextLength(plaintextLength)

Implements PK_Encryptor.

Definition at line 1224 of file pubkey.h.

References DL_KeyAgreementAlgorithm< T >::AgreeWithEphemeralPrivateKey(), DL_KeyDerivationAlgorithm< T >::Derive(), DL_GroupParameters< T >::EncodeElement(), DL_GroupParameters< T >::ExponentiateBase(), DL_PrivateKeyImpl< GP >::GetAbstractGroupParameters(), DL_GroupParameters< T >::GetEncodedElementSize(), DL_GroupParameters< T >::GetMaxExponent(), DL_PublicKey< T >::GetPublicPrecomputation(), DL_SymmetricEncryptionAlgorithm::GetSymmetricKeyLength(), Integer::One(), and DL_SymmetricEncryptionAlgorithm::SymmetricEncrypt().

unsigned int DL_CryptoSystemBase< PK_Encryptor , DL_PublicKey< Integer > >::MaxPlaintextLength unsigned int  ciphertextLength  )  const [inline, virtual, inherited]
 

Implements PK_CryptoSystem.

Definition at line 1160 of file pubkey.h.

unsigned int DL_CryptoSystemBase< PK_Encryptor , DL_PublicKey< Integer > >::CiphertextLength unsigned int  plaintextLength  )  const [inline, virtual, inherited]
 

Implements PK_CryptoSystem.

Definition at line 1166 of file pubkey.h.

bool DL_CryptoSystemBase< PK_Encryptor , DL_PublicKey< Integer > >::ParameterSupported const char *  name  )  const [inline, virtual, inherited]
 

Implements PK_CryptoSystem.

Definition at line 1172 of file pubkey.h.

BufferedTransformation * PK_Encryptor::CreateEncryptionFilter RandomNumberGenerator rng,
BufferedTransformation attachment = NULL,
const NameValuePairs parameters = g_nullNameValuePairs
const [virtual, inherited]
 

create a new encryption filter

Note:
The caller is responsible for deleting the returned pointer.

Encoding parameters should be passed in the "EP" channel.

Definition at line 564 of file cryptlib.cpp.

References PK_DefaultEncryptionFilter::PK_DefaultEncryptionFilter().


The documentation for this class was generated from the following file:
Generated on Fri Dec 16 03:04:23 2005 for Crypto++ by  doxygen 1.4.5