aboutsummaryrefslogtreecommitdiff
path: root/openssl-sys/src/pem.rs
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2018-09-08 21:13:15 -0700
committerSteven Fackler <[email protected]>2018-09-12 19:21:18 -0700
commit93a4e96255744363b80603e821e94b551621fbd8 (patch)
tree1c1e77369f63d55738a5cbeea65d2d7c515d2971 /openssl-sys/src/pem.rs
parentclean up example (diff)
downloadrust-openssl-93a4e96255744363b80603e821e94b551621fbd8.tar.xz
rust-openssl-93a4e96255744363b80603e821e94b551621fbd8.zip
Refactor openssl-sys
The old layout tried to structure itself by version but it ended up with a lot of duplication. Instead, follow the structure of the header files.
Diffstat (limited to 'openssl-sys/src/pem.rs')
-rw-r--r--openssl-sys/src/pem.rs137
1 files changed, 137 insertions, 0 deletions
diff --git a/openssl-sys/src/pem.rs b/openssl-sys/src/pem.rs
new file mode 100644
index 00000000..1a06b969
--- /dev/null
+++ b/openssl-sys/src/pem.rs
@@ -0,0 +1,137 @@
+use libc::*;
+
+use *;
+
+pub type pem_password_cb =
+ Option<unsafe extern "C" fn(buf: *mut c_char, size: c_int, rwflag: c_int, user_data: *mut c_void)
+ -> c_int>;
+
+extern "C" {
+ pub fn PEM_read_bio_X509(
+ bio: *mut BIO,
+ out: *mut *mut X509,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut X509;
+ pub fn PEM_write_bio_X509(bio: *mut BIO, x509: *mut X509) -> c_int;
+ pub fn PEM_read_bio_X509_REQ(
+ bio: *mut BIO,
+ out: *mut *mut X509_REQ,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut X509_REQ;
+ pub fn PEM_write_bio_X509_REQ(bio: *mut BIO, x509: *mut X509_REQ) -> c_int;
+ pub fn PEM_read_bio_RSAPrivateKey(
+ bio: *mut BIO,
+ rsa: *mut *mut RSA,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut RSA;
+ pub fn PEM_write_bio_RSAPrivateKey(
+ bp: *mut BIO,
+ rsa: *mut RSA,
+ cipher: *const EVP_CIPHER,
+ kstr: *mut c_uchar,
+ klen: c_int,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> c_int;
+ pub fn PEM_read_bio_RSAPublicKey(
+ bio: *mut BIO,
+ rsa: *mut *mut RSA,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut RSA;
+ pub fn PEM_write_bio_RSAPublicKey(bp: *mut BIO, rsa: *const RSA) -> c_int;
+ pub fn PEM_read_bio_RSA_PUBKEY(
+ bio: *mut BIO,
+ rsa: *mut *mut RSA,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut RSA;
+ pub fn PEM_write_bio_RSA_PUBKEY(bp: *mut BIO, rsa: *mut RSA) -> c_int;
+ pub fn PEM_read_bio_DSAPrivateKey(
+ bp: *mut BIO,
+ dsa: *mut *mut DSA,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut DSA;
+ pub fn PEM_write_bio_DSAPrivateKey(
+ bp: *mut BIO,
+ dsa: *mut DSA,
+ cipher: *const EVP_CIPHER,
+ kstr: *mut c_uchar,
+ klen: c_int,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> c_int;
+ pub fn PEM_read_bio_DSA_PUBKEY(
+ bp: *mut BIO,
+ dsa: *mut *mut DSA,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut DSA;
+ pub fn PEM_write_bio_DSA_PUBKEY(bp: *mut BIO, dsa: *mut DSA) -> c_int;
+ pub fn PEM_read_bio_ECPrivateKey(
+ bio: *mut BIO,
+ key: *mut *mut EC_KEY,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut EC_KEY;
+ pub fn PEM_write_bio_ECPrivateKey(
+ bio: *mut BIO,
+ key: *mut EC_KEY,
+ cipher: *const EVP_CIPHER,
+ kstr: *mut c_uchar,
+ klen: c_int,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> c_int;
+ pub fn PEM_read_bio_DHparams(
+ bio: *mut BIO,
+ out: *mut *mut DH,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut DH;
+ pub fn PEM_write_bio_DHparams(bio: *mut BIO, x: *const DH) -> c_int;
+ pub fn PEM_read_bio_PrivateKey(
+ bio: *mut BIO,
+ out: *mut *mut EVP_PKEY,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut EVP_PKEY;
+ pub fn PEM_write_bio_PrivateKey(
+ bio: *mut BIO,
+ pkey: *mut EVP_PKEY,
+ cipher: *const EVP_CIPHER,
+ kstr: *mut c_uchar,
+ klen: c_int,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> c_int;
+ pub fn PEM_read_bio_PUBKEY(
+ bio: *mut BIO,
+ out: *mut *mut EVP_PKEY,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> *mut EVP_PKEY;
+ pub fn PEM_write_bio_PUBKEY(bp: *mut BIO, x: *mut EVP_PKEY) -> c_int;
+
+ pub fn PEM_write_bio_PKCS8PrivateKey(
+ bio: *mut BIO,
+ pkey: *mut EVP_PKEY,
+ cipher: *const EVP_CIPHER,
+ kstr: *mut c_char,
+ klen: c_int,
+ callback: pem_password_cb,
+ user_data: *mut c_void,
+ ) -> c_int;
+ pub fn d2i_PKCS8PrivateKey_bio(
+ bp: *mut BIO,
+ x: *mut *mut EVP_PKEY,
+ cb: pem_password_cb,
+ u: *mut c_void,
+ ) -> *mut EVP_PKEY;
+}
+
+pub const PEM_R_NO_START_LINE: c_int = 108;