Example #1
0
def pubkeys_to_basic_stealth_address(scan_pubkey, spend_pubkey, magic_byte=42):
    # magic_byte = 42 for mainnet, 43 for testnet.
    hex_scankey = main.encode_pubkey(scan_pubkey, 'hex_compressed')
    hex_spendkey = main.encode_pubkey(spend_pubkey, 'hex_compressed')
    hex_data = '00{0:066x}01{1:066x}0100'.format(int(hex_scankey, 16),
                                                 int(hex_spendkey, 16))
    addr = main.hex_to_b58check(hex_data, magic_byte)
    return addr
Example #2
0
def format_key(request):
    if 'key' in request.GET:
        key = request.GET['key']
        is_public_only = True
        public_key = ""
        priv_key = ""
        appendbyte = 0

        if BLOCK_CHAIN == 'btc':
            appendbyte = 0
        elif BLOCK_CHAIN == 'btc-testnet':
            appendbyte = 111

        if is_address(key):
            public_key = key
            priv_key = None
        elif is_pubkey(key):
            key = decode_pubkey(key)
            key = encode_pubkey(key, 'hex_compressed')
            public_key = pubkey_to_address(key, magicbyte=appendbyte)
            priv_key = None
        elif is_privkey(key):
            is_public_only = False
            priv_key = encode_privkey(
                key, 'wif_compressed',
                vbyte=appendbyte)  #vbyte for bitcoin is 111
            public_key = privkey_to_address(
                priv_key, magicbyte=appendbyte)  #magicbyte for bitcoin is 111

        response = {
            'public_key': public_key,
            'priv_key': priv_key,
            'read_only': is_public_only
        }
        return (JsonResponse(response, status=200))
    else:
        return JsonResponse({'error': 'Error, no key variable provided'},
                            status=200)
Example #3
0
def mk_stealth_metadata_script(ephem_pubkey, nonce):
    op_return = '6a'
    msg_size = '26'
    version = '06'
    return op_return + msg_size + version + '{0:08x}'.format(
        nonce) + main.encode_pubkey(ephem_pubkey, 'hex_compressed')
Example #4
0
def shared_secret_sender(scan_pubkey, ephem_privkey):
    shared_point = main.multiply(scan_pubkey, ephem_privkey)
    shared_secret = main.sha256(
        main.encode_pubkey(shared_point, 'bin_compressed'))
    return shared_secret