Merge pull request #175 from iqlusioninc/bump-p256-and-p384

Bump `p256` to v0.5; `p384` to v0.4
This commit is contained in:
Tony Arcieri
2020-10-17 14:26:03 -07:00
committed by GitHub
6 changed files with 80 additions and 19 deletions
+3 -3
View File
@@ -35,7 +35,7 @@ jobs:
strategy: strategy:
matrix: matrix:
toolchain: toolchain:
- 1.41.0 - 1.44.0 # MSRV
- stable - stable
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@@ -75,7 +75,7 @@ jobs:
- macos-latest - macos-latest
- windows-latest - windows-latest
toolchain: toolchain:
- 1.41.0 - 1.44.0 # MSRV
- stable - stable
runs-on: ${{ matrix.platform }} runs-on: ${{ matrix.platform }}
steps: steps:
@@ -136,7 +136,7 @@ jobs:
- name: Install stable toolchain - name: Install stable toolchain
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
with: with:
toolchain: stable toolchain: 1.44.0 # MSRV
override: true override: true
- name: Install libpcsclite-dev - name: Install libpcsclite-dev
Generated
+67 -6
View File
@@ -62,6 +62,17 @@ version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]]
name = "bitvec"
version = "0.18.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d2838fdd79e8776dbe07a106c784b0f8dda571a21b2750a092cc4cbaa653c8e"
dependencies = [
"funty",
"radium",
"wyz",
]
[[package]] [[package]]
name = "block-buffer" name = "block-buffer"
version = "0.7.3" version = "0.7.3"
@@ -144,6 +155,12 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "const-oid"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2d9162b7289a46e86208d6af2c686ca5bfde445878c41a458a9fac706252d0b"
[[package]] [[package]]
name = "cookie-factory" name = "cookie-factory"
version = "0.3.1" version = "0.3.1"
@@ -240,11 +257,15 @@ dependencies = [
[[package]] [[package]]
name = "elliptic-curve" name = "elliptic-curve"
version = "0.5.0" version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9abe4578ed343c7a2c9d617cd2b1895ba0a87a6a4dee97bde156d65f608c7b2d" checksum = "396db09c483e7fca5d4fdb9112685632b3e76c9a607a2649c1bf904404a01366"
dependencies = [ dependencies = [
"bitvec",
"const-oid",
"ff",
"generic-array 0.14.4", "generic-array 0.14.4",
"group",
"rand_core", "rand_core",
"subtle", "subtle",
] ]
@@ -268,6 +289,23 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
[[package]]
name = "ff"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01646e077d4ebda82b73f1bca002ea1e91561a77df2431a9e79729bcc31950ef"
dependencies = [
"bitvec",
"rand_core",
"subtle",
]
[[package]]
name = "funty"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8"
[[package]] [[package]]
name = "generic-array" name = "generic-array"
version = "0.12.3" version = "0.12.3"
@@ -298,6 +336,17 @@ dependencies = [
"wasi 0.9.0+wasi-snapshot-preview1", "wasi 0.9.0+wasi-snapshot-preview1",
] ]
[[package]]
name = "group"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc11f9f5fbf1943b48ae7c2bf6846e7d827a512d1be4f23af708f5ca5d01dde1"
dependencies = [
"ff",
"rand_core",
"subtle",
]
[[package]] [[package]]
name = "gumdrop" name = "gumdrop"
version = "0.8.0" version = "0.8.0"
@@ -506,18 +555,18 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]] [[package]]
name = "p256" name = "p256"
version = "0.4.1" version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9f8aff5e98a6a83e374418a0a510ae4d9d45d714b5b0767c2e23ea007d0ba54" checksum = "280ed58e7e5f3052b6e2f596fa40c7eff4c27c4b6b6deecb5d685ba5c2080980"
dependencies = [ dependencies = [
"elliptic-curve", "elliptic-curve",
] ]
[[package]] [[package]]
name = "p384" name = "p384"
version = "0.3.0" version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a21dedbfa7a0603d7c9429b8b427edc4a113c3741e31610ba4a3cbfebe0ff08" checksum = "06de0548166c258c22bb6bdcff3074eac4b07125040aa74db3f61db87fe5f275"
dependencies = [ dependencies = [
"elliptic-curve", "elliptic-curve",
] ]
@@ -609,6 +658,12 @@ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]]
name = "radium"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64de9a0c5361e034f1aefc9f71a86871ec870e766fe31a009734a989b329286a"
[[package]] [[package]]
name = "rand" name = "rand"
version = "0.7.3" version = "0.7.3"
@@ -1031,6 +1086,12 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "wyz"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
[[package]] [[package]]
name = "x509" name = "x509"
version = "0.1.2" version = "0.1.2"
+3 -3
View File
@@ -26,7 +26,7 @@ chrono = "0.4"
cookie-factory = "0.3" cookie-factory = "0.3"
der-parser = "4" der-parser = "4"
des = "0.5" des = "0.5"
elliptic-curve = { version = "0.5", features = ["weierstrass"] } elliptic-curve = "0.6"
getrandom = "0.1" getrandom = "0.1"
hmac = "0.9" hmac = "0.9"
log = "0.4" log = "0.4"
@@ -35,8 +35,8 @@ num-bigint = { version = "0.6", features = ["rand"], package = "num-bigint-dig"
num-traits = "0.2" num-traits = "0.2"
num-integer = "0.1" num-integer = "0.1"
pbkdf2 = "0.5" pbkdf2 = "0.5"
p256 = "0.4" p256 = "0.5"
p384 = "0.3" p384 = "0.4"
pcsc = "2" pcsc = "2"
rsa = "0.3.0" rsa = "0.3.0"
secrecy = "0.7" secrecy = "0.7"
+2 -2
View File
@@ -36,7 +36,7 @@ endorsed by Yubico.
## Minimum Supported Rust Version ## Minimum Supported Rust Version
- Rust **1.39+** - Rust **1.44** or newer
## Supported YubiKeys ## Supported YubiKeys
@@ -194,7 +194,7 @@ or conditions.
[docs-link]: https://docs.rs/yubikey-piv/ [docs-link]: https://docs.rs/yubikey-piv/
[license-image]: https://img.shields.io/badge/license-BSD-blue.svg [license-image]: https://img.shields.io/badge/license-BSD-blue.svg
[license-link]: https://github.com/iqlusioninc/yubikey-piv.rs/blob/develop/COPYING [license-link]: https://github.com/iqlusioninc/yubikey-piv.rs/blob/develop/COPYING
[rustc-image]: https://img.shields.io/badge/rustc-1.39+-blue.svg [rustc-image]: https://img.shields.io/badge/rustc-1.44+-blue.svg
[maintenance-image]: https://img.shields.io/badge/maintenance-experimental-blue.svg [maintenance-image]: https://img.shields.io/badge/maintenance-experimental-blue.svg
[safety-image]: https://img.shields.io/badge/unsafe-forbidden-success.svg [safety-image]: https://img.shields.io/badge/unsafe-forbidden-success.svg
[safety-link]: https://github.com/rust-secure-code/safety-dance/ [safety-link]: https://github.com/rust-secure-code/safety-dance/
+3 -3
View File
@@ -39,7 +39,7 @@ use crate::{
Buffer, Buffer,
}; };
use chrono::{DateTime, Utc}; use chrono::{DateTime, Utc};
use elliptic_curve::weierstrass::PublicKey as EcPublicKey; use elliptic_curve::sec1::EncodedPoint as EcPublicKey;
use log::error; use log::error;
use num_bigint::BigUint; use num_bigint::BigUint;
use p256::NistP256; use p256::NistP256;
@@ -208,10 +208,10 @@ impl PublicKeyInfo {
match read_pki::ec_parameters(&subject_pki.algorithm.parameters)? { match read_pki::ec_parameters(&subject_pki.algorithm.parameters)? {
AlgorithmId::EccP256 => EcPublicKey::from_bytes(key_bytes) AlgorithmId::EccP256 => EcPublicKey::from_bytes(key_bytes)
.map(PublicKeyInfo::EcP256) .map(PublicKeyInfo::EcP256)
.ok_or(Error::InvalidObject), .map_err(|_| Error::InvalidObject),
AlgorithmId::EccP384 => EcPublicKey::from_bytes(key_bytes) AlgorithmId::EccP384 => EcPublicKey::from_bytes(key_bytes)
.map(PublicKeyInfo::EcP384) .map(PublicKeyInfo::EcP384)
.ok_or(Error::InvalidObject), .map_err(|_| Error::InvalidObject),
_ => Err(Error::AlgorithmError), _ => Err(Error::AlgorithmError),
} }
} }
+2 -2
View File
@@ -56,7 +56,7 @@ use crate::{
policy::{PinPolicy, TouchPolicy}, policy::{PinPolicy, TouchPolicy},
Buffer, Buffer,
}; };
use elliptic_curve::weierstrass::PublicKey as EcPublicKey; use elliptic_curve::sec1::EncodedPoint as EcPublicKey;
use log::{error, warn}; use log::{error, warn};
#[cfg(feature = "untested")] #[cfg(feature = "untested")]
use num_bigint::traits::ModInverse; use num_bigint::traits::ModInverse;
@@ -658,7 +658,7 @@ pub fn generate(
} else { } else {
EcPublicKey::from_bytes(point).map(PublicKeyInfo::EcP384) EcPublicKey::from_bytes(point).map(PublicKeyInfo::EcP384)
} }
.ok_or(Error::InvalidObject) .map_err(|_| Error::InvalidObject)
} }
} }
} }