pub trait PrehashSigner<S> {
    // Required method
    fn sign_prehash(&self, prehash: &[u8]) -> Result<S, Error>;
}
Expand description

Sign the provided message prehash, returning a digital signature.

Required Methods§

fn sign_prehash(&self, prehash: &[u8]) -> Result<S, Error>

Attempt to sign the given message digest, returning a digital signature on success, or an error if something went wrong.

The prehash parameter should be the output of a secure cryptographic hash function.

This API takes a prehash byte slice as there can potentially be many compatible lengths for the message digest for a given concrete signature algorithm.

Allowed lengths are algorithm-dependent and up to a particular implementation to decide.

Implementations on Foreign Types§

source§

impl PrehashSigner<Signature> for SigningKey

source§

fn sign_prehash(&self, prehash: &[u8]) -> Result<Signature, Error>

§

impl<C> PrehashSigner<(Signature<C>, RecoveryId)> for SigningKey<C>where C: PrimeCurve + CurveArithmetic + DigestPrimitive, <C as CurveArithmetic>::Scalar: Invert<Output = CtOption<<C as CurveArithmetic>::Scalar>> + SignPrimitive<C>, <<C as Curve>::FieldBytesSize as Add<<C as Curve>::FieldBytesSize>>::Output: ArrayLength<u8>,

§

fn sign_prehash( &self, prehash: &[u8] ) -> Result<(Signature<C>, RecoveryId), Error>

§

impl<C> PrehashSigner<Signature<C>> for SigningKey<C>where C: PrimeCurve + CurveArithmetic + DigestPrimitive, <C as CurveArithmetic>::Scalar: Invert<Output = CtOption<<C as CurveArithmetic>::Scalar>> + SignPrimitive<C>, <<C as Curve>::FieldBytesSize as Add<<C as Curve>::FieldBytesSize>>::Output: ArrayLength<u8> + Add<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>>, <<<C as Curve>::FieldBytesSize as Add<<C as Curve>::FieldBytesSize>>::Output as Add<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>>>::Output: ArrayLength<u8>,

§

fn sign_prehash(&self, prehash: &[u8]) -> Result<Signature<C>, Error>

§

impl<C> PrehashSigner<Signature<C>> for SigningKey<C>where C: PrimeCurve + CurveArithmetic + DigestPrimitive, <C as CurveArithmetic>::Scalar: Invert<Output = CtOption<<C as CurveArithmetic>::Scalar>> + SignPrimitive<C>, <<C as Curve>::FieldBytesSize as Add<<C as Curve>::FieldBytesSize>>::Output: ArrayLength<u8>,

Sign message prehash using a deterministic ephemeral scalar (k) computed using the algorithm described in RFC6979 § 3.2.

§

fn sign_prehash(&self, prehash: &[u8]) -> Result<Signature<C>, Error>

Implementors§