2014-08-09 20:27:08 +00:00
|
|
|
|
|
|
|
//! FFI bindings
|
|
|
|
use libc::{c_int, c_uchar};
|
|
|
|
|
|
|
|
#[link(name = "secp256k1")]
|
|
|
|
extern "C" {
|
|
|
|
pub fn secp256k1_start();
|
2014-08-10 01:03:17 +00:00
|
|
|
|
2014-08-09 20:27:08 +00:00
|
|
|
pub fn secp256k1_stop();
|
2014-08-10 01:03:17 +00:00
|
|
|
|
|
|
|
pub fn secp256k1_ecdsa_verify(msg: *const c_uchar, msg_len: c_int,
|
|
|
|
sig: *const c_uchar, sig_len: c_int,
|
|
|
|
pk: *const c_uchar, pk_len: c_int)
|
|
|
|
-> c_int;
|
|
|
|
|
|
|
|
pub fn secp256k1_ecdsa_pubkey_create(pk: *mut c_uchar, pk_len : *mut c_int,
|
|
|
|
sk: *const c_uchar, compressed: c_int)
|
|
|
|
-> c_int;
|
|
|
|
|
|
|
|
pub fn secp256k1_ecdsa_sign(msg: *const c_uchar, msg_len: c_int,
|
|
|
|
sig: *mut c_uchar, sig_len: *mut c_int,
|
|
|
|
sk: *const c_uchar, nonce: *const c_uchar)
|
|
|
|
-> c_int;
|
|
|
|
|
|
|
|
pub fn secp256k1_ecdsa_sign_compact(msg: *const c_uchar, msg_len: c_int,
|
|
|
|
sig64: *mut c_uchar, sk: *const c_uchar,
|
|
|
|
nonce: *const c_uchar, recid: *mut c_int)
|
|
|
|
-> c_int;
|
|
|
|
|
|
|
|
pub fn secp256k1_ecdsa_recover_compact(msg: *const c_uchar, msg_len: c_int,
|
|
|
|
sig64: *const c_uchar, pk: *mut c_uchar,
|
|
|
|
pk_len: *mut c_int, compressed: c_int,
|
|
|
|
recid: c_int) -> c_int;
|
2014-08-09 20:27:08 +00:00
|
|
|
}
|
|
|
|
|