https://github.com/filosottile/edwards25519
filippo.io/edwards25519 — A safer, faster, and more powerful low-level edwards25519 Go implementation.
https://github.com/filosottile/edwards25519
Last synced: about 1 year ago
JSON representation
filippo.io/edwards25519 — A safer, faster, and more powerful low-level edwards25519 Go implementation.
- Host: GitHub
- URL: https://github.com/filosottile/edwards25519
- Owner: FiloSottile
- License: bsd-3-clause
- Created: 2020-09-28T12:16:41.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-05-23T14:43:57.000Z (about 2 years ago)
- Last Synced: 2024-10-04T10:06:51.225Z (over 1 year ago)
- Language: Go
- Homepage: https://filippo.io/edwards25519
- Size: 396 KB
- Stars: 135
- Watchers: 7
- Forks: 30
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# filippo.io/edwards25519
```
import "filippo.io/edwards25519"
```
This library implements the edwards25519 elliptic curve, exposing the necessary APIs to build a wide array of higher-level primitives.
Read the docs at [pkg.go.dev/filippo.io/edwards25519](https://pkg.go.dev/filippo.io/edwards25519).
The package tracks the upstream standard library package `crypto/internal/fips140/edwards25519` and extends it with additional functionality.
The code is originally derived from Adam Langley's internal implementation in the Go standard library, and includes George Tankersley's [performance improvements](https://golang.org/cl/71950). It was then further developed by Henry de Valence for use in ristretto255, and was finally [merged back into the Go standard library](https://golang.org/cl/276272) as of Go 1.17.
Most users don't need this package, and should instead use `crypto/ed25519` for signatures, `crypto/ecdh` for Diffie-Hellman, or `github.com/gtank/ristretto255` for prime order group logic. However, for anyone currently using a fork of the internal `edwards25519` package or of `github.com/agl/edwards25519`, this package should be a safer, faster, and more powerful alternative.
Since this package is meant to curb proliferation of edwards25519 implementations in the Go ecosystem, it welcomes requests for new APIs or reviewable performance improvements.