예제 #1
0
        public static void Mulmod(int[] H, int[] R)
        {
            int[] hr = new int[17];

            for (int i = 0; i < 17; ++i)
            {
                int u = 0;

                for (int j = 0; j <= i; ++j)
                {
                    u += H[j] * R[i - j];
                }

                for (int j = i + 1; j < 17; ++j)
                {
                    u += 320 * H[j] * R[i + 17 - j];
                }

                hr[i] = u;
            }

            for (int i = 0; i < 17; ++i)
            {
                H[i] = hr[i];
            }

            Poly1305.Squeeze(H);
        }