Skip to content

Commit

Permalink
Merge pull request #69 from vhbit/bn-zero-fix
Browse files Browse the repository at this point in the history
Fixes #68: error on linking `bn_is_zero`
  • Loading branch information
sfackler committed Oct 7, 2014
2 parents 40c6948 + 9dd8ce9 commit e4b8b5e
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 6 deletions.
11 changes: 8 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
ifneq ($(findstring i686,$(TARGET)),)
CFLAGS += -m32
else
CFLAGS += -m64
endif

default:
rm -f $(OUT_DIR)/bin_is_zero.o
$(CC) -O -shared native/bn_is_zero.c -o bn_is_zero.o
mv bn_is_zero.o $(OUT_DIR)
$(CC) $(CFLAGS) -c native/bn_is_zero.c -o $(OUT_DIR)/bn_is_zero.o
$(AR) crus $(OUT_DIR)/libwrapped.a $(OUT_DIR)/bn_is_zero.o
9 changes: 6 additions & 3 deletions src/ffi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
13 changes: 13 additions & 0 deletions src/ssl/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}

0 comments on commit e4b8b5e

Please sign in to comment.