From e3bf3993d1134b2b22d52c1ab7c1c31f2179ea42 Mon Sep 17 00:00:00 2001 From: Galen Guyer Date: Thu, 17 Nov 2022 15:49:46 -0500 Subject: Better handling of non-dns SANs --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/lib/req.rs | 19 +++++++++++-------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bac9bc8..25fc99e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "hancock" -version = "1.5.1" +version = "1.5.2" dependencies = [ "caps", "clap", diff --git a/Cargo.toml b/Cargo.toml index ac18fba..de6b8cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "hancock" authors = ["Galen Guyer "] -version = "1.5.1" +version = "1.5.2" edition = "2021" license = "MIT" diff --git a/src/lib/req.rs b/src/lib/req.rs index f97955c..9587f10 100644 --- a/src/lib/req.rs +++ b/src/lib/req.rs @@ -78,17 +78,20 @@ pub fn generate_req( if let Some(cn) = common_name { if IpAddr::from_str(cn).is_ok() { subject_alt_name.ip(cn); - } else { + } else if cn.contains('@') { + subject_alt_name.email(cn); + } else if cn.contains('.') { subject_alt_name.dns(cn); } } - let subject_alt_name = subject_alt_name - .build(&x509req_builder.x509v3_context(None)) - .unwrap(); - let mut stack = Stack::new().unwrap(); - stack.push(subject_alt_name).unwrap(); - x509req_builder.add_extensions(&stack).unwrap(); - + match subject_alt_name.build(&x509req_builder.x509v3_context(None)) { + Ok(subject_alt_name) => { + let mut stack = Stack::new().unwrap(); + stack.push(subject_alt_name).unwrap(); + x509req_builder.add_extensions(&stack).unwrap(); + } + Err(_) => {} + } let digest_algorithm = match pkey.id() { Id::RSA => MessageDigest::sha256(), Id::EC => MessageDigest::sha384(), -- cgit v1.2.3