MegaApi.Rsa.bmodexp C# (CSharp) Method

bmodexp() public static method

public static bmodexp ( uint g, uint e, uint m ) : uint[]
g uint
e uint
m uint
return uint[]
        public static uint[] bmodexp(uint[] g, uint[] e, uint[] m)
        {
            var a = g.ToArray();
            var l = e.Length - 1;
            var n = m.Length * 2;
            var mu = new uint[n + 1];
            mu[n] = 1;
            mu = bdiv(mu, m).q;

            n = nbits(e[l]) - 2;

            for (; l >= 0; l--)
            {
                for (; n >= 0; n -= 1)
                {
                    a = bmod2(bsqr(a), m, mu);
                    if ((e[l] & (1 << n)) != 0) a = bmod2(bmul(a, g), m, mu);
                }
                n = bs - 1;
            }
            return a;
        }