Inheritance diagram for ElGamal::EncryptorImpl:
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_GFP & | GetGroupParameters () const |
DecodingResult | FixedLengthDecrypt (RandomNumberGenerator &rng, const byte *cipherText, byte *plainText) const |
PrivateKey & | AccessPrivateKey () |
PublicKey & | AccessPublicKey () |
const SchemeOptions::PublicKey & | GetKey () const |
SchemeOptions::PublicKey & | AccessKey () |
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 ¶meters=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 BufferedTransformation * | CreateEncryptionFilter (RandomNumberGenerator &rng, BufferedTransformation *attachment=NULL, const NameValuePairs ¶meters=g_nullNameValuePairs) const |
create a new encryption filter | |
CryptoMaterial & | AccessMaterial () |
returns a reference to the crypto material used by this object | |
const CryptoMaterial & | GetMaterial () const |
returns a const reference to the crypto material used by this object | |
virtual const PublicKey & | GetPublicKey () 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 Clonable * | Clone () 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 ¶meters) const |
DecodingResult | SymmetricDecrypt (const byte *key, const byte *cipherText, unsigned int cipherTextLength, byte *plainText, const NameValuePairs ¶meters) const |
Element | AgreeWithEphemeralPrivateKey (const DL_GroupParameters< Element > ¶ms, const DL_FixedBasePrecomputation< Element > &publicPrecomputation, const Integer &privateExponent) const |
Element | AgreeWithStaticPrivateKey (const DL_GroupParameters< Element > ¶ms, 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< Integer > | KeyInterface |
Protected Member Functions | |
const DL_KeyAgreementAlgorithm< Integer > & | GetKeyAgreementAlgorithm () const |
const DL_KeyDerivationAlgorithm< Integer > & | GetKeyDerivationAlgorithm () const |
const DL_SymmetricEncryptionAlgorithm & | GetSymmetricEncryptionAlgorithm () 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 () |
|
Reimplemented from PK_CryptoSystem. |
|
encrypt a byte string
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_Base< KI >::GetAbstractGroupParameters(), DL_GroupParameters< T >::GetEncodedElementSize(), DL_GroupParameters< T >::GetMaxExponent(), DL_PublicKey< T >::GetPublicPrecomputation(), DL_SymmetricEncryptionAlgorithm::GetSymmetricKeyLength(), Integer::One(), and DL_SymmetricEncryptionAlgorithm::SymmetricEncrypt(). |
|
Implements PK_CryptoSystem. |
|
Implements PK_CryptoSystem. |
|
Implements PK_CryptoSystem. |
|
create a new encryption filter
Definition at line 564 of file cryptlib.cpp. |