diff options
author | Murat <m.seker@aol.com> | 2020-08-31 20:19:15 +0200 |
---|---|---|
committer | Murat <m.seker@aol.com> | 2020-08-31 20:23:10 +0200 |
commit | 96575db11d45c3dbe752757923465286042275d0 (patch) | |
tree | f52279a848001093c33a2d06220253d28ae5fee7 | |
parent | 16a0e6f674b529114486d18df42c1b94907ebd3a (diff) | |
download | rust-openssl-96575db11d45c3dbe752757923465286042275d0.zip |
Add from_der and to_der to PKCS7
-rw-r--r-- | openssl-sys/src/pkcs7.rs | 4 | ||||
-rw-r--r-- | openssl/src/pkcs7.rs | 21 |
2 files changed, 25 insertions, 0 deletions
diff --git a/openssl-sys/src/pkcs7.rs b/openssl-sys/src/pkcs7.rs index 454a04df..5aa55ff8 100644 --- a/openssl-sys/src/pkcs7.rs +++ b/openssl-sys/src/pkcs7.rs @@ -29,6 +29,10 @@ pub const PKCS7_REUSE_DIGEST: c_int = 0x8000; pub const PKCS7_NO_DUAL_CONTENT: c_int = 0x10000; extern "C" { + pub fn d2i_PKCS7(a: *mut *mut PKCS7, pp: *mut *const c_uchar, length: c_long) -> *mut PKCS7; + + pub fn i2d_PKCS7(a: *mut PKCS7, buf: *mut *mut u8) -> c_int; + pub fn PKCS7_encrypt( certs: *mut stack_st_X509, b: *mut BIO, diff --git a/openssl/src/pkcs7.rs b/openssl/src/pkcs7.rs index a4d93cf9..7820739c 100644 --- a/openssl/src/pkcs7.rs +++ b/openssl/src/pkcs7.rs @@ -61,6 +61,17 @@ impl Pkcs7 { ffi::PEM_read_bio_PKCS7 } + from_der! { + /// Deserializes a DER-encoded PKCS#7 signature + /// + /// This corresponds to [`d2i_PKCS7`]. + /// + /// [`d2i_PKCS7`]: https://www.openssl.org/docs/man1.1.0/man3/d2i_PKCS7.html + from_der, + Pkcs7, + ffi::d2i_PKCS7 + } + /// Parses a message in S/MIME format. /// /// Returns the loaded signature, along with the cleartext message (if @@ -181,6 +192,16 @@ impl Pkcs7Ref { ffi::PEM_write_bio_PKCS7 } + to_der! { + /// Serializes the data into a DER-encoded PKCS#7 structure. + /// + /// This corresponds to [`i2d_PKCS7`]. + /// + /// [`i2d_PKCS7`]: https://www.openssl.org/docs/man1.1.0/man3/i2d_PKCS7.html + to_der, + ffi::i2d_PKCS7 + } + /// Decrypts data using the provided private key. /// /// `pkey` is the recipient's private key, and `cert` is the recipient's |