From e642d7be7ba5dbe4d2b0e2195af2e6a37e4c0142 Mon Sep 17 00:00:00 2001 From: Arthur Gautier Date: Wed, 23 Apr 2025 16:03:54 -0700 Subject: [PATCH] ecdsa: restore `Signer` --- ecdsa/src/signing.rs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/ecdsa/src/signing.rs b/ecdsa/src/signing.rs index 40df7472..26014fba 100644 --- a/ecdsa/src/signing.rs +++ b/ecdsa/src/signing.rs @@ -259,6 +259,41 @@ where } } +#[cfg(feature = "der")] +impl DigestSigner> for SigningKey +where + C: EcdsaCurve + CurveArithmetic + DigestAlgorithm, + D: Digest + FixedOutput, + Scalar: Invert>>, + SignatureSize: ArraySize, + der::MaxSize: ArraySize, + as Add>::Output: Add + ArraySize, +{ + fn try_sign_digest(&self, msg_digest: D) -> Result> { + DigestSigner::>::try_sign_digest(self, msg_digest).map(Into::into) + } +} + +#[cfg(feature = "der")] +impl RandomizedDigestSigner> for SigningKey +where + C: EcdsaCurve + CurveArithmetic + DigestAlgorithm, + D: Digest + FixedOutput, + Scalar: Invert>>, + SignatureSize: ArraySize, + der::MaxSize: ArraySize, + as Add>::Output: Add + ArraySize, +{ + fn try_sign_digest_with_rng( + &self, + rng: &mut R, + msg_digest: D, + ) -> Result> { + RandomizedDigestSigner::>::try_sign_digest_with_rng(self, rng, msg_digest) + .map(Into::into) + } +} + // // Other trait impls //