Skip to content

Commit 2117fe6

Browse files
committed
RSCBC-265: Replace rustls-pemfile with rustls-pki-types
1 parent 16dfdfa commit 2117fe6

File tree

3 files changed

+9
-15
lines changed

3 files changed

+9
-15
lines changed

sdk/couchbase/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ futures = "0.3.32"
2020
hdrhistogram = "7.5"
2121
http = "1.4"
2222
lazy_static = "1.5"
23-
rustls-pemfile = { version = "2.2", optional = true }
23+
rustls-pki-types = { version = "1.14", optional = true }
2424
serde = "1.0"
2525
serde_json = { version = "1.0", features = ["preserve_order"] }
2626
uuid = { version = "1.22", features = ["v4"] }
@@ -48,7 +48,7 @@ tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }
4848
[features]
4949
default = ["default-tls"]
5050
default-tls = ["rustls-tls"]
51-
rustls-tls = ["dep:tokio-rustls", "couchbase-core/rustls-tls", "dep:rustls-pemfile"]
51+
rustls-tls = ["dep:tokio-rustls", "couchbase-core/rustls-tls", "dep:rustls-pki-types"]
5252
native-tls = ["dep:tokio-native-tls", "couchbase-core/native-tls"]
5353
# Note that we do not use feature flags to indicate API stability level.
5454
# Instead, unstable features are marked with comments indicating uncommitted or volatile stability levels.

sdk/couchbase/src/authenticator.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,15 +158,16 @@ impl From<Authenticator> for couchbase_core::authenticator::Authenticator {
158158
/// ```rust,no_run
159159
/// use couchbase::authenticator::CertificateAuthenticator;
160160
/// use std::fs;
161+
/// use rustls_pki_types::{CertificateDer, PrivateKeyDer};
161162
///
162163
/// // Load PEM-encoded certificate chain and private key from disk.
163164
/// let cert_pem = fs::read("client.crt").expect("read cert");
164165
/// let key_pem = fs::read("client.key").expect("read key");
165166
///
166-
/// let certs: Vec<_> = rustls_pemfile::certs(&mut &cert_pem[..])
167+
/// let certs: Vec<_> = CertificateDer::pem_reader_iter(&mut &cert_pem[..])
167168
/// .collect::<Result<_, _>>()
168169
/// .expect("parse certs");
169-
/// let key = rustls_pemfile::private_key(&mut &key_pem[..])
170+
/// let key = PrivateKeyDer::from_pem(&mut &key_pem[..])
170171
/// .expect("parse key")
171172
/// .expect("no key found");
172173
///

sdk/couchbase/src/options/cluster_options.rs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ use crate::authenticator::Authenticator;
2626
use crate::capella_ca::CAPELLA_CERT;
2727
use crate::error;
2828
use std::fmt::{Debug, Display, Formatter, Result as FmtResult};
29-
use std::io::Cursor;
3029
use std::net::SocketAddr;
3130
use std::sync::Arc;
3231
use std::time::Duration;
@@ -38,7 +37,6 @@ use tokio_native_tls::native_tls::Identity;
3837
#[cfg(all(feature = "rustls-tls", not(feature = "native-tls")))]
3938
use {
4039
couchbase_core::insecure_certverfier::InsecureCertVerifier,
41-
rustls_pemfile::read_all,
4240
tokio_rustls::rustls::crypto::aws_lc_rs::default_provider,
4341
tokio_rustls::rustls::pki_types::pem::{PemObject, SectionKind},
4442
tokio_rustls::rustls::pki_types::{CertificateDer, PrivateKeyDer},
@@ -568,16 +566,11 @@ impl TlsOptions {
568566
};
569567

570568
debug!("Adding Capella root CA to trust store");
571-
let mut cursor = Cursor::new(CAPELLA_CERT);
572-
let certs = rustls_pemfile::certs(&mut cursor)
573-
.map(|item| {
574-
item.map_err(|e| {
575-
error::Error::other_failure(format!("failed to add capella cert: {e}"))
576-
})
577-
})
578-
.collect::<error::Result<Vec<CertificateDer>>>()?;
569+
let certs = CertificateDer::from_slice(CAPELLA_CERT.as_bytes());
579570

580-
store.add_parsable_certificates(certs);
571+
store.add(certs).map_err(|e| {
572+
error::Error::other_failure(format!("failed to add capella cert: {e}"))
573+
})?;
581574
store
582575
}
583576
};

0 commit comments

Comments
 (0)