diff options
| author | Steven Fackler <[email protected]> | 2016-11-01 11:06:47 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2016-11-01 11:06:47 -0700 |
| commit | 7bd4fbb6f1874276de9ebd8eefd8eee6e192e297 (patch) | |
| tree | bcfa35bd89950c71bde1a013ca475dc24c87e374 /openssl/src | |
| parent | Avoid extra allocations in Asn1Time Display impl (diff) | |
| parent | Add method to encode a public key as a DER blob (diff) | |
| download | rust-openssl-7bd4fbb6f1874276de9ebd8eefd8eee6e192e297.tar.xz rust-openssl-7bd4fbb6f1874276de9ebd8eefd8eee6e192e297.zip | |
Merge pull request #508 from simias/pkey
Add method to encode a public key as a DER blob
Diffstat (limited to 'openssl/src')
| -rw-r--r-- | openssl/src/pkey.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/openssl/src/pkey.rs b/openssl/src/pkey.rs index 6236b642..4885ad3c 100644 --- a/openssl/src/pkey.rs +++ b/openssl/src/pkey.rs @@ -40,7 +40,7 @@ impl Ref<PKey> { Ok(mem_bio.get_buf().to_owned()) } - /// Stores public key as a PEM + /// Encode public key in PEM format pub fn public_key_to_pem(&self) -> Result<Vec<u8>, ErrorStack> { let mem_bio = try!(MemBio::new()); unsafe { @@ -49,6 +49,15 @@ impl Ref<PKey> { Ok(mem_bio.get_buf().to_owned()) } + /// Encode public key in DER format + pub fn public_key_to_der(&self) -> Result<Vec<u8>, ErrorStack> { + let mem_bio = try!(MemBio::new()); + unsafe { + try!(cvt(ffi::i2d_PUBKEY_bio(mem_bio.as_ptr(), self.as_ptr()))); + } + Ok(mem_bio.get_buf().to_owned()) + } + pub fn public_eq(&self, other: &Ref<PKey>) -> bool { unsafe { ffi::EVP_PKEY_cmp(self.as_ptr(), other.as_ptr()) == 1 } } |