use crate::*;
pub(crate) fn new() -> Item {
let docs = docs! {
};
let name = "ecdsa".into();
let items = vec![
item! {
enum Curve {
P256 = 0,
P384 = 1,
}
},
item! {
enum Kind {
Private = 0,
Public = 1,
}
},
item! {
fn is_supported "cds" {
curve: usize,
} -> bool
},
item! {
fn get_layout "cdl" {
curve: usize,
kind: usize,
size: *mut u32,
align: *mut u32,
} -> ()
},
item! {
fn wrapped_length "cdk" {
curve: usize,
} -> usize
},
item! {
fn generate "cdg" {
curve: usize,
private: *mut u8,
} -> ()
},
item! {
fn public "cdp" {
curve: usize,
private: *const u8,
public: *mut u8,
} -> ()
},
item! {
fn sign "cdi" {
curve: usize,
private: *const u8,
digest: *const u8,
r: *mut u8,
s: *mut u8,
} -> ()
},
item! {
fn verify "cdv" {
curve: usize,
public: *const u8,
digest: *const u8,
r: *const u8,
s: *const u8,
} -> bool
},
item! {
fn drop "cdd" {
curve: usize,
private: *mut u8,
} -> ()
},
item! {
fn wrap "cdw" {
curve: usize,
private: *const u8,
wrapped: *mut u8,
} -> ()
},
item! {
fn unwrap "cdu" {
curve: usize,
wrapped: *const u8,
private: *mut u8,
} -> ()
},
item! {
fn export "cde" {
curve: usize,
public: *const u8,
x: *mut u8,
y: *mut u8,
} -> ()
},
item! {
fn import "cdm" {
curve: usize,
x: *const u8,
y: *const u8,
public: *mut u8,
} -> ()
},
];
Item::Mod(Mod { docs, name, items })
}