aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2016-11-03 20:38:51 -0700
committerSteven Fackler <[email protected]>2016-11-03 20:38:51 -0700
commit62a9f89fceca595c1868320974eb74c6a8f33307 (patch)
tree9a8f6d4114e4dafa22646ef34644b6ee1e660eb7
parentFix signature (diff)
downloadrust-openssl-62a9f89fceca595c1868320974eb74c6a8f33307.tar.xz
rust-openssl-62a9f89fceca595c1868320974eb74c6a8f33307.zip
Avoid lhash weirdness
-rw-r--r--openssl-sys/src/lib.rs3
-rw-r--r--openssl-sys/src/ossl10x.rs2
-rw-r--r--openssl-sys/src/ossl110.rs2
-rw-r--r--openssl/src/x509/mod.rs16
-rw-r--r--systest/build.rs2
5 files changed, 13 insertions, 12 deletions
diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs
index ca1148d4..5266b5bc 100644
--- a/openssl-sys/src/lib.rs
+++ b/openssl-sys/src/lib.rs
@@ -23,6 +23,7 @@ pub enum ASN1_TIME {}
pub enum ASN1_TYPE {}
pub enum BN_CTX {}
pub enum BN_GENCB {}
+pub enum CONF {}
pub enum COMP_METHOD {}
pub enum EC_KEY {}
pub enum ENGINE {}
@@ -1676,8 +1677,6 @@ extern {
pub fn X509_STORE_CTX_get_ex_data(ctx: *mut X509_STORE_CTX, idx: c_int) -> *mut c_void;
pub fn X509_STORE_CTX_get_error_depth(ctx: *mut X509_STORE_CTX) -> c_int;
- pub fn X509V3_EXT_conf_nid(conf: *mut c_void, ctx: *mut X509V3_CTX, ext_nid: c_int, value: *mut c_char) -> *mut X509_EXTENSION;
- pub fn X509V3_EXT_conf(conf: *mut c_void, ctx: *mut X509V3_CTX, name: *mut c_char, value: *mut c_char) -> *mut X509_EXTENSION;
pub fn X509V3_set_ctx(ctx: *mut X509V3_CTX, issuer: *mut X509, subject: *mut X509, req: *mut X509_REQ, crl: *mut X509_CRL, flags: c_int);
pub fn X509_REQ_add_extensions(req: *mut X509_REQ, exts: *mut stack_st_X509_EXTENSION) -> c_int;
diff --git a/openssl-sys/src/ossl10x.rs b/openssl-sys/src/ossl10x.rs
index a3f775d0..2b066446 100644
--- a/openssl-sys/src/ossl10x.rs
+++ b/openssl-sys/src/ossl10x.rs
@@ -584,6 +584,8 @@ extern {
pub fn X509_NAME_get_entry(n: *mut ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY;
pub fn X509_NAME_ENTRY_get_data(ne: *mut ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING;
pub fn X509_STORE_CTX_get_chain(ctx: *mut ::X509_STORE_CTX) -> *mut stack_st_X509;
+ pub fn X509V3_EXT_nconf_nid(conf: *mut ::CONF, ctx: *mut ::X509V3_CTX, ext_nid: c_int, value: *mut c_char) -> *mut ::X509_EXTENSION;
+ pub fn X509V3_EXT_nconf(conf: *mut ::CONF, ctx: *mut ::X509V3_CTX, name: *mut c_char, value: *mut c_char) -> *mut ::X509_EXTENSION;
pub fn ASN1_STRING_to_UTF8(out: *mut *mut c_uchar, s: *mut ::ASN1_STRING) -> c_int;
pub fn ASN1_STRING_data(x: *mut ::ASN1_STRING) -> *mut c_uchar;
pub fn CRYPTO_add_lock(pointer: *mut c_int,
diff --git a/openssl-sys/src/ossl110.rs b/openssl-sys/src/ossl110.rs
index 1b0d9f34..a2259fc6 100644
--- a/openssl-sys/src/ossl110.rs
+++ b/openssl-sys/src/ossl110.rs
@@ -63,6 +63,8 @@ extern {
pub fn X509_get_ext_d2i(x: *const ::X509, nid: c_int, crit: *mut c_int, idx: *mut c_int) -> *mut c_void;
pub fn X509_NAME_get_entry(n: *const ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY;
pub fn X509_NAME_ENTRY_get_data(ne: *const ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING;
+ pub fn X509V3_EXT_nconf_nid(conf: *mut ::CONF, ctx: *mut ::X509V3_CTX, ext_nid: c_int, value: *const c_char) -> *mut ::X509_EXTENSION;
+ pub fn X509V3_EXT_nconf(conf: *mut ::CONF, ctx: *mut ::X509V3_CTX, name: *const c_char, value: *const c_char) -> *mut ::X509_EXTENSION;
pub fn ASN1_STRING_to_UTF8(out: *mut *mut c_uchar, s: *const ::ASN1_STRING) -> c_int;
pub fn BN_is_negative(b: *const ::BIGNUM) -> c_int;
pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> c_int;
diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs
index 67760b86..02bdcb01 100644
--- a/openssl/src/x509/mod.rs
+++ b/openssl/src/x509/mod.rs
@@ -213,17 +213,17 @@ impl X509Generator {
let value = CString::new(value.as_bytes()).unwrap();
let ext = match exttype.get_nid() {
Some(nid) => {
- try!(cvt_p(ffi::X509V3_EXT_conf_nid(ptr::null_mut(),
- mem::transmute(&ctx),
- nid.as_raw(),
- value.as_ptr() as *mut c_char)))
+ try!(cvt_p(ffi::X509V3_EXT_nconf_nid(ptr::null_mut(),
+ &mut ctx,
+ nid.as_raw(),
+ value.as_ptr() as *mut c_char)))
}
None => {
let name = CString::new(exttype.get_name().unwrap().as_bytes()).unwrap();
- try!(cvt_p(ffi::X509V3_EXT_conf(ptr::null_mut(),
- mem::transmute(&ctx),
- name.as_ptr() as *mut c_char,
- value.as_ptr() as *mut c_char)))
+ try!(cvt_p(ffi::X509V3_EXT_nconf(ptr::null_mut(),
+ &mut ctx,
+ name.as_ptr() as *mut c_char,
+ value.as_ptr() as *mut c_char)))
}
};
if ffi::X509_add_ext(x509, ext, -1) != 1 {
diff --git a/systest/build.rs b/systest/build.rs
index 8fac5536..38d43995 100644
--- a/systest/build.rs
+++ b/systest/build.rs
@@ -78,8 +78,6 @@ fn main() {
});
cfg.skip_fn(move |s| {
s == "CRYPTO_memcmp" || // uses volatile
- s == "X509V3_EXT_conf_nid" || // weird lhash first param
- s == "X509V3_EXT_conf" || // weird lhash first param
// Skip some functions with function pointers on windows, not entirely
// sure how to get them to work out...