summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openssl-sys/src/pem.rs3
-rw-r--r--openssl/src/pkey.rs6
2 files changed, 7 insertions, 2 deletions
diff --git a/openssl-sys/src/pem.rs b/openssl-sys/src/pem.rs
index 7dc37b59..c7d79773 100644
--- a/openssl-sys/src/pem.rs
+++ b/openssl-sys/src/pem.rs
@@ -141,6 +141,9 @@ extern "C" {
bp: *mut BIO,
x: *mut *mut PKCS8_PRIV_KEY_INFO,
) -> *mut PKCS8_PRIV_KEY_INFO;
+ pub fn PKCS8_PRIV_KEY_INFO_free(
+ p8inf: *mut PKCS8_PRIV_KEY_INFO,
+ );
pub fn PEM_read_bio_PKCS7(
bio: *mut BIO,
diff --git a/openssl/src/pkey.rs b/openssl/src/pkey.rs
index bcbfc385..b5a12bf7 100644
--- a/openssl/src/pkey.rs
+++ b/openssl/src/pkey.rs
@@ -538,8 +538,10 @@ impl PKey<Private> {
bio.as_ptr(),
ptr::null_mut(),
))?;
- cvt_p(ffi::EVP_PKCS82PKEY(p8inf))
- .map(|p| PKey::from_ptr(p))
+ let res = cvt_p(ffi::EVP_PKCS82PKEY(p8inf))
+ .map(|p| PKey::from_ptr(p));
+ ffi::PKCS8_PRIV_KEY_INFO_free(p8inf);
+ res
}
}