Unverified Commit e02d1676 authored by Josh Robson Chase's avatar Josh Robson Chase
Browse files

Cargo fmt and refactor CrlStatus constructor to appease clippy

parent 1645c32f
Loading
Loading
Loading
Loading
+26 −21
Original line number Diff line number Diff line
@@ -1380,6 +1380,30 @@ pub enum CrlStatus<'a> {
    RemoveFromCrl(&'a X509RevokedRef),
}

impl<'a> CrlStatus<'a> {
    // Helper used by the X509_CRL_get0_by_* methods to convert their return
    // value to the status enum.
    // Safety note: the returned CrlStatus must not outlive the owner of the
    // revoked_entry pointer.
    unsafe fn from_ffi_status(
        status: c_int,
        revoked_entry: *mut ffi::X509_REVOKED,
    ) -> CrlStatus<'a> {
        match status {
            0 => CrlStatus::NotRevoked,
            1 => {
                assert!(!revoked_entry.is_null());
                CrlStatus::Revoked(X509RevokedRef::from_ptr(revoked_entry))
            }
            2 => {
                assert!(!revoked_entry.is_null());
                CrlStatus::RemoveFromCrl(X509RevokedRef::from_ptr(revoked_entry))
            }
            _ => unreachable!("X509_CRL_get0_by_{{serial,cert}} should only return 0, 1, or 2."),
        }
    }
}

impl X509Crl {
    from_pem! {
        /// Deserializes a PEM-encoded Certificate Revocation List
@@ -1472,25 +1496,6 @@ impl X509CrlRef {
        }
    }

    // Helper used by the X509_CRL_get0_by_* methods to convert their return value to the status enum
    unsafe fn to_crl_status<'a>(
        status: c_int,
        revoked_entry: *mut ffi::X509_REVOKED,
    ) -> CrlStatus<'a> {
        match status {
            0 => CrlStatus::NotRevoked,
            1 => {
                assert!(!revoked_entry.is_null());
                CrlStatus::Revoked(X509RevokedRef::from_ptr(revoked_entry))
            }
            2 => {
                assert!(!revoked_entry.is_null());
                CrlStatus::RemoveFromCrl(X509RevokedRef::from_ptr(revoked_entry))
            }
            _ => unreachable!("X509_CRL_get0_by_{{serial,cert}} should only return 0, 1, or 2."),
        }
    }

    /// Get the revocation status of a certificate by its serial number
    ///
    /// This corresponds to [`X509_CRL_get0_by_serial`]
@@ -1501,7 +1506,7 @@ impl X509CrlRef {
            let mut ret = ptr::null_mut::<ffi::X509_REVOKED>();
            let status =
                ffi::X509_CRL_get0_by_serial(self.as_ptr(), &mut ret as *mut _, serial.as_ptr());
            Self::to_crl_status(status, ret)
            CrlStatus::from_ffi_status(status, ret)
        }
    }

@@ -1515,7 +1520,7 @@ impl X509CrlRef {
            let mut ret = ptr::null_mut::<ffi::X509_REVOKED>();
            let status =
                ffi::X509_CRL_get0_by_cert(self.as_ptr(), &mut ret as *mut _, cert.as_ptr());
            Self::to_crl_status(status, ret)
            CrlStatus::from_ffi_status(status, ret)
        }
    }

+3 −1
Original line number Diff line number Diff line
@@ -14,7 +14,9 @@ use crate::x509::store::X509StoreBuilder;
use crate::x509::verify::X509VerifyFlags;
#[cfg(ossl110)]
use crate::x509::X509Builder;
use crate::x509::{CrlStatus, X509Crl, X509Name, X509Req, X509StoreContext, X509VerifyResult, X509};
use crate::x509::{
    CrlStatus, X509Crl, X509Name, X509Req, X509StoreContext, X509VerifyResult, X509,
};
use hex::{self, FromHex};

fn pkey() -> PKey<Private> {