https://github.com/bytemare/hash2curve
Go implementation of RFC 9380 - Hashing to Elliptic Curves
https://github.com/bytemare/hash2curve
cryptography ecc elliptic-curves go golang hash hash-to-curve rfc9380 secp256k1
Last synced: about 1 month ago
JSON representation
Go implementation of RFC 9380 - Hashing to Elliptic Curves
- Host: GitHub
- URL: https://github.com/bytemare/hash2curve
- Owner: bytemare
- License: mit
- Created: 2022-08-02T23:23:53.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-31T12:42:18.000Z (about 2 months ago)
- Last Synced: 2025-03-31T13:56:53.738Z (about 2 months ago)
- Topics: cryptography, ecc, elliptic-curves, go, golang, hash, hash-to-curve, rfc9380, secp256k1
- Language: Go
- Homepage:
- Size: 223 KB
- Stars: 2
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
# Hash To Curve
[](https://github.com/bytemare/hash2curve/actions/workflows/wf-analysis.yaml)
[](https://pkg.go.dev/github.com/bytemare/hash2curve)
[](https://codecov.io/gh/bytemare/hash2curve)
[](https://securityscorecards.dev/viewer/?uri=github.com/bytemare/hash2curve)```
import "github.com/bytemare/hash2curve"
```Package hash2curve implements Hashing to Elliptic Curves as specified in [RFC 9380](https://datatracker.ietf.org/doc/rfc9380).
It exposed a minimal API so you don't have to worry about the parameters.The following table shows supported groups with hash-to-curve capability and links each one to the underlying
implementations:| Curve | Backend |
|--------------|-------------------------------|
| Ristretto255 | github.com/gtank/ristretto255 |
| P-256 | filippo.io/nistec |
| P-384 | filippo.io/nistec |
| P-521 | filippo.io/nistec |
| Edwards25519 | filippo.io/edwards25519 |
| Secp256k1 | github.com/bytemare/secp256k1 |#### What is hash2curve?
> Hashing to Elliptic Curves allows for encoding or hashing an arbitrary string to a point on an elliptic curve
> (or element in a group), therefore benefiting from interesting mathematical properties very useful in cryptographic
> protocols, like CPace, VOPRF, and OPAQUE.## Documentation [](https://pkg.go.dev/github.com/bytemare/hash2curve)
You can find the documentation and usage examples in [the package doc](https://pkg.go.dev/github.com/bytemare/hash2curve).
## Versioning
[SemVer](http://semver.org) is used for versioning. For the versions available, see the [tags on the repository](https://github.com/bytemare/hash2curve/tags).
## Contributing
Please read [CONTRIBUTING.md](.github/CONTRIBUTING.md) for details on the code of conduct, and the process for submitting pull requests.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.