Org.BouncyCastle.Crypto.Modes.GcmBlockCipher.multiply C# (CSharp) Method

multiply() private method

private multiply ( BigInteger X, BigInteger Y ) : BigInteger
X BigInteger
Y BigInteger
return BigInteger
		private BigInteger multiply(
			BigInteger	X,
			BigInteger	Y)
		{
			BigInteger Z = BigInteger.Zero;
			BigInteger V = X;

			for (int i = 0; i < 128; ++i)
			{
				if (Y.TestBit(127 - i))
				{
					Z = Z.Xor(V);
				}

				bool lsb = V.TestBit(0);
				V = V.ShiftRight(1);
				if (lsb)
				{
					V = V.Xor(R);
				}
			}

			return Z;
		}