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); }
public void TestAddressVerify() { 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); // Valid pubkey+address err = SKY_cipher_Address_Verify(a, p); Assert.AreEqual(err, SKY_OK); // Invalid pubkey err = SKY_cipher_Address_Verify(a, new cipher_PubKey()); Assert.AreEqual(err, SKY_ErrAddressInvalidPubKey); var p2 = new cipher_PubKey(); var s2 = new cipher_SecKey(); err = SKY_cipher_GenerateKeyPair(p2, s2); Assert.AreEqual(err, SKY_OK); err = SKY_cipher_Address_Verify(a, p2); Assert.AreEqual(err, SKY_ErrAddressInvalidPubKey); // Bad version a.setVersion('1'); err = SKY_cipher_Address_Verify(a, p); Assert.AreEqual(err, SKY_ErrAddressInvalidVersion); }