diff --git a/crates/jacquard-axum/Cargo.toml b/crates/jacquard-axum/Cargo.toml index 806308554..99f6d3039 100644 --- a/crates/jacquard-axum/Cargo.toml +++ b/crates/jacquard-axum/Cargo.toml @@ -39,6 +39,7 @@ tracing = "0.1.41" [features] default = ["service-auth"] service-auth = ["jacquard-common/service-auth", "dep:jacquard-identity", "dep:multibase"] +tracing = [] [dev-dependencies] axum-macros = "0.5.0" diff --git a/crates/jacquard-axum/src/service_auth.rs b/crates/jacquard-axum/src/service_auth.rs index 59d61a5ff..43cd63e38 100644 --- a/crates/jacquard-axum/src/service_auth.rs +++ b/crates/jacquard-axum/src/service_auth.rs @@ -572,10 +572,24 @@ fn extract_signing_key(methods: &[VerificationMethod]) -> Option { match codec { // p256-pub (0x1200) - [0x80, 0x24] => PublicKey::from_p256_bytes(key_material).ok(), + [0x80, 0x24] => PublicKey::from_p256_bytes(key_material) + .inspect_err(|_e| { + #[cfg(feature = "tracing")] + tracing::error!("Failed to parse p256 public key: {}", _e); + }) + .ok(), // secp256k1-pub (0xe7) - [0xe7, 0x01] => PublicKey::from_k256_bytes(key_material).ok(), - _ => None, + [0xe7, 0x01] => PublicKey::from_k256_bytes(key_material) + .inspect_err(|_e| { + #[cfg(feature = "tracing")] + tracing::error!("Failed to parse secp256k1 public key: {}", _e); + }) + .ok(), + _ => { + #[cfg(feature = "tracing")] + tracing::error!("Unsupported public key multicodec: {:?}", codec); + None + } } }