diff options
| author | Brian Chin <[email protected]> | 2017-01-30 10:19:06 -0800 |
|---|---|---|
| committer | Brian Chin <[email protected]> | 2017-01-30 15:04:44 -0800 |
| commit | 20eed1e762f01ddac0a46b6471105dca8284ff8b (patch) | |
| tree | 5d4bcf1884a0d9eca62c9f1ebfe96c57cb1136e0 /openssl/src/rsa.rs | |
| parent | Testing first version that works with signer. (diff) | |
| download | rust-openssl-20eed1e762f01ddac0a46b6471105dca8284ff8b.tar.xz rust-openssl-20eed1e762f01ddac0a46b6471105dca8284ff8b.zip | |
Simplify code, so that openssl-sys really doesn't contain anything aside
from bindings
Diffstat (limited to 'openssl/src/rsa.rs')
| -rw-r--r-- | openssl/src/rsa.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/openssl/src/rsa.rs b/openssl/src/rsa.rs index 75893545..63ed874a 100644 --- a/openssl/src/rsa.rs +++ b/openssl/src/rsa.rs @@ -344,10 +344,19 @@ mod compat { } } +// EVP_PKEY_CTX_ctrl macros +unsafe fn pkey_ctx_set_rsa_padding(ctx: *mut ffi::EVP_PKEY_CTX, pad: c_int) -> c_int { + ffi::EVP_PKEY_CTX_ctrl(ctx, ffi::EVP_PKEY_RSA, -1, ffi::RSA_PKEY_CTRL_RSA_PADDING, pad, ptr::null_mut()) +} + +unsafe fn pkey_ctx_get_rsa_padding(ctx: *mut ffi::EVP_PKEY_CTX, ppad: *mut c_int) -> c_int { + ffi::EVP_PKEY_CTX_ctrl(ctx, ffi::EVP_PKEY_RSA, -1, ffi::RSA_PKEY_CTRL_GET_RSA_PADDING, 0, ppad as *mut c_void) +} + 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.0))); + try!(cvt(pkey_ctx_set_rsa_padding(self.as_ptr(), pad.0))); } Ok(()) } @@ -355,7 +364,7 @@ impl PKeyCtxRef { pub fn get_rsa_padding(&mut 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))); + try!(cvt(pkey_ctx_get_rsa_padding(self.as_ptr(), &mut pad))); }; Ok(Padding(pad)) } |