pub struct CertificateRevocationList { /* private fields */ }
Expand description

A certificate revocation list (CRL)

§Example

extern crate rcgen;
use rcgen::*;

#[cfg(not(feature = "crypto"))]
struct MyKeyPair { public_key: Vec<u8> }
#[cfg(not(feature = "crypto"))]
impl RemoteKeyPair for MyKeyPair {
  fn public_key(&self) -> &[u8] { &self.public_key }
  fn sign(&self, _: &[u8]) -> Result<Vec<u8>, rcgen::Error> { Ok(vec![]) }
  fn algorithm(&self) -> &'static SignatureAlgorithm { &PKCS_ED25519 }
}
// Generate a CRL issuer.
let mut issuer_params = CertificateParams::new(vec!["crl.issuer.example.com".to_string()]).unwrap();
issuer_params.serial_number = Some(SerialNumber::from(9999));
issuer_params.is_ca = IsCa::Ca(BasicConstraints::Unconstrained);
issuer_params.key_usages = vec![KeyUsagePurpose::KeyCertSign, KeyUsagePurpose::DigitalSignature, KeyUsagePurpose::CrlSign];
#[cfg(feature = "crypto")]
let key_pair = KeyPair::generate().unwrap();
#[cfg(not(feature = "crypto"))]
let remote_key_pair = MyKeyPair { public_key: vec![] };
#[cfg(not(feature = "crypto"))]
let key_pair = KeyPair::from_remote(Box::new(remote_key_pair)).unwrap();
let issuer = issuer_params.self_signed(&key_pair).unwrap();
// Describe a revoked certificate.
let revoked_cert = RevokedCertParams{
  serial_number: SerialNumber::from(9999),
  revocation_time: date_time_ymd(2024, 06, 17),
  reason_code: Some(RevocationReason::KeyCompromise),
  invalidity_date: None,
};
// Create a CRL signed by the issuer, revoking revoked_cert.
let crl = CertificateRevocationListParams{
  this_update: date_time_ymd(2023, 06, 17),
  next_update: date_time_ymd(2024, 06, 17),
  crl_number: SerialNumber::from(1234),
  issuing_distribution_point: None,
  revoked_certs: vec![revoked_cert],
  #[cfg(feature = "crypto")]
  key_identifier_method: KeyIdMethod::Sha256,
  #[cfg(not(feature = "crypto"))]
  key_identifier_method: KeyIdMethod::PreSpecified(vec![]),
}.signed_by(&issuer, &key_pair).unwrap();

Implementations§

source§

impl CertificateRevocationList

source

pub fn params(&self) -> &CertificateRevocationListParams

Returns the certificate revocation list (CRL) parameters.

source

pub fn pem(&self) -> Result<String, Error>

Available on crate feature pem only.

Get the CRL in PEM encoded format.

source

pub fn der(&self) -> &CertificateRevocationListDer<'static>

Get the CRL in DER encoded format.

CertificateRevocationListDer implements Deref<Target = [u8]> and AsRef<[u8]>, so you can easily extract the DER bytes from the return value.

Trait Implementations§

source§

impl From<CertificateRevocationList> for CertificateRevocationListDer<'static>

source§

fn from(crl: CertificateRevocationList) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

source§

fn implicit( self, class: Class, constructed: bool, tag: u32 ) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.