An open API service indexing awesome lists of open source software.

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

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)