diff options
author | Sam Scott <sam.scott89@gmail.com> | 2018-10-02 17:22:53 -0400 |
---|---|---|
committer | Sam Scott <sam.scott89@gmail.com> | 2018-10-02 17:25:18 -0400 |
commit | 2dd3736444781d0326ceb61a8aa8ea24deb3794d (patch) | |
tree | 23bc0befa6f80bef15a83da09f05a4cb1da5d2c4 /openssl-sys | |
parent | cd1d1955d9375cb8b5dfe94972c601a24d51dee3 (diff) | |
download | rust-openssl-2dd3736444781d0326ceb61a8aa8ea24deb3794d.zip |
Refactor to match style and add documentation.
Diffstat (limited to 'openssl-sys')
-rw-r--r-- | openssl-sys/src/lib.rs | 2 | ||||
-rw-r--r-- | openssl-sys/src/ossl_typ.rs | 1 | ||||
-rw-r--r-- | openssl-sys/src/pem.rs | 9 | ||||
-rw-r--r-- | openssl-sys/src/pkcs7.rs | 74 |
4 files changed, 86 insertions, 0 deletions
diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs index 4a05ae0b..d400c89f 100644 --- a/openssl-sys/src/lib.rs +++ b/openssl-sys/src/lib.rs @@ -25,6 +25,7 @@ pub use object::*; pub use ocsp::*; pub use ossl_typ::*; pub use pem::*; +pub use pkcs7::*; pub use pkcs12::*; pub use rand::*; pub use rsa::*; @@ -61,6 +62,7 @@ mod object; mod ocsp; mod ossl_typ; mod pem; +mod pkcs7; mod pkcs12; mod rand; mod rsa; diff --git a/openssl-sys/src/ossl_typ.rs b/openssl-sys/src/ossl_typ.rs index 96c4d002..3fcfc5e0 100644 --- a/openssl-sys/src/ossl_typ.rs +++ b/openssl-sys/src/ossl_typ.rs @@ -10,6 +10,7 @@ pub enum ASN1_BIT_STRING {} pub enum ASN1_TIME {} pub enum ASN1_TYPE {} pub enum ASN1_OBJECT {} +pub enum ASN1_OCTET_STRING {} pub enum bio_st {} // FIXME remove cfg_if! { diff --git a/openssl-sys/src/pem.rs b/openssl-sys/src/pem.rs index 1a06b969..1639e643 100644 --- a/openssl-sys/src/pem.rs +++ b/openssl-sys/src/pem.rs @@ -132,6 +132,15 @@ extern "C" { cb: pem_password_cb, u: *mut c_void, ) -> *mut EVP_PKEY; + + pub fn PEM_read_bio_PKCS7( + bio: *mut BIO, + out: *mut *mut PKCS7, + cb: pem_password_cb, + u: *mut c_void, + ) -> *mut PKCS7; + + pub fn PEM_write_bio_PKCS7(bp: *mut BIO, x: *mut PKCS7) -> c_int; } pub const PEM_R_NO_START_LINE: c_int = 108; diff --git a/openssl-sys/src/pkcs7.rs b/openssl-sys/src/pkcs7.rs new file mode 100644 index 00000000..454a04df --- /dev/null +++ b/openssl-sys/src/pkcs7.rs @@ -0,0 +1,74 @@ +use libc::*; + +use *; + +pub enum PKCS7_SIGNED {} +pub enum PKCS7_ENVELOPE {} +pub enum PKCS7_SIGN_ENVELOPE {} +pub enum PKCS7_DIGEST {} +pub enum PKCS7_ENCRYPT {} +pub enum PKCS7 {} + +pub const PKCS7_TEXT: c_int = 0x1; +pub const PKCS7_NOCERTS: c_int = 0x2; +pub const PKCS7_NOSIGS: c_int = 0x4; +pub const PKCS7_NOCHAIN: c_int = 0x8; +pub const PKCS7_NOINTERN: c_int = 0x10; +pub const PKCS7_NOVERIFY: c_int = 0x20; +pub const PKCS7_DETACHED: c_int = 0x40; +pub const PKCS7_BINARY: c_int = 0x80; +pub const PKCS7_NOATTR: c_int = 0x100; +pub const PKCS7_NOSMIMECAP: c_int = 0x200; +pub const PKCS7_NOOLDMIMETYPE: c_int = 0x400; +pub const PKCS7_CRLFEOL: c_int = 0x800; +pub const PKCS7_STREAM: c_int = 0x1000; +pub const PKCS7_NOCRL: c_int = 0x2000; +pub const PKCS7_PARTIAL: c_int = 0x4000; +pub const PKCS7_REUSE_DIGEST: c_int = 0x8000; +#[cfg(not(any(ossl101, ossl102, libressl)))] +pub const PKCS7_NO_DUAL_CONTENT: c_int = 0x10000; + +extern "C" { + pub fn PKCS7_encrypt( + certs: *mut stack_st_X509, + b: *mut BIO, + cipher: *const EVP_CIPHER, + flags: c_int, + ) -> *mut PKCS7; + + pub fn PKCS7_verify( + pkcs7: *mut PKCS7, + certs: *mut stack_st_X509, + store: *mut X509_STORE, + indata: *mut BIO, + out: *mut BIO, + flags: c_int, + ) -> c_int; + + pub fn PKCS7_sign( + signcert: *mut X509, + pkey: *mut EVP_PKEY, + certs: *mut stack_st_X509, + data: *mut BIO, + flags: c_int, + ) -> *mut PKCS7; + + pub fn PKCS7_decrypt( + pkcs7: *mut PKCS7, + pkey: *mut EVP_PKEY, + cert: *mut X509, + data: *mut BIO, + flags: c_int, + ) -> c_int; + + pub fn PKCS7_free(pkcs7: *mut PKCS7); + + pub fn SMIME_write_PKCS7( + out: *mut BIO, + pkcs7: *mut PKCS7, + data: *mut BIO, + flags: c_int, + ) -> c_int; + + pub fn SMIME_read_PKCS7(bio: *mut BIO, bcont: *mut *mut BIO) -> *mut PKCS7; +} |