1/*++ 2 3TSS error return codes 4 5--*/ 6 7#ifndef __TSS_ERROR_H__ 8#define __TSS_ERROR_H__ 9 10#include <tss/platform.h> 11 12// 13// error coding scheme for a Microsoft Windows platform - 14// refer to the TSS Specification Parts 15// 16// Values are 32 bit values layed out as follows: 17// 18// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 19// 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 20// +---+-+-+-----------------------+-------+-----------------------+ 21// |Lev|C|R| Facility | Layer | Code | 22// +---+-+-+-----------------------+-------+-----------------------+ 23// | Platform specific coding | TSS error coding system | 24// +---+-+-+-----------------------+-------+-----------------------+ 25// 26// Lev - is the Level code 27// 28// 00 - Success 29// 01 - Informational 30// 10 - Warning 31// 11 - Error 32// 33// C - is the Customer code flag (must actually be set) 34// 35// R - is a reserved bit (unused) 36// 37// Facility - is the facility code: TCPA: proposal 0x028 38// 39// Code - is the facility's status code 40// 41 42// 43// definitions for the code level information 44// 45#define TSS_LEVEL_SUCCESS 0x00 // code level success 46#define TSS_LEVEL_INFO 0x40000000L // code level information 47#define TSS_LEVEL_WARNING 0x80000000L // code level warning 48#define TSS_LEVEL_ERROR 0xC0000000L // code level error 49 50// 51// some defines for the platform specific information 52// 53#define FACILITY_TSS 0x28L // facility number for TCPA return codes 54#define FACILITY_TSS_CODEPOS (FACILITY_TSS << 16) // shift the facility info to the code 55 // position 56 57#define TSS_CUSTOM_CODEFLAG 0x20000000L // bit position for the custom flag in 58 // return code 59 60// 61// 62// TSS error return codes 63// 64// 65#ifndef TSS_E_BASE 66#define TSS_E_BASE 0x00000000L 67#endif // TSS_E_BASE 68#ifndef TSS_W_BASE 69#define TSS_W_BASE 0x00000000L 70#endif // TSS_W_BASE 71#ifndef TSS_I_BASE 72#define TSS_I_BASE 0x00000000L 73#endif // TSS_I_BASE 74 75// 76// basic error return codes common to all TSS Service Provider Interface methods 77// and returned by all TSS SW stack components 78// 79 80// 81// MessageId: TSS_SUCCESS 82// 83// MessageText: 84// 85// Successful completion of the operation. 86// 87#define TSS_SUCCESS (UINT32)(0x00000000L) 88 89// 90// MessageId: TSS_E_FAIL 91// 92// MessageText: 93// 94// An internal error has been detected, but the source is unknown. 95// 96#define TSS_E_FAIL (UINT32)(TSS_E_BASE + 0x002L) 97 98// 99// MessageId: TSS_E_BAD_PARAMETER 100// 101// MessageText: 102// 103// One or more parameter is bad. 104// 105#define TSS_E_BAD_PARAMETER (UINT32)(TSS_E_BASE + 0x003L) 106 107// 108// MessageId: TSS_E_INTERNAL_ERROR 109// 110// MessageText: 111// 112// An internal SW error has been detected. 113// 114#define TSS_E_INTERNAL_ERROR (UINT32)(TSS_E_BASE + 0x004L) 115 116// 117// MessageId: TSS_E_OUTOFMEMORY 118// 119// MessageText: 120// 121// Ran out of memory. 122// 123#define TSS_E_OUTOFMEMORY (UINT32)(TSS_E_BASE + 0x005L) 124 125// 126// MessageId: TSS_E_NOTIMPL 127// 128// MessageText: 129// 130// Not implemented. 131// 132#define TSS_E_NOTIMPL (UINT32)(TSS_E_BASE + 0x006L) 133 134// 135// MessageId: TSS_E_KEY_ALREADY_REGISTERED 136// 137// MessageText: 138// 139// Key is already registered 140// 141#define TSS_E_KEY_ALREADY_REGISTERED (UINT32)(TSS_E_BASE + 0x008L) 142 143 144// 145// MessageId: TSS_E_TPM_UNEXPECTED 146// 147// MessageText: 148// 149// An unexpected TPM error has occurred. 150// 151#define TSS_E_TPM_UNEXPECTED (UINT32)(TSS_E_BASE + 0x010L) 152 153// 154// MessageId: TSS_E_COMM_FAILURE 155// 156// MessageText: 157// 158// A communications error with the TPM has been detected. 159// 160#define TSS_E_COMM_FAILURE (UINT32)(TSS_E_BASE + 0x011L) 161 162// 163// MessageId: TSS_E_TIMEOUT 164// 165// MessageText: 166// 167// The operation has timed out. 168// 169#define TSS_E_TIMEOUT (UINT32)(TSS_E_BASE + 0x012L) 170 171// 172// MessageId: TSS_E_TPM_UNSUPPORTED_FEATURE 173// 174// MessageText: 175// 176// The TPM does not support the requested feature. 177// 178#define TSS_E_TPM_UNSUPPORTED_FEATURE (UINT32)(TSS_E_BASE + 0x014L) 179 180// 181// MessageId: TSS_E_CANCELED 182// 183// MessageText: 184// 185// The action was canceled by request. 186// 187#define TSS_E_CANCELED (UINT32)(TSS_E_BASE + 0x016L) 188 189// 190// MessageId: TSS_E_PS_KEY_NOTFOUND 191// 192// MessageText: 193// 194// The key cannot be found in the persistent storage database. 195// 196#define TSS_E_PS_KEY_NOTFOUND (UINT32)(TSS_E_BASE + 0x020L) 197// 198// MessageId: TSS_E_PS_KEY_EXISTS 199// 200// MessageText: 201// 202// The key already exists in the persistent storage database. 203// 204#define TSS_E_PS_KEY_EXISTS (UINT32)(TSS_E_BASE + 0x021L) 205 206// 207// MessageId: TSS_E_PS_BAD_KEY_STATE 208// 209// MessageText: 210// 211// The key data set not valid in the persistent storage database. 212// 213#define TSS_E_PS_BAD_KEY_STATE (UINT32)(TSS_E_BASE + 0x022L) 214 215 216// 217// error codes returned by specific TSS Service Provider Interface methods 218// offset TSS_TSPI_OFFSET 219// 220 221// 222// MessageId: TSS_E_INVALID_OBJECT_TYPE 223// 224// MessageText: 225// 226// Object type not valid for this operation. 227// 228#define TSS_E_INVALID_OBJECT_TYPE (UINT32)(TSS_E_BASE + 0x101L) 229 230// 231// MessageId: TSS_E_NO_CONNECTION 232// 233// MessageText: 234// 235// Core Service connection doesn't exist. 236// 237#define TSS_E_NO_CONNECTION (UINT32)(TSS_E_BASE + 0x102L) 238 239// 240// MessageId: TSS_E_CONNECTION_FAILED 241// 242// MessageText: 243// 244// Core Service connection failed. 245// 246#define TSS_E_CONNECTION_FAILED (UINT32)(TSS_E_BASE + 0x103L) 247 248// 249// MessageId: TSS_E_CONNECTION_BROKEN 250// 251// MessageText: 252// 253// Communication with Core Service failed. 254// 255#define TSS_E_CONNECTION_BROKEN (UINT32)(TSS_E_BASE + 0x104L) 256 257// 258// MessageId: TSS_E_HASH_INVALID_ALG 259// 260// MessageText: 261// 262// Invalid hash algorithm. 263// 264#define TSS_E_HASH_INVALID_ALG (UINT32)(TSS_E_BASE + 0x105L) 265 266// 267// MessageId: TSS_E_HASH_INVALID_LENGTH 268// 269// MessageText: 270// 271// Hash length is inconsistent with hash algorithm. 272// 273#define TSS_E_HASH_INVALID_LENGTH (UINT32)(TSS_E_BASE + 0x106L) 274 275// 276// MessageId: TSS_E_HASH_NO_DATA 277// 278// MessageText: 279// 280// Hash object has no internal hash value. 281// 282#define TSS_E_HASH_NO_DATA (UINT32)(TSS_E_BASE + 0x107L) 283 284 285// 286// MessageId: TSS_E_INVALID_ATTRIB_FLAG 287// 288// MessageText: 289// 290// Flag value for attrib-functions inconsistent. 291// 292#define TSS_E_INVALID_ATTRIB_FLAG (UINT32)(TSS_E_BASE + 0x109L) 293 294// 295// MessageId: TSS_E_INVALID_ATTRIB_SUBFLAG 296// 297// MessageText: 298// 299// Subflag value for attrib-functions inconsistent. 300// 301#define TSS_E_INVALID_ATTRIB_SUBFLAG (UINT32)(TSS_E_BASE + 0x10AL) 302 303// 304// MessageId: TSS_E_INVALID_ATTRIB_DATA 305// 306// MessageText: 307// 308// Data for attrib-functions invalid. 309// 310#define TSS_E_INVALID_ATTRIB_DATA (UINT32)(TSS_E_BASE + 0x10BL) 311 312// 313// MessageId: TSS_E_INVALID_OBJECT_INITFLAG 314// 315// MessageText: 316// 317// Wrong flag information for object creation. 318// 319// The alternate spelling is supported to be compatible with a typo 320// in the 1.1b header files. 321// 322#define TSS_E_INVALID_OBJECT_INIT_FLAG (UINT32)(TSS_E_BASE + 0x10CL) 323#define TSS_E_INVALID_OBJECT_INITFLAG TSS_E_INVALID_OBJECT_INIT_FLAG 324 325// 326// MessageId: TSS_E_NO_PCRS_SET 327// 328// MessageText: 329// 330// No PCR register are selected or set. 331// 332#define TSS_E_NO_PCRS_SET (UINT32)(TSS_E_BASE + 0x10DL) 333 334// 335// MessageId: TSS_E_KEY_NOT_LOADED 336// 337// MessageText: 338// 339// The addressed key is currently not loaded. 340// 341#define TSS_E_KEY_NOT_LOADED (UINT32)(TSS_E_BASE + 0x10EL) 342 343// 344// MessageId: TSS_E_KEY_NOT_SET 345// 346// MessageText: 347// 348// No key information is currently available. 349// 350#define TSS_E_KEY_NOT_SET (UINT32)(TSS_E_BASE + 0x10FL) 351 352// 353// MessageId: TSS_E_VALIDATION_FAILED 354// 355// MessageText: 356// 357// Internal validation of data failed. 358// 359#define TSS_E_VALIDATION_FAILED (UINT32)(TSS_E_BASE + 0x110L) 360 361// 362// MessageId: TSS_E_TSP_AUTHREQUIRED 363// 364// MessageText: 365// 366// Authorization is required. 367// 368#define TSS_E_TSP_AUTHREQUIRED (UINT32)(TSS_E_BASE + 0x111L) 369 370// 371// MessageId: TSS_E_TSP_AUTH2REQUIRED 372// 373// MessageText: 374// 375// Multiple authorization is required. 376// 377#define TSS_E_TSP_AUTH2REQUIRED (UINT32)(TSS_E_BASE + 0x112L) 378 379// 380// MessageId: TSS_E_TSP_AUTHFAIL 381// 382// MessageText: 383// 384// Authorization failed. 385// 386#define TSS_E_TSP_AUTHFAIL (UINT32)(TSS_E_BASE + 0x113L) 387 388// 389// MessageId: TSS_E_TSP_AUTH2FAIL 390// 391// MessageText: 392// 393// Multiple authorization failed. 394// 395#define TSS_E_TSP_AUTH2FAIL (UINT32)(TSS_E_BASE + 0x114L) 396 397// 398// MessageId: TSS_E_KEY_NO_MIGRATION_POLICY 399// 400// MessageText: 401// 402// There's no migration policy object set for the addressed key. 403// 404#define TSS_E_KEY_NO_MIGRATION_POLICY (UINT32)(TSS_E_BASE + 0x115L) 405 406// 407// MessageId: TSS_E_POLICY_NO_SECRET 408// 409// MessageText: 410// 411// No secret information is currently available for the addressed policy object. 412// 413#define TSS_E_POLICY_NO_SECRET (UINT32)(TSS_E_BASE + 0x116L) 414 415// 416// MessageId: TSS_E_INVALID_OBJ_ACCESS 417// 418// MessageText: 419// 420// The operation failed due to an invalid object status. 421// 422#define TSS_E_INVALID_OBJ_ACCESS (UINT32)(TSS_E_BASE + 0x117L) 423 424// 425// MessageId: TSS_E_INVALID_ENCSCHEME 426// 427// MessageText: 428// 429// 430// 431#define TSS_E_INVALID_ENCSCHEME (UINT32)(TSS_E_BASE + 0x118L) 432 433 434// 435// MessageId: TSS_E_INVALID_SIGSCHEME 436// 437// MessageText: 438// 439// 440// 441#define TSS_E_INVALID_SIGSCHEME (UINT32)(TSS_E_BASE + 0x119L) 442 443// 444// MessageId: TSS_E_ENC_INVALID_LENGTH 445// 446// MessageText: 447// 448// 449// 450#define TSS_E_ENC_INVALID_LENGTH (UINT32)(TSS_E_BASE + 0x120L) 451 452 453// 454// MessageId: TSS_E_ENC_NO_DATA 455// 456// MessageText: 457// 458// 459// 460#define TSS_E_ENC_NO_DATA (UINT32)(TSS_E_BASE + 0x121L) 461 462// 463// MessageId: TSS_E_ENC_INVALID_TYPE 464// 465// MessageText: 466// 467// 468// 469#define TSS_E_ENC_INVALID_TYPE (UINT32)(TSS_E_BASE + 0x122L) 470 471 472// 473// MessageId: TSS_E_INVALID_KEYUSAGE 474// 475// MessageText: 476// 477// 478// 479#define TSS_E_INVALID_KEYUSAGE (UINT32)(TSS_E_BASE + 0x123L) 480 481// 482// MessageId: TSS_E_VERIFICATION_FAILED 483// 484// MessageText: 485// 486// 487// 488#define TSS_E_VERIFICATION_FAILED (UINT32)(TSS_E_BASE + 0x124L) 489 490// 491// MessageId: TSS_E_HASH_NO_IDENTIFIER 492// 493// MessageText: 494// 495// Hash algorithm identifier not set. 496// 497#define TSS_E_HASH_NO_IDENTIFIER (UINT32)(TSS_E_BASE + 0x125L) 498 499// 500// MessageId: TSS_E_INVALID_HANDLE 501// 502// MessageText: 503// 504// An invalid handle 505// 506#define TSS_E_INVALID_HANDLE (UINT32)(TSS_E_BASE + 0x126L) 507 508// 509// MessageId: TSS_E_SILENT_CONTEXT 510// 511// MessageText: 512// 513// A silent context requires user input 514// 515#define TSS_E_SILENT_CONTEXT (UINT32)(TSS_E_BASE + 0x127L) 516 517// 518// MessageId: TSS_E_EK_CHECKSUM 519// 520// MessageText: 521// 522// TSP is instructed to verify the EK checksum and it does not verify. 523// 524#define TSS_E_EK_CHECKSUM (UINT32)(TSS_E_BASE + 0x128L) 525 526 527// 528// MessageId: TSS_E_DELGATION_NOTSET 529// 530// MessageText: 531// 532// The Policy object does not have a delegation blob set. 533// 534#define TSS_E_DELEGATION_NOTSET (UINT32)(TSS_E_BASE + 0x129L) 535 536// 537// MessageId: TSS_E_DELFAMILY_NOTFOUND 538// 539// MessageText: 540// 541// The specified delegation family was not found 542// 543#define TSS_E_DELFAMILY_NOTFOUND (UINT32)(TSS_E_BASE + 0x130L) 544 545// 546// MessageId: TSS_E_DELFAMILY_ROWEXISTS 547// 548// MessageText: 549// 550// The specified delegation family table row is already in use and 551// the command flags does not allow the TSS to overwrite the existing 552// entry. 553// 554#define TSS_E_DELFAMILY_ROWEXISTS (UINT32)(TSS_E_BASE + 0x131L) 555 556// 557// MessageId: TSS_E_VERSION_MISMATCH 558// 559// MessageText: 560// 561// The specified delegation family table row is already in use and 562// the command flags does not allow the TSS to overwrite the existing 563// entry. 564// 565#define TSS_E_VERSION_MISMATCH (UINT32)(TSS_E_BASE + 0x132L) 566 567// 568// MessageId: TSS_E_DAA_AR_DECRYPTION_ERROR 569// 570// Decryption of the encrypted pseudonym has failed, due to 571// either a wrong secret key or a wrong decryption condition. 572// 573#define TSS_E_DAA_AR_DECRYPTION_ERROR (UINT32)(TSS_E_BASE + 0x133L) 574 575// 576// MessageId: TSS_E_DAA_AUTHENTICATION_ERROR 577// 578// The TPM could not be authenticated by the DAA Issuer. 579// 580#define TSS_E_DAA_AUTHENTICATION_ERROR (UINT32)(TSS_E_BASE + 0x134L) 581 582// 583// MessageId: TSS_E_DAA_CHALLENGE_RESPONSE_ERROR 584// 585// DAA Challenge response error. 586// 587#define TSS_E_DAA_CHALLENGE_RESPONSE_ERROR (UINT32)(TSS_E_BASE + 0x135L) 588 589// 590// MessageId: TSS_E_DAA_CREDENTIAL_PROOF_ERROR 591// 592// Verification of the credential TSS_DAA_CRED_ISSUER issued by 593// the DAA Issuer has failed. 594// 595#define TSS_E_DAA_CREDENTIAL_PROOF_ERROR (UINT32)(TSS_E_BASE + 0x136L) 596 597// 598// MessageId: TSS_E_DAA_CREDENTIAL_REQUEST_PROOF_ERROR 599// 600// Verification of the platform's credential request 601// TSS_DAA_CREDENTIAL_REQUEST has failed. 602// 603#define TSS_E_DAA_CREDENTIAL_REQUEST_PROOF_ERROR (UINT32)(TSS_E_BASE + 0x137L) 604 605// 606// MessageId: TSS_E_DAA_ISSUER_KEY_ERROR 607// 608// DAA Issuer's authentication key chain could not be verified or 609// is not correct. 610// 611#define TSS_E_DAA_ISSUER_KEY_ERROR (UINT32)(TSS_E_BASE + 0x138L) 612 613// 614// MessageId: TSS_E_DAA_PSEUDONYM_ERROR 615// 616// While verifying the pseudonym of the TPM, the private key of the 617// TPM was found on the rogue list. 618// 619#define TSS_E_DAA_PSEUDONYM_ERROR (UINT32)(TSS_E_BASE + 0x139L) 620 621// 622// MessageId: TSS_E_INVALID_RESOURCE 623// 624// Pointer to memory wrong. 625// 626#define TSS_E_INVALID_RESOURCE (UINT32)(TSS_E_BASE + 0x13AL) 627 628// 629// MessageId: TSS_E_NV_AREA_EXIST 630// 631// The NV area referenced already exists 632// 633#define TSS_E_NV_AREA_EXIST (UINT32)(TSS_E_BASE + 0x13BL) 634 635// 636// MessageId: TSS_E_NV_AREA_NOT_EXIST 637// 638// The NV area referenced doesn't exist 639// 640#define TSS_E_NV_AREA_NOT_EXIST (UINT32)(TSS_E_BASE + 0x13CL) 641 642// 643// MessageId: TSS_E_TSP_TRANS_AUTHFAIL 644// 645// The transport session authorization failed 646// 647#define TSS_E_TSP_TRANS_AUTHFAIL (UINT32)(TSS_E_BASE + 0x13DL) 648 649// 650// MessageId: TSS_E_TSP_TRANS_AUTHREQUIRED 651// 652// Authorization for transport is required 653// 654#define TSS_E_TSP_TRANS_AUTHREQUIRED (UINT32)(TSS_E_BASE + 0x13EL) 655 656// 657// MessageId: TSS_E_TSP_TRANS_NOT_EXCLUSIVE 658// 659// A command was executed outside of an exclusive transport session. 660// 661#define TSS_E_TSP_TRANS_NOTEXCLUSIVE (UINT32)(TSS_E_BASE + 0x13FL) 662 663// 664// MessageId: TSS_E_TSP_TRANS_FAIL 665// 666// Generic transport protection error. 667// 668#define TSS_E_TSP_TRANS_FAIL (UINT32)(TSS_E_BASE + 0x140L) 669 670// 671// MessageId: TSS_E_TSP_TRANS_NO_PUBKEY 672// 673// A command could not be executed through a logged transport session 674// because the command used a key and the key's public key is not 675// known to the TSP. 676// 677#define TSS_E_TSP_TRANS_NO_PUBKEY (UINT32)(TSS_E_BASE + 0x141L) 678 679// 680// MessageId: TSS_E_NO_ACTIVE_COUNTER 681// 682// The TPM active counter has not been set yet. 683// 684#define TSS_E_NO_ACTIVE_COUNTER (UINT32)(TSS_E_BASE + 0x142L) 685 686 687#endif // __TSS_ERROR_H__ 688