コード例 #1
0
        public static void CNegate(int negate, uint[] z)
        {
            Debug.Assert(negate >> 1 == 0);

            uint[] t = Create();
            Sub(t, z, t);

            Nat.CMov(Size, negate, t, 0, z, 0);
        }
コード例 #2
0
ファイル: Ed448.cs プロジェクト: asmodat/Asmodat-BouncyCastle
        private static void PointLookup(int block, int index, PointPrecomp p)
        {
            Debug.Assert(0 <= block && block < PrecompBlocks);
            Debug.Assert(0 <= index && index < PrecompPoints);

            int off = block * PrecompPoints * 2 * X448Field.Size;

            for (int i = 0; i < PrecompPoints; ++i)
            {
                int mask = ((i ^ index) - 1) >> 31;
                Nat.CMov(X448Field.Size, mask, precompBase, off, p.x, 0);   off += X448Field.Size;
                Nat.CMov(X448Field.Size, mask, precompBase, off, p.y, 0);   off += X448Field.Size;
            }
        }