fix incorrect VMAC computation on message lengths that are >64 mod 128
parent
f871754502
commit
eb5732337b
|
|
@ -24,6 +24,15 @@ Test: Verify
|
|||
Message: r170 "abc" "ab"
|
||||
Digest: 9DA310281E6FD0A0
|
||||
Test: Verify
|
||||
Message: r65 "a"
|
||||
Digest: 90 ea 57 cb 51 bc 92 a3
|
||||
Test: Verify
|
||||
Message: r129 "a"
|
||||
Digest: 86 34 83 87 d1 3d 82 33
|
||||
Test: Verify
|
||||
Message: r65 "abc"
|
||||
Digest: E86A86EC77A8BF61
|
||||
Test: Verify
|
||||
Message: "abc"
|
||||
Digest: 2D376CF5B1813CE0
|
||||
Test: NotVerify
|
||||
|
|
@ -54,6 +63,15 @@ Test: Verify
|
|||
Message: r170 "abc" "ab"
|
||||
Digest: BF53B8D2D70C05A85880C2E21CAF1299
|
||||
Test: Verify
|
||||
Message: r65 "a"
|
||||
Digest: b2 9b 00 76 0a 58 c7 ab 92 d6 60 24 d6 9c 1b 92
|
||||
Test: Verify
|
||||
Message: r129 "a"
|
||||
Digest: a7 e5 2c 32 89 d9 b7 3b 53 57 6f 05 95 85 ee 79
|
||||
Test: Verify
|
||||
Message: r65 "abc"
|
||||
Digest: 0A1B2F973044F469F405917E45010334
|
||||
Test: Verify
|
||||
Message: "abc"
|
||||
Digest: 4EE815A06A1D71EDD36FC75D51188A40
|
||||
Test: NotVerify
|
||||
|
|
|
|||
8
vmac.cpp
8
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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue