public static void IntToBigEndian(int n, byte[] bs, int off)
 {
     bs[off]   = (byte)(SM2_SupportClass.URShift(n, 24));
     bs[++off] = (byte)(SM2_SupportClass.URShift(n, 16));
     bs[++off] = (byte)(SM2_SupportClass.URShift(n, 8));
     bs[++off] = (byte)(n);
 }
            internal override void ProcessLength(long bitLength)
            {
                if (xOff > 14)
                {
                    ProcessBlock();
                }

                X[14] = (int)(SM2_SupportClass.URShift(bitLength, 32));
                X[15] = (int)(bitLength & unchecked ((int)0xffffffff));
            }
 private int ROTATE(int x, int n)
 {
     return((x << n) | (SM2_SupportClass.URShift(x, (32 - n))));
 }