1 stable release
1.0.0 | Sep 22, 2021 |
---|
#1390 in Cryptography
Used in flow-rust-sdk
145KB
3K
SLoC
P256
A heavily modified version, intended for use with the Flow-Rust-SDK.
lib.rs
:
Pure Rust implementation of the NIST P-256 elliptic curve, including support for the Elliptic Curve Digital Signature Algorithm (ECDSA), Elliptic Curve Diffie-Hellman (ECDH), and general purpose elliptic curve/field arithmetic which can be used to implement protocols based on group operations.
About NIST P-256
NIST P-256 is a Weierstrass curve specified in FIPS 186-4: Digital Signature Standard (DSS):
https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
Also known as prime256v1
(ANSI X9.62) and secp256r1
(SECG), P-256 is
included in the US National Security Agency's "Suite B" and is widely used
in Internet and connected device protocols like TLS, the X.509 PKI, and
Bluetooth.
⚠️ Security Warning
The elliptic curve arithmetic contained in this crate has never been independently audited!
This crate has been designed with the goal of ensuring that secret-dependent
operations are performed in constant time (using the subtle
crate and
constant-time formulas). However, it has not been thoroughly assessed to ensure
that generated assembly is constant time on common CPU architectures.
USE AT YOUR OWN RISK!
Minimum Supported Rust Version
Rust 1.52 or higher.
Minimum supported Rust version may be changed in the future, but it will be accompanied with a minor version bump.
Dependencies
~3.5MB
~54K SLoC