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