Skip to main content

botan_sys/
srp6.rs

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
7#[cfg(botan_ffi_20230403)]
8unsafe extern "C" {
9    pub fn botan_srp6_server_session_init(srp6: *mut botan_srp6_server_session_t) -> c_int;
10
11    pub fn botan_srp6_server_session_destroy(srp6: botan_srp6_server_session_t) -> c_int;
12
13    pub fn botan_srp6_server_session_step1(
14        srp6: botan_srp6_server_session_t,
15        verifier: *const u8,
16        verifier_len: usize,
17        group_id: *const c_char,
18        hash_id: *const c_char,
19        rng_obj: botan_rng_t,
20        B_pub: *mut u8,
21        B_pub_len: *mut usize,
22    ) -> c_int;
23
24    pub fn botan_srp6_server_session_step2(
25        srp6: botan_srp6_server_session_t,
26        A: *const u8,
27        A_len: usize,
28        key: *mut u8,
29        key_len: *mut usize,
30    ) -> c_int;
31
32    pub fn botan_srp6_generate_verifier(
33        identifier: *const c_char,
34        password: *const c_char,
35        salt: *const u8,
36        salt_len: usize,
37        group_id: *const c_char,
38        hash_id: *const c_char,
39        verifier: *mut u8,
40        verifier_len: *mut usize,
41    ) -> c_int;
42
43    pub fn botan_srp6_client_agree(
44        username: *const c_char,
45        password: *const c_char,
46        group_id: *const c_char,
47        hash_id: *const c_char,
48        salt: *const u8,
49        salt_len: usize,
50        B: *const u8,
51        B_len: usize,
52        rng_obj: botan_rng_t,
53        A: *mut u8,
54        A_len: *mut usize,
55        K: *mut u8,
56        K_len: *mut usize,
57    ) -> c_int;
58
59    pub fn botan_srp6_group_size(group_id: *const c_char, group_p_bytes: *mut usize) -> c_int;
60}