Fork of https://filippo.io/edwards25519 with unsafe faster operations. https://filippo.io/edwards25519
Go to file
Bryan C. Mills 16197b4051 crypto/internal/edwards25519: shorten quick.Check tests in short mode
The edwards25519 tests can be quite slow on platforms without a
well-optimized implementation, especially if the race detector is also
enabled. Since these tests aren't checking for specific inputs anyway,
the extra coverage of a more aggressive quick.Config does not seem
worth wasting extra time on slow CI builders and TryBots.

For #60109.

Change-Id: I530e75a0b76725585df5a2f5ded6705ab1b9da51
Reviewed-on: https://go-review.googlesource.com/c/go/+/522715
Reviewed-by: Filippo Valsorda <filippo@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Joedian Reid <joedian@golang.org>
2023-12-10 20:10:48 +01:00
.github/workflows all: stop testing on unsupported Go 1.16 2022-07-31 17:08:28 -04:00
field crypto/internal/edwards25519: shorten quick.Check tests in short mode 2023-12-10 20:10:48 +01:00
doc.go edwards25519: sync with upstream 2022-05-25 01:39:14 +02:00
edwards25519.go crypto/internal/edwards25519: reduce Point size by reordering fields 2023-12-10 20:10:48 +01:00
edwards25519_test.go edwards25519: drop Go builders noopt check 2023-12-10 20:00:03 +01:00
extra.go extra: fix Scalar.Invert comment (#31) 2022-08-03 12:59:37 -04:00
extra_test.go crypto/internal/edwards25519: shorten quick.Check tests in short mode 2023-12-10 20:10:48 +01:00
go.mod all: sync with landed standard library upstream 2021-05-26 18:09:02 +02:00
LICENSE all: flatten the package and make FieldElement opaque 2020-09-28 14:18:44 +02:00
README.md edwards25519: sync with upstream 2022-05-25 01:39:14 +02:00
scalar.go all: fix misuses of "a" vs "an" 2023-12-10 20:10:48 +01:00
scalar_alias_test.go crypto/internal/edwards25519: shorten quick.Check tests in short mode 2023-12-10 20:10:48 +01:00
scalar_fiat.go edwards25519: gofmt scalar_fiat.go 2023-12-10 20:04:13 +01:00
scalar_test.go crypto/internal/edwards25519: shorten quick.Check tests in short mode 2023-12-10 20:10:48 +01:00
scalarmult.go all: sync with landed standard library upstream 2021-05-26 18:09:02 +02:00
scalarmult_test.go crypto/internal/edwards25519: shorten quick.Check tests in short mode 2023-12-10 20:10:48 +01:00
tables.go all: fix comment typos 2023-12-10 20:00:32 +01:00
tables_test.go all: sync with landed standard library upstream 2021-05-26 18:09:02 +02:00

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.

The code is originally derived from Adam Langley's internal implementation in the Go standard library, and includes George Tankersley's performance improvements. It was then further developed by Henry de Valence for use in ristretto255, and was finally merged back into the Go standard library as of Go 1.17. It now tracks the upstream codebase and extends it with additional functionality.

Most users don't need this package, and should instead use crypto/ed25519 for signatures, golang.org/x/crypto/curve25519 for Diffie-Hellman, or github.com/gtank/ristretto255 for prime order group logic. However, for anyone currently using a fork of crypto/internal/edwards25519/crypto/ed25519/internal/edwards25519 or 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.