use crate::*;
pub(crate) fn new() -> Item {
let docs = docs! {
};
let name = "ec".into();
let items = vec![
item! {
enum Curve {
P256 = 0,
P384 = 1,
}
},
item! {
fn is_supported "ces" {
curve: usize,
} -> bool
},
item! {
fn is_valid_scalar "cet" {
curve: usize,
n: *const u8,
} -> bool
},
item! {
fn is_valid_point "ceq" {
curve: usize,
x: *const u8,
y: *const u8,
} -> bool
},
item! {
fn base_point_mul "ceb" {
curve: usize,
n: *const u8,
x: *mut u8,
y: *mut u8,
} -> ()
},
item! {
fn point_mul "cep" {
curve: usize,
n: *const u8,
in_x: *const u8,
in_y: *const u8,
out_x: *mut u8,
out_y: *mut u8,
} -> ()
},
item! {
fn ecdsa_sign "cei" {
curve: usize,
key: *const u8,
message: *const u8,
r: *mut u8,
s: *mut u8,
} -> ()
},
item! {
fn ecdsa_verify "cev" {
curve: usize,
message: *const u8,
x: *const u8,
y: *const u8,
r: *const u8,
s: *const u8,
} -> bool
},
];
Item::Mod(Mod { docs, name, items })
}