pyflo/pybtc/crypto.py
2019-05-06 17:48:48 +04:00

58 lines
1.8 KiB
Python

import _crypto
import _secp256k1
from os import urandom
def __decode_base58__(h):
return _crypto.__decode_base58__(h)
def __encode_base58__(h):
return _crypto.__encode_base58__(h)
def __double_sha256__(h):
return _crypto.__double_sha256__(h)
def __sha256__(h):
return _crypto.__sha256__(h)
def __secp256k1_context_randomize__(seed = None):
if seed is None:
seed = urandom(32)
return bool(_secp256k1.secp256k1_context_randomize(seed))
def __secp256k1_context_create__():
return bool(_secp256k1.secp256k1_context_create())
def __secp256k1_ec_pubkey_create__(private_key, compressed = True):
return _secp256k1.secp256k1_ec_pubkey_create(private_key, int(compressed))
def __secp256k1_ecdsa_sign__(message, private_key, der_encoding = True):
return _secp256k1.secp256k1_ecdsa_sign(message, private_key, int(der_encoding))
def __secp256k1_ecdsa_verify__(signature, public_key, message):
return _secp256k1.secp256k1_ecdsa_verify(signature, public_key, message)
def __secp256k1_ecdsa_recover__(signature, message, rec_id, compressed = True):
return _secp256k1.secp256k1_ecdsa_recover(signature, message, rec_id, int(compressed))
def __secp256k1_nonce_rfc6979__(msg32, key32, counter):
return _secp256k1.secp256k1_nonce_rfc6979(msg32, key32, counter)
def __secp256k1_ecdsa_signature_serialize_der__(raw_sig):
return _secp256k1.secp256k1_ecdsa_signature_serialize_der(raw_sig)
def __secp256k1_ecdsa_add_points__(a, b, flag):
return _secp256k1.secp256k1_ecdsa_add_points(a, b, int(flag))
def __secp256k1_ec_pubkey_tweak_add__(pubkey, tweak, compressed = True):
return _secp256k1.secp256k1_ec_pubkey_tweak_add(pubkey, tweak, int(compressed))
if (__secp256k1_context_create__()):
__secp256k1_context_randomize__()