19 void RawSetKey(
CipherDir direction,
const byte *userKey);
20 void RawProcessBlock(word32 &l, word32 &r)
const;
23 static const word32 Spbox[8][64];
33 CRYPTOPP_CONSTEXPR
static const char *StaticAlgorithmName() {
return "DES";}
49 void UncheckedSetKey(
const byte *userKey,
unsigned int length,
const NameValuePairs ¶ms);
50 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock, byte *outBlock)
const;
55 static bool CheckKeyParityBits(
const byte *key);
57 static void CorrectKeyParityBits(byte *key);
67 CRYPTOPP_DLL
static const char * CRYPTOPP_API StaticAlgorithmName() {
return "DES-EDE2";}
77 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Base :
public BlockCipherImpl<DES_EDE2_Info>
80 void UncheckedSetKey(
const byte *userKey,
unsigned int length,
const NameValuePairs ¶ms);
81 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock, byte *outBlock)
const;
96 CRYPTOPP_DLL
static const char * CRYPTOPP_API StaticAlgorithmName() {
return "DES-EDE3";}
106 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Base :
public BlockCipherImpl<DES_EDE3_Info>
109 void UncheckedSetKey(
const byte *userKey,
unsigned int length,
const NameValuePairs ¶ms);
110 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock, byte *outBlock)
const;
113 RawDES m_des1, m_des2, m_des3;
125 CRYPTOPP_CONSTEXPR
static const char *StaticAlgorithmName() {
return "DES-XEX3";}
138 void UncheckedSetKey(
const byte *userKey,
unsigned int length,
const NameValuePairs ¶ms);
139 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock, byte *outBlock)
const;
Inherited by keyed algorithms with fixed key length.
Provides Encryption and Decryption typedefs used by derived classes to implement a block cipher...
CipherDir
Specifies a direction for a cipher to operate.
DES block cipher base class.
Classes and functions for secure memory allocations.
Inherited by algorithms with fixed block size.
3-key TripleDES block cipher
Classes and functions for implementing secret key algorithms.
2-key TripleDES block cipher information
Provides class member functions to key a block cipher.
3-key TripleDES block cipher information
2-key TripleDES block cipher
DES block cipher information.
DESX block cipher information.
Provides a base implementation of Algorithm and SimpleKeyingInterface for block ciphers.
Crypto++ library namespace.
Interface for retrieving values given their names.