feat: update pkcs11 piv
This commit is contained in:
@@ -252,72 +252,75 @@ impl PublicKey for YubikeyPivPublicKey {
|
||||
}
|
||||
|
||||
pub fn find_key(class: KeyClass, label: &str) -> Result<SecKey> {
|
||||
let results = crate::keychain::item_search_options()?
|
||||
.load_refs(true)
|
||||
.label(label)
|
||||
.class(ItemClass::key())
|
||||
.key_class(class)
|
||||
.limit(1)
|
||||
.search();
|
||||
|
||||
let loaded_key = match results?.into_iter().next().ok_or("key not found")? {
|
||||
security_framework::item::SearchResult::Ref(Reference::Key(key)) => key,
|
||||
_ => return Err("no key ref")?,
|
||||
};
|
||||
|
||||
Ok(loaded_key)
|
||||
Err("")?
|
||||
// let results = crate::keychain::item_search_options()?
|
||||
// .load_refs(true)
|
||||
// .label(label)
|
||||
// .class(ItemClass::key())
|
||||
// .key_class(class)
|
||||
// .limit(1)
|
||||
// .search();
|
||||
//
|
||||
// let loaded_key = match results?.into_iter().next().ok_or("key not found")? {
|
||||
// security_framework::item::SearchResult::Ref(Reference::Key(key)) => key,
|
||||
// _ => return Err("no key ref")?,
|
||||
// };
|
||||
//
|
||||
// Ok(loaded_key)
|
||||
}
|
||||
|
||||
#[instrument]
|
||||
pub fn find_key2(class: KeyClass, label: &[u8]) -> Result<Option<SecKey>> {
|
||||
let results = crate::keychain::item_search_options()?
|
||||
.load_refs(true)
|
||||
.class(ItemClass::key())
|
||||
.key_class(class)
|
||||
.application_label(label)
|
||||
.limit(1)
|
||||
.search();
|
||||
|
||||
let results = match results {
|
||||
Err(e) if e.code() == -25300 => return Ok(None),
|
||||
Err(e) => return Err(e)?,
|
||||
Ok(results) => results,
|
||||
};
|
||||
|
||||
let loaded_key = results
|
||||
.into_iter()
|
||||
.next()
|
||||
.map(|key| match key {
|
||||
security_framework::item::SearchResult::Ref(Reference::Key(key)) => Ok::<_, &str>(key),
|
||||
_ => Err("no key ref")?,
|
||||
})
|
||||
.transpose()?;
|
||||
|
||||
Ok(loaded_key)
|
||||
Ok(None)
|
||||
// let results = crate::keychain::item_search_options()?
|
||||
// .load_refs(true)
|
||||
// .class(ItemClass::key())
|
||||
// .key_class(class)
|
||||
// .application_label(label)
|
||||
// .limit(1)
|
||||
// .search();
|
||||
//
|
||||
// let results = match results {
|
||||
// Err(e) if e.code() == -25300 => return Ok(None),
|
||||
// Err(e) => return Err(e)?,
|
||||
// Ok(results) => results,
|
||||
// };
|
||||
//
|
||||
// let loaded_key = results
|
||||
// .into_iter()
|
||||
// .next()
|
||||
// .map(|key| match key {
|
||||
// security_framework::item::SearchResult::Ref(Reference::Key(key)) => Ok::<_, &str>(key),
|
||||
// _ => Err("no key ref")?,
|
||||
// })
|
||||
// .transpose()?;
|
||||
//
|
||||
// Ok(loaded_key)
|
||||
}
|
||||
|
||||
#[instrument]
|
||||
pub fn find_all_keys(key_class: KeyClass) -> Result<Vec<SecKey>> {
|
||||
let results = crate::keychain::item_search_options()?
|
||||
.load_refs(true)
|
||||
.class(ItemClass::key())
|
||||
.key_class(key_class)
|
||||
.limit(Limit::All)
|
||||
.search();
|
||||
|
||||
let results = match results {
|
||||
Err(e) if e.code() == -25300 => return Ok(vec![]),
|
||||
Err(e) => return Err(e)?,
|
||||
Ok(results) => results,
|
||||
};
|
||||
|
||||
let keys = results
|
||||
.into_iter()
|
||||
.filter_map(|res| match res {
|
||||
security_framework::item::SearchResult::Ref(Reference::Key(key)) => Some(key),
|
||||
_ => None,
|
||||
})
|
||||
.collect();
|
||||
|
||||
Ok(keys)
|
||||
Ok(vec![])
|
||||
// let results = crate::keychain::item_search_options()?
|
||||
// .load_refs(true)
|
||||
// .class(ItemClass::key())
|
||||
// .key_class(key_class)
|
||||
// .limit(Limit::All)
|
||||
// .search();
|
||||
//
|
||||
// let results = match results {
|
||||
// Err(e) if e.code() == -25300 => return Ok(vec![]),
|
||||
// Err(e) => return Err(e)?,
|
||||
// Ok(results) => results,
|
||||
// };
|
||||
//
|
||||
// let keys = results
|
||||
// .into_iter()
|
||||
// .filter_map(|res| match res {
|
||||
// security_framework::item::SearchResult::Ref(Reference::Key(key)) => Some(key),
|
||||
// _ => None,
|
||||
// })
|
||||
// .collect();
|
||||
//
|
||||
// Ok(keys)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user