pingora_openssl::x509

Struct X509Ref

Source
pub struct X509Ref(/* private fields */);
Expand description

Reference to X509.

Implementations§

Source§

impl X509Ref

Source

pub fn subject_name(&self) -> &X509NameRef

Returns this certificate’s subject name.

This corresponds to X509_get_subject_name.

Source

pub fn subject_name_hash(&self) -> u32

Returns the hash of the certificates subject

This corresponds to X509_subject_name_hash.

Source

pub fn issuer_name(&self) -> &X509NameRef

Returns this certificate’s issuer name.

This corresponds to X509_get_issuer_name.

Source

pub fn issuer_name_hash(&self) -> u32

Returns the hash of the certificates issuer

This corresponds to X509_issuer_name_hash.

Source

pub fn subject_alt_names(&self) -> Option<Stack<GeneralName>>

Returns this certificate’s subject alternative name entries, if they exist.

This corresponds to X509_get_ext_d2i.

Source

pub fn crl_distribution_points(&self) -> Option<Stack<DistPoint>>

Returns this certificate’s CRL distribution points, if they exist.

This corresponds to X509_get_ext_d2i.

Source

pub fn issuer_alt_names(&self) -> Option<Stack<GeneralName>>

Returns this certificate’s issuer alternative name entries, if they exist.

This corresponds to X509_get_ext_d2i.

Source

pub fn authority_info(&self) -> Option<Stack<AccessDescription>>

Returns this certificate’s authority information access entries, if they exist.

This corresponds to X509_get_ext_d2i.

Source

pub fn pathlen(&self) -> Option<u32>

Retrieves the path length extension from a certificate, if it exists.

This corresponds to X509_get_pathlen.

Source

pub fn subject_key_id(&self) -> Option<&Asn1OctetStringRef>

Returns this certificate’s subject key id, if it exists.

This corresponds to X509_get0_subject_key_id.

Source

pub fn authority_key_id(&self) -> Option<&Asn1OctetStringRef>

Returns this certificate’s authority key id, if it exists.

This corresponds to X509_get0_authority_key_id.

Source

pub fn authority_issuer(&self) -> Option<&StackRef<GeneralName>>

Returns this certificate’s authority issuer name entries, if they exist.

This corresponds to X509_get0_authority_issuer.

Source

pub fn authority_serial(&self) -> Option<&Asn1IntegerRef>

Returns this certificate’s authority serial number, if it exists.

This corresponds to X509_get0_authority_serial.

Source

pub fn public_key(&self) -> Result<PKey<Public>, ErrorStack>

This corresponds to X509_get_pubkey.

Source

pub fn digest( &self, hash_type: MessageDigest, ) -> Result<DigestBytes, ErrorStack>

Returns a digest of the DER representation of the certificate.

This corresponds to X509_digest.

Source

pub fn fingerprint( &self, hash_type: MessageDigest, ) -> Result<Vec<u8>, ErrorStack>

👎Deprecated since 0.10.9: renamed to digest
Source

pub fn not_after(&self) -> &Asn1TimeRef

Returns the certificate’s Not After validity period.

This corresponds to X509_getm_notAfter.

Source

pub fn not_before(&self) -> &Asn1TimeRef

Returns the certificate’s Not Before validity period.

This corresponds to X509_getm_notBefore.

Source

pub fn signature(&self) -> &Asn1BitStringRef

Returns the certificate’s signature

This corresponds to X509_get0_signature.

Source

pub fn signature_algorithm(&self) -> &X509AlgorithmRef

Returns the certificate’s signature algorithm.

This corresponds to X509_get0_signature.

Source

pub fn ocsp_responders(&self) -> Result<Stack<OpensslString>, ErrorStack>

Returns the list of OCSP responder URLs specified in the certificate’s Authority Information Access field.

This corresponds to X509_get1_ocsp.

Source

pub fn issued(&self, subject: &X509Ref) -> X509VerifyResult

Checks that this certificate issued subject.

This corresponds to X509_check_issued.

Source

pub fn version(&self) -> i32

Returns certificate version. If this certificate has no explicit version set, it defaults to version 1.

Note that 0 return value stands for version 1, 1 for version 2 and so on.

This corresponds to X509_get_version.

Source

pub fn verify<T>(&self, key: &PKeyRef<T>) -> Result<bool, ErrorStack>
where T: HasPublic,

Check if the certificate is signed using the given public key.

Only the signature is checked: no other checks (such as certificate chain validity) are performed.

Returns true if verification succeeds.

This corresponds to X509_verify.

Source

pub fn serial_number(&self) -> &Asn1IntegerRef

Returns this certificate’s serial number.

This corresponds to X509_get_serialNumber.

Source

pub fn alias(&self) -> Option<&[u8]>

Returns this certificate’s “alias”. This field is populated by OpenSSL in some situations – specifically OpenSSL will store a PKCS#12 friendlyName in this field. This is not a part of the X.509 certificate itself, OpenSSL merely attaches it to this structure in memory.

This corresponds to X509_alias_get0.

Source

pub fn to_pem(&self) -> Result<Vec<u8>, ErrorStack>

Serializes the certificate into a PEM-encoded X509 structure.

The output will have a header of -----BEGIN CERTIFICATE-----.

This corresponds to PEM_write_bio_X509.

Source

pub fn to_der(&self) -> Result<Vec<u8>, ErrorStack>

Serializes the certificate into a DER-encoded X509 structure.

This corresponds to i2d_X509.

Source

pub fn to_text(&self) -> Result<Vec<u8>, ErrorStack>

Converts the certificate to human readable text.

This corresponds to X509_print.

Trait Implementations§

Source§

impl AsRef<X509Ref> for X509

Source§

fn as_ref(&self) -> &X509Ref

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<X509Ref> for X509Ref

Source§

fn as_ref(&self) -> &X509Ref

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<X509Ref> for X509

Source§

fn borrow(&self) -> &X509Ref

Immutably borrows from an owned value. Read more
Source§

impl ForeignTypeRef for X509Ref

Source§

type CType = X509

The raw C type.
Source§

unsafe fn from_ptr<'a>(ptr: *mut Self::CType) -> &'a Self

Constructs a shared instance of this type from its raw type.
Source§

unsafe fn from_ptr_mut<'a>(ptr: *mut Self::CType) -> &'a mut Self

Constructs a mutable reference of this type from its raw type.
Source§

fn as_ptr(&self) -> *mut Self::CType

Returns a raw pointer to the wrapped value.
Source§

impl Ord for X509Ref

Source§

fn cmp(&self, other: &X509Ref) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq<X509> for X509Ref

Source§

fn eq(&self, other: &X509) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<X509Ref> for X509

Source§

fn eq(&self, other: &X509Ref) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq for X509Ref

Source§

fn eq(&self, other: &X509Ref) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd<X509> for X509Ref

Source§

fn partial_cmp(&self, other: &X509) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd<X509Ref> for X509

Source§

fn partial_cmp(&self, other: &X509Ref) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd for X509Ref

Source§

fn partial_cmp(&self, other: &X509Ref) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl ToOwned for X509Ref

Source§

type Owned = X509

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> X509

Creates owned data from borrowed data, usually by cloning. Read more
1.63.0 · Source§

fn clone_into(&self, target: &mut Self::Owned)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl Eq for X509Ref

Source§

impl Send for X509Ref

Source§

impl Sync for X509Ref

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<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>,

Source§

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>,

Source§

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.