diff options
| author | Steven Fackler <[email protected]> | 2016-08-09 22:15:16 -0700 |
|---|---|---|
| committer | Steven Fackler <[email protected]> | 2016-08-09 22:15:16 -0700 |
| commit | 1ac54b06e9c68ecc79e4bb0c4f65296c669a6cc8 (patch) | |
| tree | 30fc7505d0d2165080608a266c9777ce29ced004 /openssl/src | |
| parent | Make c_helpers optional (diff) | |
| download | rust-openssl-1ac54b06e9c68ecc79e4bb0c4f65296c669a6cc8.tar.xz rust-openssl-1ac54b06e9c68ecc79e4bb0c4f65296c669a6cc8.zip | |
Move X509_get_extensions to openssl helpers
Diffstat (limited to 'openssl/src')
| -rw-r--r-- | openssl/src/c_helpers.c | 4 | ||||
| -rw-r--r-- | openssl/src/c_helpers.rs | 1 | ||||
| -rw-r--r-- | openssl/src/x509/mod.rs | 6 | ||||
| -rw-r--r-- | openssl/src/x509/tests.rs | 1 |
4 files changed, 10 insertions, 2 deletions
diff --git a/openssl/src/c_helpers.c b/openssl/src/c_helpers.c index 5b1b9615..f8bc2d0d 100644 --- a/openssl/src/c_helpers.c +++ b/openssl/src/c_helpers.c @@ -7,3 +7,7 @@ void rust_SSL_CTX_clone(SSL_CTX *ctx) { void rust_X509_clone(X509 *x509) { CRYPTO_add(&x509->references,1,CRYPTO_LOCK_X509); } + +STACK_OF(X509_EXTENSION) *rust_X509_get_extensions(X509 *x) { + return x->cert_info ? x->cert_info->extensions : NULL; +} diff --git a/openssl/src/c_helpers.rs b/openssl/src/c_helpers.rs index 3d938192..f074d404 100644 --- a/openssl/src/c_helpers.rs +++ b/openssl/src/c_helpers.rs @@ -4,4 +4,5 @@ use ffi; extern "C" { pub fn rust_SSL_CTX_clone(cxt: *mut ffi::SSL_CTX); pub fn rust_X509_clone(x509: *mut ffi::X509); + pub fn rust_X509_get_extensions(x: *mut ffi::X509) -> *mut ffi::stack_st_X509_EXTENSION; } diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs index b7503e0a..3bdbaa67 100644 --- a/openssl/src/x509/mod.rs +++ b/openssl/src/x509/mod.rs @@ -17,7 +17,6 @@ use crypto::hash::Type as HashType; use crypto::pkey::PKey; use crypto::rand::rand_bytes; use ffi; -use ffi_extras; use nid::Nid; use error::ErrorStack; @@ -346,6 +345,9 @@ impl X509Generator { } /// Obtain a certificate signing request (CSR) + /// + /// Requries the `x509_generator_request` feature. + #[cfg(feature = "x509_generator_request")] pub fn request(&self, p_key: &PKey) -> Result<X509Req, ErrorStack> { let cert = match self.sign(p_key) { Ok(c) => c, @@ -356,7 +358,7 @@ impl X509Generator { let req = ffi::X509_to_X509_REQ(cert.handle(), ptr::null_mut(), ptr::null()); try_ssl_null!(req); - let exts = ffi_extras::X509_get_extensions(cert.handle()); + let exts = ::c_helpers::rust_X509_get_extensions(cert.handle()); if exts != ptr::null_mut() { try_ssl!(ffi::X509_REQ_add_extensions(req, exts)); } diff --git a/openssl/src/x509/tests.rs b/openssl/src/x509/tests.rs index ab480836..c09b31cd 100644 --- a/openssl/src/x509/tests.rs +++ b/openssl/src/x509/tests.rs @@ -69,6 +69,7 @@ fn test_cert_gen_extension_bad_ordering() { } #[test] +#[cfg(feature = "x509_generator_request")] fn test_req_gen() { let pkey = pkey(); |