micro-ecc-sys 0.3.0

Low-level bindings to micro-ecc
Documentation
/* automatically generated by rust-bindgen */

pub const _STDINT_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const __USE_POSIX_IMPLICITLY: u32 = 1;
pub const _POSIX_SOURCE: u32 = 1;
pub const _POSIX_C_SOURCE: u32 = 200809;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __USE_MISC: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_ISO_10646__: u32 = 201706;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 29;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __WORDSIZE: u32 = 32;
pub const __WORDSIZE32_SIZE_ULONG: u32 = 0;
pub const __WORDSIZE32_PTRDIFF_LONG: u32 = 0;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 0;
pub const __HAVE_GENERIC_SELECTION: u32 = 1;
pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
pub const _BITS_TYPES_H: u32 = 1;
pub const __TIMESIZE: u32 = 32;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 0;
pub const __FD_SETSIZE: u32 = 1024;
pub const _BITS_TIME64_H: u32 = 1;
pub const _BITS_WCHAR_H: u32 = 1;
pub const _BITS_STDINT_INTN_H: u32 = 1;
pub const _BITS_STDINT_UINTN_H: u32 = 1;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i32 = -2147483648;
pub const INT_FAST32_MIN: i32 = -2147483648;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u32 = 2147483647;
pub const INT_FAST32_MAX: u32 = 2147483647;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: u32 = 4294967295;
pub const UINT_FAST32_MAX: u32 = 4294967295;
pub const INTPTR_MIN: i32 = -2147483648;
pub const INTPTR_MAX: u32 = 2147483647;
pub const UINTPTR_MAX: u32 = 4294967295;
pub const PTRDIFF_MIN: i32 = -2147483648;
pub const PTRDIFF_MAX: u32 = 2147483647;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: u32 = 4294967295;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
pub const uECC_arch_other: u32 = 0;
pub const uECC_x86: u32 = 1;
pub const uECC_x86_64: u32 = 2;
pub const uECC_arm: u32 = 3;
pub const uECC_arm_thumb: u32 = 4;
pub const uECC_arm_thumb2: u32 = 5;
pub const uECC_arm64: u32 = 6;
pub const uECC_avr: u32 = 7;
pub const uECC_OPTIMIZATION_LEVEL: u32 = 2;
pub const uECC_SQUARE_FUNC: u32 = 0;
pub const uECC_VLI_NATIVE_LITTLE_ENDIAN: u32 = 0;
pub const uECC_SUPPORTS_secp160r1: u32 = 1;
pub const uECC_SUPPORTS_secp192r1: u32 = 1;
pub const uECC_SUPPORTS_secp224r1: u32 = 1;
pub const uECC_SUPPORTS_secp256r1: u32 = 1;
pub const uECC_SUPPORTS_secp256k1: u32 = 1;
pub const uECC_SUPPORT_COMPRESSED_POINT: u32 = 1;
pub type __u_char = cty::c_uchar;
pub type __u_short = cty::c_ushort;
pub type __u_int = cty::c_uint;
pub type __u_long = cty::c_ulong;
pub type __int8_t = cty::c_schar;
pub type __uint8_t = cty::c_uchar;
pub type __int16_t = cty::c_short;
pub type __uint16_t = cty::c_ushort;
pub type __int32_t = cty::c_int;
pub type __uint32_t = cty::c_uint;
pub type __int64_t = cty::c_longlong;
pub type __uint64_t = cty::c_ulonglong;
pub type __int_least8_t = __int8_t;
pub type __uint_least8_t = __uint8_t;
pub type __int_least16_t = __int16_t;
pub type __uint_least16_t = __uint16_t;
pub type __int_least32_t = __int32_t;
pub type __uint_least32_t = __uint32_t;
pub type __int_least64_t = __int64_t;
pub type __uint_least64_t = __uint64_t;
pub type __quad_t = cty::c_longlong;
pub type __u_quad_t = cty::c_ulonglong;
pub type __intmax_t = cty::c_longlong;
pub type __uintmax_t = cty::c_ulonglong;
pub type __dev_t = __uint64_t;
pub type __uid_t = cty::c_uint;
pub type __gid_t = cty::c_uint;
pub type __ino_t = cty::c_ulong;
pub type __ino64_t = __uint64_t;
pub type __mode_t = cty::c_uint;
pub type __nlink_t = cty::c_uint;
pub type __off_t = cty::c_long;
pub type __off64_t = __int64_t;
pub type __pid_t = cty::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fsid_t {
    pub __val: [cty::c_int; 2usize],
}
#[test]
fn bindgen_test_layout___fsid_t() {
    assert_eq!(
        ::core::mem::size_of::<__fsid_t>(),
        8usize,
        concat!("Size of: ", stringify!(__fsid_t))
    );
    assert_eq!(
        ::core::mem::align_of::<__fsid_t>(),
        4usize,
        concat!("Alignment of ", stringify!(__fsid_t))
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<__fsid_t>())).__val as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__fsid_t),
            "::",
            stringify!(__val)
        )
    );
}
pub type __clock_t = cty::c_long;
pub type __rlim_t = cty::c_ulong;
pub type __rlim64_t = __uint64_t;
pub type __id_t = cty::c_uint;
pub type __time_t = cty::c_long;
pub type __useconds_t = cty::c_uint;
pub type __suseconds_t = cty::c_long;
pub type __daddr_t = cty::c_int;
pub type __key_t = cty::c_int;
pub type __clockid_t = cty::c_int;
pub type __timer_t = *mut cty::c_void;
pub type __blksize_t = cty::c_long;
pub type __blkcnt_t = cty::c_long;
pub type __blkcnt64_t = __int64_t;
pub type __fsblkcnt_t = cty::c_ulong;
pub type __fsblkcnt64_t = __uint64_t;
pub type __fsfilcnt_t = cty::c_ulong;
pub type __fsfilcnt64_t = __uint64_t;
pub type __fsword_t = cty::c_int;
pub type __ssize_t = cty::c_int;
pub type __syscall_slong_t = cty::c_long;
pub type __syscall_ulong_t = cty::c_ulong;
pub type __loff_t = __off64_t;
pub type __caddr_t = *mut cty::c_char;
pub type __intptr_t = cty::c_int;
pub type __socklen_t = cty::c_uint;
pub type __sig_atomic_t = cty::c_int;
pub type __time64_t = __int64_t;
pub type int_least8_t = __int_least8_t;
pub type int_least16_t = __int_least16_t;
pub type int_least32_t = __int_least32_t;
pub type int_least64_t = __int_least64_t;
pub type uint_least8_t = __uint_least8_t;
pub type uint_least16_t = __uint_least16_t;
pub type uint_least32_t = __uint_least32_t;
pub type uint_least64_t = __uint_least64_t;
pub type int_fast8_t = cty::c_schar;
pub type int_fast16_t = cty::c_int;
pub type int_fast32_t = cty::c_int;
pub type int_fast64_t = cty::c_longlong;
pub type uint_fast8_t = cty::c_uchar;
pub type uint_fast16_t = cty::c_uint;
pub type uint_fast32_t = cty::c_uint;
pub type uint_fast64_t = cty::c_ulonglong;
pub type intmax_t = __intmax_t;
pub type uintmax_t = __uintmax_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct uECC_Curve_t {
    _unused: [u8; 0],
}
pub type uECC_Curve = *const uECC_Curve_t;
extern "C" {
    pub fn uECC_secp160r1() -> uECC_Curve;
}
extern "C" {
    pub fn uECC_secp192r1() -> uECC_Curve;
}
extern "C" {
    pub fn uECC_secp224r1() -> uECC_Curve;
}
extern "C" {
    pub fn uECC_secp256r1() -> uECC_Curve;
}
extern "C" {
    pub fn uECC_secp256k1() -> uECC_Curve;
}
pub type uECC_RNG_Function =
    ::core::option::Option<unsafe extern "C" fn(dest: *mut u8, size: cty::c_uint) -> cty::c_int>;
