botan_sys/
kdf.rs

1use crate::ffi_types::{c_char, c_int};
2
3extern "C" {
4
5    pub fn botan_pbkdf(
6        pbkdf_algo: *const c_char,
7        out: *mut u8,
8        out_len: usize,
9        passphrase: *const c_char,
10        salt: *const u8,
11        salt_len: usize,
12        iterations: usize,
13    ) -> c_int;
14
15    pub fn botan_pbkdf_timed(
16        pbkdf_algo: *const c_char,
17        out: *mut u8,
18        out_len: usize,
19        passphrase: *const c_char,
20        salt: *const u8,
21        salt_len: usize,
22        milliseconds_to_run: usize,
23        out_iterations_used: *mut usize,
24    ) -> c_int;
25
26    pub fn botan_pwdhash(
27        algo: *const c_char,
28        param1: usize,
29        param2: usize,
30        param3: usize,
31        out: *mut u8,
32        out_len: usize,
33        passphrase: *const c_char,
34        passphrase_len: usize,
35        salt: *const u8,
36        salt_len: usize,
37    ) -> c_int;
38
39    pub fn botan_pwdhash_timed(
40        algo: *const c_char,
41        msec: u32,
42        param1: *mut usize,
43        param2: *mut usize,
44        param3: *mut usize,
45        out: *mut u8,
46        out_len: usize,
47        passphrase: *const c_char,
48        passphrase_len: usize,
49        salt: *const u8,
50        salt_len: usize,
51    ) -> c_int;
52
53    pub fn botan_scrypt(
54        out: *mut u8,
55        out_len: usize,
56        passphrase: *const c_char,
57        salt: *const u8,
58        salt_len: usize,
59        N: usize,
60        r: usize,
61        p: usize,
62    ) -> c_int;
63
64    pub fn botan_kdf(
65        kdf_algo: *const c_char,
66        out: *mut u8,
67        out_len: usize,
68        secret: *const u8,
69        secret_len: usize,
70        salt: *const u8,
71        salt_len: usize,
72        label: *const u8,
73        label_len: usize,
74    ) -> c_int;
75
76}