diff --git a/src/cmd_keypair_generate.rs b/src/cmd_keypair_generate.rs index ab3bab1..c7fa031 100644 --- a/src/cmd_keypair_generate.rs +++ b/src/cmd_keypair_generate.rs @@ -56,6 +56,8 @@ impl Command for CommandImpl { let rsa_bit_size: Option = match key_type.as_str() { "rsa1024" => Some(1024), "rsa2048" => Some(2048), + "rsa3072" => Some(3072), + "rsa4096" => Some(4096), _ => None, }; @@ -108,6 +110,8 @@ impl Command for CommandImpl { "p521" => Some(KeyAlgorithmId::EccP521), "rsa1024" => Some(KeyAlgorithmId::Rsa1024), "rsa2048" => Some(KeyAlgorithmId::Rsa2048), + "rsa3072" => Some(KeyAlgorithmId::Rsa3072), + "rsa4096" => Some(KeyAlgorithmId::Rsa4096), _ => None, }; if let (true, Some(algorithm_id)) = (with_hmac_encrypt, algorithm_id) { diff --git a/src/keyutil.rs b/src/keyutil.rs index affc36a..d073216 100644 --- a/src/keyutil.rs +++ b/src/keyutil.rs @@ -59,6 +59,8 @@ impl ToString for KeyUri { pub enum KeyAlgorithmId { Rsa1024, Rsa2048, + Rsa3072, + Rsa4096, EccP256, EccP384, EccP521, @@ -78,6 +80,8 @@ impl KeyAlgorithmId { match self { KeyAlgorithmId::Rsa1024 => Some(AlgorithmId::Rsa1024), KeyAlgorithmId::Rsa2048 => Some(AlgorithmId::Rsa2048), + KeyAlgorithmId::Rsa3072 => None, + KeyAlgorithmId::Rsa4096 => None, KeyAlgorithmId::EccP256 => Some(AlgorithmId::EccP256), KeyAlgorithmId::EccP384 => Some(AlgorithmId::EccP384), KeyAlgorithmId::EccP521 => None, @@ -86,14 +90,16 @@ impl KeyAlgorithmId { pub fn is_rsa(&self) -> bool { match self { - KeyAlgorithmId::Rsa1024 | KeyAlgorithmId::Rsa2048 => true, + KeyAlgorithmId::Rsa1024 | KeyAlgorithmId::Rsa2048 + | KeyAlgorithmId::Rsa3072 | KeyAlgorithmId::Rsa4096 => true, KeyAlgorithmId::EccP256 | KeyAlgorithmId::EccP384 | KeyAlgorithmId::EccP521 => false, } } pub fn is_ecc(&self) -> bool { match self { - KeyAlgorithmId::Rsa1024 | KeyAlgorithmId::Rsa2048 => false, + KeyAlgorithmId::Rsa1024 | KeyAlgorithmId::Rsa2048 + | KeyAlgorithmId::Rsa3072 | KeyAlgorithmId::Rsa4096 => false, KeyAlgorithmId::EccP256 | KeyAlgorithmId::EccP384 | KeyAlgorithmId::EccP521 => true, } } @@ -107,6 +113,8 @@ impl FromStr for KeyAlgorithmId { match s { "rsa1024" => Some(KeyAlgorithmId::Rsa1024), "rsa2048" => Some(KeyAlgorithmId::Rsa2048), + "rsa3072" => Some(KeyAlgorithmId::Rsa3072), + "rsa4096" => Some(KeyAlgorithmId::Rsa4096), "p256" => Some(KeyAlgorithmId::EccP256), "p384" => Some(KeyAlgorithmId::EccP384), "p521" => Some(KeyAlgorithmId::EccP521), @@ -120,6 +128,8 @@ impl ToStr for KeyAlgorithmId { match self { KeyAlgorithmId::Rsa1024 => "rsa1024", KeyAlgorithmId::Rsa2048 => "rsa2048", + KeyAlgorithmId::Rsa3072 => "rsa3072", + KeyAlgorithmId::Rsa4096 => "rsa4096", KeyAlgorithmId::EccP256 => "p256", KeyAlgorithmId::EccP384 => "p384", KeyAlgorithmId::EccP521 => "p521",