Unverified Commit ea075d12 authored by Alex Gaynor's avatar Alex Gaynor Committed by GitHub
Browse files

Merge pull request #2115 from davidben/x509-purpose-get-id

Use X509_PURPOSE_get_id instead of struct access
parents efe619c4 9cafc739
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -702,6 +702,7 @@ pub struct X509_PURPOSE {
const_ptr_api! {
    extern "C" {
        pub fn X509_PURPOSE_get_by_sname(sname: #[const_ptr_if(any(ossl110, libressl280))] c_char) -> c_int;
        pub fn X509_PURPOSE_get_id(purpose: #[const_ptr_if(any(ossl110, libressl280))] X509_PURPOSE) -> c_int;
    }
}
extern "C" {
+9 −3
Original line number Diff line number Diff line
@@ -2538,7 +2538,7 @@ impl X509PurposeRef {
        unsafe {
            let sname = CString::new(sname).unwrap();
            cfg_if! {
                if #[cfg(any(ossl110, libressl280))] {
                if #[cfg(any(ossl110, libressl280, boringssl))] {
                    let purpose = cvt_n(ffi::X509_PURPOSE_get_by_sname(sname.as_ptr() as *const _))?;
                } else {
                    let purpose = cvt_n(ffi::X509_PURPOSE_get_by_sname(sname.as_ptr() as *mut _))?;
@@ -2569,8 +2569,14 @@ impl X509PurposeRef {
    /// - `X509_PURPOSE_TIMESTAMP_SIGN`
    pub fn purpose(&self) -> X509PurposeId {
        unsafe {
            let x509_purpose: *mut ffi::X509_PURPOSE = self.as_ptr();
            X509PurposeId::from_raw((*x509_purpose).purpose)
            cfg_if! {
                if #[cfg(any(ossl110, libressl280, boringssl))] {
                    let x509_purpose = self.as_ptr() as *const ffi::X509_PURPOSE;
                } else {
                    let x509_purpose = self.as_ptr() as *mut ffi::X509_PURPOSE;
                }
            }
            X509PurposeId::from_raw(ffi::X509_PURPOSE_get_id(x509_purpose))
        }
    }
}