1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#[repr(C)]
pub struct CargonContext {
pub out: *mut u8,
pub outlen: u32,
pub pwd: *const u8,
pub pwdlen: u32,
pub salt: *const u8,
pub saltlen: u32,
pub secret: *const u8,
pub secretlen: u32,
pub ad: *const u8,
pub adlen: u32,
pub t_cost: u32,
pub m_cost: u32,
pub lanes: u32,
pub threads: u32,
pub version: u32,
pub allocate_fptr: *const u8,
pub deallocate_fptr: *const u8,
pub flags: u32,
}
extern "C" {
pub fn argon2_ctx(context: *mut CargonContext, ty: usize) -> usize;
}
pub const ARGON2_FLAG_CLEAR_MEMORY: u32 = 1 << 2;