diff options
| author | Steven Fackler <[email protected]> | 2017-01-31 14:55:11 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-01-31 14:55:11 -0800 |
| commit | 7bd90dcb18ac9dccbbd68d7b5d0ace704dcc8447 (patch) | |
| tree | a6614602603c645617e15286f9fc92385e651735 /openssl/src/pkey.rs | |
| parent | Merge pull request #569 from sfackler/expando (diff) | |
| parent | Fixed constant names from openssl/rsa.h (diff) | |
| download | rust-openssl-7bd90dcb18ac9dccbbd68d7b5d0ace704dcc8447.tar.xz rust-openssl-7bd90dcb18ac9dccbbd68d7b5d0ace704dcc8447.zip | |
Merge pull request #570 from brianchin/add_evp_pkey_ctx_ctrl
Add PKey context options
Diffstat (limited to 'openssl/src/pkey.rs')
| -rw-r--r-- | openssl/src/pkey.rs | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/openssl/src/pkey.rs b/openssl/src/pkey.rs index 7a32692b..c9f5ec1b 100644 --- a/openssl/src/pkey.rs +++ b/openssl/src/pkey.rs @@ -8,7 +8,7 @@ use bio::MemBioSlice; use dh::Dh; use dsa::Dsa; use ec::EcKey; -use rsa::Rsa; +use rsa::{Rsa, Padding}; use error::ErrorStack; use util::{CallbackState, invoke_passwd_cb_old}; use types::{OpenSslType, OpenSslTypeRef}; @@ -151,6 +151,29 @@ impl PKey { } } +pub struct PKeyCtxRef(::util::Opaque); + +impl PKeyCtxRef { + pub fn set_rsa_padding(&mut self, pad: Padding) -> Result<(), ErrorStack> { + unsafe { + try!(cvt(ffi::EVP_PKEY_CTX_set_rsa_padding(self.as_ptr(), pad.as_raw()))); + } + Ok(()) + } + + pub fn rsa_padding(&self) -> Result<Padding, ErrorStack> { + let mut pad: c_int = 0; + unsafe { + try!(cvt(ffi::EVP_PKEY_CTX_get_rsa_padding(self.as_ptr(), &mut pad))); + }; + Ok(Padding::from_raw(pad)) + } +} + +impl ::types::OpenSslTypeRef for PKeyCtxRef { + type CType = ffi::EVP_PKEY_CTX; +} + #[cfg(test)] mod tests { use symm::Cipher; |