blob: 17a71efcac4287bcd38f9e95e5b3cfe26bea6a59 [file] [log] [blame]
/*++
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__