| /*++ |
| |
| TSS error return codes |
| |
| --*/ |
| |
| #ifndef __TSS_ERROR_H__ |
| #define __TSS_ERROR_H__ |
| |
| #include <tss/platform.h> |
| |
| // |
| // error coding scheme for a Microsoft Windows platform - |
| // refer to the TSS Specification Parts |
| // |
| // Values are 32 bit values layed out as follows: |
| // |
| // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 |
| // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 |
| // +---+-+-+-----------------------+-------+-----------------------+ |
| // |Lev|C|R| Facility | Layer | Code | |
| // +---+-+-+-----------------------+-------+-----------------------+ |
| // | Platform specific coding | TSS error coding system | |
| // +---+-+-+-----------------------+-------+-----------------------+ |
| // |
| // Lev - is the Level code |
| // |
| // 00 - Success |
| // 01 - Informational |
| // 10 - Warning |
| // 11 - Error |
| // |
| // C - is the Customer code flag (must actually be set) |
| // |
| // R - is a reserved bit (unused) |
| // |
| // Facility - is the facility code: TCPA: proposal 0x028 |
| // |
| // Code - is the facility's status code |
| // |
| |
| // |
| // definitions for the code level information |
| // |
| #define TSS_LEVEL_SUCCESS 0x00 // code level success |
| #define TSS_LEVEL_INFO 0x40000000L // code level information |
| #define TSS_LEVEL_WARNING 0x80000000L // code level warning |
| #define TSS_LEVEL_ERROR 0xC0000000L // code level error |
| |
| // |
| // some defines for the platform specific information |
| // |
| #define FACILITY_TSS 0x28L // facility number for TCPA return codes |
| #define FACILITY_TSS_CODEPOS (FACILITY_TSS << 16) // shift the facility info to the code |
| // position |
| |
| #define TSS_CUSTOM_CODEFLAG 0x20000000L // bit position for the custom flag in |
| // return code |
| |
| // |
| // |
| // TSS error return codes |
| // |
| // |
| #ifndef TSS_E_BASE |
| #define TSS_E_BASE 0x00000000L |
| #endif // TSS_E_BASE |
| #ifndef TSS_W_BASE |
| #define TSS_W_BASE 0x00000000L |
| #endif // TSS_W_BASE |
| #ifndef TSS_I_BASE |
| #define TSS_I_BASE 0x00000000L |
| #endif // TSS_I_BASE |
| |
| // |
| // basic error return codes common to all TSS Service Provider Interface methods |
| // and returned by all TSS SW stack components |
| // |
| |
| // |
| // MessageId: TSS_SUCCESS |
| // |
| // MessageText: |
| // |
| // Successful completion of the operation. |
| // |
| #define TSS_SUCCESS 0x00000000L |
| |
| // |
| // MessageId: TSS_E_FAIL |
| // |
| // MessageText: |
| // |
| // An internal error has been detected, but the source is unknown. |
| // |
| #define TSS_E_FAIL (UINT32)(TSS_E_BASE + 0x002L) |
| |
| // |
| // MessageId: TSS_E_BAD_PARAMETER |
| // |
| // MessageText: |
| // |
| // One or more parameter is bad. |
| // |
| #define TSS_E_BAD_PARAMETER (UINT32)(TSS_E_BASE + 0x003L) |
| |
| // |
| // MessageId: TSS_E_INTERNAL_ERROR |
| // |
| // MessageText: |
| // |
| // An internal SW error has been detected. |
| // |
| #define TSS_E_INTERNAL_ERROR (UINT32)(TSS_E_BASE + 0x004L) |
| |
| // |
| // MessageId: TSS_E_OUTOFMEMORY |
| // |
| // MessageText: |
| // |
| // Ran out of memory. |
| // |
| #define TSS_E_OUTOFMEMORY (UINT32)(TSS_E_BASE + 0x005L) |
| |
| // |
| // MessageId: TSS_E_NOTIMPL |
| // |
| // MessageText: |
| // |
| // Not implemented. |
| // |
| #define TSS_E_NOTIMPL (UINT32)(TSS_E_BASE + 0x006L) |
| |
| // |
| // MessageId: TSS_E_KEY_ALREADY_REGISTERED |
| // |
| // MessageText: |
| // |
| // Key is already registered |
| // |
| #define TSS_E_KEY_ALREADY_REGISTERED (UINT32)(TSS_E_BASE + 0x008L) |
| |
| |
| // |
| // MessageId: TSS_E_TPM_UNEXPECTED |
| // |
| // MessageText: |
| // |
| // An unexpected TPM error has occurred. |
| // |
| #define TSS_E_TPM_UNEXPECTED (UINT32)(TSS_E_BASE + 0x010L) |
| |
| // |
| // MessageId: TSS_E_COMM_FAILURE |
| // |
| // MessageText: |
| // |
| // A communications error with the TPM has been detected. |
| // |
| #define TSS_E_COMM_FAILURE (UINT32)(TSS_E_BASE + 0x011L) |
| |
| // |
| // MessageId: TSS_E_TIMEOUT |
| // |
| // MessageText: |
| // |
| // The operation has timed out. |
| // |
| #define TSS_E_TIMEOUT (UINT32)(TSS_E_BASE + 0x012L) |
| |
| // |
| // MessageId: TSS_E_TPM_UNSUPPORTED_FEATURE |
| // |
| // MessageText: |
| // |
| // The TPM does not support the requested feature. |
| // |
| #define TSS_E_TPM_UNSUPPORTED_FEATURE (UINT32)(TSS_E_BASE + 0x014L) |
| |
| // |
| // MessageId: TSS_E_CANCELED |
| // |
| // MessageText: |
| // |
| // The action was canceled by request. |
| // |
| #define TSS_E_CANCELED (UINT32)(TSS_E_BASE + 0x016L) |
| |
| // |
| // MessageId: TSS_E_PS_KEY_NOTFOUND |
| // |
| // MessageText: |
| // |
| // The key cannot be found in the persistent storage database. |
| // |
| #define TSS_E_PS_KEY_NOTFOUND (UINT32)(TSS_E_BASE + 0x020L) |
| // |
| // MessageId: TSS_E_PS_KEY_EXISTS |
| // |
| // MessageText: |
| // |
| // The key already exists in the persistent storage database. |
| // |
| #define TSS_E_PS_KEY_EXISTS (UINT32)(TSS_E_BASE + 0x021L) |
| |
| // |
| // MessageId: TSS_E_PS_BAD_KEY_STATE |
| // |
| // MessageText: |
| // |
| // The key data set not valid in the persistent storage database. |
| // |
| #define TSS_E_PS_BAD_KEY_STATE (UINT32)(TSS_E_BASE + 0x022L) |
| |
| |
| // |
| // error codes returned by specific TSS Service Provider Interface methods |
| // offset TSS_TSPI_OFFSET |
| // |
| |
| // |
| // MessageId: TSS_E_INVALID_OBJECT_TYPE |
| // |
| // MessageText: |
| // |
| // Object type not valid for this operation. |
| // |
| #define TSS_E_INVALID_OBJECT_TYPE (UINT32)(TSS_E_BASE + 0x101L) |
| |
| // |
| // MessageId: TSS_E_NO_CONNECTION |
| // |
| // MessageText: |
| // |
| // Core Service connection doesn't exist. |
| // |
| #define TSS_E_NO_CONNECTION (UINT32)(TSS_E_BASE + 0x102L) |
| |
| // |
| // MessageId: TSS_E_CONNECTION_FAILED |
| // |
| // MessageText: |
| // |
| // Core Service connection failed. |
| // |
| #define TSS_E_CONNECTION_FAILED (UINT32)(TSS_E_BASE + 0x103L) |
| |
| // |
| // MessageId: TSS_E_CONNECTION_BROKEN |
| // |
| // MessageText: |
| // |
| // Communication with Core Service failed. |
| // |
| #define TSS_E_CONNECTION_BROKEN (UINT32)(TSS_E_BASE + 0x104L) |
| |
| // |
| // MessageId: TSS_E_HASH_INVALID_ALG |
| // |
| // MessageText: |
| // |
| // Invalid hash algorithm. |
| // |
| #define TSS_E_HASH_INVALID_ALG (UINT32)(TSS_E_BASE + 0x105L) |
| |
| // |
| // MessageId: TSS_E_HASH_INVALID_LENGTH |
| // |
| // MessageText: |
| // |
| // Hash length is inconsistent with hash algorithm. |
| // |
| #define TSS_E_HASH_INVALID_LENGTH (UINT32)(TSS_E_BASE + 0x106L) |
| |
| // |
| // MessageId: TSS_E_HASH_NO_DATA |
| // |
| // MessageText: |
| // |
| // Hash object has no internal hash value. |
| // |
| #define TSS_E_HASH_NO_DATA (UINT32)(TSS_E_BASE + 0x107L) |
| |
| |
| // |
| // MessageId: TSS_E_INVALID_ATTRIB_FLAG |
| // |
| // MessageText: |
| // |
| // Flag value for attrib-functions inconsistent. |
| // |
| #define TSS_E_INVALID_ATTRIB_FLAG (UINT32)(TSS_E_BASE + 0x109L) |
| |
| // |
| // MessageId: TSS_E_INVALID_ATTRIB_SUBFLAG |
| // |
| // MessageText: |
| // |
| // Subflag value for attrib-functions inconsistent. |
| // |
| #define TSS_E_INVALID_ATTRIB_SUBFLAG (UINT32)(TSS_E_BASE + 0x10AL) |
| |
| // |
| // MessageId: TSS_E_INVALID_ATTRIB_DATA |
| // |
| // MessageText: |
| // |
| // Data for attrib-functions invalid. |
| // |
| #define TSS_E_INVALID_ATTRIB_DATA (UINT32)(TSS_E_BASE + 0x10BL) |
| |
| // |
| // MessageId: TSS_E_INVALID_OBJECT_INITFLAG |
| // |
| // MessageText: |
| // |
| // Wrong flag information for object creation. |
| // |
| // The alternate spelling is supported to be compatible with a typo |
| // in the 1.1b header files. |
| // |
| #define TSS_E_INVALID_OBJECT_INIT_FLAG (UINT32)(TSS_E_BASE + 0x10CL) |
| #define TSS_E_INVALID_OBJECT_INITFLAG TSS_E_INVALID_OBJECT_INIT_FLAG |
| |
| // |
| // MessageId: TSS_E_NO_PCRS_SET |
| // |
| // MessageText: |
| // |
| // No PCR register are selected or set. |
| // |
| #define TSS_E_NO_PCRS_SET (UINT32)(TSS_E_BASE + 0x10DL) |
| |
| // |
| // MessageId: TSS_E_KEY_NOT_LOADED |
| // |
| // MessageText: |
| // |
| // The addressed key is currently not loaded. |
| // |
| #define TSS_E_KEY_NOT_LOADED (UINT32)(TSS_E_BASE + 0x10EL) |
| |
| // |
| // MessageId: TSS_E_KEY_NOT_SET |
| // |
| // MessageText: |
| // |
| // No key information is currently available. |
| // |
| #define TSS_E_KEY_NOT_SET (UINT32)(TSS_E_BASE + 0x10FL) |
| |
| // |
| // MessageId: TSS_E_VALIDATION_FAILED |
| // |
| // MessageText: |
| // |
| // Internal validation of data failed. |
| // |
| #define TSS_E_VALIDATION_FAILED (UINT32)(TSS_E_BASE + 0x110L) |
| |
| // |
| // MessageId: TSS_E_TSP_AUTHREQUIRED |
| // |
| // MessageText: |
| // |
| // Authorization is required. |
| // |
| #define TSS_E_TSP_AUTHREQUIRED (UINT32)(TSS_E_BASE + 0x111L) |
| |
| // |
| // MessageId: TSS_E_TSP_AUTH2REQUIRED |
| // |
| // MessageText: |
| // |
| // Multiple authorization is required. |
| // |
| #define TSS_E_TSP_AUTH2REQUIRED (UINT32)(TSS_E_BASE + 0x112L) |
| |
| // |
| // MessageId: TSS_E_TSP_AUTHFAIL |
| // |
| // MessageText: |
| // |
| // Authorization failed. |
| // |
| #define TSS_E_TSP_AUTHFAIL (UINT32)(TSS_E_BASE + 0x113L) |
| |
| // |
| // MessageId: TSS_E_TSP_AUTH2FAIL |
| // |
| // MessageText: |
| // |
| // Multiple authorization failed. |
| // |
| #define TSS_E_TSP_AUTH2FAIL (UINT32)(TSS_E_BASE + 0x114L) |
| |
| // |
| // MessageId: TSS_E_KEY_NO_MIGRATION_POLICY |
| // |
| // MessageText: |
| // |
| // There's no migration policy object set for the addressed key. |
| // |
| #define TSS_E_KEY_NO_MIGRATION_POLICY (UINT32)(TSS_E_BASE + 0x115L) |
| |
| // |
| // MessageId: TSS_E_POLICY_NO_SECRET |
| // |
| // MessageText: |
| // |
| // No secret information is currently available for the addressed policy object. |
| // |
| #define TSS_E_POLICY_NO_SECRET (UINT32)(TSS_E_BASE + 0x116L) |
| |
| // |
| // MessageId: TSS_E_INVALID_OBJ_ACCESS |
| // |
| // MessageText: |
| // |
| // The operation failed due to an invalid object status. |
| // |
| #define TSS_E_INVALID_OBJ_ACCESS (UINT32)(TSS_E_BASE + 0x117L) |
| |
| // |
| // MessageId: TSS_E_INVALID_ENCSCHEME |
| // |
| // MessageText: |
| // |
| // |
| // |
| #define TSS_E_INVALID_ENCSCHEME (UINT32)(TSS_E_BASE + 0x118L) |
| |
| |
| // |
| // MessageId: TSS_E_INVALID_SIGSCHEME |
| // |
| // MessageText: |
| // |
| // |
| // |
| #define TSS_E_INVALID_SIGSCHEME (UINT32)(TSS_E_BASE + 0x119L) |
| |
| // |
| // MessageId: TSS_E_ENC_INVALID_LENGTH |
| // |
| // MessageText: |
| // |
| // |
| // |
| #define TSS_E_ENC_INVALID_LENGTH (UINT32)(TSS_E_BASE + 0x120L) |
| |
| |
| // |
| // MessageId: TSS_E_ENC_NO_DATA |
| // |
| // MessageText: |
| // |
| // |
| // |
| #define TSS_E_ENC_NO_DATA (UINT32)(TSS_E_BASE + 0x121L) |
| |
| // |
| // MessageId: TSS_E_ENC_INVALID_TYPE |
| // |
| // MessageText: |
| // |
| // |
| // |
| #define TSS_E_ENC_INVALID_TYPE (UINT32)(TSS_E_BASE + 0x122L) |
| |
| |
| // |
| // MessageId: TSS_E_INVALID_KEYUSAGE |
| // |
| // MessageText: |
| // |
| // |
| // |
| #define TSS_E_INVALID_KEYUSAGE (UINT32)(TSS_E_BASE + 0x123L) |
| |
| // |
| // MessageId: TSS_E_VERIFICATION_FAILED |
| // |
| // MessageText: |
| // |
| // |
| // |
| #define TSS_E_VERIFICATION_FAILED (UINT32)(TSS_E_BASE + 0x124L) |
| |
| // |
| // MessageId: TSS_E_HASH_NO_IDENTIFIER |
| // |
| // MessageText: |
| // |
| // Hash algorithm identifier not set. |
| // |
| #define TSS_E_HASH_NO_IDENTIFIER (UINT32)(TSS_E_BASE + 0x125L) |
| |
| // |
| // MessageId: TSS_E_INVALID_HANDLE |
| // |
| // MessageText: |
| // |
| // An invalid handle |
| // |
| #define TSS_E_INVALID_HANDLE (UINT32)(TSS_E_BASE + 0x126L) |
| |
| // |
| // MessageId: TSS_E_SILENT_CONTEXT |
| // |
| // MessageText: |
| // |
| // A silent context requires user input |
| // |
| #define TSS_E_SILENT_CONTEXT (UINT32)(TSS_E_BASE + 0x127L) |
| |
| // |
| // MessageId: TSS_E_EK_CHECKSUM |
| // |
| // MessageText: |
| // |
| // TSP is instructed to verify the EK checksum and it does not verify. |
| // |
| #define TSS_E_EK_CHECKSUM (UINT32)(TSS_E_BASE + 0x128L) |
| |
| |
| // |
| // MessageId: TSS_E_DELGATION_NOTSET |
| // |
| // MessageText: |
| // |
| // The Policy object does not have a delegation blob set. |
| // |
| #define TSS_E_DELEGATION_NOTSET (UINT32)(TSS_E_BASE + 0x129L) |
| |
| // |
| // MessageId: TSS_E_DELFAMILY_NOTFOUND |
| // |
| // MessageText: |
| // |
| // The specified delegation family was not found |
| // |
| #define TSS_E_DELFAMILY_NOTFOUND (UINT32)(TSS_E_BASE + 0x130L) |
| |
| // |
| // MessageId: TSS_E_DELFAMILY_ROWEXISTS |
| // |
| // MessageText: |
| // |
| // The specified delegation family table row is already in use and |
| // the command flags does not allow the TSS to overwrite the existing |
| // entry. |
| // |
| #define TSS_E_DELFAMILY_ROWEXISTS (UINT32)(TSS_E_BASE + 0x131L) |
| |
| // |
| // MessageId: TSS_E_VERSION_MISMATCH |
| // |
| // MessageText: |
| // |
| // The specified delegation family table row is already in use and |
| // the command flags does not allow the TSS to overwrite the existing |
| // entry. |
| // |
| #define TSS_E_VERSION_MISMATCH (UINT32)(TSS_E_BASE + 0x132L) |
| |
| // |
| // MessageId: TSS_E_DAA_AR_DECRYPTION_ERROR |
| // |
| // Decryption of the encrypted pseudonym has failed, due to |
| // either a wrong secret key or a wrong decryption condition. |
| // |
| #define TSS_E_DAA_AR_DECRYPTION_ERROR (UINT32)(TSS_E_BASE + 0x133L) |
| |
| // |
| // MessageId: TSS_E_DAA_AUTHENTICATION_ERROR |
| // |
| // The TPM could not be authenticated by the DAA Issuer. |
| // |
| #define TSS_E_DAA_AUTHENTICATION_ERROR (UINT32)(TSS_E_BASE + 0x134L) |
| |
| // |
| // MessageId: TSS_E_DAA_CHALLENGE_RESPONSE_ERROR |
| // |
| // DAA Challenge response error. |
| // |
| #define TSS_E_DAA_CHALLENGE_RESPONSE_ERROR (UINT32)(TSS_E_BASE + 0x135L) |
| |
| // |
| // MessageId: TSS_E_DAA_CREDENTIAL_PROOF_ERROR |
| // |
| // Verification of the credential TSS_DAA_CRED_ISSUER issued by |
| // the DAA Issuer has failed. |
| // |
| #define TSS_E_DAA_CREDENTIAL_PROOF_ERROR (UINT32)(TSS_E_BASE + 0x136L) |
| |
| // |
| // MessageId: TSS_E_DAA_CREDENTIAL_REQUEST_PROOF_ERROR |
| // |
| // Verification of the platform's credential request |
| // TSS_DAA_CREDENTIAL_REQUEST has failed. |
| // |
| #define TSS_E_DAA_CREDENTIAL_REQUEST_PROOF_ERROR (UINT32)(TSS_E_BASE + 0x137L) |
| |
| // |
| // MessageId: TSS_E_DAA_ISSUER_KEY_ERROR |
| // |
| // DAA Issuer's authentication key chain could not be verified or |
| // is not correct. |
| // |
| #define TSS_E_DAA_ISSUER_KEY_ERROR (UINT32)(TSS_E_BASE + 0x138L) |
| |
| // |
| // MessageId: TSS_E_DAA_PSEUDONYM_ERROR |
| // |
| // While verifying the pseudonym of the TPM, the private key of the |
| // TPM was found on the rogue list. |
| // |
| #define TSS_E_DAA_PSEUDONYM_ERROR (UINT32)(TSS_E_BASE + 0x139L) |
| |
| // |
| // MessageId: TSS_E_INVALID_RESOURCE |
| // |
| // Pointer to memory wrong. |
| // |
| #define TSS_E_INVALID_RESOURCE (UINT32)(TSS_E_BASE + 0x13AL) |
| |
| // |
| // MessageId: TSS_E_NV_AREA_EXIST |
| // |
| // The NV area referenced already exists |
| // |
| #define TSS_E_NV_AREA_EXIST (UINT32)(TSS_E_BASE + 0x13BL) |
| |
| // |
| // MessageId: TSS_E_NV_AREA_NOT_EXIST |
| // |
| // The NV area referenced doesn't exist |
| // |
| #define TSS_E_NV_AREA_NOT_EXIST (UINT32)(TSS_E_BASE + 0x13CL) |
| |
| // |
| // MessageId: TSS_E_TSP_TRANS_AUTHFAIL |
| // |
| // The transport session authorization failed |
| // |
| #define TSS_E_TSP_TRANS_AUTHFAIL (UINT32)(TSS_E_BASE + 0x13DL) |
| |
| // |
| // MessageId: TSS_E_TSP_TRANS_AUTHREQUIRED |
| // |
| // Authorization for transport is required |
| // |
| #define TSS_E_TSP_TRANS_AUTHREQUIRED (UINT32)(TSS_E_BASE + 0x13EL) |
| |
| // |
| // MessageId: TSS_E_TSP_TRANS_NOT_EXCLUSIVE |
| // |
| // A command was executed outside of an exclusive transport session. |
| // |
| #define TSS_E_TSP_TRANS_NOTEXCLUSIVE (UINT32)(TSS_E_BASE + 0x13FL) |
| |
| // |
| // MessageId: TSS_E_TSP_TRANS_FAIL |
| // |
| // Generic transport protection error. |
| // |
| #define TSS_E_TSP_TRANS_FAIL (UINT32)(TSS_E_BASE + 0x140L) |
| |
| // |
| // MessageId: TSS_E_TSP_TRANS_NO_PUBKEY |
| // |
| // A command could not be executed through a logged transport session |
| // because the command used a key and the key's public key is not |
| // known to the TSP. |
| // |
| #define TSS_E_TSP_TRANS_NO_PUBKEY (UINT32)(TSS_E_BASE + 0x141L) |
| |
| // |
| // MessageId: TSS_E_NO_ACTIVE_COUNTER |
| // |
| // The TPM active counter has not been set yet. |
| // |
| #define TSS_E_NO_ACTIVE_COUNTER (UINT32)(TSS_E_BASE + 0x142L) |
| |
| |
| #endif // __TSS_ERROR_H__ |