@@ -267,6 +267,41 @@ where
267
267
}
268
268
}
269
269
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
+
270
305
//
271
306
// Other trait impls
272
307
//
0 commit comments