All Projects → btccom → Secp256k1 Go

btccom / Secp256k1 Go

Licence: mit
Bindings to lib-secp256k1 for golang

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects
cgo
20 projects

Projects that are alternatives of or similar to Secp256k1 Go

Bitp0wn
Algorithms to re-compute a private key, to fake signatures and some other funny things with Bitcoin.
Stars: ✭ 59 (+168.18%)
Mutual labels:  bitcoin, ecdsa
Bitcoinecdsa.php
PHP library to generate BTC addresses and signatures from private keys.
Stars: ✭ 169 (+668.18%)
Mutual labels:  bitcoin, ecdsa
Ecdsa Private Key Recovery
A simple library to recover the private key of ECDSA and DSA signatures sharing the same nonce k and therefore having identical signature parameter r
Stars: ✭ 186 (+745.45%)
Mutual labels:  bitcoin, ecdsa
Multipoolminer
Monitors crypto mining pools in real-time in order to find the most profitable for your machine. Controls any miner that is available via command line.
Stars: ✭ 750 (+3309.09%)
Mutual labels:  bitcoin
Lbry Sdk
The LBRY SDK for building decentralized, censorship resistant, monetized, digital content apps.
Stars: ✭ 7,169 (+32486.36%)
Mutual labels:  bitcoin
Cryptocurrency Arbitrage
A cryptocurrency arbitrage opportunity calculator. Over 800 currencies and 50 markets.
Stars: ✭ 836 (+3700%)
Mutual labels:  bitcoin
Hth Legacy Old Chain
Old Binaries and source code for HTH. Deprecated.
Stars: ✭ 22 (+0%)
Mutual labels:  bitcoin
Ravencoin
Ravencoin Core integration/staging tree
Stars: ✭ 733 (+3231.82%)
Mutual labels:  bitcoin
Eclair
A scala implementation of the Lightning Network.
Stars: ✭ 892 (+3954.55%)
Mutual labels:  bitcoin
Exchange Core
Ultra-fast matching engine written in Java based on LMAX Disruptor, Eclipse Collections, Real Logic Agrona, OpenHFT, LZ4 Java, and Adaptive Radix Trees.
Stars: ✭ 801 (+3540.91%)
Mutual labels:  bitcoin
Ebookcoin
Ebookcoin has been updated to DDN Blockchain,please get it from https://github.com/ddnlink/ddn
Stars: ✭ 789 (+3486.36%)
Mutual labels:  bitcoin
Stratisbitcoinfullnode
Bitcoin full node in C#
Stars: ✭ 757 (+3340.91%)
Mutual labels:  bitcoin
Lightpay
Atomic swaps for the Lightning Payment Network
Stars: ✭ 17 (-22.73%)
Mutual labels:  bitcoin
Blockchain
Compilation of useful documents and scientific papers about Blockchain & cryptocurrencies.
Stars: ✭ 751 (+3313.64%)
Mutual labels:  bitcoin
Crypto Coin Kit
lodash for crypto coins
Stars: ✭ 19 (-13.64%)
Mutual labels:  bitcoin
Awesome Blockchain
区块链白皮书、书籍、交易所、币种、自媒体等资源汇总 💯
Stars: ✭ 747 (+3295.45%)
Mutual labels:  bitcoin
Blockchain Reading List
Blockchain Manchester Meetups, Talks and Reading List
Stars: ✭ 17 (-22.73%)
Mutual labels:  bitcoin
Coinbase Pro Node
DEPRECATED — The official Node.js library for Coinbase Pro
Stars: ✭ 782 (+3454.55%)
Mutual labels:  bitcoin
Awesome Cryptoeconomics
An awesome curated list of Cryptoeconomic research and learning materials
Stars: ✭ 763 (+3368.18%)
Mutual labels:  bitcoin
Okcoin Leeks Reaper
OKCoin韭菜收割机
Stars: ✭ 820 (+3627.27%)
Mutual labels:  bitcoin

secp256k1-go

This package provides bindings (using cgo) to the upstream https://github.com/bitcoin-core/secp256k1 C library.

It exposes several high level functions for elliptic curve operations over the secp256k1 curve, namely ECDSA, point & scalar operations, ECDH, and recoverable signatures.

Warning

It should be mentioned that the upstream library is still experimental and has yet to be formally released. As such, you should think twice before installing this package.

The currently targeted version of libsecp256k1 is the latest master commit.

Currently two experimental libraries are also included and supported: ECDH and signature recovery. These are included with the default installation, and may eventually be discontinued by the same (as has happened with Schnorr).

Contributing

To start developing, clone the package from github, and from the source directory, run the following to install the package.

git submodule update --init
make install

Tests can be run by calling make test Coverage can be build by calling make coverage To display a HTML code coverage report, call make coverage-html

Please make sure to include tests for new features.

Rationale behind API

There have been some slight changes to the API exposed by libsecp256k1. This section will document conventions adopted in the design.

Always return error code from libsecp256k1

There are some functions which return more than one error code, indicating the specific failure which occurred. With this in mind, the raw error code is always returned as the first return value.

To help provide some meaning to the error codes, the last parameter will be used to return reasonable error messages.

Use write-by-reference where upstream uses it

In functions like EcPrivkeyTweakAdd, libsecp256k1 will take a pointer to the private key, tweaking the value in place (overwriting the original value)

To avoid making copies of secrets in memory, we allow upstream to overwrite the original values. If the to-be-written value is a new object, it is returned with the other return values (example: EcdsaSign)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].