Fehlercodes ​

DAT-Implementierungen stellen neben lesbaren Meldungen stabile Fehlercodes bereit. Programme sollen ihr Verhalten anhand des Codes und der Wiederholungsklassifikation festlegen, ohne Meldungstexte zu vergleichen.

Aufbau ​

text
DAT_<Bereich>_<Ursache>
PräfixBereich
DAT_TOKEN_DAT-Zeichenfolge und Ablauf
DAT_CERT_Zertifikat-Zeichenfolge und Zustand
DAT_SIG_Signatur und Prüfung
DAT_CRYPTO_Ver- und Entschlüsselung
DAT_KEY_Schlüsselformat und Berechtigungen
DAT_MANAGER_Zertifikat-Manager
DAT_CONFIG_Aufrufargumente und Konfiguration
DAT_INTERNAL_Interne runtime-Funktionen
DAT_CMS_Synchronisierung des CMS-Clients
DAT_AUTH_, DAT_REQ_, DAT_STORE_CMS-Server

_UNKNOWN wird nur für Fehler verwendet, die sich innerhalb ihres Bereichs keinem anderen Code zuordnen lassen. Dieselbe Ursache verwendet auch in unterschiedlichen Bereichen denselben Namen.

Wiederholungsklassifikation ​

KlassifikationBedeutungBehandlung
VorübergehendKann nach Wiederherstellung eines externen Zustands erfolgreich seinNach einem backoff begrenzt wiederholen
ZustandKann nach Änderung von Zertifikatssynchronisierung oder Zeit erfolgreich seinErforderlichen Zustand aktualisieren und erneut versuchen
DauerhaftSchlägt mit derselben Eingabe erneut fehlEingabe, Konfiguration oder Code korrigieren

Token und Zertifikat ​

DAT_TOKEN_MALFORMEDKeine AuswirkungDauerhaft

Anzahl der DAT-Felder, Zahlen oder Base64Url-Darstellung entsprechen nicht der Spezifikation. Verwerfen Sie die Eingabe.

DAT_TOKEN_EXPIREDKeine AuswirkungDauerhaft

Der Ablaufzeitpunkt des DAT entspricht der aktuellen Zeit oder liegt davor. Ein neuer DAT ist erforderlich.

DAT_CERT_MALFORMEDKeine AuswirkungDauerhaft

Aufbau der Zertifikat-Zeichenfolge oder Darstellung ihrer Felder ist fehlerhaft.

DAT_CERT_NOT_FOUNDKeine AuswirkungZustand

Für die `cid` des DAT ist kein Zertifikat vorhanden. Prüfen Sie den Synchronisierungszustand der Zertifikate.

DAT_CERT_NOT_SYNCEDKeine AuswirkungZustand

Das benötigte Zertifikat ist möglicherweise noch nicht beim Dienst angekommen. Synchronisieren Sie sofort und bewerten Sie den Zustand erneut.

DAT_CERT_NOT_YET_VALIDKeine AuswirkungZustand

Der Startzeitpunkt des Zertifikats ist noch nicht erreicht. Prüfen Sie Systemzeit und Verteilungszeitpunkt des Zertifikats.

DAT_CERT_EXPIREDKeine AuswirkungDauerhaft

Der Prüfzeitraum des Zertifikats ist beendet.

DAT_CERT_DUPLICATETeilweiseDauerhaft

Dieselbe `cid` kommt in einer Importliste mehrfach vor. Der gesamte Import wird abgelehnt.

Signatur, Verschlüsselung und Schlüssel ​

DAT_SIG_MISMATCHKeine AuswirkungDauerhaftshieldVerdächtig

Die Signatur stimmt nicht mit dem Inhalt überein. Der DAT wurde möglicherweise verändert oder mit einem anderen Schlüssel signiert.

DAT_CRYPTO_TAG_MISMATCHKeine AuswirkungDauerhaftshieldVerdächtig

Der AES-GCM-Authentifizierungstag stimmt nicht überein. Prüfen Sie, ob das Chiffrat verändert wurde oder das Zertifikat nicht passt.

DAT_KEY_INVALIDKeine AuswirkungDauerhaft

Länge, Format oder Algorithmuskombination des Schlüssels ist ungültig.

DAT_SIG_KEY_MISSINGKeine AuswirkungDauerhaft

Es wurde versucht, mit einem Zertifikat nur zur Prüfung einen DAT auszustellen. Ausstellende Dienste benötigen ein vollständiges Zertifikat.

