summaryrefslogtreecommitdiff
path: root/vmac.cpp
diff options
context:
space:
mode:
authorweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2009-01-24 02:51:45 +0000
committerweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2009-01-24 02:51:45 +0000
commit21e37311f74460550001f25240be0ebd83e11ea9 (patch)
treecf7f435ace477e6ed554b27c8be984b4a93b683f /vmac.cpp
parent83c4add7725ca2489ee5f10aee215e804368838b (diff)
downloadcryptopp-21e37311f74460550001f25240be0ebd83e11ea9.tar.gz
fix incorrect VMAC computation on message lengths that are >64 mod 128
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@431 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'vmac.cpp')
-rwxr-xr-xvmac.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/vmac.cpp b/vmac.cpp
index 6c784f1..ecfd278 100755
--- a/vmac.cpp
+++ b/vmac.cpp
@@ -472,20 +472,18 @@ void VMAC_Base::VHASH_Update_Template(const word64 *data, size_t blocksRemaining
DeclareNH(nhA);
DeclareNH(nhB);
+ i = 0;
if (blocksRemainingInWord64 < L1KeyLengthInWord64)
{
if (blocksRemainingInWord64 % 8)
{
innerLoopEnd = blocksRemainingInWord64 % 8;
- for (i=0; i<innerLoopEnd; i+=2)
+ for (; i<innerLoopEnd; i+=2)
INNER_LOOP_ITERATION(0);
- blocksRemainingInWord64 -= innerLoopEnd;
- data += innerLoopEnd;
}
innerLoopEnd = blocksRemainingInWord64;
}
-
- for (i=0; i<innerLoopEnd; i+=8)
+ for (; i<innerLoopEnd; i+=8)
{
INNER_LOOP_ITERATION(0);
INNER_LOOP_ITERATION(1);