Skip to content

Commit e0af971

Browse files
authored
Merge pull request #19 from jgarzik/hacking
Cleanups
2 parents 456439f + 3a3a3cb commit e0af971

File tree

2 files changed

+74
-104
lines changed

2 files changed

+74
-104
lines changed

Cargo.lock

Lines changed: 38 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main.rs

Lines changed: 36 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -145,47 +145,29 @@ struct FileOutput {
145145

146146
/// Process CLI args that assign two settings simultaneously
147147
fn swizzle_args(args: &mut Args) {
148-
match &args.common_name {
149-
Some(txt) => {
150-
args.ca_common_name = txt.clone();
151-
args.srv_common_name = txt.clone();
152-
}
153-
None => {}
148+
if let Some(txt) = &args.common_name {
149+
args.ca_common_name = txt.clone();
150+
args.srv_common_name = txt.clone();
154151
}
155-
match &args.org {
156-
Some(txt) => {
157-
args.ca_org = Some(txt.clone());
158-
args.srv_org = Some(txt.clone());
159-
}
160-
None => {}
152+
if let Some(txt) = &args.org {
153+
args.ca_org = Some(txt.clone());
154+
args.srv_org = Some(txt.clone());
161155
}
162-
match &args.country {
163-
Some(txt) => {
164-
args.ca_country = txt.clone();
165-
args.srv_country = txt.clone();
166-
}
167-
None => {}
156+
if let Some(txt) = &args.country {
157+
args.ca_country = txt.clone();
158+
args.srv_country = txt.clone();
168159
}
169-
match &args.state {
170-
Some(txt) => {
171-
args.ca_state = Some(txt.clone());
172-
args.srv_state = Some(txt.clone());
173-
}
174-
None => {}
160+
if let Some(txt) = &args.state {
161+
args.ca_state = Some(txt.clone());
162+
args.srv_state = Some(txt.clone());
175163
}
176-
match &args.city {
177-
Some(txt) => {
178-
args.ca_city = Some(txt.clone());
179-
args.srv_city = Some(txt.clone());
180-
}
181-
None => {}
164+
if let Some(txt) = &args.city {
165+
args.ca_city = Some(txt.clone());
166+
args.srv_city = Some(txt.clone());
182167
}
183-
match &args.expire {
184-
Some(val) => {
185-
args.ca_expire = *val;
186-
args.srv_expire = *val;
187-
}
188-
None => {}
168+
if let Some(val) = &args.expire {
169+
args.ca_expire = *val;
170+
args.srv_expire = *val;
189171
}
190172
}
191173

@@ -198,35 +180,29 @@ fn generate_rsa_private_key() -> Result<PKey<Private>, ErrorStack> {
198180

199181
/// Create root CA certificate, given root CA private key
200182
fn create_root_ca_certificate(args: &Args, pkey: &PKey<Private>) -> Result<X509, ErrorStack> {
183+
// Build the subject and issuer names.
201184
let mut name_builder = X509NameBuilder::new()?;
202185
name_builder.append_entry_by_text("C", &args.ca_country)?;
203-
match args.ca_state.clone() {
204-
Some(txt) => {
205-
name_builder.append_entry_by_text("ST", &txt)?;
206-
}
207-
None => {}
186+
if let Some(txt) = args.ca_state.clone() {
187+
name_builder.append_entry_by_text("ST", &txt)?;
208188
}
209-
match args.ca_city.clone() {
210-
Some(txt) => {
211-
name_builder.append_entry_by_text("L", &txt)?;
212-
}
213-
None => {}
189+
if let Some(txt) = args.ca_city.clone() {
190+
name_builder.append_entry_by_text("L", &txt)?;
214191
}
215-
match args.ca_org.clone() {
216-
Some(txt) => {
217-
name_builder.append_entry_by_text("O", &txt)?;
218-
}
219-
None => {}
192+
if let Some(txt) = args.ca_org.clone() {
193+
name_builder.append_entry_by_text("O", &txt)?;
220194
}
221195
name_builder.append_entry_by_text("CN", &args.ca_common_name)?;
222196
let name = name_builder.build();
223197

198+
// Build base certificate settings
224199
let mut builder = X509Builder::new()?;
225200
builder.set_version(2)?;
226201
builder.set_subject_name(&name)?;
227202
builder.set_issuer_name(&name)?;
228203
builder.set_pubkey(pkey)?;
229204

205+
// Set validity times for the certificate.
230206
let not_before = Asn1Time::days_from_now(0)?;
231207
let not_after = Asn1Time::days_from_now(args.ca_expire)?;
232208
builder.set_not_before(&not_before)?;
@@ -268,28 +244,21 @@ fn create_root_ca_certificate(args: &Args, pkey: &PKey<Private>) -> Result<X509,
268244

269245
/// Generate TLS server cert signing request
270246
fn generate_web_server_csr(args: &Args, server_key: &PKey<Private>) -> Result<X509Req, ErrorStack> {
247+
// Create a new certificate signing request (CSR) builder.
271248
let mut req_builder = X509ReqBuilder::new()?;
272249
req_builder.set_pubkey(server_key)?;
273250

251+
// Build the subject name.
274252
let mut name_builder = X509NameBuilder::new()?;
275253
name_builder.append_entry_by_text("C", &args.srv_country)?;
276-
match args.srv_state.clone() {
277-
Some(txt) => {
278-
name_builder.append_entry_by_text("ST", &txt)?;
279-
}
280-
None => {}
254+
if let Some(txt) = args.srv_state.clone() {
255+
name_builder.append_entry_by_text("ST", &txt)?;
281256
}
282-
match args.srv_city.clone() {
283-
Some(txt) => {
284-
name_builder.append_entry_by_text("L", &txt)?;
285-
}
286-
None => {}
257+
if let Some(txt) = args.srv_city.clone() {
258+
name_builder.append_entry_by_text("L", &txt)?;
287259
}
288-
match args.srv_org.clone() {
289-
Some(txt) => {
290-
name_builder.append_entry_by_text("O", &txt)?;
291-
}
292-
None => {}
260+
if let Some(txt) = args.srv_org.clone() {
261+
name_builder.append_entry_by_text("O", &txt)?;
293262
}
294263
name_builder.append_entry_by_text("CN", &args.srv_common_name)?;
295264
let name = name_builder.build();
@@ -299,6 +268,7 @@ fn generate_web_server_csr(args: &Args, server_key: &PKey<Private>) -> Result<X5
299268
// Sign the CSR with the server's private key
300269
req_builder.sign(server_key, MessageDigest::sha256())?;
301270

271+
// Return the signed CSR
302272
let csr = req_builder.build();
303273
Ok(csr)
304274
}

0 commit comments

Comments
 (0)