feat: ref
This commit is contained in:
@@ -5,40 +5,12 @@ use acme_lib::DirectoryUrl;
|
||||
use std::path::PathBuf;
|
||||
use std::str::FromStr;
|
||||
use crate::x509;
|
||||
use crate::x509::{X509PublicKeyAlgo, X509EcPublicKeyAlgo, X509Certificate};
|
||||
use crate::x509::{X509PublicKeyAlgo, X509Certificate};
|
||||
use std::time::SystemTime;
|
||||
|
||||
pub const CERT_NAME: &str = "cert.pem";
|
||||
pub const KEY_NAME: &str = "key.pem";
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub enum AcmeAlgo {
|
||||
Ec256,
|
||||
Ec384,
|
||||
Ec521,
|
||||
Rsa(u32),
|
||||
}
|
||||
|
||||
impl Default for AcmeAlgo {
|
||||
fn default() -> Self {
|
||||
Self::Ec384
|
||||
}
|
||||
}
|
||||
|
||||
impl AcmeAlgo {
|
||||
pub fn parse(s: &str) -> XResult<AcmeAlgo> {
|
||||
match s {
|
||||
"ec256" => Ok(AcmeAlgo::Ec256),
|
||||
"ec384" => Ok(AcmeAlgo::Ec384),
|
||||
"ec521" => Ok(AcmeAlgo::Ec521),
|
||||
"rsa2048" => Ok(AcmeAlgo::Rsa(2048)),
|
||||
"rsa3072" => Ok(AcmeAlgo::Rsa(3072)),
|
||||
"rsa4096" => Ok(AcmeAlgo::Rsa(4096)),
|
||||
_ => simple_error!("Unknown algo: {}", s),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub enum AcmeMode {
|
||||
Prod,
|
||||
@@ -112,7 +84,7 @@ impl CertConfig {
|
||||
}
|
||||
Ok(None) => {
|
||||
if fs::read_dir(&item.path).is_err() {
|
||||
information!("Create path: {}", item.path);
|
||||
information!("Create certificate path: {}", item.path);
|
||||
fs::create_dir_all(&item.path).ok();
|
||||
}
|
||||
filtered_cert_items.push(item2);
|
||||
@@ -150,11 +122,8 @@ impl CertConfigItem {
|
||||
if self.public_key_algo.is_none() {
|
||||
self.public_key_algo = match &self.algo {
|
||||
None => Some(X509PublicKeyAlgo::Rsa(2048)),
|
||||
Some(algo) => match AcmeAlgo::parse(&algo) {
|
||||
Ok(AcmeAlgo::Rsa(bit_length)) => Some(X509PublicKeyAlgo::Rsa(bit_length)),
|
||||
Ok(AcmeAlgo::Ec256) => Some(X509PublicKeyAlgo::EcKey(X509EcPublicKeyAlgo::Secp256r1)),
|
||||
Ok(AcmeAlgo::Ec384) => Some(X509PublicKeyAlgo::EcKey(X509EcPublicKeyAlgo::Secp384r1)),
|
||||
Ok(AcmeAlgo::Ec521) => Some(X509PublicKeyAlgo::EcKey(X509EcPublicKeyAlgo::Secp521r1)),
|
||||
Some(algo) => match X509PublicKeyAlgo::from_str(&algo) {
|
||||
Ok(algo) => Some(algo),
|
||||
Err(_) => return simple_error!("Unknown algo: {}", algo),
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user