aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/macros.rs
diff options
context:
space:
mode:
authorAndrei Oprisan <[email protected]>2016-10-04 12:00:40 +0300
committerAndrei Oprisan <[email protected]>2016-10-05 14:39:11 +0300
commitf16cd5586f554530aa1511a7586ed7d3b4642235 (patch)
treefdfe49c797129947ad207c9a24a68f08fea32f4e /openssl/src/macros.rs
parentMerge pull request #458 from manuels/patch-1 (diff)
downloadrust-openssl-f16cd5586f554530aa1511a7586ed7d3b4642235.tar.xz
rust-openssl-f16cd5586f554530aa1511a7586ed7d3b4642235.zip
added try_ssl_size, which handles -1 as error and returns the value otherwise; added RSA private_decrypt and public encrypt
lift_ssl_size Added public/private encrypt/decrypt to RSA from the original commit + tests; added try_ssl_returns_size macro to check for -1 in case of SSL functions which return size
Diffstat (limited to 'openssl/src/macros.rs')
-rw-r--r--openssl/src/macros.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/openssl/src/macros.rs b/openssl/src/macros.rs
index 35221f1c..e2d9cae5 100644
--- a/openssl/src/macros.rs
+++ b/openssl/src/macros.rs
@@ -33,6 +33,17 @@ macro_rules! try_ssl_null{
})
}
+/// Shortcut return with SSL error if last error result is -1
+/// (default for size)
+macro_rules! try_ssl_returns_size{
+ ($e:expr) => (
+ if $e == -1 {
+ return Err(::error::ErrorStack::get().into())
+ } else {
+ $e
+ }
+ )
+}
/// Lifts current SSL error code into Result<(), Error>
/// if expression is true
@@ -57,3 +68,15 @@ macro_rules! lift_ssl_if{
macro_rules! lift_ssl {
($e:expr) => (lift_ssl_if!($e == 0))
}
+
+/// Lifts current SSL error code into Result<(), Error>
+/// if SSL returned -1 (default size error indication)
+macro_rules! lift_ssl_returns_size {
+ ($e:expr) => ( {
+ if $e == -1 {
+ Err(::error::ErrorStack::get().into())
+ } else {
+ Ok($e)
+ }
+ })
+}