Skip to content

Commit 1f3fd1e

Browse files
committed
new simple example for rcgen
split off from rustls#185 and make some minor changes. * remove inconsistent use of `sys::fs` * remove `&` when on file writes * remove clippy declaration at top of example
1 parent 0318d2f commit 1f3fd1e

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

rcgen/examples/simple.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
use rcgen::{date_time_ymd, Certificate, CertificateParams, DistinguishedName, DnType, SanType};
2+
use std::fs;
3+
4+
fn main() -> Result<(), Box<dyn std::error::Error>> {
5+
let mut params: CertificateParams = Default::default();
6+
params.not_before = date_time_ymd(1975, 1, 1);
7+
params.not_after = date_time_ymd(4096, 1, 1);
8+
params.distinguished_name = DistinguishedName::new();
9+
params
10+
.distinguished_name
11+
.push(DnType::OrganizationName, "Crab widgits SE");
12+
params
13+
.distinguished_name
14+
.push(DnType::CommonName, "Master Cert");
15+
params.subject_alt_names = vec![
16+
SanType::DnsName("crabs.crabs".to_string()),
17+
SanType::DnsName("localhost".to_string()),
18+
];
19+
20+
let cert = Certificate::from_params(params)?;
21+
22+
let pem_serialized = cert.serialize_pem()?;
23+
let pem = pem::parse(&pem_serialized)?;
24+
let der_serialized = pem.contents();
25+
println!("{pem_serialized}");
26+
println!("{}", cert.serialize_private_key_pem());
27+
fs::create_dir_all("certs/")?;
28+
fs::write("certs/cert.pem", pem_serialized.as_bytes())?;
29+
fs::write("certs/cert.der", der_serialized)?;
30+
fs::write("certs/key.pem", cert.serialize_private_key_pem().as_bytes())?;
31+
fs::write("certs/key.der", cert.serialize_private_key_der())?;
32+
Ok(())
33+
}

0 commit comments

Comments
 (0)