From 516406324066568faac97322e5b5bf67ac974b32 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Wed, 22 Jan 2025 13:16:51 -0800 Subject: [PATCH] ed25519-dalek: bring signature identifiers This allows to use ed25519 to create certificates for example --- ed25519-dalek/src/signing.rs | 8 ++++++++ ed25519-dalek/src/verifying.rs | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/ed25519-dalek/src/signing.rs b/ed25519-dalek/src/signing.rs index aeda05004..381e8a18f 100644 --- a/ed25519-dalek/src/signing.rs +++ b/ed25519-dalek/src/signing.rs @@ -695,6 +695,14 @@ impl TryFrom<&pkcs8::KeypairBytes> for SigningKey { } } +#[cfg(feature = "pkcs8")] +impl pkcs8::spki::SignatureAlgorithmIdentifier for SigningKey { + type Params = pkcs8::spki::der::AnyRef<'static>; + + const SIGNATURE_ALGORITHM_IDENTIFIER: pkcs8::spki::AlgorithmIdentifier = + ::ALGORITHM_IDENTIFIER; +} + #[cfg(feature = "pkcs8")] impl From for pkcs8::KeypairBytes { fn from(signing_key: SigningKey) -> pkcs8::KeypairBytes { diff --git a/ed25519-dalek/src/verifying.rs b/ed25519-dalek/src/verifying.rs index 0e85ac345..0b3720aae 100644 --- a/ed25519-dalek/src/verifying.rs +++ b/ed25519-dalek/src/verifying.rs @@ -567,6 +567,15 @@ impl TryFrom<&[u8]> for VerifyingKey { } } +#[cfg(feature = "pkcs8")] +impl pkcs8::spki::SignatureAlgorithmIdentifier for VerifyingKey { + type Params = pkcs8::spki::der::AnyRef<'static>; + + const SIGNATURE_ALGORITHM_IDENTIFIER: pkcs8::spki::AlgorithmIdentifier = + ::ALGORITHM_IDENTIFIER; +} + + impl From for EdwardsPoint { fn from(vk: VerifyingKey) -> EdwardsPoint { vk.point