mirror of
https://github.com/shadps4-emu/ext-cryptopp.git
synced 2024-11-23 09:59:42 +00:00
Use SetMark to avoid unneeded zeroization in Rijndael
This commit is contained in:
parent
ebcd91a0ac
commit
6e436427fb
@ -316,6 +316,9 @@ void Rijndael::Base::UncheckedSetKey(const byte *userKey, unsigned int keyLen, c
|
||||
|
||||
#if CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X86
|
||||
m_aliasBlock.New(s_sizeToAllocate);
|
||||
// The alias block is only used on IA-32 when unaligned data access is in effect.
|
||||
// Setting the low water mark to 0 avoids zeroization when m_aliasBlock is unused.
|
||||
m_aliasBlock.SetMark(0);
|
||||
#endif
|
||||
|
||||
m_rounds = keyLen/4 + 6;
|
||||
@ -1146,6 +1149,7 @@ size_t Rijndael::Enc::AdvancedProcessBlocks(const byte *inBlocks, const byte *xo
|
||||
return length;
|
||||
|
||||
static const byte *zeros = (const byte*)(Te+256);
|
||||
m_aliasBlock.SetMark(m_aliasBlock.size());
|
||||
byte *space = NULLPTR, *originalSpace = const_cast<byte*>(m_aliasBlock.data());
|
||||
|
||||
// round up to nearest 256 byte boundary
|
||||
|
@ -57,7 +57,7 @@ class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentat
|
||||
|
||||
unsigned int m_rounds;
|
||||
FixedSizeAlignedSecBlock<word32, 4*15> m_key;
|
||||
SecByteBlock m_aliasBlock;
|
||||
mutable SecByteBlock m_aliasBlock;
|
||||
};
|
||||
|
||||
//! \brief Provides implementation for encryption transformation
|
||||
|
Loading…
Reference in New Issue
Block a user