1use super::super::*;
2use libc::*;
3
4pub type pem_password_cb = Option<
5 unsafe extern "C" fn(
6 buf: *mut c_char,
7 size: c_int,
8 rwflag: c_int,
9 user_data: *mut c_void,
10 ) -> c_int,
11>;
12
13const_ptr_api! {
14 extern "C" {
15 pub fn PEM_write_bio_X509(bio: *mut BIO, x509: #[const_ptr_if(ossl300)] X509) -> c_int;
16 pub fn PEM_write_bio_X509_REQ(bio: *mut BIO, x509: #[const_ptr_if(ossl300)] X509_REQ) -> c_int;
17 pub fn PEM_write_bio_X509_CRL(bio: *mut BIO, x509: #[const_ptr_if(ossl300)] X509_CRL) -> c_int;
18 pub fn PEM_write_bio_RSAPrivateKey(
19 bp: *mut BIO,
20 rsa: #[const_ptr_if(ossl300)] RSA,
21 cipher: *const EVP_CIPHER,
22 kstr: #[const_ptr_if(ossl300)] c_uchar,
23 klen: c_int,
24 callback: pem_password_cb,
25 user_data: *mut c_void,
26 ) -> c_int;
27 pub fn PEM_write_bio_RSA_PUBKEY(bp: *mut BIO, rsa: #[const_ptr_if(ossl300)] RSA) -> c_int;
28 pub fn PEM_write_bio_DSAPrivateKey(
29 bp: *mut BIO,
30 dsa: #[const_ptr_if(ossl300)] DSA,
31 cipher: *const EVP_CIPHER,
32 kstr: #[const_ptr_if(ossl300)] c_uchar,
33 klen: c_int,
34 callback: pem_password_cb,
35 user_data: *mut c_void,
36 ) -> c_int;
37 pub fn PEM_write_bio_ECPrivateKey(
38 bio: *mut BIO,
39 key: #[const_ptr_if(ossl300)] EC_KEY,
40 cipher: *const EVP_CIPHER,
41 kstr: #[const_ptr_if(ossl300)] c_uchar,
42 klen: c_int,
43 callback: pem_password_cb,
44 user_data: *mut c_void,
45 ) -> c_int;
46 pub fn PEM_write_bio_DSA_PUBKEY(bp: *mut BIO, dsa: #[const_ptr_if(ossl300)] DSA) -> c_int;
47 pub fn PEM_write_bio_PrivateKey(
48 bio: *mut BIO,
49 pkey: #[const_ptr_if(ossl300)] EVP_PKEY,
50 cipher: *const EVP_CIPHER,
51 kstr: #[const_ptr_if(ossl300)] c_uchar,
52 klen: c_int,
53 callback: pem_password_cb,
54 user_data: *mut c_void,
55 ) -> c_int;
56 pub fn PEM_write_bio_PUBKEY(bp: *mut BIO, x: #[const_ptr_if(ossl300)] EVP_PKEY) -> c_int;
57 pub fn PEM_write_bio_PKCS8PrivateKey(
58 bio: *mut BIO,
59 pkey: #[const_ptr_if(ossl300)] EVP_PKEY,
60 cipher: *const EVP_CIPHER,
61 kstr: #[const_ptr_if(ossl300)] c_char,
62 klen: c_int,
63 callback: pem_password_cb,
64 user_data: *mut c_void,
65 ) -> c_int;
66 pub fn PEM_write_bio_PKCS7(bp: *mut BIO, x: #[const_ptr_if(ossl300)] PKCS7) -> c_int;
67 pub fn PEM_write_bio_EC_PUBKEY(bp: *mut BIO, ec: #[const_ptr_if(ossl300)] EC_KEY) -> c_int;
68 pub fn i2d_PKCS8PrivateKey_bio(
69 bp: *mut BIO,
70 x: #[const_ptr_if(ossl300)] EVP_PKEY,
71 enc: *const EVP_CIPHER,
72 kstr: #[const_ptr_if(ossl300)] c_char,
73 klen: c_int,
74 cb: pem_password_cb,
75 u: *mut c_void,
76 ) -> c_int;
77 }
78}
79
80extern "C" {
81 pub fn PEM_read_bio_X509(
82 bio: *mut BIO,
83 out: *mut *mut X509,
84 callback: pem_password_cb,
85 user_data: *mut c_void,
86 ) -> *mut X509;
87 pub fn PEM_read_bio_X509_REQ(
88 bio: *mut BIO,
89 out: *mut *mut X509_REQ,
90 callback: pem_password_cb,
91 user_data: *mut c_void,
92 ) -> *mut X509_REQ;
93 pub fn PEM_read_bio_X509_CRL(
94 bio: *mut BIO,
95 out: *mut *mut X509_CRL,
96 callback: pem_password_cb,
97 user_data: *mut c_void,
98 ) -> *mut X509_CRL;
99 pub fn PEM_read_bio_RSAPrivateKey(
100 bio: *mut BIO,
101 rsa: *mut *mut RSA,
102 callback: pem_password_cb,
103 user_data: *mut c_void,
104 ) -> *mut RSA;
105 pub fn PEM_read_bio_RSAPublicKey(
106 bio: *mut BIO,
107 rsa: *mut *mut RSA,
108 callback: pem_password_cb,
109 user_data: *mut c_void,
110 ) -> *mut RSA;
111 pub fn PEM_write_bio_RSAPublicKey(bp: *mut BIO, rsa: *const RSA) -> c_int;
112 pub fn PEM_read_bio_RSA_PUBKEY(
113 bio: *mut BIO,
114 rsa: *mut *mut RSA,
115 callback: pem_password_cb,
116 user_data: *mut c_void,
117 ) -> *mut RSA;
118 pub fn PEM_read_bio_DSAPrivateKey(
119 bp: *mut BIO,
120 dsa: *mut *mut DSA,
121 callback: pem_password_cb,
122 user_data: *mut c_void,
123 ) -> *mut DSA;
124 pub fn PEM_read_bio_DSA_PUBKEY(
125 bp: *mut BIO,
126 dsa: *mut *mut DSA,
127 callback: pem_password_cb,
128 user_data: *mut c_void,
129 ) -> *mut DSA;
130 pub fn PEM_read_bio_ECPrivateKey(
131 bio: *mut BIO,
132 key: *mut *mut EC_KEY,
133 callback: pem_password_cb,
134 user_data: *mut c_void,
135 ) -> *mut EC_KEY;
136 pub fn PEM_read_bio_EC_PUBKEY(
137 bp: *mut BIO,
138 ec: *mut *mut EC_KEY,
139 callback: pem_password_cb,
140 user_data: *mut c_void,
141 ) -> *mut EC_KEY;
142 pub fn PEM_read_bio_DHparams(
143 bio: *mut BIO,
144 out: *mut *mut DH,
145 callback: pem_password_cb,
146 user_data: *mut c_void,
147 ) -> *mut DH;
148 pub fn PEM_write_bio_DHparams(bio: *mut BIO, x: *const DH) -> c_int;
149 pub fn PEM_read_bio_PrivateKey(
150 bio: *mut BIO,
151 out: *mut *mut EVP_PKEY,
152 callback: pem_password_cb,
153 user_data: *mut c_void,
154 ) -> *mut EVP_PKEY;
155 pub fn PEM_read_bio_PUBKEY(
156 bio: *mut BIO,
157 out: *mut *mut EVP_PKEY,
158 callback: pem_password_cb,
159 user_data: *mut c_void,
160 ) -> *mut EVP_PKEY;
161
162 pub fn d2i_PKCS8PrivateKey_bio(
163 bp: *mut BIO,
164 x: *mut *mut EVP_PKEY,
165 cb: pem_password_cb,
166 u: *mut c_void,
167 ) -> *mut EVP_PKEY;
168 pub fn d2i_PKCS8_PRIV_KEY_INFO(
169 k: *mut *mut PKCS8_PRIV_KEY_INFO,
170 buf: *mut *const u8,
171 length: c_long,
172 ) -> *mut PKCS8_PRIV_KEY_INFO;
173 pub fn PKCS8_PRIV_KEY_INFO_free(p8inf: *mut PKCS8_PRIV_KEY_INFO);
174
175 pub fn PEM_read_bio_PKCS7(
176 bio: *mut BIO,
177 out: *mut *mut PKCS7,
178 cb: pem_password_cb,
179 u: *mut c_void,
180 ) -> *mut PKCS7;
181
182 #[cfg(ossl101)]
183 pub fn PEM_read_bio_CMS(
184 bio: *mut BIO,
185 out: *mut *mut CMS_ContentInfo,
186 callback: pem_password_cb,
187 user_data: *mut c_void,
188 ) -> *mut CMS_ContentInfo;
189 #[cfg(ossl101)]
190 pub fn PEM_write_bio_CMS(bio: *mut BIO, cms: *const CMS_ContentInfo) -> c_int;
191}
192