6 #ifndef CRYPTOPP_IDEA_H 7 #define CRYPTOPP_IDEA_H 18 CRYPTOPP_STATIC_CONSTEXPR
const char* StaticAlgorithmName() {
return "IDEA";}
27 #ifdef CRYPTOPP_NATIVE_DWORD_AVAILABLE 37 unsigned int OptimalDataAlignment()
const {
return 2;}
38 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const;
40 void UncheckedSetKey(
const byte *userKey,
unsigned int length,
const NameValuePairs ¶ms);
43 void EnKey(
const byte *);
47 #ifdef IDEA_LARGECACHE 48 static inline void LookupMUL(
word &a,
word b);
50 static void BuildLogTables();
51 static volatile bool tablesBuilt;
52 static word16 log[0x10000], antilog[0x10000];
Inherited by keyed algorithms with fixed key length.
Provides Encryption and Decryption typedefs used by derived classes to implement a block cipher...
Classes and functions for secure memory allocations.
Inherited by algorithms with fixed block size.
word64 word
Full word used for multiprecision integer arithmetic.
Classes and functions for implementing secret key algorithms.
Provides class member functions to key a block cipher.
Inherited by algorithms with fixed number of rounds.
unsigned short word16
16-bit unsigned datatype
unsigned char byte
8-bit unsigned datatype
Provides a base implementation of Algorithm and SimpleKeyingInterface for block ciphers.
Crypto++ library namespace.
word32 hword
Half word used for multiprecision integer arithmetic.
IDEA block cipher information.
Interface for retrieving values given their names.