feat: updates
This commit is contained in:
@@ -44,9 +44,8 @@ impl Command for CommandImpl {
|
||||
util_msg::set_logger_std_out(false);
|
||||
}
|
||||
|
||||
let se_key_uri = match parse_key_uri(key)? {
|
||||
KeyUri::SecureEnclaveKey(se_key_uri) => se_key_uri,
|
||||
};
|
||||
let KeyUri::SecureEnclaveKey(se_key_uri) = parse_key_uri(key)?;
|
||||
debugging!("Secure enclave key URI: {:?}", se_key_uri);
|
||||
|
||||
let ephemeral_public_key_bytes = hex::decode(epk)?;
|
||||
let dh =
|
||||
|
||||
@@ -55,10 +55,7 @@ impl Command for CommandImpl {
|
||||
util_msg::set_logger_std_out(false);
|
||||
}
|
||||
|
||||
let se_key_uri = match parse_key_uri(key)? {
|
||||
KeyUri::SecureEnclaveKey(se_key_uri) => se_key_uri,
|
||||
};
|
||||
|
||||
let KeyUri::SecureEnclaveKey(se_key_uri) = parse_key_uri(key)?;
|
||||
debugging!("Secure enclave key URI: {:?}", se_key_uri);
|
||||
|
||||
let signature = seutil::secure_enclave_p256_sign(&se_key_uri.private_key, &message_bytes)?;
|
||||
|
||||
@@ -7,23 +7,23 @@ pub enum KeyUri {
|
||||
SecureEnclaveKey(SecureEnclaveKey),
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub enum KeyModule {
|
||||
SecureEnclave,
|
||||
OpenPgpCard,
|
||||
PersonalIdentityVerification,
|
||||
}
|
||||
|
||||
impl KeyModule {
|
||||
pub fn from(module: &str) -> Option<Self> {
|
||||
match module {
|
||||
"se" => Some(Self::SecureEnclave),
|
||||
"pgp" => Some(Self::OpenPgpCard),
|
||||
"piv" => Some(Self::PersonalIdentityVerification),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
// #[derive(Debug, PartialEq, Eq)]
|
||||
// pub enum KeyModule {
|
||||
// SecureEnclave,
|
||||
// OpenPgpCard,
|
||||
// PersonalIdentityVerification,
|
||||
// }
|
||||
//
|
||||
// impl KeyModule {
|
||||
// pub fn from(module: &str) -> Option<Self> {
|
||||
// match module {
|
||||
// "se" => Some(Self::SecureEnclave),
|
||||
// "pgp" => Some(Self::OpenPgpCard),
|
||||
// "piv" => Some(Self::PersonalIdentityVerification),
|
||||
// _ => None,
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub enum KeyUsage {
|
||||
@@ -37,12 +37,13 @@ impl KeyUsage {
|
||||
match usage {
|
||||
"signing" => Some(Self::Singing),
|
||||
"key_agreement" => Some(Self::KeyAgreement),
|
||||
"*" => Some(Self::Singing),
|
||||
"*" => Some(Self::Any),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
#[derive(Debug)]
|
||||
pub struct SecureEnclaveKey {
|
||||
pub host: String,
|
||||
@@ -75,11 +76,14 @@ pub fn parse_key_uri(key_uri: &str) -> XResult<KeyUri> {
|
||||
Some(key_usage) => key_usage,
|
||||
};
|
||||
|
||||
Ok(KeyUri::SecureEnclaveKey(SecureEnclaveKey {
|
||||
let parsed_key_uri = KeyUri::SecureEnclaveKey(SecureEnclaveKey {
|
||||
host: host.to_string(),
|
||||
usage: key_usage,
|
||||
private_key: left_part.to_string(),
|
||||
}))
|
||||
});
|
||||
|
||||
debugging!("Parsed key uri: {:?}", parsed_key_uri);
|
||||
Ok(parsed_key_uri)
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
20
src/main.rs
20
src/main.rs
@@ -33,11 +33,11 @@ mod cmd_rsaverify;
|
||||
#[cfg(feature = "with-secure-enclave")]
|
||||
mod cmd_se;
|
||||
#[cfg(feature = "with-secure-enclave")]
|
||||
mod cmd_se_generate;
|
||||
mod cmd_se_ecdh;
|
||||
#[cfg(feature = "with-secure-enclave")]
|
||||
mod cmd_se_ecsign;
|
||||
#[cfg(feature = "with-secure-enclave")]
|
||||
mod cmd_se_ecdh;
|
||||
mod cmd_se_generate;
|
||||
mod cmd_signfile;
|
||||
mod cmd_signjwt;
|
||||
mod cmd_sshagent;
|
||||
@@ -54,6 +54,7 @@ mod ecdhutil;
|
||||
mod ecdsautil;
|
||||
mod fido;
|
||||
mod hmacutil;
|
||||
mod keyutil;
|
||||
mod pgpcardutil;
|
||||
mod pinutil;
|
||||
mod pivutil;
|
||||
@@ -64,7 +65,6 @@ mod seutil;
|
||||
mod signfile;
|
||||
mod sshutil;
|
||||
mod util;
|
||||
mod keyutil;
|
||||
|
||||
pub struct DefaultCommandImpl;
|
||||
|
||||
@@ -138,11 +138,15 @@ fn inner_main() -> CommandError {
|
||||
Box::new(cmd_se_ecdh::CommandImpl),
|
||||
];
|
||||
|
||||
let mut features: Vec<&str> = vec![];
|
||||
#[cfg(feature = "with-sequoia-openpgp")]
|
||||
features.push("sequoia-openpgp");
|
||||
#[cfg(feature = "with-secure-enclave")]
|
||||
features.push("secure-enclave");
|
||||
#[allow(clippy::vec_init_then_push)]
|
||||
let features = {
|
||||
let mut features: Vec<&str> = vec![];
|
||||
#[cfg(feature = "with-sequoia-openpgp")]
|
||||
features.push("sequoia-openpgp");
|
||||
#[cfg(feature = "with-secure-enclave")]
|
||||
features.push("secure-enclave");
|
||||
features
|
||||
};
|
||||
let about = format!(
|
||||
"{}, features: [{}]",
|
||||
"Card Cli is a command tool for WebAuthn, OpenPGP, YubiKey ... smart cards",
|
||||
|
||||
Reference in New Issue
Block a user