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§
sourcefn is_valid_scalar(n: &Int<N>) -> bool
fn is_valid_scalar(n: &Int<N>) -> bool
Returns whether a scalar is valid.
sourcefn is_valid_point(x: &Int<N>, y: &Int<N>) -> bool
fn is_valid_point(x: &Int<N>, y: &Int<N>) -> bool
Returns whether a point is valid.
sourcefn base_point_mul(
n: &Int<N>,
x: &mut Int<N>,
y: &mut Int<N>,
) -> Result<(), Error>
fn base_point_mul( n: &Int<N>, x: &mut Int<N>, y: &mut Int<N>, ) -> Result<(), Error>
Base point multiplication.
sourcefn 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 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.
Object Safety§
This trait is not object safe.