Compiled libsecp256k1 for using ECDSA signatures and secret/public key cryptography in your python projects.
MIT License
This is a compiled libsecp256k1 python package that allows you to use secp256k1 in your python projects. Secp256k1 is an optimized C library for ECDSA signatures and secret/public key operations. This library is intended to be the highest quality publicly available library for cryptography on the secp256k1 curve. See this for more details on secp256k1: https://github.com/bitcoin-core/secp256k1. Libsecp256k1-0 contains the precompiled modules of secp256k1 compatible for multiple platforms (unix, windows 32 and 64 bits). Most importantly, you can use the dockerized compiler in this package to compile these modules directly from source. That way you don't need to put your trust the precompiled versions in this package or anyone else's versions of libsecp256k1.
python3 --version
pip3 --version
libsecp256k1.0.dylib
binary file located in the app: ~/Applications/Electrum.app/Contents/MacOS/libsecp256k1.0.dylib
. Then replace the ../compiled/darwin/libsecp256k1.0.dylib
file with your new binary.There are a couple of options to install this package:
pip3 install libsecp256k1-0
git clone https://github.com/ArcticTechnology/libsecp256k1-0.git
cd libsecp256k1-0
pip3 install -e .
To uninstall this app:
pip3 uninstall libsecp256k1-0
.egg-info
file located in the src/
directory of the package. This gets created automatically with pip3 install -e .
.After installation, you can simply import the package resources and use them in your own project:
from libsecp256k1_0 import *
Once imported, you should be able to all the modules in the package. For example, this is how you verify ecdsa with secp256k1:
Secp256k1._libsecp256k1.secp256k1_ecdsa_verify(<ctx>, <sig>, <msg_hash>, <pubkey>)
You can use the dockerized compiler of this package to compile libsecp256k1 for yourself. The compiler builds directly from this source: https://github.com/bitcoin-core/secp256k1.git. It is recommended that you build libsecp256k1 for yourself that way you don't need to put your trust the precompiled versions in this package or any other versions of libsecp256k1. By default, running the compiler will overwrite the precompiled modules with the newly compiled ones. In order to use the compiler you will need to have Docker (version >= 20.10.7), see "Instructions for Docker" section for more details.
There are a couple ways you can run the compiler:
libsecp-compile
python3 -m
:python3 -m libsecp-compile
from libsecp256k1_0 import Libsecp256k1
Libsecp256k1.docker_compile(outpath='/home/example')
./local_compiler.sh
This section goes over some of the common issues found and how to resolve them.
On Linux, if you are getting a command not found
error when trying to run the compiler, you may need to add ~/.local/bin/
to PATH. See this thread for details: https://stackoverflow.com/a/34947489. To add ~/.local/bin/
to PATH do the following:
export PATH=~/.local/bin:$PATH
to ~/.bash_profile
.echo export PATH=~/.local/bin:$PATH > ~/.bash_profile
source ~/.bash_profile
sudo apt-get update
sudo apt install docker.io
sudo docker version
sudo docker run --name test-docker-instance test-docker
sudo docker images
sudo docker stop test-docker-instance
sudo docker kill --signal=9 test-docker-instance
sudo docker rmi test-docker
Our software is open source and free for public use. If you found any of these repos useful and would like to support this project financially, feel free to donate to our bitcoin address.
Bitcoin Address 1: 1GZQY6hMwszqxCmbC6uGxkyD5HKPhK1Pmf