Make CAST temporaries class members

This commit is contained in:
Jeffrey Walton 2018-04-07 11:41:00 -04:00
parent 11e076003a
commit 71e9fece87
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
2 changed files with 6 additions and 9 deletions

View File

@ -35,8 +35,7 @@ typedef BlockGetAndPut<word32, BigEndian> Block;
void CAST128::Enc::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
{
// TODO: add a SecBlock workspace to the class when the ABI can change
word32 t,l,r;
word32 &t=m_t[0], &l=m_t[1], &r=m_t[2];
/* Get inblock into l,r */
Block::Get(inBlock)(l)(r);
@ -66,8 +65,7 @@ void CAST128::Enc::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock,
void CAST128::Dec::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
{
// TODO: add a SecBlock workspace to the class when the ABI can change
word32 t,l,r;
word32 &t=m_t[0], &l=m_t[1], &r=m_t[2];
/* Get inblock into l,r */
Block::Get(inBlock)(r)(l);
@ -256,9 +254,7 @@ void CAST256::Base::UncheckedSetKey(const byte *userKey, unsigned int keylength,
{
AssertValidKeyLength(keylength);
// TODO: add a SecBlock workspace to the class when the ABI can change
word32 kappa[8];
GetUserKey(BIG_ENDIAN_ORDER, kappa, 8, userKey, keylength);
GetUserKey(BIG_ENDIAN_ORDER, kappa.begin(), 8, userKey, keylength);
for(int i=0; i<12; ++i)
{
@ -291,8 +287,6 @@ void CAST256::Base::UncheckedSetKey(const byte *userKey, unsigned int keylength,
}
}
}
SecureWipeBuffer(kappa, 8);
}
NAMESPACE_END

3
cast.h
View File

@ -41,6 +41,7 @@ class CAST128 : public CAST128_Info, public BlockCipherDocumentation
protected:
bool reduced;
FixedSizeSecBlock<word32, 32> K;
mutable FixedSizeSecBlock<word32, 3> m_t;
};
/// \brief CAST128 block cipher encryption operation
@ -88,6 +89,8 @@ class CAST256 : public CAST256_Info, public BlockCipherDocumentation
static void Omega(int i, word32 kappa[8]);
FixedSizeSecBlock<word32, 8*12> K;
mutable FixedSizeSecBlock<word32, 8> kappa;
mutable FixedSizeSecBlock<word32, 3> m_t;
};
public: