From 8635e59a1da32e916701a008552596a16553c2c6 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Fri, 24 Apr 2026 09:44:54 -0600 Subject: [PATCH] pkcs8: impl `core::error::Error` for `Error` Also populates `Error::source` where available --- pkcs8/src/error.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkcs8/src/error.rs b/pkcs8/src/error.rs index 419d621ba..eb7e5366f 100644 --- a/pkcs8/src/error.rs +++ b/pkcs8/src/error.rs @@ -47,8 +47,17 @@ impl fmt::Display for Error { } } -#[cfg(feature = "std")] -impl std::error::Error for Error {} +impl core::error::Error for Error { + fn source(&self) -> Option<&(dyn core::error::Error + 'static)> { + match self { + Error::Asn1(err) => Some(err), + #[cfg(feature = "pkcs5")] + Error::EncryptedPrivateKey(err) => Some(err), + Error::PublicKey(err) => Some(err), + _ => None, + } + } +} impl From for Error { fn from(err: der::Error) -> Error {