pub enum Error {
Show 38 variants
BadDer,
BadDerTime,
CaUsedAsEndEntity,
CertExpired,
CertNotValidForName,
CertNotValidYet,
CertRevoked,
EndEntityUsedAsCa,
ExtensionValueInvalid,
InvalidCertValidity,
InvalidCrlNumber,
InvalidNetworkMaskConstraint,
InvalidSerialNumber,
InvalidCrlSignatureForPublicKey,
InvalidSignatureForPublicKey,
IssuerNotCrlSigner,
MalformedDnsIdentifier,
MalformedExtensions,
MalformedNameConstraint,
MaximumNameConstraintComparisonsExceeded,
MaximumPathBuildCallsExceeded,
MaximumPathDepthExceeded,
MaximumSignatureChecksExceeded,
NameConstraintViolation,
PathLenConstraintViolated,
RequiredEkuNotFound,
SignatureAlgorithmMismatch,
UnknownIssuer,
UnsupportedCertVersion,
UnsupportedCriticalExtension,
UnsupportedCrlVersion,
UnsupportedDeltaCrl,
UnsupportedIndirectCrl,
UnsupportedRevocationReason,
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.
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.
UnknownIssuer
A valid issuer for the certificate could not be found.
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.
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.
UnsupportedRevocationReason
The revocation reason is not in the set of supported 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§
§impl Error for Error
impl Error for Error
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 From<EndOfInput> for Error
impl From<EndOfInput> for Error
§fn from(_: EndOfInput) -> Error
fn from(_: EndOfInput) -> Error
impl Copy for Error
impl Eq for Error
impl StructuralEq for Error
impl StructuralPartialEq for Error
Auto Trait Implementations§
impl RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnwindSafe for Error
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere T: 'a,
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<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.