https://github.com/primefactor-io/ecc
Implementations of various Elliptic Curve Cryptography primitives such as ECDSA and Adaptor ECDSA over secp256k1
https://github.com/primefactor-io/ecc
adaptor-signature adaptor-signatures cryptography cryptography-algorithms ecdsa ecdsa-cryptography ecdsa-signature ecdsa-signatures elliptic-curve elliptic-curve-cryptography elliptic-curves schnorr schnorr-signature schnorr-signatures
Last synced: about 1 year ago
JSON representation
Implementations of various Elliptic Curve Cryptography primitives such as ECDSA and Adaptor ECDSA over secp256k1
- Host: GitHub
- URL: https://github.com/primefactor-io/ecc
- Owner: primefactor-io
- License: apache-2.0
- Created: 2025-05-11T12:14:24.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-05-11T12:14:36.000Z (about 1 year ago)
- Last Synced: 2025-05-15T08:21:22.208Z (about 1 year ago)
- Topics: adaptor-signature, adaptor-signatures, cryptography, cryptography-algorithms, ecdsa, ecdsa-cryptography, ecdsa-signature, ecdsa-signatures, elliptic-curve, elliptic-curve-cryptography, elliptic-curves, schnorr, schnorr-signature, schnorr-signatures
- Language: Go
- Homepage: https://primefactor.io
- Size: 33.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Elliptic Curve Cryptography
Implementations of various Elliptic Curve Cryptography primitives.
The [Elliptic Curve Digital Signature Algorithm](https://muens.io/elliptic-curve-digital-signature-algorithm/) (ECDSA) as well as its [Adaptor Signature](https://muens.io/ecdsa-adaptor-signature/) variant are implemented over the curve secp256k1. In addition to the typical `r` and `s` values, generated ECDSA signatures also include a recovery bit `v` that allows for public key recovery.
A [Schnorr Signature](https://muens.io/schnorr-signature/) implementation is available which also features an [Adaptor Signature](https://muens.io/schnorr-adaptor-signature/) variant. Both implementations are using the secp256k1 curve.
Two proof implementations allow for proving knowledge of a discrete logarithm, as well as the equality of two discrete logarithms.
Using the provided abstractions, different curves can be easily integrated and existing algorithms reused.
## Setup
1. `git clone `
2. `asdf install` (optional)
3. `go test -count 1 -race ./...`
## Useful Commands
```sh
go run
go build []
go test [][/...] [-v] [-cover] [-race] [-short] [-parallel ]
go test -bench=. [] [-count ] [-benchmem] [-benchtime 2s] [-memprofile ]
go test -coverprofile []
go tool cover -html
go tool cover -func
go fmt []
go mod init []
go mod tidy
```
## Useful Resources
- [Go - Learn](https://go.dev/learn)
- [Go - Documentation](https://go.dev/doc)
- [Go - A Tour of Go](https://go.dev/tour)
- [Go - Effective Go](https://go.dev/doc/effective_go)
- [Go - Playground](https://go.dev/play)
- [Go by Example](https://gobyexample.com)
- [100 Go Mistakes and How to Avoid Them](https://100go.co)