using System;

namespace NFC.Mifare_DESFire
{
    public enum APDUStatusWords : UInt16
    {
        /// <summary> 
        /// Kommando erfolgreich ausgeführt. xx Datenbytes können mit dem ‚GET RESPONSE‘-Kommando abgeholt werden.	Statuswort zur Steuerung des T=0-Protokolls
        /// </summary>
        DATA_READY = 0x6100, 

        /// <summary> 
        /// Die zurückgegebenen Daten können fehlerhaft sein.	 
        /// </summary>
        FAULTY_DATA = 0x6281, 

        /// <summary> 
        /// Da das Dateiende vorher erreicht wurde, konnten nur weniger als Le Bytes gelesen werden.	 
        /// </summary>
        UNEXPECTED_END_OF_FILE = 0x6282, 

        /// <summary> 
        /// Die ausgewählte Datei ist gesperrt (englisch invalidated, wörtlich „ungültig“).	 
        /// </summary>
        INVALIDATED_FILE = 0x6283, 

        /// <summary> 
        /// Die File Control Information (FCI) ist inkonform zu ISO 7816-4.	 
        /// </summary>
        FCI_NOT_CONFORM = 0x6284, 

        /// <summary> 
        /// Warnung; Zustand des nichtflüchtigen Speichers nicht verändert	 
        /// </summary>
        STORAGE_NOT_CHANGED = 0x6200, 

        /// <summary> 
        /// Zähler hat den Wert x erreicht (die genaue Bedeutung ist vom Kommando abhängig)	 
        /// </summary>
        COUNTER_REACHED = 0x63C0, 

        /// <summary> 
        /// Warnung; Zustand des nichtflüchtigen Speichers verändert	 
        /// </summary>
        STORAGE_CHANGED = 0x6300, 

        /// <summary> 
        /// Ausführungsfehler; Zustand des nichtflüchtigen Speichers nicht verändert	 
        /// </summary>
        EXECUTION_ERROR_WITHOUT_CHANGE = 0x6400, 

        /// <summary> 
        /// Speicherfehler	 
        /// </summary>
        MEMORY_ERROR = 0x6581, 

        /// <summary> 
        /// Ausführungsfehler; Zustand des nichtflüchtigen Speichers verändert	 
        /// </summary>
        EXECUTION_ERROR_WITH_CHANGE = 0x6500, 

        /// <summary> 
        /// Befehlslänge (Lc) oder erwartete Antwortlänge (Le) falsch	 
        /// </summary>
        INVALID_LC_LE = 0x6700, 

        /// <summary> 
        /// Funktionen im Class-Byte werden nicht unterstützt	 
        /// </summary>
        CLASS_FEATURE_NOT_SUPPORTED = 0x6800, 

        /// <summary> 
        /// Logische Kanäle werden nicht unterstützt	 
        /// </summary>
        LOGIC_CHANNEL_NOT_SUPPORTED = 0x6881, 

        /// <summary> 
        /// Secure Messaging wird nicht unterstützt	 
        /// </summary>
        SECURE_MESSAGING_NOT_SUPPORTED = 0x6882, 

        /// <summary> 
        /// Kommando nicht erlaubt	 
        /// </summary>
        COMMAND_NOT_ALLOWED = 0x6900, 

        /// <summary> 
        /// Kommando inkompatibel zur Dateistruktur	 
        /// </summary>
        COMMAND_INCOMPATIBLE = 0x6981, 

        /// <summary> 
        /// Sicherheitszustand nicht erfüllt	 
        /// </summary>
        SAFETY_STATUS_NOT_FULFILLED = 0x6982, 

        /// <summary> 
        /// Authentisierungsmethode ist gesperrt	 
        /// </summary>
        AUTHENTICATION_METHOD_LOCKED = 0x6983, 

        /// <summary> 
        /// Referenzierte Daten sind gesperrt	 
        /// </summary>
        REFERENCED_FILE_LOCKED = 0x6984, 

        /// <summary> 
        /// Nutzungsbedingungen sind nicht erfüllt	 
        /// </summary>
        TERMS_OF_SERVICE_NOT_FULFILLED = 0x6985, 

        /// <summary> 
        /// Kommando nicht erlaubt (kein EF selektiert)	 
        /// </summary>
        COMMAND_NOT_ALLOWED_NO_EF_SELECTED = 0x6986, 

        /// <summary> 
        /// Erwartete Secure-Messaging-Objekte nicht gefunden	 
        /// </summary>
        EXPECTED_SECURE_MESSAGING_OBJECTS_NOT_FOUND = 0x6987, 

        /// <summary> 
        /// Secure-Messaging-Datenobjekte sind inkorrekt	 
        /// </summary>
        INVALID_SECURE_MESSAGING_OBJECTS = 0x6988, 

        /// <summary> 
        /// Falsche Parameter P1/P2	 
        /// </summary>
        WRONG_PARAMETERS = 0x6A00, 

        /// <summary> 
        /// Falsche Daten	 
        /// </summary>
        WRONG_DATA = 0x6A80, 

        /// <summary> 
        /// Funktion wird nicht unterstützt	 
        /// </summary>
        FEATURE_NOT_SUPPORTED = 0x6A81, 

        /// <summary> 
        /// Datei wurde nicht gefunden	 
        /// </summary>
        FILE_NOT_FOUND = 0x6A82, 

        /// <summary> 
        /// Datensatz (engl. record) der Datei nicht gefunden	 
        /// </summary>
        RECORD_NOT_FOUND = 0x6A83, 

        /// <summary> 
        /// Nicht genügend Speicherplatz in der Datei	 
        /// </summary>
        INSUFFICIENT_SPACE = 0x6A84, 

        /// <summary> 
        /// Lc nicht konsistent mit der TLV-Struktur	 
        /// </summary>
        LC_TLV_INCONSISTENT = 0x6A85, 

        /// <summary> 
        /// Inkorrekte Parameter P1/P2	 
        /// </summary>
        INCORRECT_PARAMETERs = 0x6A86, 

        /// <summary> 
        /// Lc inkonsistent mit P1/P2	 
        /// </summary>
        LC_PARAMETERS_INCONSISTENT = 0x6A87, 

        /// <summary> 
        /// Referenzierte Daten nicht gefunden	 
        /// </summary>
        REFERENCED_FILE_NOT_FOUND = 0x6A88, 

        /// <summary> 
        /// Parameter P1/P2 falsch	 
        /// </summary>
        WRONG_PARAMETERS_2 = 0x6B00, 

        /// <summary> 
        /// Falsche Länge Le; xx gibt die korrekte Länge an	Statuswort zur Steuerung des T=0-Protokolls
        /// </summary>
        INVALID_LE = 0x6C00, 

        /// <summary> 
        /// Das Kommando (INS) wird nicht unterstützt	 
        /// </summary>
        INSTRUCTION_NOT_SUPPORTED = 0x6D00, 

        /// <summary> 
        /// Die Kommandoklasse (CLA) wird nicht unterstützt	 
        /// </summary>
        CLASS_NOT_SUPPORTED = 0x6E00, 

        /// <summary> 
        /// Kommando wurde mit unbekanntem Fehler abgebrochen	 
        /// </summary>
        UNKNOWN_ERROR = 0x6F00, 

        /// <summary> 
        /// Kommando erfolgreich ausgeführt
        /// </summary>
        SUCCESS = 0x9000,

        /// <summary> 
        /// OK
        /// </summary>
        OK = 0x9100,
    }
}