# SECP256k2: A Modern Library for Elliptic Curve Cryptography ![SECP256k2: A Modern Library for Elliptic Curve Cryptography](https://hackmd.io/_uploads/B1LuZJeGT.png 'SECP256k2: A Modern Library for Elliptic Curve Cryptography') ## Introduction :::info :bulb: **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` and `Python`, **SECP256k2** is designed to be used on multiple operating systems including Windows and Linux. ## Getting Started ### Installation #### windows with `pip` ```bash pip install secp256k2 ``` #### linux and Mac with `pip3` ```bash pip3 install secp256k2 ``` ### Usage A quick example to get you started with SECP256k2: ```python 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). ```python 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`): ```python 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: ```python 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 ```python from secp256k2 import Contactor co = Contactor() dec = 0xfffffffffffffffffff99999999999 ripemd160 = co.Decimal_To_RIPEMD160(dec) ``` --- convert wif key to private key (hex): ```python from secp256k2 import Contactor co = Contactor() WIF = "WIF_KEY_HERE" privatekey = co.Wif_To_Hex(WIF) ``` ## Documentation ::: success For more detailed information and advanced usage, please refer to the [full documentation](https://secp256k2.github.io/secp256k2). ::: ## 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](/LICENSE) file. --- ### Donate: Bitcoin:`1MMDRZA12xdBLD1P5AfEfvEMErp588vmF9` Programmer And Owner : [PyMmdrza](https://github.com/Pymmdrza) official website : <a title="official website programmer" href="https://mmdrza.com/" rel="follow">MMDRZA.COM</a>