public unsafe void Compare_Sha256Hpt_Test(PrvToAddrNestedComparer comp, byte[] key, bool expected)
        {
            uint *hPt = stackalloc uint[8];

            Helper.WriteToHpt(key, hPt);
            bool actual = comp.Compare(hPt);

            Assert.Equal(expected, actual);
        }
        public unsafe void Compare_PointJ_Test(PrvToAddrNestedComparer comp, byte[] key, bool expected)
        {
            Scalar sc = new(key, out int overflow);

            if (overflow == 0 && !sc.IsZero)
            {
                PointJacobian point  = Helper.Calc.MultiplyByG(sc);
                bool          actual = comp.Compare(point);
                Assert.Equal(expected, actual);
            }
        }
        public static IEnumerable <object[]> GetCases()
        {
            var comp = new PrvToAddrNestedComparer();

            Assert.True(comp.Init(KeyHelper.Pub1NestedSegwit));

            yield return(new object[] { comp, new byte[32], false });

            yield return(new object[] { comp, Enumerable.Repeat((byte)255, 32).ToArray(), false });

            yield return(new object[] { comp, KeyHelper.Prv1.ToBytes(), true });

            yield return(new object[] { comp, KeyHelper.Prv2.ToBytes(), false });
        }
Пример #4
0
        public void Compare_CompressedTest(string addr, byte[] key)
        {
            var comp = new PrvToAddrNestedComparer();

            Assert.True(comp.Init(addr));
            key[0]++;

            bool b = comp.Compare(key);

            Assert.False(b);

            key[0]--;
            b = comp.Compare(key);
            Assert.True(b);
        }
Пример #5
0
        public void CloneTest()
        {
            var original = new PrvToAddrNestedComparer();

            Assert.True(original.Init(KeyHelper.Pub1NestedSegwit)); // Make sure it is successfully initialized
            var cloned = original.Clone();

            // Change original field value to make sure it is cloned not a reference copy
            Assert.True(original.Init(KeyHelper.Pub2NestedSegwit));

            byte[] key = KeyHelper.Prv1.ToBytes();

            // Since the original was changed it should fail when comparing
            Assert.False(original.Compare(key));
            Assert.True(cloned.Compare(key));
        }
Пример #6
0
        public void Compare_EdgeTest()
        {
            var comp = new PrvToAddrNestedComparer();

            Assert.True(comp.Init(KeyHelper.Pub1NestedSegwit));
            byte[] key = new byte[32];
            bool   b   = comp.Compare(key);

            Assert.False(b);

            ((Span <byte>)key).Fill(255);
            b = comp.Compare(key);
            Assert.False(b);

            key = new SecP256k1().N.ToByteArray(true, true);
            b   = comp.Compare(key);
            Assert.False(b);
        }