def test_verify(self): Sign.perform_verify( self.SEQUENCE, self.VALIDATOR_KEY_HUMAN, 'nHUUaKHpxyRP4TZZ79tTpXuTpoM8pRNs5crZpGVA5jdrjib5easY', self.SIGNATURE_HEX, print=self.print)
def get_test_keypair(self): public = (Base58.VER_NODE_PUBLIC, '\x02' + (32 * 'v')) private = (Base58.VER_NODE_PRIVATE, 32 * 'k') Sign.check_validator_public(*public) Sign.check_master_secret(*private) return (Base58.encode_version(*public), Base58.encode_version(*private))
def test_sign_manifest(self): sk, pk = Sign.make_ed25519_keypair(self.urandom) s = Sign.sign_manifest('manifest', sk, pk) self.assertEquals( s, 'manifestv@\xe5\x84\xbe\xc4\x80N\xa0v"\xb2\x80A\x88\x06\xc0' '\xd2\xbae\x92\x89\xa8\'!\xdd\x00\x88\x06s\xe0\xf74\xe3Yg\xad{$' '\x17\xd3\x99\xaa\x16\xb0\xeaZ\xd7]\r\xb3\xdc\x1b\x8f\xc1Z\xdfHU' '\xb5\x92\xac\x82jI\x02')
def test_make_manifest(self): _, pk = Sign.make_ed25519_keypair(self.urandom) m = Sign.make_manifest(pk, "verify", 12345) self.assertEquals( m, "$\x00\x0009q nz\x1c\xdd)\xb0\xb7\x8f\xd1:\xf4\xc5Y\x8f\xef\xf4" "\xef*\x97\x16n<\xa6\xf2\xe4\xfb\xfc\xcd\x80P[\xf1s\x06verify", )
def test_create(self): Sign.perform_create(self.urandom, self.print) self.assertEquals( self.results, [[['[validator_keys]', 'nHUUaKHpxyRP4TZZ79tTpXuTpoM8pRNs5crZpGVA5jdrjib5easY', '', '[master_secret]', 'pnEp13Zu7xTeKQVQ2RZVaUraE9GXKqFtnXQVUFKXbTE6wsP4wne'], {'sep': '\n'}]])
def test_create(self): Sign.perform_create(self.urandom, self.print) self.assertEquals(self.results, [[[ '[validator_keys]', 'nHUUaKHpxyRP4TZZ79tTpXuTpoM8pRNs5crZpGVA5jdrjib5easY', '', '[master_secret]', 'pnEp13Zu7xTeKQVQ2RZVaUraE9GXKqFtnXQVUFKXbTE6wsP4wne' ], { 'sep': '\n' }]])
def test_sign(self): public, private = self.get_test_keypair() Sign.perform_sign(self.SEQUENCE, public, private, print=self.print) self.assertEquals( self.results, [[['[validation_manifest]'], {}], [['JAAAABdxIe2DIKUZd9jDjKikknxnDfWCHkSXYZReFenvsmo\n' 'VCdIw6nMhAnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dn\n' 'Z2dnZ2dkDOjlWtQSvRTjuwe+4iNusg0sJMzqkBJwDz30b2S\n' 'kxZ7Fte/Vx4htM/kkfUfJCaxmxE5N4dHSKuiO9iDHsktqIA'], {}]])
def test_sign_manifest(self): ssk, spk = Sign.make_ecdsa_keypair(self.urandom) sk, pk = Sign.make_ed25519_keypair(self.urandom) s = Sign.sign_manifest('manifest', ssk, sk, pk) self.assertEquals( s, 'manifestvF0D\x02 \x04\x85\x95p\x0f\xb8\x17\x7f\xdf\xdd\x04' '\xaa+\x16q1W\xf6\xfd\xe8X\xb12l\xd5\xc3\xf1\xd6\x05\x1b\x1c\x9a' '\x02 \x18\\.(o\xa8 \xeb\x87\xfa&~\xbd\xe6,\xfb\xa61\xd1\xcd\xcd' '\xc8\r\x16[\x81\x9a\x19\xda\x93i\xcdp\x12@\xe5\x84\xbe\xc4\x80N' '\xa0v"\xb2\x80A\x88\x06\xc0\xd2\xbae\x92\x89\xa8\'!\xdd\x00\x88' '\x06s\xe0\xf74\xe3Yg\xad{$\x17\xd3\x99\xaa\x16\xb0\xeaZ\xd7]\r' '\xb3\xdc\x1b\x8f\xc1Z\xdfHU\xb5\x92\xac\x82jI\x02')
def test_get_signature(self): signature = Sign.get_signature(self.SEQUENCE, *self.get_test_keypair()) self.assertEquals( signature, 'JAAAABdxIe2DIKUZd9jDjKikknxnDfWCHkSXYZReFenvsmoVCdIw6nMhAnZ2dnZ2' 'dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dkDOjlWtQSvRTjuwe+4iNusg0sJM' 'zqkBJwDz30b2SkxZ7Fte/Vx4htM/kkfUfJCaxmxE5N4dHSKuiO9iDHsktqIA')
def test_sign(self): public, private = self.get_test_keypair() Sign.perform_sign(self.SEQUENCE, public, private, private, print=self.print) self.assertEquals(self.results, [ [['[validation_manifest]'], {}], [[ 'JAAAABdxIe2DIKUZd9jDjKikknxnDfWCHkSXYZReFenvsmoVCdIw6nMhAnZ2dnZ2dnZ2dnZ2\n' 'dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dkYwRAIgXyobHA8sDQxmDJNLE6HIaARlzvcd79/wT068\n' 'e113gUkCIHkI540JQT2LHwAD7/y3wFE5X3lEXMfgZRkpLZTxkpticBJAzo5VrUEr0U47sHvu\n' 'IjbrINLCTM6pAScA899G9kpMWexbXv1ceIbTP5JH1HyQmsZsROTeHR0irojvYgx7JLaiAA==' ], {}] ])
def test_make_ed(self): private, public = Sign.make_ed25519_keypair(self.urandom) self.assertEquals(private, "\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5" "\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5") self.assertEquals( public, "nz\x1c\xdd)\xb0\xb7\x8f\xd1:\xf4\xc5Y\x8f\xef\xf4" "\xef*\x97\x16n<\xa6\xf2\xe4\xfb\xfc\xcd\x80P[\xf1", )
def test_wrap(self): wrap = lambda s: Sign.wrap(s, 5) self.assertEquals(wrap(""), "") self.assertEquals(wrap("12345"), "12345") self.assertEquals(wrap("123456"), "123\n456") self.assertEquals(wrap("12345678"), "1234\n5678") self.assertEquals(wrap("1234567890"), "12345\n67890") self.assertEquals(wrap("12345678901"), "123\n456\n789\n01")
def test_create(self): Sign.perform_create(self.urandom, self.print) self.assertEquals( self.results, [ [ [ "[validator_keys]", "nHUUaKHpxyRP4TZZ79tTpXuTpoM8pRNs5crZpGVA5jdrjib5easY", "", "[master_secret]", "pnEp13Zu7xTeKQVQ2RZVaUraE9GXKqFtnXQVUFKXbTE6wsP4wne", ], {"sep": "\n"}, ] ], )
def test_wrap(self): wrap = lambda s: Sign.wrap(s, 5) self.assertEquals(wrap(''), '') self.assertEquals(wrap('12345'), '12345') self.assertEquals(wrap('123456'), '123\n456') self.assertEquals(wrap('12345678'), '1234\n5678') self.assertEquals(wrap('1234567890'), '12345\n67890') self.assertEquals(wrap('12345678901'), '123\n456\n789\n01')
def test_make_ed(self): private, public = Sign.make_ed25519_keypair(self.urandom) self.assertEquals( private, '\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5' '\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5') self.assertEquals( public, 'nz\x1c\xdd)\xb0\xb7\x8f\xd1:\xf4\xc5Y\x8f\xef\xf4' '\xef*\x97\x16n<\xa6\xf2\xe4\xfb\xfc\xcd\x80P[\xf1')
def test_get_signature(self): pk, sk = self.get_test_keypair() signature = Sign.get_signature(self.SEQUENCE, pk, sk, sk) self.assertEquals( signature, 'JAAAABdxIe2DIKUZd9jDjKikknxnDfWCHkSXYZReFenvsmoVCdIw6nMhAnZ2dnZ2' 'dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dkYwRAIgXyobHA8sDQxmDJNLE6HI' 'aARlzvcd79/wT068e113gUkCIHkI540JQT2LHwAD7/y3wFE5X3lEXMfgZRkpLZTx' 'kpticBJAzo5VrUEr0U47sHvuIjbrINLCTM6pAScA899G9kpMWexbXv1ceIbTP5JH' '1HyQmsZsROTeHR0irojvYgx7JLaiAA==')
def test_sign(self): public, private = self.get_test_keypair() Sign.perform_sign(self.SEQUENCE, public, private, private, print=self.print) self.assertEquals(self.results, [ [['[validator_token]'], {}], [[ 'eyJ2YWxpZGF0aW9uX3ByaXZhdGVfa2V5IjoiNmI2YjZiNmI2YjZiNmI2YjZiNmI2Yj\n' 'ZiNmI2YjZiNmI2YjZiNmI2YjZiNmI2YjZiNmI2YjZiNmI2YjZiNmI2YiIsIm1hbmlm\n' 'ZXN0IjoiSkFBQUFCZHhJZTJESUtVWmQ5akRqS2lra254bkRmV0NIa1NYWVpSZUZlbn\n' 'ZzbW9WQ2RJdzZuTWhBbloyZG5aMmRuWjJkbloyZG5aMmRuWjJkbloyZG5aMmRuWjJk\n' 'bloyZG5aMmRrWXdSQUlnWHlvYkhBOHNEUXhtREpOTEU2SElhQVJsenZjZDc5L3dUMD\n' 'Y4ZTExM2dVa0NJSGtJNTQwSlFUMkxId0FENy95M3dGRTVYM2xFWE1mZ1pSa3BMWlR4\n' 'a3B0aWNCSkF6bzVWclVFcjBVNDdzSHZ1SWpicklOTENUTTZwQVNjQTg5OUc5a3BNV2\n' 'V4Ylh2MWNlSWJUUDVKSDFIeVFtc1pzUk9UZUhSMGlyb2p2WWd4N0pMYWlBQT09In0=' ], {}] ])
#!/usr/bin/env python import sys from ripple.util import Sign result = Sign.run_command(sys.argv[1:]) exit(0 if result else -1)
def test_make_manifest(self): _, pk = Sign.make_ed25519_keypair(self.urandom) m = Sign.make_manifest(pk, 'verify', 12345) self.assertEquals( m, '$\x00\x0009q nz\x1c\xdd)\xb0\xb7\x8f\xd1:\xf4\xc5Y\x8f\xef\xf4' '\xef*\x97\x16n<\xa6\xf2\xe4\xfb\xfc\xcd\x80P[\xf1s\x06verify')
def test_make_seed(self): self.assertEquals(Sign.make_seed(self.urandom), '\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5')
def test_strvl(self): self.assertEquals(Sign.prepend_length_byte(BINARY), '\x10nN9kfUnKTf7PpgLG')
def test_check(self): public = Base58.encode_version(Base58.VER_NODE_PRIVATE, 32 * 'k') Sign.perform_check(public, self.print) self.assertEquals(self.results, [[['version = VER_NODE_PRIVATE'], {}], [['decoded length = 32'], {}]])
def test_verify_signature(self): Sign.verify_signature( self.SEQUENCE, self.VALIDATOR_KEY_HUMAN, 'nHUUaKHpxyRP4TZZ79tTpXuTpoM8pRNs5crZpGVA5jdrjib5easY', self.SIGNATURE_HEX)
def test_verify(self): Sign.perform_verify(self.SEQUENCE, self.VALIDATOR_KEY_HUMAN, 'nHUUaKHpxyRP4TZZ79tTpXuTpoM8pRNs5crZpGVA5jdrjib5easY', self.SIGNATURE_HEX, print=self.print)
def test_create_ed_keys(self): pkh, skh = Sign.create_ed_keys(self.urandom) self.assertEquals( pkh, 'nHUUaKHpxyRP4TZZ79tTpXuTpoM8pRNs5crZpGVA5jdrjib5easY') self.assertEquals( skh, 'pnEp13Zu7xTeKQVQ2RZVaUraE9GXKqFtnXQVUFKXbTE6wsP4wne')
def test_verify_signature(self): Sign.verify_signature(self.SEQUENCE, self.VALIDATOR_KEY_HUMAN, 'nHUUaKHpxyRP4TZZ79tTpXuTpoM8pRNs5crZpGVA5jdrjib5easY', self.SIGNATURE_HEX)
#!/usr/bin/env python import sys from ripple.util import Sign result = Sign.run_command(sys.argv[1:]) sys.exit(0 if result else -1)