ARCFourCipherSuitePlugin.ARCFourCryptoTransform.TransformBlock C# (CSharp) Метод

TransformBlock() публичный Метод

public TransformBlock ( byte inputBuffer, int inputOffset, int inputCount, byte outputBuffer, int outputOffset ) : int
inputBuffer byte
inputOffset int
inputCount int
outputBuffer byte
outputOffset int
Результат int
        public int TransformBlock(byte[] inputBuffer,
		                          int inputOffset,
		                          int inputCount,
		                          byte[] outputBuffer,
		                          int outputOffset)
        {
            if (_disposed) {
                throw new ObjectDisposedException(GetType().FullName);
            }

            for (int i=0; i<inputCount; i++) {
                _index1 = (byte) (_index1 + 1);
                _index2 = (byte) (_index2 + _permutation[_index1]);

                byte tmp = _permutation[_index1];
                _permutation[_index1] = _permutation[_index2];
                _permutation[_index2] = tmp;

                byte idx = (byte) (_permutation[_index1] + _permutation[_index2]);
                byte val = (byte) (inputBuffer[inputOffset+i] ^ _permutation[idx]);
                outputBuffer[outputOffset+i] = val;
            }

            return inputCount;
        }