From bc7c758c81c52ad730c3b819bbd06f519fd807c1 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Sun, 8 Nov 2026 16:22:04 -0700 Subject: [PATCH] Bump `rsa` to v0.10.0 release Release PR: RustCrypto/RSA#790 --- Cargo.lock | 8 ++++---- cms/Cargo.toml | 4 ++-- cms/src/builder.rs | 2 +- cms/tests/builder.rs | 22 ++++++++++------------ x509-cert/Cargo.toml | 2 +- x509-cert/src/builder.rs | 2 +- x509-cert/tests/builder.rs | 4 ++-- x509-ocsp/Cargo.toml | 2 +- x509-ocsp/src/builder/request.rs | 2 +- x509-ocsp/src/builder/response.rs | 2 +- x509-ocsp/tests/builder.rs | 14 +++++++------- 11 files changed, 31 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5755464df..871b7bef5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -421,9 +421,9 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c035cb64cba03dad2fb921f3e218785e8cf9a41790da5eb3a1400f62fa2be11" +checksum = "914c195c4d7fbc5ed7f88d14cbf85914d5c664967658d43404b263913a477e82" dependencies = [ "cpubits", "ctutils", @@ -1313,9 +1313,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.10.0-rc.20" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2389407c34c6039d7c8740520ec758090883c5b92df93a5edada2779256bf2e0" +checksum = "23e77fd77e0dea28b3011fd62d15445b7de7959333b0276d930e03be0f755699" dependencies = [ "const-oid", "crypto-bigint", diff --git a/cms/Cargo.toml b/cms/Cargo.toml index 4d8f54d20..67fb9e87b 100644 --- a/cms/Cargo.toml +++ b/cms/Cargo.toml @@ -28,7 +28,7 @@ cbc = { version = "0.2", optional = true } cipher = { version = "0.5", features = ["alloc", "block-padding", "rand_core"], optional = true } digest = { version = "0.11", optional = true } elliptic-curve = { version = "0.14.1", optional = true } -rsa = { version = "0.10.0-rc.20", optional = true } +rsa = { version = "0.10", optional = true, features = ["pkcs1v15"] } sha1 = { version = "0.11", optional = true } sha2 = { version = "0.11", optional = true } sha3 = { version = "0.11", optional = true } @@ -43,7 +43,7 @@ pem-rfc7468 = "1" pkcs5 = "0.8" pbkdf2 = "0.13.0-rc.9" rand = "0.10" -rsa = "0.10.0-rc.20" +rsa = "0.10" ecdsa = { version = "0.17", features = ["digest", "pem"] } p256 = "0.14" tokio = { version = "1.45.1", features = ["macros", "rt"] } diff --git a/cms/src/builder.rs b/cms/src/builder.rs index cafbcbfc7..22045e3ff 100644 --- a/cms/src/builder.rs +++ b/cms/src/builder.rs @@ -739,7 +739,7 @@ pub enum RecipientInfoType { #[derive(Clone, Debug, Eq, PartialEq)] pub enum KeyEncryptionInfo { /// Encrypt key with RSA - Rsa(rsa::RsaPublicKey), + Rsa(rsa::PublicKey), // to be extended here with other asymmetric encryption algorithms } diff --git a/cms/tests/builder.rs b/cms/tests/builder.rs index d4b9513ca..3bd51f7d7 100644 --- a/cms/tests/builder.rs +++ b/cms/tests/builder.rs @@ -23,8 +23,7 @@ use pem_rfc7468::LineEnding; use pkcs5::pbes2::Pbkdf2Params; use rsa::pkcs1::DecodeRsaPrivateKey; use rsa::rand_core::CryptoRng; -use rsa::{Pkcs1v15Encrypt, RsaPrivateKey, RsaPublicKey}; -use rsa::{pkcs1v15, pss}; +use rsa::{Pkcs1v15Encrypt, pkcs1v15, pss}; use sha2::Sha256; use signature::Verifier; use spki::AlgorithmIdentifierOwned; @@ -47,12 +46,12 @@ const RSA_2048_PRIV_DER_EXAMPLE: &[u8] = include_bytes!("examples/rsa2048-priv.d const PKCS8_PRIVATE_KEY_DER: &[u8] = include_bytes!("examples/p256-priv.der"); fn rsa_pss_signer() -> pss::SigningKey { - let private_key = rsa::RsaPrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER_EXAMPLE).unwrap(); + let private_key = rsa::PrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER_EXAMPLE).unwrap(); pss::SigningKey::::new(private_key) } fn rsa_pkcs1v15_signer() -> pkcs1v15::SigningKey { - let private_key = rsa::RsaPrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER_EXAMPLE).unwrap(); + let private_key = rsa::PrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER_EXAMPLE).unwrap(); pkcs1v15::SigningKey::::new(private_key) } @@ -185,8 +184,8 @@ fn test_build_enveloped_data() { let mut rng = rand::rng(); let bits = 2048; let recipient_private_key = - RsaPrivateKey::new(&mut rng, bits).expect("failed to generate a key"); - let recipient_public_key = RsaPublicKey::from(&recipient_private_key); + rsa::PrivateKey::new(&mut rng, bits).expect("failed to generate a key"); + let recipient_public_key = rsa::PublicKey::from(&recipient_private_key); let recipient_info_builder = KeyTransRecipientInfoBuilder::new( recipient_identifier, @@ -278,9 +277,8 @@ fn test_build_pkcs7_scep_pkcsreq() { // Create recipient info let recipient_identifier = recipient_identifier(42); - let recipient_private_key = - rsa::RsaPrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER_EXAMPLE).unwrap(); - let recipient_public_key = RsaPublicKey::from(&recipient_private_key); + let recipient_private_key = rsa::PrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER_EXAMPLE).unwrap(); + let recipient_public_key = rsa::PublicKey::from(&recipient_private_key); //---------------------------------------------------------------------------------------------- // Create enveloped data @@ -329,7 +327,7 @@ fn test_build_pkcs7_scep_pkcsreq() { // Create a signer info. Multiple signers are possible, but not used here. let signer = { let sender_rsa_key_pem = include_str!("examples/sceptest_key.pem"); - let sender_rsa_key = RsaPrivateKey::from_pkcs8_pem(sender_rsa_key_pem).unwrap(); + let sender_rsa_key = rsa::PrivateKey::from_pkcs8_pem(sender_rsa_key_pem).unwrap(); pkcs1v15::SigningKey::::new(sender_rsa_key) }; let digest_algorithm = AlgorithmIdentifierOwned { @@ -426,8 +424,8 @@ fn test_build_pkcs7_scep_pkcsreq() { let signed_attributes_der = signer_info.signed_attrs.clone().unwrap().to_der().unwrap(); let verifier = { let verifier_rsa_key_pem = include_str!("examples/sceptest_key.pem"); - let verifier_rsa_key = RsaPrivateKey::from_pkcs8_pem(verifier_rsa_key_pem).unwrap(); - pkcs1v15::VerifyingKey::::new(RsaPublicKey::from(verifier_rsa_key)) + let verifier_rsa_key = rsa::PrivateKey::from_pkcs8_pem(verifier_rsa_key_pem).unwrap(); + pkcs1v15::VerifyingKey::::new(rsa::PublicKey::from(verifier_rsa_key)) }; assert!( verifier diff --git a/x509-cert/Cargo.toml b/x509-cert/Cargo.toml index b54dbe5d8..f8f0c708a 100644 --- a/x509-cert/Cargo.toml +++ b/x509-cert/Cargo.toml @@ -30,7 +30,7 @@ tls_codec = { version = "0.4", default-features = false, features = ["derive"], [dev-dependencies] hex-literal = "1" rand = "0.10" -rsa = "0.10.0-rc.20" +rsa = { version = "0.10", features = ["pkcs1v15"] } ecdsa = { version = "0.17", features = ["digest", "pem"] } p256 = "0.14" rstest = "0.26" diff --git a/x509-cert/src/builder.rs b/x509-cert/src/builder.rs index 2b7ed55c9..01c2d1d2c 100644 --- a/x509-cert/src/builder.rs +++ b/x509-cert/src/builder.rs @@ -136,7 +136,7 @@ pub type Result = core::result::Result; /// # use std::time::Duration; /// # use der::referenced::RefToOwned; /// # fn rsa_signer() -> SigningKey { -/// # let private_key = rsa::RsaPrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER).unwrap(); +/// # let private_key = rsa::PrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER).unwrap(); /// # let signing_key = SigningKey::::new(private_key); /// # signing_key /// # } diff --git a/x509-cert/tests/builder.rs b/x509-cert/tests/builder.rs index c88ca91f6..189998013 100644 --- a/x509-cert/tests/builder.rs +++ b/x509-cert/tests/builder.rs @@ -246,12 +246,12 @@ fn pss_certificate() { const RSA_2048_PRIV_DER_EXAMPLE: &[u8] = include_bytes!("examples/rsa2048-priv.der"); fn rsa_signer() -> SigningKey { - let private_key = rsa::RsaPrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER_EXAMPLE).unwrap(); + let private_key = rsa::PrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER_EXAMPLE).unwrap(); SigningKey::::new(private_key) } fn rsa_pss_signer() -> rsa::pss::SigningKey { - let private_key = rsa::RsaPrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER_EXAMPLE).unwrap(); + let private_key = rsa::PrivateKey::from_pkcs1_der(RSA_2048_PRIV_DER_EXAMPLE).unwrap(); rsa::pss::SigningKey::::new(private_key) } diff --git a/x509-ocsp/Cargo.toml b/x509-ocsp/Cargo.toml index 11249cd11..9985d8c65 100644 --- a/x509-ocsp/Cargo.toml +++ b/x509-ocsp/Cargo.toml @@ -29,7 +29,7 @@ signature = { version = "3", optional = true, default-features = false, features [dev-dependencies] hex-literal = "1" rand = "0.10" -rsa = { version = "0.10.0-rc.20", default-features = false, features = ["encoding"] } +rsa = { version = "0.10", default-features = false, features = ["encoding", "pkcs1v15"] } sha1 = { version = "0.11", default-features = false, features = ["oid"] } sha2 = { version = "0.11", default-features = false, features = ["oid"] } diff --git a/x509-ocsp/src/builder/request.rs b/x509-ocsp/src/builder/request.rs index dd393aa76..ac606cd91 100644 --- a/x509-ocsp/src/builder/request.rs +++ b/x509-ocsp/src/builder/request.rs @@ -28,7 +28,7 @@ use x509_cert::{ /// # use rsa::{pkcs1v15::SigningKey, pkcs8::DecodePrivateKey}; /// # use sha2::Sha256; /// # fn rsa_signer() -> SigningKey { -/// # let private_key = rsa::RsaPrivateKey::from_pkcs8_der(KEY_DER).unwrap(); +/// # let private_key = rsa::PrivateKey::from_pkcs8_der(KEY_DER).unwrap(); /// # let signing_key = SigningKey::::new(private_key); /// # signing_key /// # } diff --git a/x509-ocsp/src/builder/response.rs b/x509-ocsp/src/builder/response.rs index 813f1a0dd..44ab9eaf7 100644 --- a/x509-ocsp/src/builder/response.rs +++ b/x509-ocsp/src/builder/response.rs @@ -33,7 +33,7 @@ use x509_cert::{ /// # use rsa::{pkcs1v15::SigningKey, pkcs8::DecodePrivateKey}; /// # use sha2::Sha256; /// # fn rsa_signer() -> SigningKey { -/// # let private_key = rsa::RsaPrivateKey::from_pkcs8_der(CA_KEY_DER).unwrap(); +/// # let private_key = rsa::PrivateKey::from_pkcs8_der(CA_KEY_DER).unwrap(); /// # let signing_key = SigningKey::::new(private_key); /// # signing_key /// # } diff --git a/x509-ocsp/tests/builder.rs b/x509-ocsp/tests/builder.rs index 3119425a8..f9766bfb3 100644 --- a/x509-ocsp/tests/builder.rs +++ b/x509-ocsp/tests/builder.rs @@ -4,7 +4,7 @@ use const_oid::AssociatedOid; use der::{DateTime, Decode, Encode}; use hex_literal::hex; -use rsa::{RsaPrivateKey, pkcs1v15::SigningKey, pkcs8::DecodePrivateKey}; +use rsa::{pkcs1v15::SigningKey, pkcs8::DecodePrivateKey}; use sha1::Sha1; use sha2::{Sha224, Sha256, Sha384, Sha512}; use std::sync::LazyLock; @@ -19,8 +19,8 @@ static ISSUER: LazyLock = LazyLock::new(|| { Certificate::from_der(&std::fs::read("tests/examples/rsa-2048-sha256-ca.der").unwrap()).unwrap() }); -static ISSUER_KEY: LazyLock = LazyLock::new(|| { - RsaPrivateKey::from_pkcs8_der( +static ISSUER_KEY: LazyLock = LazyLock::new(|| { + rsa::PrivateKey::from_pkcs8_der( &std::fs::read("tests/examples/rsa-2048-sha256-ca-key.der").unwrap(), ) .unwrap() @@ -31,8 +31,8 @@ static CERT: LazyLock = LazyLock::new(|| { .unwrap() }); -static CERT_KEY: LazyLock = LazyLock::new(|| { - RsaPrivateKey::from_pkcs8_der( +static CERT_KEY: LazyLock = LazyLock::new(|| { + rsa::PrivateKey::from_pkcs8_der( &std::fs::read("tests/examples/rsa-2048-sha256-crt-key.der").unwrap(), ) .unwrap() @@ -43,8 +43,8 @@ static OCSP: LazyLock = LazyLock::new(|| { .unwrap() }); -static OCSP_KEY: LazyLock = LazyLock::new(|| { - RsaPrivateKey::from_pkcs8_der( +static OCSP_KEY: LazyLock = LazyLock::new(|| { + rsa::PrivateKey::from_pkcs8_der( &std::fs::read("tests/examples/rsa-2048-sha256-ocsp-crt-key.der").unwrap(), ) .unwrap()