pub trait SignPrimitive<C>: Field + Into<FieldBytes<C>> + Reduce<C::UInt> + Sizedwhere
    C: PrimeCurve + ProjectiveArithmetic + ScalarArithmetic<Scalar = Self>,
    SignatureSize<C>: ArrayLength<u8>,{
    // Provided methods
    fn try_sign_prehashed<K>(
        &self,
        k: K,
        z: FieldBytes<C>
    ) -> Result<(Signature<C>, Option<RecoveryId>)>
       where K: Borrow<Self> + Invert<Output = CtOption<Self>> { ... }
    fn try_sign_prehashed_rfc6979<D>(
        &self,
        z: FieldBytes<C>,
        ad: &[u8]
    ) -> Result<(Signature<C>, Option<RecoveryId>)>
       where Self: From<ScalarCore<C>>,
             C::UInt: for<'a> From<&'a Self>,
             D: Digest + BlockSizeUser + FixedOutput<OutputSize = FieldSize<C>> + FixedOutputReset { ... }
    fn try_sign_digest_rfc6979<D>(
        &self,
        msg_digest: D,
        ad: &[u8]
    ) -> Result<(Signature<C>, Option<RecoveryId>)>
       where Self: From<ScalarCore<C>>,
             C::UInt: for<'a> From<&'a Self>,
             D: Digest + BlockSizeUser + FixedOutput<OutputSize = FieldSize<C>> + FixedOutputReset { ... }
}
Expand description

Try to sign the given prehashed message using ECDSA.

This trait is intended to be implemented on a type with access to the secret scalar via &self, such as particular curve’s Scalar type.

Provided Methods§

source

fn try_sign_prehashed<K>( &self, k: K, z: FieldBytes<C> ) -> Result<(Signature<C>, Option<RecoveryId>)>where K: Borrow<Self> + Invert<Output = CtOption<Self>>,

Try to sign the prehashed message.

Accepts the following arguments:

  • k: ephemeral scalar value. MUST BE UNIFORMLY RANDOM!!!
  • z: message digest to be signed. MUST BE OUTPUT OF A CRYPTOGRAPHICALLY SECURE DIGEST ALGORITHM!!!
Returns

ECDSA Signature and, when possible/desired, a RecoveryId which can be used to recover the verifying key for a given signature.

source

fn try_sign_prehashed_rfc6979<D>( &self, z: FieldBytes<C>, ad: &[u8] ) -> Result<(Signature<C>, Option<RecoveryId>)>where Self: From<ScalarCore<C>>, C::UInt: for<'a> From<&'a Self>, D: Digest + BlockSizeUser + FixedOutput<OutputSize = FieldSize<C>> + FixedOutputReset,

Try to sign the given message digest deterministically using the method described in RFC6979 for computing ECDSA ephemeral scalar k.

Accepts the following parameters:

  • z: message digest to be signed.
  • ad: optional additional data, e.g. added entropy from an RNG
source

fn try_sign_digest_rfc6979<D>( &self, msg_digest: D, ad: &[u8] ) -> Result<(Signature<C>, Option<RecoveryId>)>where Self: From<ScalarCore<C>>, C::UInt: for<'a> From<&'a Self>, D: Digest + BlockSizeUser + FixedOutput<OutputSize = FieldSize<C>> + FixedOutputReset,

Try to sign the given digest instance using the method described in RFC6979.

Implementors§