diff --git a/Cargo.lock b/Cargo.lock
index 4eca4d3..a865bb2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -406,6 +406,12 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
[[package]]
name = "hkdf"
version = "0.12.4"
@@ -585,6 +591,7 @@ dependencies = [
name = "native-pkcs11-piv"
version = "0.2.18"
dependencies = [
+ "hex",
"native-pkcs11-traits",
"p256",
"pinentry",
diff --git a/native-pkcs11-piv/Cargo.toml b/native-pkcs11-piv/Cargo.toml
index 74b75a9..b41c329 100644
--- a/native-pkcs11-piv/Cargo.toml
+++ b/native-pkcs11-piv/Cargo.toml
@@ -30,6 +30,7 @@ x509-cert = { version = "0.2.5", default-features = false }
yubikey = { version = "0.8.0", features = ["untested"] }
sha1 = "0.10"
x509-parser = "0.16.0"
+hex = "0.4.3"
[dev-dependencies]
serial_test = { version = "3.1.1", default-features = false }
diff --git a/native-pkcs11-piv/src/piv/backend.rs b/native-pkcs11-piv/src/piv/backend.rs
index 2d3029a..c065433 100644
--- a/native-pkcs11-piv/src/piv/backend.rs
+++ b/native-pkcs11-piv/src/piv/backend.rs
@@ -16,25 +16,24 @@ use std::sync::{Arc, Mutex};
use tracing::instrument;
use x509_cert::der::Encode;
-use x509_parser::nom::Parser;
use yubikey::piv::AlgorithmId;
use yubikey::YubiKey;
-use native_pkcs11_traits::{Backend, KeySearchOptions};
+use crate::piv::slot::SlotObject;
+use crate::piv::util::get_algorithm_id_by_certificate;
use native_pkcs11_traits::Certificate as P11Certificate;
use native_pkcs11_traits::KeyAlgorithm as P11KeyAlgorithm;
use native_pkcs11_traits::KeySearchOptions as P11KeySearchOptions;
use native_pkcs11_traits::PrivateKey as P11PrivateKey;
use native_pkcs11_traits::PublicKey as P11PublicKey;
use native_pkcs11_traits::Result as P11Result;
-
-use crate::certificate::YubikeyPivCertificate;
-use crate::piv::util::get_algorithm_id_by_certificate;
+use native_pkcs11_traits::{Backend, KeyAlgorithm, KeySearchOptions};
#[derive(Debug, Default)]
pub struct YubikeyPivBackend {
cached_pin: Mutex