Crate bignp256

Crate bignp256 

Source
Expand description

§RustCrypto: BIGN P-256 (bign-curve256v1) elliptic curve

crate Docs Build Status Apache2/MIT licensed Rust Version Project Chat

Pure Rust implementation of the BIGN P-256 (a.k.a. bign-curve256v1) elliptic curve with support for ECDSA signing/verification, and general purpose curve arithmetic support implemented in terms of traits from the elliptic-curve crate.

Documentation

§⚠️ 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!

§Supported Algorithms

§About BIGN P-256

BIGN P-256 is a Weierstrass curve specified in STB 34.101.45-2013. Also known as bign-curve256v1.

§License

All crates licensed under either of

at your option.

§Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Re-exports§

pub use arithmetic::AffinePoint;arithmetic
pub use arithmetic::ProjectivePoint;arithmetic
pub use public_key::PublicKey;arithmetic
pub use secret_key::SecretKey;arithmetic
pub use elliptic_curve;

Modules§

arithmeticarithmetic
Pure Rust implementation of group operations on bign-curve256v1.
ecdhecdh
Elliptic Curve Diffie-Hellman (Ephemeral) Support.
ecdsaecdsa
BignP256 Digital Signature Algorithm as defined in STB 34.101.45-2013 § 7.
public_keyarithmetic
Public key types and traits
secret_keyarithmetic
Bign256 secret key.
test_vectorstest-vectors
secp256r1 test vectors.

Structs§

BignP256
BIGN P-256 elliptic curve.
Scalararithmetic
Element in the bign-curve256v1 scalar field modulo n

Type Aliases§

EncodedPoint
SEC1 encoded point.
FieldBytes
BIGN P-256 field element serialized as bytes.
NonZeroScalararithmetic
Non-zero scalar field element.
Result
Bign256 result type
ScalarBitsbits
Bit representation of a BIGN P-256 scalar field element.
ScalarValuearithmetic
Generic scalar type with primitive functionality.#
U256
256-bit unsigned big integer.