コード例 #1
0
        public void TestAddressNull()
        {
            var a = new cipher__Address();

            Assert.AreEqual(a.isEqual(new cipher__Address()), 1);
            var p   = new cipher_PubKey();
            var s   = new cipher_SecKey();
            var err = SKY_cipher_GenerateKeyPair(p, s);

            Assert.AreEqual(err, SKY_OK);
            err = SKY_cipher_AddressFromPubKey(p, a);
            Assert.AreEqual(err, SKY_OK);
            Assert.AreEqual(a.isEqual(new cipher__Address()), 0);
        }
コード例 #2
0
        public void TestAddressRoundtrip()
        {
            // Tests encode and decode
            var p   = new cipher_PubKey();
            var s   = new cipher_SecKey();
            var err = SKY_cipher_GenerateKeyPair(p, s);

            Assert.AreEqual(err, SKY_OK);
            var a = new cipher__Address();

            err = SKY_cipher_AddressFromPubKey(p, a);
            Assert.AreEqual(err, SKY_OK);
            var b = new GoSlice();

            err = SKY_cipher_Address_Bytes(a, b);
            Assert.AreEqual(err, SKY_OK);
            err = SKY_cipher_AddressFromBytes(b, a);
            Assert.AreEqual(err, SKY_OK);
            var a2 = new cipher__Address();

            err = SKY_cipher_AddressFromBytes(b, a2);
            Assert.AreEqual(err, SKY_OK);
            Assert.AreEqual(a.isEqual(a2), 1);
            var str  = new _GoString_();
            var str2 = new _GoString_();

            err = SKY_cipher_Address_String(a, str);
            Assert.AreEqual(err, SKY_OK);
            err = SKY_cipher_Address_String(a2, str2);
            Assert.AreEqual(err, SKY_OK);
            Assert.AreEqual(str.p == str2.p, true);
        }
コード例 #3
0
        public void TestAddressFromBytes()
        {
            var  s   = new cipher_SecKey();
            var  p   = new cipher_PubKey();
            uint err = SKY_cipher_GenerateKeyPair(p, s);

            Assert.AreEqual(err, SKY_OK);
            var a  = new cipher__Address();
            var a2 = new cipher__Address();

            err = SKY_cipher_AddressFromPubKey(p, a);
            Assert.AreEqual(err, SKY_OK);
            var b  = new GoSlice();
            var b2 = new GoSlice();

            err = SKY_cipher_Address_Bytes(a, b);
            err = SKY_cipher_Address_Bytes(a, b2);
            Assert.AreEqual(err, SKY_OK);
            err = SKY_cipher_AddressFromBytes(b2, a2);
            Assert.AreEqual(err, SKY_OK);
            Assert.AreEqual(a2.isEqual(a), 1);
            // Invalid number of bytes
            long len_b = b.len;

            b.len = b.len - 2;
            err   = SKY_cipher_AddressFromBytes(b, a2);
            Assert.AreEqual(SKY_ErrAddressInvalidLength, err, "Failed SKY_cipher_AddressFromBytes 2");
            b.len = len_b;
            a.setVersion('2');
            err = SKY_cipher_Address_Bytes(a, b);
            Assert.AreEqual(err, SKY_OK, "SKY_cipher_Address_Bytes SKY_ErrAddressInvalidVersion");
            err = SKY_cipher_AddressFromBytes(b, a);
            Assert.AreEqual(SKY_ErrAddressInvalidVersion, err);
        }
コード例 #4
0
 public void TestAddressBulk()
 {
     for (int i = 0; i < 1024; i++)
     {
         var pub = new cipher_PubKey();
         var sec = new cipher_SecKey();
         var b   = new GoSlice();
         var err = SKY_cipher_RandByte(32, b);
         Assert.AreEqual(err, SKY_OK);
         err = SKY_cipher_GenerateDeterministicKeyPair(b, pub, sec);
         Assert.AreEqual(err, SKY_OK);
         var a = new cipher__Address();
         err = SKY_cipher_AddressFromPubKey(pub, a);
         Assert.AreEqual(err, SKY_OK);
         err = SKY_cipher_Address_Verify(a, pub);
         Assert.AreEqual(err, SKY_OK);
         var s = new _GoString_();
         err = SKY_cipher_Address_String(a, s);
         Assert.AreEqual(err, SKY_OK);
         var a2 = new cipher__Address();
         err = SKY_cipher_DecodeBase58Address(s.p, a2);
         Assert.AreEqual(err, SKY_OK);
         Assert.AreEqual(a2.isEqual(a), 1);
     }
 }
コード例 #5
0
        public void TestDecodeBase58Address()
        {
            uint err = 0;
            var  s   = new cipher_SecKey();
            var  p   = new cipher_PubKey();

            Assert.AreEqual(SKY_cipher_GenerateKeyPair(p, s), SKY_OK, "Failed SKY_cipher_GenerateKeyPair");
            err = SKY_cipher_SecKey_Verify(s);
            Assert.AreEqual(err, SKY_OK, "Failed SKY_cipher_SecKey_Verify ");
            err = SKY_cipher_PubKey_Verify(p);
            Assert.AreEqual(err, SKY_OK, "Failed SKY_cipher_PubKey_Verify");
            var a  = new cipher__Address();
            var a1 = new cipher__Address();
            var a2 = new cipher__Address();

            err = SKY_cipher_AddressFromPubKey(p, a);
            Assert.AreEqual(err, SKY_OK, "Failed SKY_cipher_AddressFromPubKey");
            Assert.AreEqual(err, SKY_OK, "Failed SKY_cipher_AddressFromPubKey");
            err = SKY_cipher_Address_Verify(a, p);
            Assert.AreEqual(err, SKY_OK, " Failed SKY_cipher_Address_Verify");
            err = SKY_cipher_DecodeBase58Address("", a1);
            Assert.AreEqual(err, SKY_ERROR, "Failed SKY_cipher_DecodeBase58Address 1");
            err = SKY_cipher_DecodeBase58Address("asa", a1);
            Assert.AreEqual(err, SKY_ErrAddressInvalidLength, "Failed SKY_cipher_DecodeBase58Address 2");

            var addrStr = new _GoString_();

            err = SKY_cipher_Address_String(a, addrStr);
            Assert.AreEqual(err, SKY_OK);
            err = SKY_cipher_DecodeBase58Address(addrStr.p, a2);
            Assert.AreEqual(err, SKY_OK, "Failed SKY_cipher_DecodeBase58Address");
            Assert.IsTrue(a.isEqual(a2) == 1);
            var as2 = " " + addrStr.p;

            err = SKY_cipher_DecodeBase58Address(as2, a1);
            Assert.AreEqual(err, SKY_ERROR, "Failed SKY_cipher_DecodeBase58Address 31");

            as2 = "000" + addrStr.p;
            err = SKY_cipher_DecodeBase58Address(as2, a1);
            Assert.AreEqual(err, SKY_ERROR, "Failed SKY_cipher_DecodeBase58Address 3");

            as2 = addrStr.p + "000";
            err = SKY_cipher_DecodeBase58Address(as2, a1);
            Assert.AreEqual(err, SKY_ERROR, "Failed SKY_cipher_DecodeBase58Address 30");
        }