1 #ifndef CRYPTOPP_RIJNDAEL_H
2 #define CRYPTOPP_RIJNDAEL_H
10 NAMESPACE_BEGIN(CryptoPP)
15 CRYPTOPP_DLL
static const char * CRYPTOPP_API StaticAlgorithmName() {
return CRYPTOPP_RIJNDAEL_NAME;}
21 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Base :
public BlockCipherImpl<Rijndael_Info>
24 void UncheckedSetKey(
const byte *userKey,
unsigned int length,
const NameValuePairs ¶ms);
27 static void FillEncTable();
28 static void FillDecTable();
31 static const byte Se[256];
32 static const byte Sd[256];
34 static const word32 rcon[];
36 unsigned int m_rounds;
40 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Enc :
public Base
43 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock, byte *outBlock)
const;
44 #if CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X86
45 size_t AdvancedProcessBlocks(
const byte *inBlocks,
const byte *xorBlocks, byte *outBlocks,
size_t length, word32 flags)
const;
49 class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Dec :
public Base
52 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock, byte *outBlock)
const;
53 #if CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE
54 size_t AdvancedProcessBlocks(
const byte *inBlocks,
const byte *xorBlocks, byte *outBlocks,
size_t length, word32 flags)
const;
These objects usually should not be used directly. See CipherModeDocumentation instead.
to be inherited by block ciphers with fixed block size
support query of variable key length, template parameters are default, min, max, multiple (default mu...
interface for retrieving values given their names