feat: v1.12.0
This commit is contained in:
@@ -56,6 +56,12 @@ pub trait ToStr {
|
||||
fn to_str(&self) -> &str;
|
||||
}
|
||||
|
||||
pub trait FromStr {
|
||||
fn from_str(s: &str) -> Option<Self>
|
||||
where
|
||||
Self: Sized;
|
||||
}
|
||||
|
||||
impl ToStr for PinPolicy {
|
||||
fn to_str(&self) -> &str {
|
||||
match self {
|
||||
@@ -78,6 +84,21 @@ impl ToStr for TouchPolicy {
|
||||
}
|
||||
}
|
||||
|
||||
impl FromStr for AlgorithmId {
|
||||
fn from_str(s: &str) -> Option<Self>
|
||||
where
|
||||
Self: Sized,
|
||||
{
|
||||
match s {
|
||||
"rsa1024" => Some(AlgorithmId::Rsa1024),
|
||||
"rsa2048" => Some(AlgorithmId::Rsa2048),
|
||||
"p256" => Some(AlgorithmId::EccP256),
|
||||
"p384" => Some(AlgorithmId::EccP384),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ToStr for AlgorithmId {
|
||||
fn to_str(&self) -> &str {
|
||||
match self {
|
||||
@@ -194,6 +215,54 @@ pub fn get_slot_id(slot: &str) -> XResult<SlotId> {
|
||||
})
|
||||
}
|
||||
|
||||
impl FromStr for SlotId {
|
||||
fn from_str(s: &str) -> Option<Self>
|
||||
where
|
||||
Self: Sized,
|
||||
{
|
||||
get_slot_id(s).ok()
|
||||
}
|
||||
}
|
||||
|
||||
impl ToStr for SlotId {
|
||||
fn to_str(&self) -> &str {
|
||||
match self {
|
||||
SlotId::Authentication => "authentication",
|
||||
SlotId::Signature => "signature",
|
||||
SlotId::KeyManagement => "keymanagement",
|
||||
SlotId::CardAuthentication => "cardauthentication",
|
||||
SlotId::Retired(retried) => match retried {
|
||||
RetiredSlotId::R1 => "r1",
|
||||
RetiredSlotId::R2 => "r2",
|
||||
RetiredSlotId::R3 => "r3",
|
||||
RetiredSlotId::R4 => "r4",
|
||||
RetiredSlotId::R5 => "r5",
|
||||
RetiredSlotId::R6 => "r6",
|
||||
RetiredSlotId::R7 => "r7",
|
||||
RetiredSlotId::R8 => "r8",
|
||||
RetiredSlotId::R9 => "r9",
|
||||
RetiredSlotId::R10 => "r10",
|
||||
RetiredSlotId::R11 => "r11",
|
||||
RetiredSlotId::R12 => "r12",
|
||||
RetiredSlotId::R13 => "r13",
|
||||
RetiredSlotId::R14 => "r14",
|
||||
RetiredSlotId::R15 => "r15",
|
||||
RetiredSlotId::R16 => "r16",
|
||||
RetiredSlotId::R17 => "r17",
|
||||
RetiredSlotId::R18 => "r18",
|
||||
RetiredSlotId::R19 => "r19",
|
||||
RetiredSlotId::R20 => "r20",
|
||||
}
|
||||
SlotId::Attestation => "attestation",
|
||||
SlotId::Management(management) => match management {
|
||||
ManagementSlotId::Pin => "pin",
|
||||
ManagementSlotId::Puk => "puk",
|
||||
ManagementSlotId::Management => "management",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn check_read_pin(yk: &mut YubiKey, slot_id: SlotId, sub_arg_matches: &ArgMatches) -> Option<String> {
|
||||
if never_use_pin(yk, slot_id) {
|
||||
None
|
||||
|
||||
Reference in New Issue
Block a user