Skip to content

Commit 57f9832

Browse files
authored
ecdsa: restore Signer<der::Signature> (#947)
1 parent edb327f commit 57f9832

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

ecdsa/src/signing.rs

+35
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,41 @@ where
267267
}
268268
}
269269

270+
#[cfg(feature = "der")]
271+
impl<D, C> DigestSigner<D, der::Signature<C>> for SigningKey<C>
272+
where
273+
C: EcdsaCurve + CurveArithmetic + DigestAlgorithm,
274+
D: Digest + FixedOutput,
275+
Scalar<C>: Invert<Output = CtOption<Scalar<C>>>,
276+
SignatureSize<C>: ArraySize,
277+
der::MaxSize<C>: ArraySize,
278+
<FieldBytesSize<C> as Add>::Output: Add<der::MaxOverhead> + ArraySize,
279+
{
280+
fn try_sign_digest(&self, msg_digest: D) -> Result<der::Signature<C>> {
281+
DigestSigner::<D, Signature<C>>::try_sign_digest(self, msg_digest).map(Into::into)
282+
}
283+
}
284+
285+
#[cfg(feature = "der")]
286+
impl<C, D> RandomizedDigestSigner<D, der::Signature<C>> for SigningKey<C>
287+
where
288+
C: EcdsaCurve + CurveArithmetic + DigestAlgorithm,
289+
D: Digest + FixedOutput,
290+
Scalar<C>: Invert<Output = CtOption<Scalar<C>>>,
291+
SignatureSize<C>: ArraySize,
292+
der::MaxSize<C>: ArraySize,
293+
<FieldBytesSize<C> as Add>::Output: Add<der::MaxOverhead> + ArraySize,
294+
{
295+
fn try_sign_digest_with_rng<R: TryCryptoRng + ?Sized>(
296+
&self,
297+
rng: &mut R,
298+
msg_digest: D,
299+
) -> Result<der::Signature<C>> {
300+
RandomizedDigestSigner::<D, Signature<C>>::try_sign_digest_with_rng(self, rng, msg_digest)
301+
.map(Into::into)
302+
}
303+
}
304+
270305
//
271306
// Other trait impls
272307
//

0 commit comments

Comments
 (0)