Crypto++
8.6
Free C++ class library of cryptographic schemes
|
Go to the documentation of this file.
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];
Classes and functions for secure memory allocations.
Inherited by algorithms with fixed block size.
IDEA block cipher information.
Provides a base implementation of Algorithm and SimpleKeyingInterface for block ciphers.
Inherited by keyed algorithms with fixed key length.
word64 word
Full word used for multiprecision integer arithmetic.
Provides Encryption and Decryption typedefs used by derived classes to implement a block cipher.
Classes and functions for implementing secret key algorithms.
Provides class member functions to key a block cipher.
Crypto++ library namespace.
word32 hword
Half word used for multiprecision integer arithmetic.
Interface for retrieving values given their names.
unsigned short word16
16-bit unsigned datatype
Inherited by algorithms with fixed number of rounds.