1use libc::*;
2
3use super::super::*;
4
5pub enum PKCS12 {}
6
7extern "C" {
8 pub fn PKCS12_free(p12: *mut PKCS12);
9}
10const_ptr_api! {
11 extern "C" {
12 pub fn i2d_PKCS12(a: #[const_ptr_if(ossl300)] PKCS12, buf: *mut *mut u8) -> c_int;
13 }
14}
15extern "C" {
16 pub fn d2i_PKCS12(a: *mut *mut PKCS12, pp: *mut *const u8, length: c_long) -> *mut PKCS12;
17
18 pub fn PKCS12_parse(
19 p12: *mut PKCS12,
20 pass: *const c_char,
21 pkey: *mut *mut EVP_PKEY,
22 cert: *mut *mut X509,
23 ca: *mut *mut stack_st_X509,
24 ) -> c_int;
25
26 pub fn PKCS12_set_mac(
27 p12: *mut PKCS12,
28 pass: *const c_char,
29 passlen: c_int,
30 salt: *mut c_uchar,
31 saltlen: c_int,
32 iter: c_int,
33 md_type: *const EVP_MD,
34 ) -> c_int;
35}
36const_ptr_api! {
37 extern "C" {
38 pub fn PKCS12_create(
39 pass: #[const_ptr_if(any(ossl110, libressl280))] c_char,
40 friendly_name: #[const_ptr_if(any(ossl110, libressl280))] c_char,
41 pkey: *mut EVP_PKEY,
42 cert: *mut X509,
43 ca: *mut stack_st_X509,
44 nid_key: c_int,
45 nid_cert: c_int,
46 iter: c_int,
47 mac_iter: c_int,
48 keytype: c_int,
49 ) -> *mut PKCS12;
50
51 pub fn i2d_PKCS12_bio(b: *mut BIO, a: #[const_ptr_if(ossl300)] PKCS12) -> c_int;
52 }
53}
54