Commit 96b1ef82 authored by David Weinstein's avatar David Weinstein
Browse files

Add `"x509_expiry"` feature flag

- fix return of `ASN1_TIME_print`
- assert on null `date`
parent 32a4e2ba
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -625,7 +625,7 @@ 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;
    pub fn ASN1_TIME_free(tm: *mut ASN1_TIME);
    pub fn ASN1_TIME_print(b: *mut BIO, tm: *const ASN1_TIME);
    pub fn ASN1_TIME_print(b: *mut BIO, tm: *const ASN1_TIME) -> c_int;

    pub fn BIO_ctrl(b: *mut BIO, cmd: c_int, larg: c_long, parg: *mut c_void) -> c_long;
    pub fn BIO_free_all(b: *mut BIO);
+1 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ hmac_clone = ["openssl-sys/hmac_clone"]
c_helpers = ["gcc"]
x509_clone = ["c_helpers"]
x509_generator_request = ["c_helpers"]
x509_expiry = ["c_helpers"]
ssl_context_clone = ["c_helpers"]
hmac = ["c_helpers"]
dh_from_params = ["c_helpers"]
+1 −1
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ impl<'a> fmt::Display for Asn1TimeRef<'a> {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        let mem_bio = try!(MemBio::new());
        let as_str = unsafe {
            ffi::ASN1_TIME_print(mem_bio.as_ptr(), self.0);
            try_ssl!(ffi::ASN1_TIME_print(mem_bio.as_ptr(), self.0));
            String::from_utf8_unchecked(mem_bio.get_buf().to_owned())
        };
        write!(f, "{}", as_str)
+2 −2
Original line number Diff line number Diff line
@@ -15,11 +15,11 @@ STACK_OF(X509_EXTENSION) *rust_0_8_X509_get_extensions(X509 *x) {
    return x->cert_info ? x->cert_info->extensions : NULL;
}

ASN1_TIME* rust_0_8_X509_get_notAfter_shim(X509 *x) {
ASN1_TIME* rust_0_8_X509_get_notAfter(X509 *x) {
  return X509_get_notAfter(x);
}

ASN1_TIME* rust_0_8_X509_get_notBefore_shim(X509 *x) {
ASN1_TIME* rust_0_8_X509_get_notBefore(X509 *x) {
  return X509_get_notBefore(x);
}

+4 −0
Original line number Diff line number Diff line
@@ -434,17 +434,21 @@ impl<'a> X509Ref<'a> {
    }

    /// Returns Issuer validity notAfter
    #[cfg(feature = "x509_expiry")]
    pub fn not_after(&self) -> Asn1TimeRef {
        unsafe {
            let date = ::c_helpers::rust_0_8_X509_get_notAfter(self.0);
            assert!(!date.is_null());
            Asn1TimeRef::from_ptr(date)
        }
    }

    /// Returns Issuer validity notBefore
    #[cfg(feature = "x509_expiry")]
    pub fn not_before(&self) -> Asn1TimeRef {
        unsafe {
            let date = ::c_helpers::rust_0_8_X509_get_notBefore(self.0);
            assert!(!date.is_null());
            Asn1TimeRef::from_ptr(date)
        }
    }