Skip to main content

Generated and Converted Keys with any Type Foundation from Private Key [WIF Hexed Mnemonic and Binary Bytes seed] in Python

Project description

SECP256k2: A Modern Library for Elliptic Curve Cryptography

Google Colab PyPI - Downloads GitHub closed pull requests GitHub issues PyPI - License PyPI - Status Read the Docs programmer Official Website


Introduction

SECP256k2 is a high-performance and easy-to-use library for working with the SECP256k1 elliptic curve. This library is meticulously designed to provide a robust set of functionalities needed for the development of secure, fast, and efficient cryptographic applications.

Features

  • Optimized Performance: Leveraging optimized algorithms and efficient code structures for high-speed operations on the SECP256k1 curve.
  • Comprehensive Toolset: Offering a wide array of functionalities ranging from basic arithmetic operations to advanced cryptographic protocols.
  • Cross-Platform: Written in C & Python, SECP256k2 is designed to be used on multiple operating systems including Windows and Linux & Mac.

Getting Started

Installation

windows with pip

pip install --upgrade secp256k2

linux and Mac with pip3

pip3 install --upgrade secp256k2

Generate and Converet 10,000 Key to Compress and Uncompress Address. ( Check Now in Google Colab )

import os, timeit

setup_code = """
from os import urandom
from secp256k2 import Contactor

cont = Contactor()

def test_Profile_1():
    numd = urandom(32)[0]
    caddr = cont.privatekey_to_address(0, True, numd)
    uaddr = cont.privatekey_to_address(0, False, numd)
"""

# // Total Generated 
num = 10000

time1 = timeit.timeit("test_Profile_1()", setup=setup_code, number=num)


print(f"Generated & Convereted {format(num, ',')} Key To : {time1:.6f} sec")

[!NOTE] Output : Generated & Convereted 10,000 Key To : 0.393369 sec

Usage

A quick example to get you started with SECP256k2:

from secp256k2 import Contactor

cont = Contactor()

dec = 0x00000000000000000000000000000000000000000000001

wif_compress = cont.Decimal_To_Wif(dec, True)

wif_uncompress = cont.Decimal_To_Wif(dec, False)

compressed and uncompressed bitcoin address wallet from decimal (integer).

from secp256k2 import Contactor
# added Contactor class to project script
co = Contactor()
# dec
dec = 0xffffffffffffffffffffff880000000000000
compress_address = co.Decimal_To_Addr(dec, addr_type=0, compress=True)
uncompress_address = co.Decimal_To_Addr(dec, addr_type=0, compress=False)

Convert Decimal (Number) To Ethereum Address (Maximum Range: 115792089237316195423570985008687907852837564279074904382605163141518161494337):

from secp256k2 import Contactor

cont = Contactor()

dec_num = 1 # example , can use any range number to 
# ethereum address generated from decimal number 
eth_address = cont.Decimal_To_ETH_Addr(dec_num)

convert and Generated Wif Key from decimal Number:

from secp256k2 import Contactor

co = Contactor()

dec = 0xffffffffffffffffffffffffff8999999999333666666
wif_compress = co.Decimal_To_Wif(dec, True)
wif_uncompress = co.Decimal_To_Wif(dec, False)

Decimal to RIPEMD160

from secp256k2 import Contactor

co = Contactor()

dec = 0xfffffffffffffffffff99999999999

ripemd160 = co.Decimal_To_RIPEMD160(dec)

convert wif key to private key (hex):

from secp256k2 import Contactor

co = Contactor()

WIF = "WIF_KEY_HERE"

privatekey = co.Wif_To_Hex(WIF)

Convert Private Key To Wif Compressed and Uncompressed

from secp256k2 import Contactor

cont = Contactor()

privatekey = "PRIVATE_KEY_HERE"

wif_compress = cont.btc_pvk_to_wif(privatekey, True)

wif_uncompress = cont.btc_pvk_to_wif(privatekey, False)

Convert Wif to Private Key (integer/decimal):

from secp256k2 import Contactor

cont = Contactor()

wif = "WIF_KEY_HERE"

privatekey = cont.btc_wif_to_pvk_int(wif)

Convert Wif to Private Key (hex):

from secp256k2 import Contactor

cont = Contactor()

wif = "WIF_KEY_HERE"

privatekey = cont.btc_wif_to_pvk_hex(wif)

Convert Private Key (decimal) To RIPEMD160 (h160)

from secp256k2 import Contactor

cont = Contactor()

privatekey = 12345678901234567891234567891234567789

ripemd160 = cont.privatekey_to_h160(privatekey)

Convert Private Key (Decimal) To Compressed and uncompressed Address

  • addr_type (int) : P2PKH = 0, P2SH = 1, P2WPKH = 2
  • compress (bool) : True : Compress, False : Uncompress
  • private key (decimal) : 0 - 115792089237316195423570985008687907852837564279074904382605163141518161494337
from secp256k2 import Contactor

cont = Contactor()

privatekey = 12345678901234567891234567891234567789

address_compress = cont.privatekey_to_address(0, True, privatekey)

address_uncompress = cont.privatekey_to_address(0, False, privatekey)

Documentation

For more detailed information and advanced usage, please refer to the full documentation.

Contribution

We welcome contributions from the open-source community. If you find any issues or would like to propose enhancements, please feel free to open an issue or submit a pull request.

License

SECP256k2 is licensed under MIT. For more information, please see the LICENSE file.


Donate:

Bitcoin:1MMDRZA12xdBLD1P5AfEfvEMErp588vmF9

Programmer And Owner : PyMmdrza

Email : Mmdrza@usa.com

official website : MMDRZA.COM

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secp256k2-1.4.6.tar.gz (6.0 MB view details)

Uploaded Source

Built Distribution

secp256k2-1.4.6-py3-none-any.whl (6.2 MB view details)

Uploaded Python 3

File details

Details for the file secp256k2-1.4.6.tar.gz.

File metadata

  • Download URL: secp256k2-1.4.6.tar.gz
  • Upload date:
  • Size: 6.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for secp256k2-1.4.6.tar.gz
Algorithm Hash digest
SHA256 4efd223615987534f170e57c38901d4b489509dfb39ecc653ceba51814408c78
MD5 824d35b43c678240aea632456861dbc1
BLAKE2b-256 4c4c3d538c11cf57b1f4ae692823d67cd484de73c24072268aaff3d0fd865eea

See more details on using hashes here.

File details

Details for the file secp256k2-1.4.6-py3-none-any.whl.

File metadata

  • Download URL: secp256k2-1.4.6-py3-none-any.whl
  • Upload date:
  • Size: 6.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for secp256k2-1.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 00c26e5a6187746c9a84bbfc87c9f870f903555d27beacbd39fa881f8737003c
MD5 c7e26652e6bec7faab769cd4e924dcdd
BLAKE2b-256 b1851e8c2ec27d4f382a63353182d0be3439434aa7775f932a9c929fd3949d40

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page