DAT_SIG_MISMATCH und DAT_CRYPTO_TAG_MISMATCH werden von der öffentlichen API für Sicherheitsereignisse als zutreffende Fehler klassifiziert. Eine einzelne ungültige Eingabe ist kein Dienstausfall, wiederholtes Auftreten sollte jedoch als mögliches Sicherheitsereignis beobachtet werden.

Manager und Konfiguration ​

DAT_MANAGER_NO_CERTIFICATETeilweiseZustand

Der Manager enthält keine Zertifikate. Importieren Sie Zertifikate oder schließen Sie die CMS-Synchronisierung ab.

DAT_MANAGER_NO_ISSUABLE_CERTIFICATETeilweiseZustand

Zertifikate sind vorhanden, aber aktuell kann kein vollständiges Zertifikat ausstellen. Prüfen Sie in der Ursachenkette Ablauf, Startzeit oder verify-only-Zustand.

DAT_CONFIG_ARGUMENT_INVALIDKeine AuswirkungDauerhaft

Ein Aufrufargument oder Konfigurationswert liegt außerhalb des zulässigen Bereichs.

DAT_INTERNAL_UNAVAILABLEKritischDauerhaft

Die benötigte Kryptografie- oder Netzwerkfunktion ist auf der aktuellen Plattform nicht verfügbar.

CMS-Client ​

CodeBedeutungÜbliche Behandlung
DAT_CMS_URI_INVALIDUngültiges Format der CMS URIKonfiguration korrigieren
DAT_CMS_UNAUTHORIZEDAuthentifizierung fehlgeschlagenToken korrigieren
DAT_CMS_FORBIDDENRolle besitzt keine BerechtigungTokenrolle prüfen
DAT_CMS_ENDPOINT_NOT_FOUNDPfad fehlt oder weicht abCMS-Adresse und Pfad prüfen
DAT_CMS_NETWORKVerbindung oder Übertragung fehlgeschlagenNetzwerk prüfen und backoff anwenden
DAT_CMS_TIMEOUTTimeout überschrittenNetzwerk und Timeouts anpassen
DAT_CMS_SERVER_ERRORFehler des CMS-ServersServerzustand prüfen und backoff anwenden
DAT_CMS_RESPONSE_INVALIDUngültiges Format einer erfolgreichen AntwortVertrag zwischen Server und Client prüfen
DAT_CMS_VERSION_RESETServerversion wurde zurückgesetztCMS-Daten und Bereitstellung prüfen
DAT_CMS_IMPORT_FAILEDEmpfangene Zertifikate konnten nicht angewandt werdenUrsachenkette prüfen
DAT_CMS_STOPPEDBeendeter Manager wurde verwendetNeuen Manager erstellen oder Aufrufreihenfolge korrigieren

Bibliotheken mit best-effort-Synchronisierung beim Start speichern den Fehler im Feld für den letzten Fehler. Soll der Start fehlschlagen, verwenden Sie die API zur sofortigen Synchronisierung, die den Fehler direkt zurückgibt oder auslöst.

CMS-Server ​

CodeHTTPBedeutung
DAT_AUTH_UNAUTHORIZED401Token fehlt oder ist ungültig
DAT_AUTH_FORBIDDEN403Tokenrolle entspricht nicht der angeforderten Berechtigung
DAT_REQ_ALG_UNSUPPORTED400Nicht unterstützter Algorithmusname
DAT_REQ_NOT_FOUND404·405Pfad oder Methode stimmen nicht überein
DAT_REQ_TOO_LARGE413Reservierter Code für Überschreitung des Limits des Anfrageinhalts
DAT_STORE_UNAVAILABLE503Speicher ist vorübergehend nicht verfügbar
DAT_STORE_UNKNOWN500Nicht klassifizierter Fehler bei der Speicherverarbeitung

Derzeit legen Clients den Servercode aus einem nicht erfolgreichen JSON nicht unverändert offen, sondern wandeln den HTTP-Status in einen DAT_CMS_*-Code um. Der Code im Serverprotokoll kann daher vom Clientfehlercode abweichen.

Prüfung nach Sprache ​

UmgebungFehlercodeWiederholungsklassifikation
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)

Fehler mit untergeordneter Ursache lassen sich über die Ausnahmekette oder die API zur Ursachenabfrage der jeweiligen Sprache untersuchen.