Fabcoin Core  0.16.2
P2P Digital Currency
Public Member Functions | List of all members
DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS > Class Template Reference

P1363 based XOR Encryption Method. More...

#include <gfpcrypt.h>

Inheritance diagram for DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS >:
[legend]
Collaboration diagram for DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS >:
[legend]

Public Member Functions

virtual ~DL_EncryptionAlgorithm_Xor ()
 
bool ParameterSupported (const char *name) const
 
size_t GetSymmetricKeyLength (size_t plaintextLength) const
 
size_t GetSymmetricCiphertextLength (size_t plaintextLength) const
 
size_t GetMaxSymmetricPlaintextLength (size_t ciphertextLength) const
 
void SymmetricEncrypt (RandomNumberGenerator &rng, const byte *key, const byte *plaintext, size_t plaintextLength, byte *ciphertext, const NameValuePairs &parameters) const
 
DecodingResult SymmetricDecrypt (const byte *key, const byte *ciphertext, size_t ciphertextLength, byte *plaintext, const NameValuePairs &parameters) const
 
- Public Member Functions inherited from DL_SymmetricEncryptionAlgorithm
virtual ~DL_SymmetricEncryptionAlgorithm ()
 

Detailed Description

template<class MAC, bool DHAES_MODE, bool LABEL_OCTETS = false>
class DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS >

P1363 based XOR Encryption Method.

Template Parameters
MACMessageAuthenticationCode derived class used for MAC computation
DHAES_MODEflag indicating DHAES mode
LABEL_OCTETSflag indicating the label is octet count

DL_EncryptionAlgorithm_Xor is based on an early P1363 draft, which itself appears to be based on an early Certicom SEC-1 draft (or an early SEC-1 draft was based on a P1363 draft). Crypto++ 4.2 used it in its Integrated Ecryption Schemes with NoCofactorMultiplication, DHAES_MODE=false and LABEL_OCTETS=true.

If you need this method for Crypto++ 4.2 compatibility, then use the ECIES template class with NoCofactorMultiplication, DHAES_MODE=false and LABEL_OCTETS=true.

If you need this method for Bouncy Castle 1.54 and Botan 1.11 compatibility, then use the ECIES template class with NoCofactorMultiplication, DHAES_MODE=ture and LABEL_OCTETS=false.

Bouncy Castle 1.54 and Botan 1.11 compatibility are the default template parameters.

Since
Crypto++ 4.0

Definition at line 795 of file gfpcrypt.h.

Constructor & Destructor Documentation

template<class MAC , bool DHAES_MODE, bool LABEL_OCTETS = false>
virtual DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS >::~DL_EncryptionAlgorithm_Xor ( )
inlinevirtual

Definition at line 798 of file gfpcrypt.h.

Member Function Documentation

template<class MAC , bool DHAES_MODE, bool LABEL_OCTETS = false>
size_t DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS >::GetMaxSymmetricPlaintextLength ( size_t  ciphertextLength) const
inlinevirtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 805 of file gfpcrypt.h.

Here is the call graph for this function:

template<class MAC , bool DHAES_MODE, bool LABEL_OCTETS = false>
size_t DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS >::GetSymmetricCiphertextLength ( size_t  plaintextLength) const
inlinevirtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 803 of file gfpcrypt.h.

template<class MAC , bool DHAES_MODE, bool LABEL_OCTETS = false>
size_t DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS >::GetSymmetricKeyLength ( size_t  plaintextLength) const
inlinevirtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 801 of file gfpcrypt.h.

template<class MAC , bool DHAES_MODE, bool LABEL_OCTETS = false>
bool DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS >::ParameterSupported ( const char *  name) const
inlinevirtual

Reimplemented from DL_SymmetricEncryptionAlgorithm.

Definition at line 800 of file gfpcrypt.h.

template<class MAC , bool DHAES_MODE, bool LABEL_OCTETS = false>
DecodingResult DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS >::SymmetricDecrypt ( const byte key,
const byte ciphertext,
size_t  ciphertextLength,
byte plaintext,
const NameValuePairs parameters 
) const
inlinevirtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 839 of file gfpcrypt.h.

Here is the call graph for this function:

template<class MAC , bool DHAES_MODE, bool LABEL_OCTETS = false>
void DL_EncryptionAlgorithm_Xor< MAC, DHAES_MODE, LABEL_OCTETS >::SymmetricEncrypt ( RandomNumberGenerator rng,
const byte key,
const byte plaintext,
size_t  plaintextLength,
byte ciphertext,
const NameValuePairs parameters 
) const
inlinevirtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 807 of file gfpcrypt.h.

Here is the call graph for this function:


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