Trait wasefire_board_api::crypto::ecc::Api

source ·
pub trait Api<N: ArrayLength<u8>>: Support<bool> + Send {
    // Required methods
    fn is_valid_scalar(n: &Int<N>) -> bool;
    fn is_valid_point(x: &Int<N>, y: &Int<N>) -> bool;
    fn base_point_mul(
        n: &Int<N>,
        x: &mut Int<N>,
        y: &mut Int<N>,
    ) -> Result<(), Error>;
    fn point_mul(
        n: &Int<N>,
        in_x: &Int<N>,
        in_y: &Int<N>,
        out_x: &mut Int<N>,
        out_y: &mut Int<N>,
    ) -> Result<(), Error>;
    fn ecdsa_sign(
        d: &Int<N>,
        m: &Int<N>,
        r: &mut Int<N>,
        s: &mut Int<N>,
    ) -> Result<(), Error>;
    fn ecdsa_verify(
        m: &Int<N>,
        x: &Int<N>,
        y: &Int<N>,
        r: &Int<N>,
        s: &Int<N>,
    ) -> Result<bool, Error>;
}
Available on crate features internal-api-crypto and internal-api-crypto-ecc only.
Expand description

Elliptic-curve cryptography interface.

Required Methods§

source

fn is_valid_scalar(n: &Int<N>) -> bool

Returns whether a scalar is valid.

source

fn is_valid_point(x: &Int<N>, y: &Int<N>) -> bool

Returns whether a point is valid.

source

fn base_point_mul( n: &Int<N>, x: &mut Int<N>, y: &mut Int<N>, ) -> Result<(), Error>

Base point multiplication.

source

fn point_mul( n: &Int<N>, in_x: &Int<N>, in_y: &Int<N>, out_x: &mut Int<N>, out_y: &mut Int<N>, ) -> Result<(), Error>

Point multiplication.

source

fn ecdsa_sign( d: &Int<N>, m: &Int<N>, r: &mut Int<N>, s: &mut Int<N>, ) -> Result<(), Error>

ECDSA signature.

source

fn ecdsa_verify( m: &Int<N>, x: &Int<N>, y: &Int<N>, r: &Int<N>, s: &Int<N>, ) -> Result<bool, Error>

ECDSA verification.

Object Safety§

This trait is not object safe.

Implementors§