added btcpay pairing instructions to readme

This commit is contained in:
2020-05-14 12:40:25 -05:00
parent 63a902774e
commit 58f85edcb4
7 changed files with 125 additions and 4 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,47 @@
from ecdsa import SigningKey, SECP256k1, VerifyingKey
import binascii
import hashlib
def sha_digest(hexastring):
return hashlib.sha256(binascii.unhexlify(hexastring)).hexdigest()
def base58encode(hexastring):
chars = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
int_val = int(hexastring, 16)
encoded = encode58("", int_val, chars)
return encoded
def encode58(string, int_val, chars):
if int_val == 0:
return string
else:
new_val, rem = divmod(int_val, 58)
new_string = (chars[rem]) + string
return encode58(new_string, new_val, chars)
sk = SigningKey.generate(curve=SECP256k1)
pem = sk.to_pem()
pem = pem.decode("utf-8")
print("")
print(pem)
print("")
public_key = SigningKey.from_pem(pem).get_verifying_key().to_string()
public_key_hex = binascii.hexlify(public_key)
checksum_int = int(public_key_hex, 16)
if(checksum_int % 2 == 0):
prefix = "02"
else:
prefix = "03"
public_key_compressed = prefix + public_key_hex[0:64].decode("utf-8")
hash_of_public_key = sha_digest(public_key_compressed)
ripe_hash_of_public_key = hashlib.new("ripemd160")
ripe_hash_of_public_key.update(binascii.unhexlify(hash_of_public_key))
version_hash = "0F02"+ripe_hash_of_public_key.hexdigest()
version_checksum = sha_digest(sha_digest(version_hash))[0:8]
btcpay_sin = base58encode(version_hash+version_checksum)
print("")
print(btcpay_sin)
print("")

BIN
readme/paired.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB