diff --git a/src/piv.rs b/src/piv.rs index 78ba16d..df611ea 100644 --- a/src/piv.rs +++ b/src/piv.rs @@ -565,8 +565,10 @@ impl Key { }; if !buf.is_empty() { - let cert = Certificate::from_bytes(buf)?; - keys.push(Key { slot, cert }); + match Certificate::from_bytes(buf) { + Ok(cert) => keys.push(Key { slot, cert }), + Err(Error::InvalidObject) => {} // skip slots we can't parse (e.g. Ed25519) + Err(other) => return Err(other), } }