public void TestBitcoinWIPRoundTrio() { var p = new cipher_PubKey(); var seckey1 = new cipher_SecKey(); var err = SKY_cipher_GenerateKeyPair(p, seckey1); var wip1 = new _GoString_(); SKY_cipher_BitcoinWalletImportFormatFromSeckey(seckey1, wip1); var seckey2 = new skycoin.cipher_SecKey(); Assert.AreEqual(err, SKY_OK); err = SKY_cipher_SecKeyFromBitcoinWalletImportFormat(wip1.p, seckey2); Assert.AreEqual(err, SKY_OK); var wip2 = new _GoString_(); SKY_cipher_BitcoinWalletImportFormatFromSeckey(seckey2, wip2); Assert.AreEqual(err, SKY_OK); Assert.AreEqual(seckey1.isEqual(seckey2), 1); var seckey1_hex = new _GoString_(); var seckey2_hex = new _GoString_(); err = SKY_cipher_SecKey_Hex(seckey1, seckey1_hex); Assert.AreEqual(err, SKY_OK); err = SKY_cipher_SecKey_Hex(seckey2, seckey2_hex); Assert.AreEqual(err, SKY_OK); Assert.AreEqual(seckey1_hex.p == seckey2_hex.p, true); Assert.AreEqual(wip1.p == wip2.p, true); }
public void TestBitcoinAddressFromBytes() { var s = new skycoin.cipher_SecKey(); var p = new skycoin.cipher_PubKey(); var err = SKY_cipher_GenerateKeyPair(p, s); Assert.AreEqual(err, SKY_OK, "Failed SKY_cipher_GenerateKeyPair"); var a = new skycoin.cipher__BitcoinAddress(); SKY_cipher_BitcoinAddressFromPubKey(p, a); var pk = new GoSlice(); var b = new GoSlice(); var a2 = new skycoin.cipher__BitcoinAddress(); SKY_cipher_BitcoinAddress_Bytes(a, b); err = SKY_cipher_BitcoinAddressFromBytes(b, a2); Assert.AreEqual(err, SKY_OK, "Failed SKY_cipher_BitcoinAddressFromBytes"); Assert.AreEqual(a2.isEqual(a), 1); // Invalid number of bytes SKY_cipher_BitcoinAddress_Bytes(a, b); b.len = b.len - 2; err = SKY_cipher_BitcoinAddressFromBytes(b, a2); Assert.AreEqual(err, SKY_ErrAddressInvalidLength); // Invalid checksum SKY_cipher_BitcoinAddress_Bytes(a, b); b.setAtChar('2', (ulong)b.len - 1); err = SKY_cipher_BitcoinAddressFromBytes(b, a2); Assert.AreEqual(err, SKY_ErrAddressInvalidChecksum); a.Version = 2; SKY_cipher_BitcoinAddress_Bytes(a, b); err = SKY_cipher_BitcoinAddressFromBytes(b, a2); Assert.AreEqual(err, SKY_ErrAddressInvalidVersion); }