aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/rsa.rs
diff options
context:
space:
mode:
authorBrian Chin <[email protected]>2017-01-30 10:19:06 -0800
committerBrian Chin <[email protected]>2017-01-30 15:04:44 -0800
commit20eed1e762f01ddac0a46b6471105dca8284ff8b (patch)
tree5d4bcf1884a0d9eca62c9f1ebfe96c57cb1136e0 /openssl/src/rsa.rs
parentTesting first version that works with signer. (diff)
downloadrust-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.rs13
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))
}