From 404a73048aad75ae7f8982e1576b9bc0f4fca663 Mon Sep 17 00:00:00 2001 From: "alexandre.cassagne" Date: Tue, 14 Nov 2023 11:22:36 -0500 Subject: [PATCH] refactor: Refactor private key extraction in TLS server for legibility --- rumqttd/src/server/tls.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/rumqttd/src/server/tls.rs b/rumqttd/src/server/tls.rs index 0a6c87265..9051c3889 100644 --- a/rumqttd/src/server/tls.rs +++ b/rumqttd/src/server/tls.rs @@ -234,14 +234,18 @@ fn first_private_key_in_pemfile(key_path: &String) -> Result loop { match rustls_pemfile::read_one(rd) { Ok(maybe_inner) => match maybe_inner { + Some(item) => match item { + // If we find a private key, return it + Item::ECKey(key) | Item::RSAKey(key) | Item::PKCS8Key(key) => { + return Ok(PrivateKey(key)) + } + // Otherwise, continue + _ => {} + }, None => { error!("No private key found in {:?}", key_path); return Err(Error::InvalidServerKey(key_path.clone())); } - Some(Item::ECKey(key)) => return Ok(PrivateKey(key)), - Some(Item::RSAKey(key)) => return Ok(PrivateKey(key)), - Some(Item::PKCS8Key(key)) => return Ok(PrivateKey(key)), - Some(_) => {} }, Err(err) => { error!("Error reading key file: {:?}", err);