/* automatically generated by rust-bindgen 0.56.0 */

pub const _STDINT_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __GLIBC_USE_ISOC2X: u32 = 0;
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 = 33;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: 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_BFP_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
pub const _BITS_TYPES_H: u32 = 1;
pub const __TIMESIZE: u32 = 64;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
pub const __INO_T_MATCHES_INO64_T: u32 = 1;
pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
pub const __STATFS_MATCHES_STATFS64: u32 = 1;
pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
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: i64 = -9223372036854775808;
pub const INT_FAST32_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9223372036854775807;
pub const INT_FAST32_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const __bool_true_false_are_defined: u32 = 1;
pub type __u_char = ::std::os::raw::c_uchar;
pub type __u_short = ::std::os::raw::c_ushort;
pub type __u_int = ::std::os::raw::c_uint;
pub type __u_long = ::std::os::raw::c_ulong;
pub type __int8_t = ::std::os::raw::c_schar;
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __int16_t = ::std::os::raw::c_short;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __int32_t = ::std::os::raw::c_int;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_long;
pub type __uint64_t = ::std::os::raw::c_ulong;
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 = ::std::os::raw::c_long;
pub type __u_quad_t = ::std::os::raw::c_ulong;
pub type __intmax_t = ::std::os::raw::c_long;
pub type __uintmax_t = ::std::os::raw::c_ulong;
pub type __dev_t = ::std::os::raw::c_ulong;
pub type __uid_t = ::std::os::raw::c_uint;
pub type __gid_t = ::std::os::raw::c_uint;
pub type __ino_t = ::std::os::raw::c_ulong;
pub type __ino64_t = ::std::os::raw::c_ulong;
pub type __mode_t = ::std::os::raw::c_uint;
pub type __nlink_t = ::std::os::raw::c_ulong;
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type __pid_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __fsid_t {
    pub __val: [::std::os::raw::c_int; 2usize],
}
#[test]
fn bindgen_test_layout___fsid_t() {
    assert_eq!(
        ::std::mem::size_of::<__fsid_t>(),
        8usize,
        concat!("Size of: ", stringify!(__fsid_t))
    );
    assert_eq!(
        ::std::mem::align_of::<__fsid_t>(),
        4usize,
        concat!("Alignment of ", stringify!(__fsid_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__fsid_t>())).__val as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__fsid_t),
            "::",
            stringify!(__val)
        )
    );
}
pub type __clock_t = ::std::os::raw::c_long;
pub type __rlim_t = ::std::os::raw::c_ulong;
pub type __rlim64_t = ::std::os::raw::c_ulong;
pub type __id_t = ::std::os::raw::c_uint;
pub type __time_t = ::std::os::raw::c_long;
pub type __useconds_t = ::std::os::raw::c_uint;
pub type __suseconds_t = ::std::os::raw::c_long;
pub type __suseconds64_t = ::std::os::raw::c_long;
pub type __daddr_t = ::std::os::raw::c_int;
pub type __key_t = ::std::os::raw::c_int;
pub type __clockid_t = ::std::os::raw::c_int;
pub type __timer_t = *mut ::std::os::raw::c_void;
pub type __blksize_t = ::std::os::raw::c_long;
pub type __blkcnt_t = ::std::os::raw::c_long;
pub type __blkcnt64_t = ::std::os::raw::c_long;
pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
pub type __fsword_t = ::std::os::raw::c_long;
pub type __ssize_t = ::std::os::raw::c_long;
pub type __syscall_slong_t = ::std::os::raw::c_long;
pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
pub type __loff_t = __off64_t;
pub type __caddr_t = *mut ::std::os::raw::c_char;
pub type __intptr_t = ::std::os::raw::c_long;
pub type __socklen_t = ::std::os::raw::c_uint;
pub type __sig_atomic_t = ::std::os::raw::c_int;
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 = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = __intmax_t;
pub type uintmax_t = __uintmax_t;
pub const DILITHIUM2: ::std::os::raw::c_uint = 0;
pub const DILITHIUM3: ::std::os::raw::c_uint = 1;
pub const DILITHIUM5: ::std::os::raw::c_uint = 2;
pub const FALCON1024: ::std::os::raw::c_uint = 3;
pub const FALCON512: ::std::os::raw::c_uint = 4;
pub const RAINBOWVCLASSIC: ::std::os::raw::c_uint = 5;
pub const RAINBOWICLASSIC: ::std::os::raw::c_uint = 6;
pub const RAINBOWIIICLASSIC: ::std::os::raw::c_uint = 7;
pub const SPHINCSSHA256192FSIMPLE: ::std::os::raw::c_uint = 8;
pub const SPHINCSSHAKE256256FSIMPLE: ::std::os::raw::c_uint = 9;
pub const SPHINCSSHAKE256192FROBUST: ::std::os::raw::c_uint = 10;
pub const SPHINCSSHAKE256128FSIMPLE: ::std::os::raw::c_uint = 11;
pub const SPHINCSSHAKE256256SSIMPLE: ::std::os::raw::c_uint = 12;
pub const SPHINCSSHAKE256128SSIMPLE: ::std::os::raw::c_uint = 13;
pub const SPHINCSSHA256128FROBUST: ::std::os::raw::c_uint = 14;
pub const SPHINCSSHA256192SROBUST: ::std::os::raw::c_uint = 15;
pub const SPHINCSSHAKE256128FROBUST: ::std::os::raw::c_uint = 16;
pub const SPHINCSSHAKE256128SROBUST: ::std::os::raw::c_uint = 17;
pub const SPHINCSSHAKE256256SROBUST: ::std::os::raw::c_uint = 18;
pub const SPHINCSSHA256192SSIMPLE: ::std::os::raw::c_uint = 19;
pub const SPHINCSSHAKE256192SSIMPLE: ::std::os::raw::c_uint = 20;
pub const SPHINCSSHAKE256192SROBUST: ::std::os::raw::c_uint = 21;
pub const SPHINCSSHAKE256192FSIMPLE: ::std::os::raw::c_uint = 22;
pub const SPHINCSSHA256256SSIMPLE: ::std::os::raw::c_uint = 23;
pub const SPHINCSSHA256128SSIMPLE: ::std::os::raw::c_uint = 24;
pub const SPHINCSSHAKE256256FROBUST: ::std::os::raw::c_uint = 25;
pub const SPHINCSSHA256256FROBUST: ::std::os::raw::c_uint = 26;
pub const SPHINCSSHA256256FSIMPLE: ::std::os::raw::c_uint = 27;
pub const SPHINCSSHA256256SROBUST: ::std::os::raw::c_uint = 28;
pub const SPHINCSSHA256128SROBUST: ::std::os::raw::c_uint = 29;
pub const SPHINCSSHA256128FSIMPLE: ::std::os::raw::c_uint = 30;
pub const SPHINCSSHA256192FROBUST: ::std::os::raw::c_uint = 31;
pub const PQC_ALG_SIG_MAX: ::std::os::raw::c_uint = 32;
pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
pub const FRODOKEM976SHAKE: ::std::os::raw::c_uint = 0;
pub const FRODOKEM1344SHAKE: ::std::os::raw::c_uint = 1;
pub const FRODOKEM640SHAKE: ::std::os::raw::c_uint = 2;
pub const KYBER768: ::std::os::raw::c_uint = 3;
pub const KYBER1024: ::std::os::raw::c_uint = 4;
pub const KYBER512: ::std::os::raw::c_uint = 5;
pub const NTRUHPS4096821: ::std::os::raw::c_uint = 6;
pub const NTRUHPS2048509: ::std::os::raw::c_uint = 7;
pub const NTRUHRSS701: ::std::os::raw::c_uint = 8;
pub const NTRUHPS2048677: ::std::os::raw::c_uint = 9;
pub const NTRULPR761: ::std::os::raw::c_uint = 10;
pub const NTRULPR653: ::std::os::raw::c_uint = 11;
pub const NTRULPR857: ::std::os::raw::c_uint = 12;
pub const LIGHTSABER: ::std::os::raw::c_uint = 13;
pub const FIRESABER: ::std::os::raw::c_uint = 14;
pub const SABER: ::std::os::raw::c_uint = 15;
pub const HQCRMRS128: ::std::os::raw::c_uint = 16;
pub const HQCRMRS192: ::std::os::raw::c_uint = 17;
pub const HQCRMRS256: ::std::os::raw::c_uint = 18;
pub const SIKE434: ::std::os::raw::c_uint = 19;
pub const PQC_ALG_KEM_MAX: ::std::os::raw::c_uint = 20;
pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct pqc_ctx_t {
    pub alg_id: u8,
    pub alg_name: *const ::std::os::raw::c_char,
    pub prv_key_bsz: u32,
    pub pub_key_bsz: u32,
    pub is_kem: bool,
    pub keygen: ::std::option::Option<
        unsafe extern "C" fn(sk: *mut u8, pk: *mut u8) -> ::std::os::raw::c_int,
    >,
}
#[test]
fn bindgen_test_layout_pqc_ctx_t() {
    assert_eq!(
        ::std::mem::size_of::<pqc_ctx_t>(),
        40usize,
        concat!("Size of: ", stringify!(pqc_ctx_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pqc_ctx_t>(),
        8usize,
        concat!("Alignment of ", stringify!(pqc_ctx_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_ctx_t>())).alg_id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_ctx_t),
            "::",
            stringify!(alg_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_ctx_t>())).alg_name as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_ctx_t),
            "::",
            stringify!(alg_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_ctx_t>())).prv_key_bsz as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_ctx_t),
            "::",
            stringify!(prv_key_bsz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_ctx_t>())).pub_key_bsz as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_ctx_t),
            "::",
            stringify!(pub_key_bsz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_ctx_t>())).is_kem as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_ctx_t),
            "::",
            stringify!(is_kem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_ctx_t>())).keygen as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_ctx_t),
            "::",
            stringify!(keygen)
        )
    );
}
impl Default for pqc_ctx_t {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct pqc_kem_ctx_t {
    pub p: pqc_ctx_t,
    pub ciphertext_bsz: u32,
    pub secret_bsz: u32,
    pub encapsulate: ::std::option::Option<
        unsafe extern "C" fn(ct: *mut u8, ss: *mut u8, pk: *const u8) -> ::std::os::raw::c_int,
    >,
    pub decapsulate: ::std::option::Option<
        unsafe extern "C" fn(ss: *mut u8, ct: *const u8, sk: *const u8) -> ::std::os::raw::c_int,
    >,
}
#[test]
fn bindgen_test_layout_pqc_kem_ctx_t() {
    assert_eq!(
        ::std::mem::size_of::<pqc_kem_ctx_t>(),
        64usize,
        concat!("Size of: ", stringify!(pqc_kem_ctx_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pqc_kem_ctx_t>(),
        8usize,
        concat!("Alignment of ", stringify!(pqc_kem_ctx_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_kem_ctx_t>())).p as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_kem_ctx_t),
            "::",
            stringify!(p)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_kem_ctx_t>())).ciphertext_bsz as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_kem_ctx_t),
            "::",
            stringify!(ciphertext_bsz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_kem_ctx_t>())).secret_bsz as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_kem_ctx_t),
            "::",
            stringify!(secret_bsz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_kem_ctx_t>())).encapsulate as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_kem_ctx_t),
            "::",
            stringify!(encapsulate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_kem_ctx_t>())).decapsulate as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_kem_ctx_t),
            "::",
            stringify!(decapsulate)
        )
    );
}
impl Default for pqc_kem_ctx_t {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct pqc_sig_ctx_t {
    pub p: pqc_ctx_t,
    pub sign_bsz: u32,
    pub sign: ::std::option::Option<
        unsafe extern "C" fn(
            sig: *mut u8,
            siglen: *mut u64,
            m: *const u8,
            mlen: u64,
            sk: *const u8,
        ) -> ::std::os::raw::c_int,
    >,
    pub verify: ::std::option::Option<
        unsafe extern "C" fn(
            sig: *const u8,
            siglen: u64,
            m: *const u8,
            mlen: u64,
            pk: *const u8,
        ) -> ::std::os::raw::c_int,
    >,
}
#[test]
fn bindgen_test_layout_pqc_sig_ctx_t() {
    assert_eq!(
        ::std::mem::size_of::<pqc_sig_ctx_t>(),
        64usize,
        concat!("Size of: ", stringify!(pqc_sig_ctx_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pqc_sig_ctx_t>(),
        8usize,
        concat!("Alignment of ", stringify!(pqc_sig_ctx_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_sig_ctx_t>())).p as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_sig_ctx_t),
            "::",
            stringify!(p)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_sig_ctx_t>())).sign_bsz as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_sig_ctx_t),
            "::",
            stringify!(sign_bsz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_sig_ctx_t>())).sign as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_sig_ctx_t),
            "::",
            stringify!(sign)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pqc_sig_ctx_t>())).verify as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(pqc_sig_ctx_t),
            "::",
            stringify!(verify)
        )
    );
}
impl Default for pqc_sig_ctx_t {
    fn default() -> Self {
        unsafe { ::std::mem::zeroed() }
    }
}
extern "C" {
    pub fn pqc_keygen(p: *const pqc_ctx_t, pk: *mut u8, sk: *mut u8) -> bool;
}
extern "C" {
    pub fn pqc_kem_encapsulate(
        p: *const pqc_ctx_t,
        ct: *mut u8,
        ss: *mut u8,
        pk: *const u8,
    ) -> bool;
}
extern "C" {
    pub fn pqc_kem_decapsulate(
        p: *const pqc_ctx_t,
        ss: *mut u8,
        ct: *const u8,
        sk: *const u8,
    ) -> bool;
}
extern "C" {
    pub fn pqc_sig_create(
        p: *const pqc_ctx_t,
        sig: *mut u8,
        siglen: *mut u64,
        m: *const u8,
        mlen: u64,
        sk: *const u8,
    ) -> bool;
}
extern "C" {
    pub fn pqc_sig_verify(
        p: *const pqc_ctx_t,
        sig: *const u8,
        siglen: u64,
        m: *const u8,
        mlen: u64,
        pk: *const u8,
    ) -> bool;
}
extern "C" {
    pub fn pqc_kem_alg_by_id(id: u8) -> *const pqc_ctx_t;
}
extern "C" {
    pub fn pqc_sig_alg_by_id(id: u8) -> *const pqc_ctx_t;
}
extern "C" {
    pub fn pqc_ciphertext_bsz(p: *const pqc_ctx_t) -> u32;
}
extern "C" {
    pub fn pqc_shared_secret_bsz(p: *const pqc_ctx_t) -> u32;
}
extern "C" {
    pub fn pqc_signature_bsz(p: *const pqc_ctx_t) -> u32;
}
extern "C" {
    pub fn pqc_public_key_bsz(p: *const pqc_ctx_t) -> u32;
}
extern "C" {
    pub fn pqc_private_key_bsz(p: *const pqc_ctx_t) -> u32;
}
