NOM¶
X509_STORE_CTX_get_error, X509_STORE_CTX_set_error,
X509_STORE_CTX_get_error_depth, X509_STORE_CTX_get_current_cert,
X509_STORE_CTX_get1_chain, X509_verify_cert_error_string - Lire ou
écrire les informations sur l'état de vérification du
certificat
SYNOPSIS¶
#include <openssl/x509.h>
#include <openssl/x509_vfy.h>
B<int X509_STORE_CTX_get_error(X509_STORE_CTX *>I<ctx>B<);>
B<void X509_STORE_CTX_set_error(X509_STORE_CTX *>I<ctx>B<,int> I<s>B<);>
B<int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *>I<ctx>B<);>
B<X509 * X509_STORE_CTX_get_current_cert(X509_STORE_CTX *>I<ctx>B<);>
B<STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *>I<ctx>B<);>
B<const char *X509_verify_cert_error_string(long> I<n>B<);>
DESCRIPTION¶
Ces fonctions sont généralement appelées après que
X509_verify_cert() a indiqué une erreur ou dans un rappel de
vérification pour déterminer la nature d'une erreur.
X509_STORE_CTX_get_error() renvoie le code d'erreur de
ctx , voir
la section
CODES D'ERREUR pour une description complète de tous
les codes d'erreur.
X509_STORE_CTX_set_error() définit le code d'erreur de
ctx
à
s. Par exemple, il pourrait être utilisé dans un
rappel de vérification pour définir une erreur basée sur
des contrôles supplémentaires.
X509_STORE_CTX_get_error_depth() renvoie la
profondeur de
l'erreur. Il s'agit d'un entier non négatif qui représente
où apparaît l'erreur dans la chaîne du certificat. S'il
est égal à zéro, elle s'est produite dans le certificat
d'entité final, 1 si c'est le certificat qui a signé le
certificat d'entité final, et ainsi de suite.
X509_STORE_CTX_get_current_cert() renvoie le certificat qui a
provoqué l'erreur dans
ctx, ou NULL si aucun certificat n'est
pertinent.
X509_STORE_CTX_get1_chain() renvoie une chaîne de validation
complète si un appel précédent à
X509_verify_cert() est réussi. Si l'appel à
X509_verify_cert() n'est
pas réussi, la chaîne
renvoyée peut être incomplète ou incorrecte. La
chaîne renvoyée persiste après que la structure
ctx est libérée ; quand elle n'est plus
nécessaire, elle doit être libérée à l'aide
de :
sk_X509_pop_free(chain, X509_free);
X509_verify_cert_error_string() renvoie une chaîne d'erreur
lisible pour vérifier l'erreur
n.
VALEURS DE RETOUR¶
X509_STORE_CTX_get_error() renvoie
X509_V_OK ou un code d'erreur.
X509_STORE_CTX_get_error_depth() renvoie une profondeur d'erreur
non-négative.
X509_STORE_CTX_get_current_cert() renvoie le certificat qui a
provoqué l'erreur ou NULL si aucun certificat n'est concerné par
l'erreur.
X509_verify_cert_error_string() renvoie une chaîne d'erreur
lisible pour vérifier l'erreur
n.
CODES D'ERREURS¶
Une liste des codes et messages d'erreur est montrée ci-dessous. Certains
codes d'erreur sont définis mais jamais renvoyés : ce
sont ceux décrits comme
« inutilisés ».
- X509_V_OK: ok
- L'opération a réussi.
- X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer
certificate
- Le certificat émetteur est introuvable : cela arrive si le
certificat émetteur d'un certificat qui n'est pas de confiance est
introuvable.
- X509_V_ERR_UNABLE_TO_GET_CRL: unable to get certificate CRL
- La liste de révocations de certificat est introuvable.
- X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: unable to decrypt
certificate's signature
- La signature de certificat n'a pas pu être
déchiffrée. Cela signifie que la valeur de signature
réelle n'a pas pu être déterminée,
plutôt qu'elle ne correspond pas à la valeur
attendue ; ce n'est significatif que pour les clés RSA.
- X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: unable to decrypt CRL's
signature
- La signature de la liste de révocations de certificat n'a pas pu
être déchiffrée : cela signifie que la valeur
de signature réelle n'a pas pu être
déterminée, plutôt qu'elle ne correspond pas à
la valeur attendue. Inutilisé.
- X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: unable to decode issuer
public key
- La clé publique du certificat SubjectPublicKeyInfo n'a pas pu
être lue.
- X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature
failure
- La signature du certificat est incorrecte.
- X509_V_ERR_CRL_SIGNATURE_FAILURE: CRL signature failure
- La signature du certificat est incorrecte.
- X509_V_ERR_CERT_NOT_YET_VALID: certificate is not yet valid
- Le certificat n'est pas encore valable : la date notBefore
est après la date actuelle.
- X509_V_ERR_CERT_HAS_EXPIRED: certificate has expired
- Le certificat a expiré : c'est parce que la date
notAfter est avant la date actuelle.
- X509_V_ERR_CRL_NOT_YET_VALID: CRL is not yet valid
- La liste de révocations de certificat n'est pas encore
valable.
- X509_V_ERR_CRL_HAS_EXPIRED: CRL has expired
- La liste de révocations de certificat a expiré.
- X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: format error in
certificate's notBefore field
- Le champ notBefore du certificat contient une date incorrecte.
- X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: format error in certificate's
notAfter field
- Le champ notAfter du certificat contient une date incorrecte.
- X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: format error in CRL's
lastUpdate field
- Le champ lastUpdate de la liste de révocations de certificat
contient une date incorrecte.
- X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: format error in CRL's
nextUpdate field
- Le champ nextUpdate de la liste de révocations de certificat
contient une date incorrecte.
- X509_V_ERR_OUT_OF_MEM: out of memory
- Une erreur s'est produite en essayant d'allouer de la mémoire. Cela
ne devrait jamais arriver.
- X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: self signed
certificate
- Le certificat passé est autosigné et le même
certificat est introuvable dans la liste des certificats de
confiance.
- X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: self signed certificate in
certificate chain
- La chaîne de certificats aurait pu être construite en
utilisant des certificats qui ne sont pas de confiance mais le certificat
racine est introuvable localement.
- X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: unable to get local
issuer certificate
- Le certificat émetteur d'un certificat recherché localement
est introuvable. Cela signifie normalement que la liste de certificats de
confiance n'est pas complète.
- X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first
certificate
- Aucune signature n'a pu être vérifiée car la
chaîne ne contient qu'un seul certificat et qu'il n'est pas
autosigné.
- X509_V_ERR_CERT_CHAIN_TOO_LONG: certificate chain too long
- La longueur de la chaîne de certificats est plus grande que la
profondeur maximale fournie. Inutilisé.
- X509_V_ERR_CERT_REVOKED: certificate revoked
- Le certificat a été révoqué.
- X509_V_ERR_INVALID_CA: invalid CA certificate
- Un certificat de l'autorité de certification est incorrect. Soit ce
n'est pas une autorité de certification, soit ses extensions ne
sont pas cohérentes avec la raison fournie.
- X509_V_ERR_PATH_LENGTH_EXCEEDED: path length constraint
exceeded
- Le paramètre de longueur de chemin basicConstraints a
été dépassé.
- X509_V_ERR_INVALID_PURPOSE: unsupported certificate purpose
- Le certificat fourni n'a pas pu être utilisé pour la raison
fournie.
- X509_V_ERR_CERT_UNTRUSTED: certificate not trusted
- Le certificat racine de l'autorité de certification n'est pas
marqué de confiance pour la raison fournie.
- X509_V_ERR_CERT_REJECTED: certificate rejected
- Le certificat racine de l'autorité de certification est
marqué pour rejeter la raison fournie.
- X509_V_ERR_SUBJECT_ISSUER_MISMATCH: subject issuer mismatch
- Le certificat émetteur candidat actuel a été
rejeté car son nom de sujet ne correspondait pas au nom
d'émetteur du certificat actuel. Cela est affiché seulement
quand le débogage du contrôle de l'émetteur est
activé et est utilisé pour la notification d'état. Ce
n'est pas une erreur en soi.
- X509_V_ERR_AKID_SKID_MISMATCH: authority and subject key identifier
mismatch
- Le certificat émetteur candidat actuel a été
rejeté car son identifiant de clé de sujet était
présent et ne correspondait pas à l'identifiant de
clé d'autorité du certificat actuel. Cela est affiché
seulement quand le débogage du contrôle de l'émetteur
est activé et est utilisé pour la notification
d'état. Ce n'est pas une erreur en soi.
- X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: authority and issuer serial
number mismatch
- Le certificat émetteur candidat actuel a été
rejeté car son nom d'émetteur et son numéro de
série étaient présents et ne correspondaient pas
à l'identifiant de clé d'autorité du certificat
actuel. Cela est affiché seulement quand le débogage du
contrôle de l'émetteur est activé et est
utilisé pour la notification d'état. Ce n'est pas une
erreur en soi.
- X509_V_ERR_KEYUSAGE_NO_CERTSIGN:key usage does not include certificate
signing
- Le certificat émetteur candidat actuel a été
rejeté car son extension keyUsage ne permet pas la signature
de certificat. Cela est affiché seulement quand le débogage
du contrôle de l'émetteur est activé et est
utilisé pour la notification d'état. Ce n'est pas une
erreur en soi.
- X509_V_ERR_INVALID_EXTENSION: invalid or inconsistent certificate
extension
- Une extension de certificat a une valeur non valide (par exemple un codage
incorrect) ou une valeur incompatible avec d'autres extensions.
- X509_V_ERR_INVALID_POLICY_EXTENSION: invalid or inconsistent
certificate policy extension
- Une extension des politiques de certificat a une valeur non valide (par
exemple un codage incorrect) ou une valeur incompatible avec d'autres
extensions. Cette erreur se produit uniquement si le traitement de
politique est activé.
- X509_V_ERR_NO_EXPLICIT_POLICY: no explicit policy
- Les drapeaux de vérification ont été activés
pour exiger et expliciter la politique, mais aucune n'était
présente.
- X509_V_ERR_DIFFERENT_CRL_SCOPE: Different CRL scope
- Les seules CRL qui pourraient être trouvées ne correspondent
pas au champ d'application du certificat.
- X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: Unsupported extension
feature
- Une caractéristique d’extension de liste de
révocations de certificat est incorrecte. Inutilisé.
- X509_V_ERR_PERMITTED_VIOLATION: permitted subtree violation
- Une violation de la contrainte de nom s'est produite dans les sous-arbres
autorisés.
- X509_V_ERR_EXCLUDED_VIOLATION: excluded subtree violation
- Une violation de la contrainte de nom s'est produite dans les sous-arbres
exclus.
- X509_V_ERR_SUBTREE_MINMAX: name constraints minimum and maximum not
supported
- Une extension des contraintes de nom de certificat inclut un champ minimum
ou maximum : ce n'est pas pris en charge.
- X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: unsupported name constraint
type
- Un type de contrainte de nom non pris en charge a été
rencontré. OpenSSL ne prend en charge actuellement que les types
nom du répertoire, nom DNS, adresse courriel et URI.
- X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: unsupported or invalid name
constraint syntax
- Le format de la contrainte de nom n'est pas reconnu : par exemple,
un format d'adresse courriel d'une forme qui n'est pas mentionnée
dans la RFC3280. Cela pourrait être causé par une extension
vétuste ou une nouvelle fonction qui n'est pas prise en charge pour
le moment.
- X509_V_ERR_CRL_PATH_VALIDATION_ERROR: CRL path validation
error
- Une erreur s'est produite lors de la tentative pour vérifier le
chemin de la CRL. Cette erreur ne peut se produire que si la
vérification étendue de la liste de révocations de
certificat est activée.
- X509_V_ERR_APPLICATION_VERIFICATION: application verification
failure
- Erreur spécifique à une application. Ce ne sera jamais
renvoyé à moins d'être explicitement défini
par une application.
NOTES¶
Les fonctions ci-dessus doivent être utilisées au lieu de
référencer directement les champs de la structure
X509_VERIFY_CTX.
Dans les versions d'OpenSSL avant 1.0, le certificat actuel renvoyé par
X509_STORE_CTX_get_current_cert() n'est jamais NULL. Les applications
doivent vérifier la valeur de retour avant d'afficher les informations
de débogage concernant le certificat actuel.
Si un code d'erreur non reconnu est transmis à
X509_verify_cert_error_string(), la valeur numérique du code
inconnu est renvoyée dans une mémoire tampon statique. Ce n'est
pas un processus sécurisé, mais n'arrivera jamais sauf si un
code non valide est passé.
VOIR AUSSI¶
X509_verify_cert(3)
HISTORIQUE¶
À préciser
TRADUCTION¶
La traduction de cette page de manuel est maintenue par les membres de la liste
<debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler
toute erreur de traduction par un rapport de bogue sur le paquet
manpages-fr-extra.