From 0ae5e68f5618ba8a4e02cc2bfb73116377056f14 Mon Sep 17 00:00:00 2001 From: David Hook Date: Mon, 10 Jul 2017 13:10:40 +1000 Subject: fixed reset issue --- crypto/src/crypto/modes/KCcmBlockCipher.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'crypto/src') diff --git a/crypto/src/crypto/modes/KCcmBlockCipher.cs b/crypto/src/crypto/modes/KCcmBlockCipher.cs index b5f121cef..8f1ed9c6f 100644 --- a/crypto/src/crypto/modes/KCcmBlockCipher.cs +++ b/crypto/src/crypto/modes/KCcmBlockCipher.cs @@ -277,6 +277,8 @@ namespace Org.BouncyCastle.Crypto.Modes output[outOff + byteIndex] = (byte)(buffer[byteIndex] ^ macBlock[byteIndex]); } + Array.Copy(macBlock, 0, mac, 0, macSize); + Reset(); return len + macSize; @@ -340,7 +342,7 @@ namespace Org.BouncyCastle.Crypto.Modes Reset(); - return len; + return len - macSize; } } @@ -388,7 +390,6 @@ namespace Org.BouncyCastle.Crypto.Modes public virtual byte[] GetMac() { - Array.Copy(macBlock, 0, mac, 0, macSize); return Arrays.Clone(mac); } @@ -407,6 +408,8 @@ namespace Org.BouncyCastle.Crypto.Modes Arrays.Fill(G1, (byte)0); Arrays.Fill(buffer, (byte)0); Arrays.Fill(counter, (byte)0); + Arrays.Fill(macBlock, (byte)0); + counter[0] = 0x01; data.SetLength(0); associatedText.SetLength(0); -- cgit 1.5.1