From 90933db7697d9e5ad832a43bd59565339fbbcf55 Mon Sep 17 00:00:00 2001 From: weidai Date: Sat, 9 Dec 2006 17:16:05 +0000 Subject: VC2005 workaround git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@245 57ff6487-cd31-0410-9ec3-f628ee90f5f0 --- des.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'des.cpp') diff --git a/des.cpp b/des.cpp index 3afe0b3..af9308c 100644 --- a/des.cpp +++ b/des.cpp @@ -424,15 +424,18 @@ void DES_XEX3::Base::UncheckedSetKey(CipherDir dir, const byte *key, unsigned in { AssertValidKeyLength(length); + if (!m_des.get()) + m_des.reset(new DES::Encryption); + memcpy(m_x1, key+(dir==ENCRYPTION?0:2*8), BLOCKSIZE); - m_des.UncheckedSetKey(dir, key+8); + m_des->UncheckedSetKey(dir, key+8); memcpy(m_x3, key+(dir==DECRYPTION?0:2*8), BLOCKSIZE); } void DES_XEX3::Base::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const { xorbuf(outBlock, inBlock, m_x1, BLOCKSIZE); - m_des.ProcessAndXorBlock(outBlock, xorBlock, outBlock); + m_des->ProcessAndXorBlock(outBlock, xorBlock, outBlock); xorbuf(outBlock, m_x3, BLOCKSIZE); } -- cgit v1.2.1