Пример #1
0
def verify_signature(seq, validator_public_key_human, public_key_human, signature):
    v, validator_public_key = Base58.decode_version(validator_public_key_human)
    check_validator_public(v, validator_public_key)

    v, public_key = Base58.decode_version(public_key_human)

    m = make_manifest(public_key, validator_public_key, seq)
    public_key = public_key[1:]  # Remove ED25519_BYTE
    sig = signature.decode("hex")
    ed25519.checkvalid(sig, "MAN\0" + m, public_key)
Пример #2
0
def verify_signature(seq, validator_public_key_human, public_key_human,
                     signature):
    v, validator_public_key = Base58.decode_version(validator_public_key_human)
    check_validator_public(v, validator_public_key)

    v, public_key = Base58.decode_version(public_key_human)

    m = make_manifest(public_key, validator_public_key, seq)
    public_key = public_key[1:]  # Remove ED25519_BYTE
    sig = signature.decode('hex')
    ed25519.checkvalid(sig, 'MAN\0' + m, public_key)
Пример #3
0
def get_signature(seq, validator_public_key_human, private_key_human):
    v, validator_public_key = Base58.decode_version(validator_public_key_human)
    check_validator_public(v, validator_public_key)

    v, private_key = Base58.decode_version(private_key_human)
    check_master_secret(v, private_key)

    pk = ed25519.publickey(private_key)
    apk = ED25519_BYTE + pk
    m = make_manifest(apk, validator_public_key, seq)
    m1 = sign_manifest(m, private_key, pk)
    return base64.b64encode(m1)
Пример #4
0
def get_signature(seq, validator_public_key_human, private_key_human):
    v, validator_public_key = Base58.decode_version(validator_public_key_human)
    check_validator_public(v, validator_public_key)

    v, private_key = Base58.decode_version(private_key_human)
    check_master_secret(v, private_key)

    pk = ed25519.publickey(private_key)
    apk = ED25519_BYTE + pk
    m = make_manifest(apk, validator_public_key, seq)
    m1 = sign_manifest(m, private_key, pk)
    return base64.b64encode(m1)
Пример #5
0
def create_ed_public_key(private_key_human):
    v, private_key = Base58.decode_version(private_key_human)
    check_master_secret(v, private_key)

    public_key = ed25519.publickey(private_key)
    public_key_human = Base58.encode_version(Base58.VER_NODE_PUBLIC, ED25519_BYTE + public_key)
    return public_key_human
Пример #6
0
def get_signature(seq, validation_pk_human, validation_sk_human, master_sk_human):
    v, validation_pk = Base58.decode_version(validation_pk_human)
    check_validation_public_key(v, validation_pk)

    v, validation_sk_str = Base58.decode_version(validation_sk_human)
    check_secret_key(v, validation_sk_str)
    validation_sk = ecdsa.SigningKey.from_string(validation_sk_str, curve=ecdsa.SECP256k1)

    v, master_sk = Base58.decode_version(master_sk_human)
    check_secret_key(v, master_sk)

    pk = ed25519.publickey(master_sk)
    apk = ED25519_BYTE + pk
    m = make_manifest(apk, validation_pk, seq)
    m1 = sign_manifest(m, validation_sk, master_sk, pk)
    return base64.b64encode(m1)
Пример #7
0
def create_ed_public_key(sk_human):
    v, sk = Base58.decode_version(sk_human)
    check_secret_key(v, sk)

    pk = ed25519.publickey(sk)
    pk_human = Base58.encode_version(Base58.VER_NODE_PUBLIC, ED25519_BYTE + pk)
    return pk_human
Пример #8
0
def create_ed_public_key(sk_human):
    v, sk = Base58.decode_version(sk_human)
    check_secret_key(v, sk)

    pk = ed25519.publickey(sk)
    pk_human = Base58.encode_version(
        Base58.VER_NODE_PUBLIC, ED25519_BYTE + pk)
    return pk_human
Пример #9
0
def create_ed_public_key(private_key_human):
    v, private_key = Base58.decode_version(private_key_human)
    check_master_secret(v, private_key)

    public_key = ed25519.publickey(private_key)
    public_key_human = Base58.encode_version(Base58.VER_NODE_PUBLIC,
                                             ED25519_BYTE + public_key)
    return public_key_human
Пример #10
0
def get_signature(seq, validation_pk_human, validation_sk_human,
                  master_sk_human):
    v, validation_pk = Base58.decode_version(validation_pk_human)
    check_validation_public_key(v, validation_pk)

    v, validation_sk_str = Base58.decode_version(validation_sk_human)
    check_secret_key(v, validation_sk_str)
    validation_sk = ecdsa.SigningKey.from_string(validation_sk_str,
                                                 curve=ecdsa.SECP256k1)

    v, master_sk = Base58.decode_version(master_sk_human)
    check_secret_key(v, master_sk)

    pk = ed25519.publickey(master_sk)
    apk = ED25519_BYTE + pk
    m = make_manifest(apk, validation_pk, seq)
    m1 = sign_manifest(m, validation_sk, master_sk, pk)
    return base64.b64encode(m1)
Пример #11
0
def perform_sign(seq,
                 validation_pk_human,
                 validation_sk_human,
                 master_sk_human,
                 print=print):
    manifest = get_signature(int(seq), validation_pk_human,
                             validation_sk_human, master_sk_human)

    print('[validator_token]')
    print(
        wrap(
            base64.b64encode(
                json.dumps(
                    {
                        "validation_secret_key":
                        binascii.b2a_hex(
                            Base58.decode_version(validation_sk_human)[1]),
                        "manifest":
                        manifest
                    },
                    separators=(',', ':')))))
Пример #12
0
def perform_check(s, print=print):
    version, b = Base58.decode_version(s)
    print('version        = ' + Base58.version_name(version))
    print('decoded length = ' + str(len(b)))
    assert Base58.encode_version(version, b) == s
Пример #13
0
def perform_check(s, print=print):
    version, b = Base58.decode_version(s)
    print("version        = " + Base58.version_name(version))
    print("decoded length = " + str(len(b)))
    assert Base58.encode_version(version, b) == s
Пример #14
0
 def test_decode(self):
     ver, b = Base58.decode_version('sB49XwJgmdEZDo8LmYwki7FYkiaN7')
     self.assertEquals(ver, Base58.VER_ACCOUNT_PUBLIC)
     self.assertEquals(b, BINARY)
Пример #15
0
 def test_decode(self):
     ver, b = Base58.decode_version('sB49XwJgmdEZDo8LmYwki7FYkiaN7')
     self.assertEquals(ver, Base58.VER_ACCOUNT_PUBLIC)
     self.assertEquals(b, BINARY)