aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/macros.rs
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2016-11-13 17:42:45 +0000
committerSteven Fackler <[email protected]>2016-11-13 17:42:45 +0000
commitdf9666c334f29d4d0887919c2b35c45092960d3a (patch)
tree6854bd46f774eab430a2e21e850a61c1900e67d9 /openssl/src/macros.rs
parentMacroise from_der (diff)
downloadrust-openssl-df9666c334f29d4d0887919c2b35c45092960d3a.tar.xz
rust-openssl-df9666c334f29d4d0887919c2b35c45092960d3a.zip
Macroise to_pem
Diffstat (limited to 'openssl/src/macros.rs')
-rw-r--r--openssl/src/macros.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/openssl/src/macros.rs b/openssl/src/macros.rs
index 39944124..a57f36eb 100644
--- a/openssl/src/macros.rs
+++ b/openssl/src/macros.rs
@@ -136,6 +136,33 @@ macro_rules! private_key_to_pem {
}
}
+macro_rules! to_pem_inner {
+ (#[$m:meta] $n:ident, $f:path) => {
+ #[$m]
+ pub fn $n(&self) -> Result<Vec<u8>, ::error::ErrorStack> {
+ unsafe {
+ let bio = try!(::bio::MemBio::new());
+ try!(cvt($f(bio.as_ptr(), self.as_ptr())));
+ Ok(bio.get_buf().to_owned())
+ }
+ }
+ }
+}
+
+macro_rules! public_key_to_pem {
+ ($f:path) => {
+ to_pem_inner!(/// Serializes a public key to PEM.
+ public_key_to_pem, $f);
+ }
+}
+
+macro_rules! to_pem {
+ ($f:path) => {
+ to_pem_inner!(/// Serializes this value to PEM.
+ to_pem, $f);
+ }
+}
+
macro_rules! to_der_inner {
(#[$m:meta] $n:ident, $f:path) => {
#[$m]