diff --git a/CHANGELOG.md b/CHANGELOG.md index b8998536..eb59db2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ The format is based on [Keep a Changelog], and this project adheres to # Unreleased - **changed**: Updated `tower` from `0.4` to `0.5`. +- **added**: Support reading PKCS\#1 and SEC1 private keys with Rustls. # 0.7.1 (31. July 2024) diff --git a/src/tls_rustls/mod.rs b/src/tls_rustls/mod.rs index fabb983c..ab7e5fd1 100644 --- a/src/tls_rustls/mod.rs +++ b/src/tls_rustls/mod.rs @@ -338,9 +338,9 @@ async fn config_from_pem_chain_file( let key_cert: PrivateKeyDer = match rustls_pemfile::read_one(&mut key.as_ref())? .ok_or_else(|| io_other("could not parse pem file"))? { - Item::Pkcs8Key(key) => { - Ok(PrivateKeyDer::try_from(key.secret_pkcs8_der().to_vec()).map_err(io_other)?) - } + Item::Pkcs8Key(key) => Ok(key.into()), + Item::Sec1Key(key) => Ok(key.into()), + Item::Pkcs1Key(key) => Ok(key.into()), x => Err(io_other(format!( "invalid certificate format, received: {x:?}" ))),