feat: v0.2.0-rc, optimize code
This commit is contained in:
10
src/cert.rs
10
src/cert.rs
@@ -18,7 +18,7 @@ pub fn load_certificate(cert_fn: &str, key_fn: &str) -> Result<(Certificate, Str
|
|||||||
|
|
||||||
let key_pem = fs::read_to_string(key_fn)
|
let key_pem = fs::read_to_string(key_fn)
|
||||||
.map_err(|e| format!("Read file: {} failed: {}", key_fn, e))?;
|
.map_err(|e| format!("Read file: {} failed: {}", key_fn, e))?;
|
||||||
let key_pem = resolve_ec_pkcs8(&key_pem);
|
let key_pem = resolve_ecc_pkcs8(&key_pem);
|
||||||
let key_pair = KeyPair::from_pem(&key_pem)
|
let key_pair = KeyPair::from_pem(&key_pem)
|
||||||
.map_err(|e| format!("Parse key: {} failed: {}", key_fn, e))?;
|
.map_err(|e| format!("Parse key: {} failed: {}", key_fn, e))?;
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ macro_rules! ecc_private_key_convert {
|
|||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
fn resolve_ec_pkcs8(pem: &str) -> String {
|
fn resolve_ecc_pkcs8(pem: &str) -> String {
|
||||||
// KeyPair only support PKCS#8 private key with public key, though public key is optional
|
// KeyPair only support PKCS#8 private key with public key, though public key is optional
|
||||||
ecc_private_key_convert!(p256, pem);
|
ecc_private_key_convert!(p256, pem);
|
||||||
ecc_private_key_convert!(p384, pem);
|
ecc_private_key_convert!(p384, pem);
|
||||||
@@ -66,7 +66,7 @@ fn resolve_ec_pkcs8(pem: &str) -> String {
|
|||||||
|
|
||||||
fn build_certificate(domain: &str) -> Result<Certificate, String> {
|
fn build_certificate(domain: &str) -> Result<Certificate, String> {
|
||||||
let mut params = CertificateParams::new(vec![domain.into()]);
|
let mut params = CertificateParams::new(vec![domain.into()]);
|
||||||
let (start, end) = validity_period()?;
|
let (start, end) = build_validity_period()?;
|
||||||
params.distinguished_name.push(DnType::CommonName, domain);
|
params.distinguished_name.push(DnType::CommonName, domain);
|
||||||
params.use_authority_key_identifier_extension = true;
|
params.use_authority_key_identifier_extension = true;
|
||||||
params.key_usages.push(KeyUsagePurpose::DigitalSignature);
|
params.key_usages.push(KeyUsagePurpose::DigitalSignature);
|
||||||
@@ -78,10 +78,10 @@ fn build_certificate(domain: &str) -> Result<Certificate, String> {
|
|||||||
Certificate::from_params(params).map_err(|e| format!("New cert failed: {}", e))
|
Certificate::from_params(params).map_err(|e| format!("New cert failed: {}", e))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn validity_period() -> Result<(OffsetDateTime, OffsetDateTime), String> {
|
fn build_validity_period() -> Result<(OffsetDateTime, OffsetDateTime), String> {
|
||||||
let start = OffsetDateTime::now_utc().checked_sub(Duration::hours(1))
|
let start = OffsetDateTime::now_utc().checked_sub(Duration::hours(1))
|
||||||
.ok_or_else::<String, _>(|| "Generate start datetime failed.".into())?;
|
.ok_or_else::<String, _>(|| "Generate start datetime failed.".into())?;
|
||||||
let end = OffsetDateTime::now_utc().checked_add(Duration::days(90))
|
let end = OffsetDateTime::now_utc().checked_add(Duration::days(90))
|
||||||
.ok_or_else::<String, _>(|| "Generate start datetime failed.".into())?;
|
.ok_or_else::<String, _>(|| "Generate end datetime failed.".into())?;
|
||||||
Ok((start, end))
|
Ok((start, end))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user