Loading Makefile +8 −3 Original line number Diff line number Diff line 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 src/ffi.rs +6 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading src/ssl/tests.rs +13 −0 Original line number Diff line number Diff line Loading @@ -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); } } Loading
Makefile +8 −3 Original line number Diff line number Diff line 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
src/ffi.rs +6 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading
src/ssl/tests.rs +13 −0 Original line number Diff line number Diff line Loading @@ -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); } }