Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .cargo/audit.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Avisos aceptados de forma explícita. Todos llegan por rumqttc 0.25.1 (la última versión publicada), que fija
# rustls-webpki 0.102 y rustls-pemfile 2. rumqttc usa rustls-webpki solo como tipo de error: el simulador verifica los
# certificados con su propio ClientConfig de rustls 0.23, que usa rustls-webpki 0.103.16 (con los arreglos), y lee
# el PEM con rustls::pki_types. Quitar esta lista cuando rumqttc publique una versión con rustls-webpki 0.103.
[advisories]
ignore = [
"RUSTSEC-2026-0098", # rustls-webpki 0.102: restricciones de nombre para URI
"RUSTSEC-2026-0099", # rustls-webpki 0.102: restricciones de nombre con comodines
"RUSTSEC-2026-0382", # rustls-webpki 0.102: intermedios no confiables
"RUSTSEC-2026-0049", # rustls-webpki 0.102: CRL por punto de distribución
"RUSTSEC-2026-0104", # rustls-webpki 0.102: panic al leer CRL
"RUSTSEC-2025-0134", # rustls-pemfile: sin mantenimiento
]
53 changes: 5 additions & 48 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ axum = { version = "0.8", features = ["macros"] }
tower = { version = "0.5", features = ["util"] }
tower-http = { version = "0.7", features = ["trace", "cors"] }
rumqttc = "0.25"
rustls-pemfile = "2.2"
rustls-native-certs = "0.7"
rustls-native-certs = "0.8"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
Expand Down
15 changes: 9 additions & 6 deletions src/device.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,17 +120,20 @@ impl SimulatedDevice {
));

if settings.tls {
// La verificación la hace rustls 0.23; el PEM se lee con pki-types (rustls-pemfile ya no se mantiene).
use rumqttc::tokio_rustls::rustls::pki_types::{pem::PemObject, CertificateDer};
let mut root_cert_store = rumqttc::tokio_rustls::rustls::RootCertStore::empty();
if let Some(ref ca_file) = settings.ca_file {
if let Ok(file) = std::fs::File::open(ca_file) {
let mut reader = std::io::BufReader::new(file);
let certs = rustls_pemfile::certs(&mut reader).flatten();
for cert in certs {
let _ = root_cert_store.add(cert);
match CertificateDer::pem_file_iter(ca_file) {
Ok(certs) => {
for cert in certs.flatten() {
let _ = root_cert_store.add(cert);
}
}
Err(error) => warn!("No se pudo leer la CA {}: {}", ca_file, error),
}
} else {
for cert in rustls_native_certs::load_native_certs().unwrap_or_default() {
for cert in rustls_native_certs::load_native_certs().certs {
let _ = root_cert_store.add(cert);
}
}
Expand Down
Loading