diff options
-rw-r--r-- | openssl-sys/src/pem.rs | 3 | ||||
-rw-r--r-- | openssl/src/pkey.rs | 6 |
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 } } |