use std::os::raw::{c_int, c_char};
pub enum botan_hotp_struct {}
pub type botan_hotp_t = *mut botan_hotp_struct;
pub enum botan_totp_struct {}
pub type botan_totp_t = *mut botan_totp_struct;
extern "C" {
pub fn botan_hotp_init(hotp: *mut botan_hotp_t,
key: *const u8,
key_len: usize,
hash_algo: *const c_char,
digits: usize) -> c_int;
pub fn botan_hotp_destroy(hotp: botan_hotp_t) -> c_int;
pub fn botan_hotp_generate(hotp: botan_hotp_t,
hotp_code: *mut u32,
hotp_counter: u64) -> c_int;
pub fn botan_hotp_check(hotp: botan_hotp_t,
next_counter: *mut u64,
hotp_code: u32,
hotp_counter: u64,
resync_range: usize) -> c_int;
pub fn botan_totp_init(totp: *mut botan_totp_t,
key: *const u8,
key_len: usize,
hash_algo: *const c_char,
digits: usize,
time_step: usize) -> c_int;
pub fn botan_totp_destroy(totp: botan_totp_t) -> c_int;
pub fn botan_totp_generate(totp: botan_totp_t,
totp_code: *mut u32,
timestamp: u64) -> c_int;
pub fn botan_totp_check(totp: botan_totp_t,
totp_code: u32,
timestamp: u64,
acceptable_drift: usize) -> c_int;
}