extern "C" {
    pub fn uECC_set_rng(rng_function: uECC_RNG_Function);
}
extern "C" {
    pub fn uECC_get_rng() -> uECC_RNG_Function;
}
extern "C" {
    pub fn uECC_curve_private_key_size(curve: uECC_Curve) -> cty::c_int;
}
extern "C" {
    pub fn uECC_curve_public_key_size(curve: uECC_Curve) -> cty::c_int;
}
extern "C" {
    pub fn uECC_make_key(
        public_key: *mut u8,
        private_key: *mut u8,
        curve: uECC_Curve,
    ) -> cty::c_int;
}
extern "C" {
    pub fn uECC_shared_secret(
        public_key: *const u8,
        private_key: *const u8,
        secret: *mut u8,
        curve: uECC_Curve,
    ) -> cty::c_int;
}
extern "C" {
    pub fn uECC_compress(public_key: *const u8, compressed: *mut u8, curve: uECC_Curve);
}
extern "C" {
    pub fn uECC_decompress(compressed: *const u8, public_key: *mut u8, curve: uECC_Curve);
}
extern "C" {
    pub fn uECC_valid_public_key(public_key: *const u8, curve: uECC_Curve) -> cty::c_int;
}
extern "C" {
    pub fn uECC_compute_public_key(
        private_key: *const u8,
        public_key: *mut u8,
        curve: uECC_Curve,
    ) -> cty::c_int;
}
extern "C" {
    pub fn uECC_sign(
        private_key: *const u8,
        message_hash: *const u8,
        hash_size: cty::c_uint,
        signature: *mut u8,
        curve: uECC_Curve,
    ) -> cty::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct uECC_HashContext {
    pub init_hash: ::core::option::Option<unsafe extern "C" fn(context: *const uECC_HashContext)>,
    pub update_hash: ::core::option::Option<
        unsafe extern "C" fn(
            context: *const uECC_HashContext,
            message: *const u8,
            message_size: cty::c_uint,
        ),
    >,
    pub finish_hash: ::core::option::Option<
        unsafe extern "C" fn(context: *const uECC_HashContext, hash_result: *mut u8),
    >,
    pub block_size: cty::c_uint,
    pub result_size: cty::c_uint,
    pub tmp: *mut u8,
}
#[test]
fn bindgen_test_layout_uECC_HashContext() {
    assert_eq!(
        ::core::mem::size_of::<uECC_HashContext>(),
        24usize,
        concat!("Size of: ", stringify!(uECC_HashContext))
    );
    assert_eq!(
        ::core::mem::align_of::<uECC_HashContext>(),
        4usize,
        concat!("Alignment of ", stringify!(uECC_HashContext))
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<uECC_HashContext>())).init_hash as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(uECC_HashContext),
            "::",
            stringify!(init_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<uECC_HashContext>())).update_hash as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(uECC_HashContext),
            "::",
            stringify!(update_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<uECC_HashContext>())).finish_hash as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(uECC_HashContext),
            "::",
            stringify!(finish_hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<uECC_HashContext>())).block_size as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(uECC_HashContext),
            "::",
            stringify!(block_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<uECC_HashContext>())).result_size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(uECC_HashContext),
            "::",
            stringify!(result_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::core::ptr::null::<uECC_HashContext>())).tmp as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(uECC_HashContext),
            "::",
            stringify!(tmp)
        )
    );
}
extern "C" {
    pub fn uECC_sign_deterministic(
        private_key: *const u8,
        message_hash: *const u8,
        hash_size: cty::c_uint,
        hash_context: *const uECC_HashContext,
        signature: *mut u8,
        curve: uECC_Curve,
    ) -> cty::c_int;
}
extern "C" {
    pub fn uECC_verify(
        public_key: *const u8,
        message_hash: *const u8,
        hash_size: cty::c_uint,
        signature: *const u8,
        curve: uECC_Curve,
    ) -> cty::c_int;
}