#[non_exhaustive]pub enum CertificateError {
Show 13 variants
BadEncoding,
Expired,
NotValidYet,
Revoked,
UnhandledCriticalExtension,
UnknownIssuer,
UnknownRevocationStatus,
ExpiredRevocationList,
BadSignature,
NotValidForName,
InvalidPurpose,
ApplicationVerificationFailure,
Other(OtherError),
}
Expand description
The ways in which certificate validators can express errors.
Note that the rustls TLS protocol code interprets specifically these error codes to send specific TLS alerts. Therefore, if a custom certificate validator uses incorrect errors the library as a whole will send alerts that do not match the standard (this is usually a minor issue, but could be misleading).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
BadEncoding
The certificate is not correctly encoded.
Expired
The current time is after the notAfter
time in the certificate.
NotValidYet
The current time is before the notBefore
time in the certificate.
Revoked
The certificate has been revoked.
UnhandledCriticalExtension
The certificate contains an extension marked critical, but it was not processed by the certificate validator.
UnknownIssuer
The certificate chain is not issued by a known root certificate.
UnknownRevocationStatus
The certificate’s revocation status could not be determined.
ExpiredRevocationList
The certificate’s revocation status could not be determined, because the CRL is expired.
BadSignature
A certificate is not correctly signed by the key of its alleged issuer.
NotValidForName
The subject names in an end-entity certificate do not include the expected name.
InvalidPurpose
The certificate is being used for a different purpose than allowed.
ApplicationVerificationFailure
The certificate is valid, but the handshake is rejected for other reasons.
Other(OtherError)
Any other error.
This can be used by custom verifiers to expose the underlying error (where they are not better described by the more specific errors above).
It is also used by the default verifier in case its error is not covered by the above common cases.
Enums holding this variant will never compare equal to each other.
Trait Implementations§
Source§impl Clone for CertificateError
impl Clone for CertificateError
Source§fn clone(&self) -> CertificateError
fn clone(&self) -> CertificateError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for CertificateError
impl Debug for CertificateError
Source§impl From<CertificateError> for AlertDescription
impl From<CertificateError> for AlertDescription
Source§fn from(e: CertificateError) -> Self
fn from(e: CertificateError) -> Self
Source§impl From<CertificateError> for Error
impl From<CertificateError> for Error
Source§fn from(e: CertificateError) -> Self
fn from(e: CertificateError) -> Self
Source§impl PartialEq for CertificateError
impl PartialEq for CertificateError
Auto Trait Implementations§
impl Freeze for CertificateError
impl !RefUnwindSafe for CertificateError
impl Send for CertificateError
impl Sync for CertificateError
impl Unpin for CertificateError
impl !UnwindSafe for CertificateError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes
Size for each variant:
BadEncoding
: 0 bytesExpired
: 0 bytesNotValidYet
: 0 bytesRevoked
: 0 bytesUnhandledCriticalExtension
: 0 bytesUnknownIssuer
: 0 bytesUnknownRevocationStatus
: 0 bytesExpiredRevocationList
: 0 bytesBadSignature
: 0 bytesNotValidForName
: 0 bytesInvalidPurpose
: 0 bytesApplicationVerificationFailure
: 0 bytesOther
: 16 bytes