aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2014-10-07 12:14:44 -0400
committerSteven Fackler <[email protected]>2014-10-07 12:14:44 -0400
commite4b8b5e697620a543f1f7fe0183193ea7a45dc93 (patch)
tree61a63011ead6a70ab17e3a9b5705534593a4361f /src
parentMerge pull request #60 from vhbit/cert-gen-cleanup (diff)
parentPotential fix for #68 (diff)
downloadrust-openssl-e4b8b5e697620a543f1f7fe0183193ea7a45dc93.tar.xz
rust-openssl-e4b8b5e697620a543f1f7fe0183193ea7a45dc93.zip
Merge pull request #69 from vhbit/bn-zero-fix
Fixes #68: error on linking `bn_is_zero`
Diffstat (limited to 'src')
-rw-r--r--src/ffi.rs9
-rw-r--r--src/ssl/tests.rs13
2 files changed, 19 insertions, 3 deletions
diff --git a/src/ffi.rs b/src/ffi.rs
index ec53df4b..fcd0d33e 100644
--- a/src/ffi.rs
+++ b/src/ffi.rs
@@ -189,6 +189,12 @@ extern { }
/* Since the openssl BN_is_zero is sometimes a macro, this wrapper is necessary. */
pub unsafe fn BN_is_zero(a: *mut BIGNUM) -> c_int { bn_is_zero(a) }
+/* Special import from native/bn_is_zero.c */
+#[link(name="wrapped")]
+extern "C" {
+ pub fn bn_is_zero(a: *mut BIGNUM) -> c_int;
+}
+
extern "C" {
pub fn ASN1_INTEGER_set(dest: *mut ASN1_INTEGER, value: c_long) -> c_int;
pub fn ASN1_STRING_type_new(ty: c_int) -> *mut ASN1_STRING;
@@ -241,9 +247,6 @@ extern "C" {
pub fn BN_cmp(a: *mut BIGNUM, b: *mut BIGNUM) -> c_int;
pub fn BN_ucmp(a: *mut BIGNUM, b: *mut BIGNUM) -> c_int;
- /* Special import from native/bn_is_zero.c */
- pub fn bn_is_zero(a: *mut BIGNUM) -> c_int;
-
/* Prime handling */
pub fn BN_generate_prime_ex(r: *mut BIGNUM, bits: c_int, safe: c_int, add: *mut BIGNUM, rem: *mut BIGNUM, cb: *const c_void) -> c_int;
pub fn BN_is_prime_ex(p: *mut BIGNUM, checks: c_int, ctx: *mut BN_CTX, cb: *const c_void) -> c_int;
diff --git a/src/ssl/tests.rs b/src/ssl/tests.rs
index 0e6edbf7..50c24b94 100644
--- a/src/ssl/tests.rs
+++ b/src/ssl/tests.rs
@@ -221,3 +221,16 @@ fn test_cert_gen() {
// FIXME: check data in result to be correct, needs implementation
// of X509 getters
}
+
+#[test]
+fn test_bn_is_zero() {
+ use ffi;
+ use std::ptr;
+
+ unsafe {
+ let bn = ffi::BN_new();
+ assert!(bn != ptr::null_mut());
+ // Just make sure it is linked and resolved correctly
+ ffi::BN_is_zero(bn);
+ }
+}