diff options
| author | Andrei Oprisan <[email protected]> | 2016-10-04 12:00:40 +0300 |
|---|---|---|
| committer | Andrei Oprisan <[email protected]> | 2016-10-05 14:39:11 +0300 |
| commit | f16cd5586f554530aa1511a7586ed7d3b4642235 (patch) | |
| tree | fdfe49c797129947ad207c9a24a68f08fea32f4e /openssl/src/macros.rs | |
| parent | Merge pull request #458 from manuels/patch-1 (diff) | |
| download | rust-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.rs | 23 |
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) + } + }) +} |