1use crate::ffi_types::{c_char, c_int};
2use crate::rng::botan_rng_t;
3
4pub enum botan_srp6_server_session_struct {}
5pub type botan_srp6_server_session_t = *mut botan_srp6_server_session_struct;
6
7botan_ffi_functions! {
8 #[cfg(botan_ffi_20230403)]
9 pub fn botan_srp6_server_session_init(srp6: *mut botan_srp6_server_session_t) -> c_int;
10
11 #[cfg(botan_ffi_20230403)]
12 pub fn botan_srp6_server_session_destroy(srp6: botan_srp6_server_session_t) -> c_int;
13
14 #[cfg(botan_ffi_20230403)]
15 pub fn botan_srp6_server_session_step1(
16 srp6: botan_srp6_server_session_t,
17 verifier: *const u8,
18 verifier_len: usize,
19 group_id: *const c_char,
20 hash_id: *const c_char,
21 rng_obj: botan_rng_t,
22 B_pub: *mut u8,
23 B_pub_len: *mut usize,
24 ) -> c_int;
25
26 #[cfg(botan_ffi_20230403)]
27 pub fn botan_srp6_server_session_step2(
28 srp6: botan_srp6_server_session_t,
29 A: *const u8,
30 A_len: usize,
31 key: *mut u8,
32 key_len: *mut usize,
33 ) -> c_int;
34
35 #[cfg(botan_ffi_20230403)]
36 pub fn botan_srp6_generate_verifier(
37 identifier: *const c_char,
38 password: *const c_char,
39 salt: *const u8,
40 salt_len: usize,
41 group_id: *const c_char,
42 hash_id: *const c_char,
43 verifier: *mut u8,
44 verifier_len: *mut usize,
45 ) -> c_int;
46
47 #[cfg(botan_ffi_20230403)]
48 pub fn botan_srp6_client_agree(
49 username: *const c_char,
50 password: *const c_char,
51 group_id: *const c_char,
52 hash_id: *const c_char,
53 salt: *const u8,
54 salt_len: usize,
55 B: *const u8,
56 B_len: usize,
57 rng_obj: botan_rng_t,
58 A: *mut u8,
59 A_len: *mut usize,
60 K: *mut u8,
61 K_len: *mut usize,
62 ) -> c_int;
63
64 #[cfg(botan_ffi_20230403)]
65 pub fn botan_srp6_group_size(group_id: *const c_char, group_p_bytes: *mut usize) -> c_int;
66}