20 static const word32 S[8][256];
27 CRYPTOPP_STATIC_CONSTEXPR
const char* StaticAlgorithmName() {
return "CAST-128";}
39 void UncheckedSetKey(
const byte *userKey,
unsigned int length,
const NameValuePairs ¶ms);
48 class CRYPTOPP_NO_VTABLE Enc :
public Base
51 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const;
55 class CRYPTOPP_NO_VTABLE Dec :
public Base
58 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const;
70 CRYPTOPP_STATIC_CONSTEXPR
const char* StaticAlgorithmName() {
return "CAST-256";}
82 void UncheckedSetKey(
const byte *userKey,
unsigned int length,
const NameValuePairs ¶ms);
83 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const;
86 static const word32 t_m[8][24];
87 static const unsigned int t_r[8][24];
89 static void Omega(
int i,
word32 kappa[8]);
Provides class member functions to key a block cipher.
Provides a base implementation of Algorithm and SimpleKeyingInterface for block ciphers.
Inherited by algorithms with fixed block size.
Fixed size stack-based SecBlock.
Interface for retrieving values given their names.
Inherited by keyed algorithms with variable key length.
unsigned int word32
32-bit unsigned datatype
Crypto++ library namespace.
Classes and functions for secure memory allocations.
Classes and functions for implementing secret key algorithms.
Provides Encryption and Decryption typedefs used by derived classes to implement a block cipher.
CAST128 block cipher information.
CAST256 block cipher information.