Bump pkcs8 to v0.11.0-rc.12 (#1312)

This commit is contained in:
Tony Arcieri
2026-04-27 13:07:45 -06:00
committed by GitHub
parent 00e6eed7b2
commit d8b1875a9f
15 changed files with 42 additions and 32 deletions
Generated
+2 -2
View File
@@ -905,9 +905,9 @@ dependencies = [
[[package]]
name = "pkcs8"
version = "0.11.0-rc.11"
version = "0.11.0-rc.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12922b6296c06eb741b02d7b5161e3aaa22864af38dfa025a1a3ba3f68c84577"
checksum = "9d71d6da5a0e652b5c694049095a52f5e564012b8ee5001cf10d84a4ca9a7f9d"
dependencies = [
"der",
"spki",
+2 -2
View File
@@ -26,7 +26,7 @@ signature = { version = "3.0.0-rc.10", default-features = false, features = ["al
zeroize = { version = "1", default-features = false, features = ["alloc"] }
# optional dependencies
pkcs8 = { version = "0.11.0-rc.11", optional = true, default-features = false, features = ["alloc"] }
pkcs8 = { version = "0.11.0-rc.12", optional = true, default-features = false, features = ["alloc"] }
[dev-dependencies]
chacha20 = { version = "0.10", features = ["rng"] }
@@ -34,7 +34,7 @@ der = { version = "0.8", features = ["derive"] }
hex = "0.4"
hex-literal = "1"
getrandom = { version = "0.4", features = ["sys_rng"] }
pkcs8 = { version = "0.11.0-rc.11", default-features = false, features = ["pem"] }
pkcs8 = { version = "0.11.0-rc.12", default-features = false, features = ["pem"] }
proptest = "1"
rand_core = "0.10"
sha1 = "0.11"
+7 -6
View File
@@ -271,26 +271,27 @@ impl<'a> TryFrom<PrivateKeyInfoRef<'a>> for SigningKey {
let x = UintRef::from_der(value.private_key.into())?;
let x = BoxedUint::from_be_slice(x.as_bytes(), precision)
.map_err(|_| pkcs8::Error::KeyMalformed)?;
.map_err(|_| pkcs8::KeyError::Invalid)?;
let x = NonZero::new(x)
.into_option()
.ok_or(pkcs8::Error::KeyMalformed)?;
.ok_or(pkcs8::KeyError::Invalid)?;
let y = if let Some(y_bytes) = value.public_key.as_ref().and_then(|bs| bs.as_bytes()) {
let y = UintRef::from_der(y_bytes)?;
BoxedUint::from_be_slice(y.as_bytes(), precision)
.map_err(|_| pkcs8::Error::KeyMalformed)?
.map_err(|_| pkcs8::KeyError::Invalid)?
} else {
crate::generate::public_component(&components, &x)
.into_option()
.ok_or(pkcs8::Error::KeyMalformed)?
.ok_or(pkcs8::KeyError::Invalid)?
.get()
};
let verifying_key =
VerifyingKey::from_components(components, y).map_err(|_| pkcs8::Error::KeyMalformed)?;
VerifyingKey::from_components(components, y).map_err(|_| pkcs8::KeyError::Invalid)?;
SigningKey::from_components(verifying_key, x.get()).map_err(|_| pkcs8::Error::KeyMalformed)
Ok(SigningKey::from_components(verifying_key, x.get())
.map_err(|_| pkcs8::KeyError::Invalid)?)
}
}
+1 -1
View File
@@ -21,7 +21,7 @@ rust-version = "1.85"
signature = { version = "3.0.0-rc.10", default-features = false }
# optional dependencies
pkcs8 = { version = "0.11.0-rc.11", optional = true }
pkcs8 = { version = "0.11.0-rc.12", optional = true }
serde = { version = "1", optional = true, default-features = false }
serde_bytes = { version = "0.11", optional = true, default-features = false }
zeroize = { version = "1", optional = true, default-features = false }
+5 -4
View File
@@ -15,7 +15,8 @@
//! breaking changes when using this module.
pub use pkcs8::{
DecodePrivateKey, DecodePublicKey, Error, ObjectIdentifier, PrivateKeyInfoRef, Result, spki,
DecodePrivateKey, DecodePublicKey, Error, KeyError, ObjectIdentifier, PrivateKeyInfoRef,
Result, spki,
};
#[cfg(feature = "alloc")]
@@ -169,14 +170,14 @@ impl TryFrom<PrivateKeyInfoRef<'_>> for KeypairBytes {
// - 0x04: OCTET STRING tag
// - 0x20: 32-byte length
let secret_key = match private_key.private_key.as_bytes() {
[0x04, 0x20, rest @ ..] => rest.try_into().map_err(|_| Error::KeyMalformed),
_ => Err(Error::KeyMalformed),
[0x04, 0x20, rest @ ..] => rest.try_into().map_err(|_| KeyError::Invalid),
_ => Err(KeyError::Invalid),
}?;
let public_key = private_key
.public_key
.and_then(|bs| bs.as_bytes())
.map(|bytes| bytes.try_into().map_err(|_| Error::KeyMalformed))
.map(|bytes| bytes.try_into().map_err(|_| KeyError::Invalid))
.transpose()?
.map(PublicKeyBytes);
+1 -1
View File
@@ -21,7 +21,7 @@ rust-version = "1.85"
signature = { version = "3.0.0-rc.10", default-features = false }
# optional dependencies
pkcs8 = { version = "0.11.0-rc.11", optional = true }
pkcs8 = { version = "0.11.0-rc.12", optional = true }
serde = { version = "1", optional = true, default-features = false }
serde_bytes = { version = "0.11", optional = true, default-features = false }
zeroize = { version = "1", optional = true, default-features = false }
+5 -4
View File
@@ -15,7 +15,8 @@
//! breaking changes when using this module.
pub use pkcs8::{
DecodePrivateKey, DecodePublicKey, Error, ObjectIdentifier, PrivateKeyInfoRef, Result, spki,
DecodePrivateKey, DecodePublicKey, Error, KeyError, ObjectIdentifier, PrivateKeyInfoRef,
Result, spki,
};
#[cfg(feature = "alloc")]
@@ -162,14 +163,14 @@ impl TryFrom<PrivateKeyInfoRef<'_>> for KeypairBytes {
// - 0x04: OCTET STRING tag
// - 0x39: 57-byte length
let secret_key = match private_key.private_key.as_bytes() {
[0x04, 0x39, rest @ ..] => rest.try_into().map_err(|_| Error::KeyMalformed),
_ => Err(Error::KeyMalformed),
[0x04, 0x39, rest @ ..] => rest.try_into().map_err(|_| KeyError::Invalid),
_ => Err(KeyError::Invalid),
}?;
let public_key = private_key
.public_key
.and_then(|bs| bs.as_bytes())
.map(|bytes| bytes.try_into().map_err(|_| Error::KeyMalformed))
.map(|bytes| bytes.try_into().map_err(|_| KeyError::Invalid))
.transpose()?
.map(PublicKeyBytes);
+2 -2
View File
@@ -40,7 +40,7 @@ signature = { version = "3.0.0-rc.10", default-features = false, features = ["di
# optional dependencies
const-oid = { version = "0.10", features = ["db"], optional = true }
pkcs8 = { version = "0.11.0-rc.11", default-features = false, optional = true }
pkcs8 = { version = "0.11.0-rc.12", default-features = false, optional = true }
rand_core = { version = "0.10", optional = true }
zeroize = { version = "1.8.1", optional = true, default-features = false }
@@ -49,7 +49,7 @@ criterion = "0.7"
getrandom = { version = "0.4", features = ["sys_rng"] }
hex = { version = "0.4", features = ["serde"] }
hex-literal = "1"
pkcs8 = { version = "0.11.0-rc.11", features = ["pem"] }
pkcs8 = { version = "0.11.0-rc.12", features = ["pem"] }
proptest = "1"
serde = { version = "1.0.215", features = ["derive"] }
serde_json = "1.0.132"
+3 -3
View File
@@ -100,12 +100,12 @@ where
let mut reader = der::SliceReader::new(private_key_info.private_key.as_bytes())?;
let seed_string = SeedString::decode_implicit(&mut reader, SEED_TAG_NUMBER)?
.ok_or(pkcs8::Error::KeyMalformed)?;
.ok_or(pkcs8::KeyError::Invalid)?;
let seed = seed_string
.value
.as_bytes()
.try_into()
.map_err(|_| pkcs8::Error::KeyMalformed)?;
.map_err(|_| pkcs8::KeyError::Invalid)?;
reader.finish()?;
Ok(P::from_seed(&seed))
@@ -203,7 +203,7 @@ where
.as_bytes()
.ok_or_else(|| der::Tag::BitString.value_error().to_error())?,
)
.map_err(|_| ::pkcs8::Error::KeyMalformed)?,
.map_err(|_| spki::Error::KeyMalformed)?,
))
}
}
+2 -2
View File
@@ -20,7 +20,7 @@ const-oid = { version = "0.10", features = ["db"] }
digest = "0.11"
hmac = "0.13"
hybrid-array = { version = "0.4", features = ["extra-sizes"] }
pkcs8 = { version = "0.11.0-rc.11", default-features = false }
pkcs8 = { version = "0.11.0-rc.12", default-features = false }
rand_core = "0.10"
sha2 = { version = "0.11", default-features = false }
sha3 = { version = "0.11", default-features = false }
@@ -40,7 +40,7 @@ hex = { version = "0.4.1", features = ["serde"] }
hex-literal = "1"
num-bigint = "0.4.4"
paste = "1.0.15"
pkcs8 = { version = "0.11.0-rc.11", features = ["pem"] }
pkcs8 = { version = "0.11.0-rc.12", features = ["pem"] }
proptest = "1.11.0"
rand = "0.10"
serde_json = "1.0.124"
+1 -1
View File
@@ -298,7 +298,7 @@ where
.assert_algorithm_oid(P::ALGORITHM_OID)?;
Self::try_from(private_key_info.private_key.as_bytes())
.map_err(|_| pkcs8::Error::KeyMalformed)
.map_err(|_| pkcs8::KeyError::Invalid.into())
}
}
+2 -2
View File
@@ -212,12 +212,12 @@ impl<P: ParameterSet> TryFrom<pkcs8::SubjectPublicKeyInfoRef<'_>> for VerifyingK
fn try_from(spki: pkcs8::SubjectPublicKeyInfoRef<'_>) -> spki::Result<Self> {
spki.algorithm.assert_algorithm_oid(P::ALGORITHM_OID)?;
Ok(Self::try_from(
Self::try_from(
spki.subject_public_key
.as_bytes()
.ok_or_else(|| der::Tag::BitString.value_error().to_error())?,
)
.map_err(|_| pkcs8::Error::KeyMalformed)?)
.map_err(|_| spki::Error::KeyMalformed)
}
}
+1 -1
View File
@@ -24,7 +24,7 @@ const-oid = { version = "0.10", optional = true }
der = { version = "0.8", optional = true, default-features = false, features = ["alloc"] }
digest = "0.11"
hybrid-array = { version = "0.4", features = ["zeroize"] }
pkcs8 = { version = "0.11.0-rc.11", optional = true, default-features = false, features = ["alloc"] }
pkcs8 = { version = "0.11.0-rc.12", optional = true, default-features = false, features = ["alloc"] }
rand = "0.10"
sha2 = "0.11"
sha3 = "0.11"
+7
View File
@@ -63,3 +63,10 @@ impl From<pkcs8::Error> for Error {
Self::Pkcs8(err)
}
}
#[cfg(feature = "pkcs8")]
impl From<pkcs8::KeyError> for Error {
fn from(err: pkcs8::KeyError) -> Self {
Self::Pkcs8(err.into())
}
}
+1 -1
View File
@@ -94,7 +94,7 @@ impl<P: XmssParameter> KeyPair<P> {
let signing_key = SigningKey::<P>::try_from(pk_info.private_key.as_ref())?;
let verifying_key = if let Some(pk) = pk_info.public_key {
let pk_bytes = pk.as_bytes().ok_or(pkcs8::Error::KeyMalformed)?;
let pk_bytes = pk.as_bytes().ok_or(pkcs8::KeyError::Invalid)?;
// TODO(tarcieri): verify key matches expected value?
VerifyingKey::<P>::try_from(pk_bytes)?