Codes d’erreur ​

Les implémentations DAT fournissent des codes d’erreur stables séparément des messages lisibles. Les programmes doivent prendre leurs décisions à partir du code et de la classification de retry, et non en comparant les chaînes de messages.

Format des codes ​

text
DAT_<AREA>_<CAUSE>
PréfixeDomaine
DAT_TOKEN_Chaînes DAT et expiration
DAT_CERT_Chaînes et état des certificats
DAT_SIG_Signatures et vérification
DAT_CRYPTO_Chiffrement et déchiffrement
DAT_KEY_Formats des clés et pouvoirs
DAT_MANAGER_Gestionnaires de certificats
DAT_CONFIG_Arguments d’appel et configuration
DAT_INTERNAL_Composants internes du runtime
DAT_CMS_Synchronisation du client CMS
DAT_AUTH_, DAT_REQ_, DAT_STORE_Serveur CMS

_UNKNOWN n’est utilisé que lorsqu’une erreur ne peut être classée sous aucun autre code de son domaine. Une même cause porte le même nom dans tous les domaines.

Classifications de retry ​

ClassificationSignificationTraitement
TransientPeut réussir lorsque la condition externe se rétablitRéessayer un nombre limité de fois avec backoff
StatePeut réussir après synchronisation des certificats ou changement de l’heureActualiser l’état requis, puis réessayer
PermanentÉchoue à nouveau avec la même entréeCorriger l’entrée, la configuration ou le code

Jetons et certificats ​

DAT_TOKEN_MALFORMEDAucun impactPermanent

Le DAT présente un nombre de champs, une valeur numérique ou une représentation Base64Url invalide. Écartez l’entrée.

DAT_TOKEN_EXPIREDAucun impactPermanent

La date d’expiration du DAT est égale ou antérieure à l’heure actuelle. Obtenez un nouveau DAT.

DAT_CERT_MALFORMEDAucun impactPermanent

La chaîne du certificat présente une structure ou une représentation de champ invalide.

DAT_CERT_NOT_FOUNDAucun impactÉtat

Aucun certificat ne correspond au `cid` du DAT. Vérifiez l’état de synchronisation des certificats.

DAT_CERT_NOT_SYNCEDAucun impactÉtat

Le certificat requis n’est peut-être pas encore parvenu au service. Synchronisez immédiatement, puis réévaluez.

DAT_CERT_NOT_YET_VALIDAucun impactÉtat

L’heure de début du certificat n’est pas encore atteinte. Vérifiez l’horloge système et le calendrier de distribution du certificat.

DAT_CERT_EXPIREDAucun impactPermanent

La période de vérification du certificat est terminée.

DAT_CERT_DUPLICATEPartielPermanent

Le même `cid` apparaît plusieurs fois dans une liste d’importation. Rejetez toute l’importation.

Signatures, chiffrement et clés ​

DAT_SIG_MISMATCHAucun impactPermanentshieldSuspect

La signature ne correspond pas au corps. Le DAT a été modifié ou signé avec une autre clé.

DAT_CRYPTO_TAG_MISMATCHAucun impactPermanentshieldSuspect

Le tag d’authentification AES-GCM ne correspond pas. Recherchez une altération du ciphertext ou une incompatibilité de certificat.

DAT_KEY_INVALIDAucun impactPermanent

La longueur, le format de la clé ou la combinaison d’algorithmes est invalide.

DAT_SIG_KEY_MISSINGAucun impactPermanent

Une tentative d’émission de DAT a été effectuée avec un certificat verify-only. Un service d’émission nécessite un certificat complet.

DAT_SIG_MISMATCH et DAT_CRYPTO_TAG_MISMATCH sont les erreurs classées comme true par l’API publique d’événements de sécurité. Une seule entrée invalide n’est pas une panne de service, mais des occurrences répétées doivent être considérées comme une observation de sécurité.

Gestionnaires et configuration ​

DAT_MANAGER_NO_CERTIFICATEPartielÉtat

Le gestionnaire ne possède aucun certificat. Importez des certificats ou terminez la synchronisation CMS.

DAT_MANAGER_NO_ISSUABLE_CERTIFICATEPartielÉtat

Le gestionnaire possède des certificats, mais aucun certificat complet n’est actuellement utilisable pour l’émission. Examinez la cause chain pour l’expiration, l’heure de début ou l’état verify-only.

DAT_CONFIG_ARGUMENT_INVALIDAucun impactPermanent

Un argument d’appel ou une valeur de configuration se trouve hors de sa plage autorisée.

DAT_INTERNAL_UNAVAILABLECritiquePermanent

Une capacité cryptographique ou réseau requise par la plateforme actuelle est indisponible.

Clients CMS ​

CodeSignificationTraitement habituel
DAT_CMS_URI_INVALIDURI du CMS invalideCorriger la configuration
DAT_CMS_UNAUTHORIZEDÉchec de l’authentificationCorriger le token
DAT_CMS_FORBIDDENLe rôle du token n’a pas l’autorisationVérifier le rôle du token
DAT_CMS_ENDPOINT_NOT_FOUNDLe chemin est absent ou différentVérifier l’URL et le chemin du CMS
DAT_CMS_NETWORKÉchec de connexion ou de transfertVérifier le réseau, puis appliquer un backoff
DAT_CMS_TIMEOUTDélai dépasséAjuster les paramètres réseau et de timeout
DAT_CMS_SERVER_ERRORErreur du serveur CMSVérifier l’état du serveur, puis appliquer un backoff
DAT_CMS_RESPONSE_INVALIDFormat de réponse réussie invalideVérifier le contrat serveur-client
DAT_CMS_VERSION_RESETLa version serveur a reculéVérifier les données CMS et l’état du déploiement
DAT_CMS_IMPORT_FAILEDLes certificats reçus n’ont pas pu être appliquésExaminer la cause chain
DAT_CMS_STOPPEDUn gestionnaire arrêté a été utiliséCréer un nouveau gestionnaire ou corriger l’ordre des appels

Les bibliothèques dont la synchronisation initiale est en best-effort stockent l’erreur dans leur champ last-error. Si le démarrage doit échouer, utilisez l’API de synchronisation immédiate qui renvoie ou lève directement l’erreur.

Serveur CMS ​

CodeHTTPSignification
DAT_AUTH_UNAUTHORIZED401Token absent ou invalide
DAT_AUTH_FORBIDDEN403Le rôle du token n’autorise pas la requête
DAT_REQ_ALG_UNSUPPORTED400Nom d’algorithme non pris en charge
DAT_REQ_NOT_FOUND404·405Chemin ou méthode incorrecte
DAT_REQ_TOO_LARGE413Code réservé à un corps de requête trop volumineux
DAT_STORE_UNAVAILABLE503Stockage temporairement indisponible
DAT_STORE_UNKNOWN500Erreur de traitement du stockage non classée

Les clients actuels n’exposent pas directement le code serveur des réponses JSON non 2xx ; ils convertissent le statut HTTP en code DAT_CMS_*. Les journaux du serveur et les codes d’erreur du client peuvent donc différer.

Accès selon le langage ​

EnvironnementCode d’erreurClassification de retry
Rusterr.code()err.retry()
Godat.Code(err)dat.Retry(err)
JavaScript / TypeScripterror.codeerror.retry
Pythonerror.codeerror.retry
Rubyerror.codeerror.retry
Java / Kotlinerror.codeerror.retry
C#error.Codeerror.Retry
C / C++dat_error_code(error)dat_error_retry(error)

Pour les erreurs accompagnées d’une cause de niveau inférieur, examinez l’exception chain ou l’API d’accès à la cause du langage.