aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/macros.rs
diff options
context:
space:
mode:
Diffstat (limited to 'openssl/src/macros.rs')
-rw-r--r--openssl/src/macros.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/openssl/src/macros.rs b/openssl/src/macros.rs
index 0db3401c..b225f322 100644
--- a/openssl/src/macros.rs
+++ b/openssl/src/macros.rs
@@ -75,3 +75,22 @@ macro_rules! private_key_from_pem {
}
}
}
+
+macro_rules! private_key_to_pem {
+ ($f:path) => {
+ /// Serializes the private key to PEM.
+ pub fn private_key_to_pem(&self) -> Result<Vec<u8>, ::error::ErrorStack> {
+ unsafe {
+ let bio = try!(MemBio::new());
+ try!(cvt($f(bio.as_ptr(),
+ self.as_ptr(),
+ ptr::null(),
+ ptr::null_mut(),
+ -1,
+ None,
+ ptr::null_mut())));
+ Ok(bio.get_buf().to_owned())
+ }
+ }
+ }
+}