No description
  • Go 79.6%
  • Assembly 20.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Daniel Baumann 2ed49c2b45
Releasing fastforward version 0.0.4-4~ffwd13+u1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2026-07-15 11:10:48 +02:00
.github/workflows Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
_asm Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
debian Releasing fastforward version 0.0.4-4~ffwd13+u1. 2026-07-15 11:10:48 +02:00
internal Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
benchmark_test.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
extra.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
extra_asm.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
extra_noasm.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
extra_norace_test.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
extra_race_test.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
extra_test.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
generate.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
go.mod Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
go.sum Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
LICENSE Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
nistec.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
nistec_test.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p224.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p224_sqrt.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_asm.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_asm_amd64.s Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_asm_arm64.s Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_asm_ppc64le.s Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_asm_s390x.s Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_asm_test.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_ordinv.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_ordinv_export_test.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_ordinv_noasm.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_ordinv_test.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_table.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p256_test.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p384.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
p521.go Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00
README.md Adding upstream version 0.0.4. 2026-07-15 11:09:50 +02:00

filippo.io/nistec

import "filippo.io/nistec"

This package implements the NIST P elliptic curves, according to FIPS 186-4 and SEC 1, Version 2.0, exposing the necessary APIs to build a wide array of higher-level primitives.

It's an exported version of crypto/internal/fips140/nistec in the standard library, which powers crypto/elliptic, crypto/ecdsa, and crypto/ecdh. The git history has been preserved, and new upstream changes are applied periodically.

This package uses fiat-crypto or specialized assembly and Go code for its backend field arithmetic (not math/big) and exposes constant-time, heap allocation-free, byte slice-based safe APIs. Group operations use modern and safe complete addition formulas where possible. The point at infinity is handled and encoded according to SEC 1, Version 2.0, and invalid curve points can't be represented. This makes it particularly suitable to be used as a prime order group implementation.

Use the purego build tag to exclude the assembly and rely entirely on formally verified fiat-crypto arithmetic and complete addition formulas.

Read the docs at pkg.go.dev/filippo.io/nistec.

This repository generally does not accept contributions. Any changes should be submitted upstream to the Go project.