示例#1
0
        private void Reset(
            bool clearMac)
        {
            cipher.Reset(); // TODO Redundant since the mac will reset it?
            mac.Reset();

            bufOff = 0;
            Array.Clear(bufBlock, 0, bufBlock.Length);

            if (clearMac)
            {
                Array.Clear(macBlock, 0, macBlock.Length);
            }

            byte[] tag = new byte[blockSize];
            tag[blockSize - 1] = (byte)Tag.H;
            mac.BlockUpdate(tag, 0, blockSize);

            cipherInitialized = false;

            if (initialAssociatedText != null)
            {
                ProcessAadBytes(initialAssociatedText, 0, initialAssociatedText.Length);
            }
        }