#[non_exhaustive]pub enum Error {
Show 44 variants
BadDer,
BadDerTime,
CaUsedAsEndEntity,
CertExpired,
CertNotValidForName,
CertNotValidYet,
CertRevoked,
CrlExpired,
EndEntityUsedAsCa,
ExtensionValueInvalid,
InvalidCertValidity,
InvalidCrlNumber,
InvalidNetworkMaskConstraint,
InvalidSerialNumber,
InvalidCrlSignatureForPublicKey,
InvalidSignatureForPublicKey,
IssuerNotCrlSigner,
MalformedDnsIdentifier,
MalformedExtensions,
MalformedNameConstraint,
MaximumNameConstraintComparisonsExceeded,
MaximumPathBuildCallsExceeded,
MaximumPathDepthExceeded,
MaximumSignatureChecksExceeded,
NameConstraintViolation,
PathLenConstraintViolated,
RequiredEkuNotFound,
SignatureAlgorithmMismatch,
TrailingData(DerTypeId),
UnknownIssuer,
UnknownRevocationStatus,
UnsupportedCertVersion,
UnsupportedCriticalExtension,
UnsupportedCrlIssuingDistributionPoint,
UnsupportedCrlVersion,
UnsupportedDeltaCrl,
UnsupportedIndirectCrl,
UnsupportedNameType,
UnsupportedRevocationReason,
UnsupportedRevocationReasonsPartitioning,
UnsupportedCrlSignatureAlgorithm,
UnsupportedSignatureAlgorithm,
UnsupportedCrlSignatureAlgorithmForPublicKey,
UnsupportedSignatureAlgorithmForPublicKey,
}
Expand description
An error that occurs during certificate validation or name validation.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
BadDer
The encoding of some ASN.1 DER-encoded item is invalid.
BadDerTime
The encoding of an ASN.1 DER-encoded time is invalid.
CaUsedAsEndEntity
A CA certificate is being used as an end-entity certificate.
CertExpired
The certificate is expired; i.e. the time it is being validated for is later than the certificate’s notAfter time.
CertNotValidForName
The certificate is not valid for the name it is being validated for.
CertNotValidYet
The certificate is not valid yet; i.e. the time it is being validated for is earlier than the certificate’s notBefore time.
CertRevoked
The certificate, or one of its issuers, has been revoked.
CrlExpired
The CRL is expired; i.e. the verification time is not before the time in the CRL nextUpdate field.
EndEntityUsedAsCa
An end-entity certificate is being used as a CA certificate.
ExtensionValueInvalid
An X.509 extension is invalid.
InvalidCertValidity
The certificate validity period (notBefore, notAfter) is invalid; e.g. the notAfter time is earlier than the notBefore time.
InvalidCrlNumber
A CRL number extension was invalid:
- it was mis-encoded
- it was negative
- it was too long
InvalidNetworkMaskConstraint
A iPAddress name constraint was invalid:
- it had a sparse network mask (ie, cannot be written in CIDR form).
- it was too long or short
InvalidSerialNumber
A serial number was invalid:
- it was misencoded
- it was negative
- it was too long
InvalidCrlSignatureForPublicKey
The CRL signature is invalid for the issuer’s public key.
InvalidSignatureForPublicKey
The signature is invalid for the given public key.
IssuerNotCrlSigner
A CRL was signed by an issuer that has a KeyUsage bitstring that does not include the cRLSign key usage bit.
MalformedDnsIdentifier
A presented or reference DNS identifier was malformed, potentially containing invalid characters or invalid labels.
MalformedExtensions
The certificate extensions are malformed.
In particular, webpki requires the DNS name(s) be in the subjectAltName extension as required by the CA/Browser Forum Baseline Requirements and as recommended by RFC6125.
MalformedNameConstraint
A name constraint was malformed, potentially containing invalid characters or invalid labels.
MaximumNameConstraintComparisonsExceeded
The maximum number of name constraint comparisons has been reached.
MaximumPathBuildCallsExceeded
The maximum number of internal path building calls has been reached. Path complexity is too great.
MaximumPathDepthExceeded
The path search was terminated because it became too deep.
MaximumSignatureChecksExceeded
The maximum number of signature checks has been reached. Path complexity is too great.
NameConstraintViolation
The certificate violates one or more name constraints.
PathLenConstraintViolated
The certificate violates one or more path length constraints.
RequiredEkuNotFound
The certificate is not valid for the Extended Key Usage for which it is being validated.
SignatureAlgorithmMismatch
The algorithm in the TBSCertificate “signature” field of a certificate does not match the algorithm in the signature of the certificate.
TrailingData(DerTypeId)
Trailing data was found while parsing DER-encoded input for the named type.
UnknownIssuer
A valid issuer for the certificate could not be found.
UnknownRevocationStatus
The certificate’s revocation status could not be determined.
UnsupportedCertVersion
The certificate is not a v3 X.509 certificate.
This error may be also reported if the certificate version field is malformed.
UnsupportedCriticalExtension
The certificate contains an unsupported critical extension.
UnsupportedCrlIssuingDistributionPoint
The CRL contains an issuing distribution point with no distribution point name, or a distribution point name relative to an issuer.
UnsupportedCrlVersion
The CRL is not a v2 X.509 CRL.
The RFC 5280 web PKI profile mandates only version 2 be used. See section 5.1.2.1 for more information.
This error may also be reported if the CRL version field is malformed.
UnsupportedDeltaCrl
The CRL is an unsupported “delta” CRL.
UnsupportedIndirectCrl
The CRL contains unsupported “indirect” entries.
UnsupportedNameType
The ServerName
contained an unsupported type of value.
UnsupportedRevocationReason
The revocation reason is not in the set of supported revocation reasons.
UnsupportedRevocationReasonsPartitioning
The CRL is partitioned by revocation reasons.
UnsupportedCrlSignatureAlgorithm
The signature algorithm for a signature over a CRL is not in the set of supported signature algorithms given.
UnsupportedSignatureAlgorithm
The signature algorithm for a signature is not in the set of supported signature algorithms given.
UnsupportedCrlSignatureAlgorithmForPublicKey
The CRL signature’s algorithm does not match the algorithm of the issuer public key it is being validated for. This may be because the public key algorithm’s OID isn’t recognized (e.g. DSA), or the public key algorithm’s parameters don’t match the supported parameters for that algorithm (e.g. ECC keys for unsupported curves), or the public key algorithm and the signature algorithm simply don’t match (e.g. verifying an RSA signature with an ECC public key).
UnsupportedSignatureAlgorithmForPublicKey
The signature’s algorithm does not match the algorithm of the public key it is being validated for. This may be because the public key algorithm’s OID isn’t recognized (e.g. DSA), or the public key algorithm’s parameters don’t match the supported parameters for that algorithm (e.g. ECC keys for unsupported curves), or the public key algorithm and the signature algorithm simply don’t match (e.g. verifying an RSA signature with an ECC public key).
Trait Implementations§
Source§impl Error for Error
Available on crate feature std
only.
impl Error for Error
std
only.1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
impl Copy for Error
impl Eq for Error
impl StructuralPartialEq for Error
Auto Trait Implementations§
impl Freeze for Error
impl RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnwindSafe for Error
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: 1 byte
Size for each variant:
BadDer
: 0 bytesBadDerTime
: 0 bytesCaUsedAsEndEntity
: 0 bytesCertExpired
: 0 bytesCertNotValidForName
: 0 bytesCertNotValidYet
: 0 bytesCertRevoked
: 0 bytesCrlExpired
: 0 bytesEndEntityUsedAsCa
: 0 bytesExtensionValueInvalid
: 0 bytesInvalidCertValidity
: 0 bytesInvalidCrlNumber
: 0 bytesInvalidNetworkMaskConstraint
: 0 bytesInvalidSerialNumber
: 0 bytesInvalidCrlSignatureForPublicKey
: 0 bytesInvalidSignatureForPublicKey
: 0 bytesIssuerNotCrlSigner
: 0 bytesMalformedDnsIdentifier
: 0 bytesMalformedExtensions
: 0 bytesMalformedNameConstraint
: 0 bytesMaximumNameConstraintComparisonsExceeded
: 0 bytesMaximumPathBuildCallsExceeded
: 0 bytesMaximumPathDepthExceeded
: 0 bytesMaximumSignatureChecksExceeded
: 0 bytesNameConstraintViolation
: 0 bytesPathLenConstraintViolated
: 0 bytesRequiredEkuNotFound
: 0 bytesSignatureAlgorithmMismatch
: 0 bytesTrailingData
: 1 byteUnknownIssuer
: 0 bytesUnknownRevocationStatus
: 0 bytesUnsupportedCertVersion
: 0 bytesUnsupportedCriticalExtension
: 0 bytesUnsupportedCrlIssuingDistributionPoint
: 0 bytesUnsupportedCrlVersion
: 0 bytesUnsupportedDeltaCrl
: 0 bytesUnsupportedIndirectCrl
: 0 bytesUnsupportedNameType
: 0 bytesUnsupportedRevocationReason
: 0 bytesUnsupportedRevocationReasonsPartitioning
: 0 bytesUnsupportedCrlSignatureAlgorithm
: 0 bytesUnsupportedSignatureAlgorithm
: 0 bytesUnsupportedCrlSignatureAlgorithmForPublicKey
: 0 bytesUnsupportedSignatureAlgorithmForPublicKey
: 0 bytes