From 3108aab9cbc407344e80f7110c99512f68787ee2 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Tue, 7 Jan 2020 10:42:19 -0500 Subject: [PATCH] Upgrade 'elliptic-curve' crate to v0.3 ...and use the `p256`, `p384`, and `k256` crates --- ecdsa/Cargo.toml | 17 ++++++++++++++++- ecdsa/src/curve.rs | 18 +++++++++++++----- ecdsa/src/curve/nistp256.rs | 2 +- ecdsa/src/curve/nistp384.rs | 2 +- ecdsa/src/curve/secp256k1.rs | 2 +- ecdsa/src/lib.rs | 5 ++++- 6 files changed, 36 insertions(+), 10 deletions(-) diff --git a/ecdsa/Cargo.toml b/ecdsa/Cargo.toml index df442e9f..b3803205 100644 --- a/ecdsa/Cargo.toml +++ b/ecdsa/Cargo.toml @@ -15,7 +15,7 @@ categories = ["cryptography", "no-std"] keywords = ["crypto", "ecc", "nist", "secp256k1", "signature"] [dependencies.elliptic-curve] -version = "0.2.0" +version = "0.3" default-features = false features = ["weierstrass"] @@ -23,6 +23,21 @@ features = ["weierstrass"] version = "0.12" default-features = false +[dependencies.k256] +version = "0.1" +optional = true +default-features = false + +[dependencies.p256] +version = "0.1" +optional = true +default-features = false + +[dependencies.p384] +version = "0.1" +optional = true +default-features = false + [dependencies.sha2] version = "0.8" optional = true diff --git a/ecdsa/src/curve.rs b/ecdsa/src/curve.rs index 169079ec..12f375fd 100644 --- a/ecdsa/src/curve.rs +++ b/ecdsa/src/curve.rs @@ -1,10 +1,18 @@ //! Elliptic curves (short Weierstrass form) used by ECDSA -// Elliptic curves +pub use elliptic_curve::weierstrass::{point::*, Curve}; + +#[cfg(feature = "p256")] pub mod nistp256; -pub mod nistp384; -pub mod secp256k1; +#[cfg(feature = "p256")] +pub use self::nistp256::NistP256; -pub use elliptic_curve::weierstrass::{point::*, Curve}; +#[cfg(feature = "p384")] +pub mod nistp384; +#[cfg(feature = "p384")] +pub use self::nistp384::NistP384; -pub use self::{nistp256::NistP256, nistp384::NistP384, secp256k1::Secp256k1}; +#[cfg(feature = "k256")] +pub mod secp256k1; +#[cfg(feature = "k256")] +pub use self::secp256k1::Secp256k1; diff --git a/ecdsa/src/curve/nistp256.rs b/ecdsa/src/curve/nistp256.rs index c0a05e91..e5019e6c 100644 --- a/ecdsa/src/curve/nistp256.rs +++ b/ecdsa/src/curve/nistp256.rs @@ -1,6 +1,6 @@ //! NIST P-256 elliptic curve (a.k.a. prime256v1, secp256r1) -pub use elliptic_curve::weierstrass::curve::nistp256::{NistP256, PublicKey, SecretKey}; +pub use p256::{NistP256, PublicKey, SecretKey}; /// ASN.1 DER encoded NIST P-256 ECDSA signature pub type Asn1Signature = crate::Asn1Signature; diff --git a/ecdsa/src/curve/nistp384.rs b/ecdsa/src/curve/nistp384.rs index fcccbdbf..a6440d7e 100644 --- a/ecdsa/src/curve/nistp384.rs +++ b/ecdsa/src/curve/nistp384.rs @@ -1,6 +1,6 @@ //! NIST P-384 elliptic curve (a.k.a. secp384r1) -pub use elliptic_curve::weierstrass::curve::nistp384::{NistP384, PublicKey, SecretKey}; +pub use p384::{NistP384, PublicKey, SecretKey}; /// ASN.1 DER encoded NIST P-384 ECDSA signature pub type Asn1Signature = crate::Asn1Signature; diff --git a/ecdsa/src/curve/secp256k1.rs b/ecdsa/src/curve/secp256k1.rs index 1b3ed4fa..9a78f2bb 100644 --- a/ecdsa/src/curve/secp256k1.rs +++ b/ecdsa/src/curve/secp256k1.rs @@ -1,6 +1,6 @@ //! secp256k1 elliptic curve -pub use elliptic_curve::weierstrass::curve::secp256k1::{PublicKey, Secp256k1, SecretKey}; +pub use k256::{PublicKey, Secp256k1, SecretKey}; /// ASN.1 DER encoded secp256k1 ECDSA signature pub type Asn1Signature = crate::Asn1Signature; diff --git a/ecdsa/src/lib.rs b/ecdsa/src/lib.rs index dbf76bc2..47dd42cb 100644 --- a/ecdsa/src/lib.rs +++ b/ecdsa/src/lib.rs @@ -53,4 +53,7 @@ pub mod fixed_signature; pub mod test_vectors; pub use self::{asn1_signature::Asn1Signature, fixed_signature::FixedSignature}; -pub use elliptic_curve::weierstrass::{Curve, PublicKey, SecretKey}; +pub use elliptic_curve::{ + weierstrass::{Curve, PublicKey}, + SecretKey, +};