summaryrefslogtreecommitdiff
path: root/cbcmac.cpp
diff options
context:
space:
mode:
authorweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2009-03-02 02:39:17 +0000
committerweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2009-03-02 02:39:17 +0000
commitcaf9e032e6b4ccb114a74a3936c916bcfaba262d (patch)
tree0fecaa7a6728d07549a41864ea2cedfb245f0bd3 /cbcmac.cpp
parent4e4793cc591e26c788b53c487bee7cab2d377f5e (diff)
downloadcryptopp-caf9e032e6b4ccb114a74a3936c916bcfaba262d.tar.gz
changes for 5.6:
- added AuthenticatedSymmetricCipher interface class and Filter wrappers - added CCM, GCM (with SSE2 assembly), CMAC, and SEED - improved AES speed on x86 and x64 - removed WORD64_AVAILABLE; compiler 64-bit int support is now required git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@433 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'cbcmac.cpp')
-rw-r--r--cbcmac.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/cbcmac.cpp b/cbcmac.cpp
index dfac071..6b0e885 100644
--- a/cbcmac.cpp
+++ b/cbcmac.cpp
@@ -25,12 +25,11 @@ void CBC_MAC_Base::Update(const byte *input, size_t length)
length--;
}
- while (length >= blockSize)
+ if (length >= blockSize)
{
- xorbuf(m_reg, input, blockSize);
- ProcessBuf();
- input += blockSize;
- length -= blockSize;
+ size_t leftOver = AccessCipher().AdvancedProcessBlocks(m_reg, input, m_reg, length, BlockTransformation::BT_DontIncrementInOutPointers|BlockTransformation::BT_XorInput);
+ input += (length - leftOver);
+ length = leftOver;
}
while (length--)