10232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Copyright 2015 The Chromium OS Authors. All rights reserved. 20232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Use of this source code is governed by a BSD-style license that can be 30232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// found in the LICENSE file. 40232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 50232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// THIS CODE IS GENERATED - DO NOT MODIFY! 60232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 70232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#ifndef TPM2_TPM_TYPES_H_ 80232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM2_TPM_TYPES_H_ 90232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Unprocessed: Table 1 Name Prefix Convention 1019e7ed345a10a0846ea14f96f46ed4ed6123813eVadim Bendebury// Skipped: Table 2 Unmarshaling Errors 110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 3 Definition of Base Types 120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef uint8_t UINT8; 130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef uint8_t BYTE; 140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef int8_t INT8; 150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef int BOOL; 160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef uint16_t UINT16; 170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef int16_t INT16; 180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef uint32_t UINT32; 190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef int32_t INT32; 200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef uint64_t UINT64; 210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef int64_t INT64; 220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 4 Defines for Logic Values 240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TRUE 1 250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define FALSE 0 260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define YES 1 270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define NO 0 280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define SET 1 290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define CLEAR 0 300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 5 Definition of Types for Documentation Clarity 320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_ALGORITHM_ID; 330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_MODIFIER_INDICATOR; 340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_AUTHORIZATION_SIZE; 350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_PARAMETER_SIZE; 360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT16 TPM_KEY_SIZE; 370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT16 TPM_KEY_BITS; 380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Skipped: Table 6 Definition of TPM_SPEC Constants <> 400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 7 Definition of TPM_GENERATED Constants < O> 410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_GENERATED; 420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_GENERATED_VALUE 0xff544347 430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Unprocessed: Table 8 Legend for TPM_ALG_ID Table 450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Skipped: Table 9 Definition of TPM_ALG_ID Constants < IN/OUT, S> 460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Skipped: Table 10 Definition of TPM_ECC_CURVE Constants < IN/OUT, S> 470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Unprocessed: Table 11 TPM Command Format Fields Description 480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Unprocessed: Table 12 Legend for Command Code Tables 490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Skipped: Table 13 Definition of TPM_CC Constants < IN/OUT, S> 500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Unprocessed: Table 14 Format-Zero Response Codes 510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Unprocessed: Table 15 Format-One Response Codes 520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Unprocessed: Table 16 Response Code Groupings 530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 17 Definition of TPM_RC Constants < OUT> 540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_RC; 550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_SUCCESS 0x000 560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_BAD_TAG 0x01E 570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define RC_VER1 0x100 580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_INITIALIZE ((TPM_RC)(RC_VER1 + 0x000)) 590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_FAILURE ((TPM_RC)(RC_VER1 + 0x001)) 600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_SEQUENCE ((TPM_RC)(RC_VER1 + 0x003)) 610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_PRIVATE ((TPM_RC)(RC_VER1 + 0x00B)) 620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_HMAC ((TPM_RC)(RC_VER1 + 0x019)) 630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_DISABLED ((TPM_RC)(RC_VER1 + 0x020)) 640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_EXCLUSIVE ((TPM_RC)(RC_VER1 + 0x021)) 650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_AUTH_TYPE ((TPM_RC)(RC_VER1 + 0x024)) 660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_AUTH_MISSING ((TPM_RC)(RC_VER1 + 0x025)) 670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_POLICY ((TPM_RC)(RC_VER1 + 0x026)) 680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_PCR ((TPM_RC)(RC_VER1 + 0x027)) 690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_PCR_CHANGED ((TPM_RC)(RC_VER1 + 0x028)) 700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_UPGRADE ((TPM_RC)(RC_VER1 + 0x02D)) 710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_TOO_MANY_CONTEXTS ((TPM_RC)(RC_VER1 + 0x02E)) 720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_AUTH_UNAVAILABLE ((TPM_RC)(RC_VER1 + 0x02F)) 730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REBOOT ((TPM_RC)(RC_VER1 + 0x030)) 740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_UNBALANCED ((TPM_RC)(RC_VER1 + 0x031)) 750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_COMMAND_SIZE ((TPM_RC)(RC_VER1 + 0x042)) 760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_COMMAND_CODE ((TPM_RC)(RC_VER1 + 0x043)) 770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_AUTHSIZE ((TPM_RC)(RC_VER1 + 0x044)) 780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_AUTH_CONTEXT ((TPM_RC)(RC_VER1 + 0x045)) 790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NV_RANGE ((TPM_RC)(RC_VER1 + 0x046)) 800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NV_SIZE ((TPM_RC)(RC_VER1 + 0x047)) 810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NV_LOCKED ((TPM_RC)(RC_VER1 + 0x048)) 820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NV_AUTHORIZATION ((TPM_RC)(RC_VER1 + 0x049)) 830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NV_UNINITIALIZED ((TPM_RC)(RC_VER1 + 0x04A)) 840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NV_SPACE ((TPM_RC)(RC_VER1 + 0x04B)) 850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NV_DEFINED ((TPM_RC)(RC_VER1 + 0x04C)) 860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_BAD_CONTEXT ((TPM_RC)(RC_VER1 + 0x050)) 870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_CPHASH ((TPM_RC)(RC_VER1 + 0x051)) 880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_PARENT ((TPM_RC)(RC_VER1 + 0x052)) 890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NEEDS_TEST ((TPM_RC)(RC_VER1 + 0x053)) 900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NO_RESULT ((TPM_RC)(RC_VER1 + 0x054)) 910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_SENSITIVE ((TPM_RC)(RC_VER1 + 0x055)) 920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define RC_MAX_FM0 ((TPM_RC)(RC_VER1 + 0x07F)) 930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define RC_FMT1 0x080 940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_ASYMMETRIC ((TPM_RC)(RC_FMT1 + 0x001)) 950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_ATTRIBUTES ((TPM_RC)(RC_FMT1 + 0x002)) 960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_HASH ((TPM_RC)(RC_FMT1 + 0x003)) 970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_VALUE ((TPM_RC)(RC_FMT1 + 0x004)) 980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_HIERARCHY ((TPM_RC)(RC_FMT1 + 0x005)) 990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_KEY_SIZE ((TPM_RC)(RC_FMT1 + 0x007)) 1000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_MGF ((TPM_RC)(RC_FMT1 + 0x008)) 1010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_MODE ((TPM_RC)(RC_FMT1 + 0x009)) 1020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_TYPE ((TPM_RC)(RC_FMT1 + 0x00A)) 1030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_HANDLE ((TPM_RC)(RC_FMT1 + 0x00B)) 1040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_KDF ((TPM_RC)(RC_FMT1 + 0x00C)) 1050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_RANGE ((TPM_RC)(RC_FMT1 + 0x00D)) 1060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_AUTH_FAIL ((TPM_RC)(RC_FMT1 + 0x00E)) 1070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NONCE ((TPM_RC)(RC_FMT1 + 0x00F)) 1080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_PP ((TPM_RC)(RC_FMT1 + 0x010)) 1090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_SCHEME ((TPM_RC)(RC_FMT1 + 0x012)) 1100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_SIZE ((TPM_RC)(RC_FMT1 + 0x015)) 1110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_SYMMETRIC ((TPM_RC)(RC_FMT1 + 0x016)) 1120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_TAG ((TPM_RC)(RC_FMT1 + 0x017)) 1130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_SELECTOR ((TPM_RC)(RC_FMT1 + 0x018)) 1140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_INSUFFICIENT ((TPM_RC)(RC_FMT1 + 0x01A)) 1150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_SIGNATURE ((TPM_RC)(RC_FMT1 + 0x01B)) 1160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_KEY ((TPM_RC)(RC_FMT1 + 0x01C)) 1170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_POLICY_FAIL ((TPM_RC)(RC_FMT1 + 0x01D)) 1180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_INTEGRITY ((TPM_RC)(RC_FMT1 + 0x01F)) 1190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_TICKET ((TPM_RC)(RC_FMT1 + 0x020)) 1200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_RESERVED_BITS ((TPM_RC)(RC_FMT1 + 0x021)) 1210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_BAD_AUTH ((TPM_RC)(RC_FMT1 + 0x022)) 1220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_EXPIRED ((TPM_RC)(RC_FMT1 + 0x023)) 1230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_POLICY_CC ((TPM_RC)(RC_FMT1 + 0x024)) 1240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_BINDING ((TPM_RC)(RC_FMT1 + 0x025)) 1250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_CURVE ((TPM_RC)(RC_FMT1 + 0x026)) 1260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_ECC_POINT ((TPM_RC)(RC_FMT1 + 0x027)) 1270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define RC_WARN 0x900 1280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_CONTEXT_GAP ((TPM_RC)(RC_WARN + 0x001)) 1290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_OBJECT_MEMORY ((TPM_RC)(RC_WARN + 0x002)) 1300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_SESSION_MEMORY ((TPM_RC)(RC_WARN + 0x003)) 1310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_MEMORY ((TPM_RC)(RC_WARN + 0x004)) 1320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_SESSION_HANDLES ((TPM_RC)(RC_WARN + 0x005)) 1330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_OBJECT_HANDLES ((TPM_RC)(RC_WARN + 0x006)) 1340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_LOCALITY ((TPM_RC)(RC_WARN + 0x007)) 1350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_YIELDED ((TPM_RC)(RC_WARN + 0x008)) 1360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_CANCELED ((TPM_RC)(RC_WARN + 0x009)) 1370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_TESTING ((TPM_RC)(RC_WARN + 0x00A)) 1380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_H0 ((TPM_RC)(RC_WARN + 0x010)) 1390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_H1 ((TPM_RC)(RC_WARN + 0x011)) 1400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_H2 ((TPM_RC)(RC_WARN + 0x012)) 1410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_H3 ((TPM_RC)(RC_WARN + 0x013)) 1420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_H4 ((TPM_RC)(RC_WARN + 0x014)) 1430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_H5 ((TPM_RC)(RC_WARN + 0x015)) 1440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_H6 ((TPM_RC)(RC_WARN + 0x016)) 1450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_S0 ((TPM_RC)(RC_WARN + 0x018)) 1460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_S1 ((TPM_RC)(RC_WARN + 0x019)) 1470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_S2 ((TPM_RC)(RC_WARN + 0x01A)) 1480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_S3 ((TPM_RC)(RC_WARN + 0x01B)) 1490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_S4 ((TPM_RC)(RC_WARN + 0x01C)) 1500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_S5 ((TPM_RC)(RC_WARN + 0x01D)) 1510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_REFERENCE_S6 ((TPM_RC)(RC_WARN + 0x01E)) 1520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NV_RATE ((TPM_RC)(RC_WARN + 0x020)) 1530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_LOCKOUT ((TPM_RC)(RC_WARN + 0x021)) 1540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_RETRY ((TPM_RC)(RC_WARN + 0x022)) 1550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NV_UNAVAILABLE ((TPM_RC)(RC_WARN + 0x023)) 1560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_NOT_USED ((TPM_RC)(RC_WARN + 0x7F)) 1570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_H 0x000 1580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_P 0x040 1590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_S 0x800 1600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_1 0x100 1610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_2 0x200 1620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_3 0x300 1630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_4 0x400 1640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_5 0x500 1650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_6 0x600 1660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_7 0x700 1670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_8 0x800 1680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_9 0x900 1690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_A 0xA00 1700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_B 0xB00 1710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_C 0xC00 1720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_D 0xD00 1730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_E 0xE00 1740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_F 0xF00 1750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RC_N_MASK 0xF00 1760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 1770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 18 Definition of TPM_CLOCK_ADJUST Constants < IN> 1780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef INT8 TPM_CLOCK_ADJUST; 1790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CLOCK_COARSE_SLOWER -3 1800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CLOCK_MEDIUM_SLOWER -2 1810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CLOCK_FINE_SLOWER -1 1820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CLOCK_NO_CHANGE 0 1830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CLOCK_FINE_FASTER 1 1840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CLOCK_MEDIUM_FASTER 2 1850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CLOCK_COARSE_FASTER 3 1860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 1870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 19 Definition of TPM_EO Constants < IN/OUT> 1880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT16 TPM_EO; 1890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_EQ 0x0000 1900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_NEQ 0x0001 1910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_SIGNED_GT 0x0002 1920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_UNSIGNED_GT 0x0003 1930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_SIGNED_LT 0x0004 1940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_UNSIGNED_LT 0x0005 1950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_SIGNED_GE 0x0006 1960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_UNSIGNED_GE 0x0007 1970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_SIGNED_LE 0x0008 1980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_UNSIGNED_LE 0x0009 1990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_BITSET 0x000A 2000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_EO_BITCLEAR 0x000B 2010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 2020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 20 Definition of TPM_ST Constants < IN/OUT, S> 2030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT16 TPM_ST; 2040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_RSP_COMMAND 0x00C4 2050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_NULL 0X8000 2060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_NO_SESSIONS 0x8001 2070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_SESSIONS 0x8002 2080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_ATTEST_NV 0x8014 2090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_ATTEST_COMMAND_AUDIT 0x8015 2100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_ATTEST_SESSION_AUDIT 0x8016 2110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_ATTEST_CERTIFY 0x8017 2120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_ATTEST_QUOTE 0x8018 2130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_ATTEST_TIME 0x8019 2140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_ATTEST_CREATION 0x801A 2150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_CREATION 0x8021 2160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_VERIFIED 0x8022 2170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_AUTH_SECRET 0x8023 2180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_HASHCHECK 0x8024 2190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_AUTH_SIGNED 0x8025 2200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_ST_FU_MANIFEST 0x8029 2210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 2220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 21 Definition of TPM_SU Constants < IN> 2230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT16 TPM_SU; 2240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_SU_CLEAR 0x0000 2250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_SU_STATE 0x0001 2260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 2270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 22 Definition of TPM_SE Constants < IN> 2280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT8 TPM_SE; 2290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_SE_HMAC 0x00 2300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_SE_POLICY 0x01 2310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_SE_TRIAL 0x03 2320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 2330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 23 Definition of TPM_CAP Constants 2340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_CAP; 2350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_FIRST 0x00000000 2360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_ALGS 0x00000000 2370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_HANDLES 0x00000001 2380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_COMMANDS 0x00000002 2390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_PP_COMMANDS 0x00000003 2400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_AUDIT_COMMANDS 0x00000004 2410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_PCRS 0x00000005 2420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_TPM_PROPERTIES 0x00000006 2430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_PCR_PROPERTIES 0x00000007 2440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_ECC_CURVES 0x00000008 2450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_LAST 0x00000008 2460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_CAP_VENDOR_PROPERTY 0x00000100 2470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 2480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 24 Definition of TPM_PT Constants < IN/OUT, S> 2490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_PT; 2500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_NONE 0x00000000 2510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define PT_GROUP 0x00000100 2520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define PT_FIXED (PT_GROUP * 1) 2530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_FAMILY_INDICATOR ((TPM_PT)(PT_FIXED + 0)) 2540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_LEVEL ((TPM_PT)(PT_FIXED + 1)) 2550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_REVISION ((TPM_PT)(PT_FIXED + 2)) 2560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_DAY_OF_YEAR ((TPM_PT)(PT_FIXED + 3)) 2570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_YEAR ((TPM_PT)(PT_FIXED + 4)) 2580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_MANUFACTURER ((TPM_PT)(PT_FIXED + 5)) 2590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_VENDOR_STRING_1 ((TPM_PT)(PT_FIXED + 6)) 2600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_VENDOR_STRING_2 ((TPM_PT)(PT_FIXED + 7)) 2610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_VENDOR_STRING_3 ((TPM_PT)(PT_FIXED + 8)) 2620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_VENDOR_STRING_4 ((TPM_PT)(PT_FIXED + 9)) 2630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_VENDOR_TPM_TYPE ((TPM_PT)(PT_FIXED + 10)) 2640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_FIRMWARE_VERSION_1 ((TPM_PT)(PT_FIXED + 11)) 2650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_FIRMWARE_VERSION_2 ((TPM_PT)(PT_FIXED + 12)) 2660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_INPUT_BUFFER ((TPM_PT)(PT_FIXED + 13)) 2670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_TRANSIENT_MIN ((TPM_PT)(PT_FIXED + 14)) 2680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_PERSISTENT_MIN ((TPM_PT)(PT_FIXED + 15)) 2690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_LOADED_MIN ((TPM_PT)(PT_FIXED + 16)) 2700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_ACTIVE_SESSIONS_MAX ((TPM_PT)(PT_FIXED + 17)) 2710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_COUNT ((TPM_PT)(PT_FIXED + 18)) 2720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_SELECT_MIN ((TPM_PT)(PT_FIXED + 19)) 2730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_CONTEXT_GAP_MAX ((TPM_PT)(PT_FIXED + 20)) 2740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_NV_COUNTERS_MAX ((TPM_PT)(PT_FIXED + 22)) 2750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_NV_INDEX_MAX ((TPM_PT)(PT_FIXED + 23)) 2760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_MEMORY ((TPM_PT)(PT_FIXED + 24)) 2770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_CLOCK_UPDATE ((TPM_PT)(PT_FIXED + 25)) 2780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_CONTEXT_HASH ((TPM_PT)(PT_FIXED + 26)) 2790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_CONTEXT_SYM ((TPM_PT)(PT_FIXED + 27)) 2800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_CONTEXT_SYM_SIZE ((TPM_PT)(PT_FIXED + 28)) 2810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_ORDERLY_COUNT ((TPM_PT)(PT_FIXED + 29)) 2820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_MAX_COMMAND_SIZE ((TPM_PT)(PT_FIXED + 30)) 2830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_MAX_RESPONSE_SIZE ((TPM_PT)(PT_FIXED + 31)) 2840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_MAX_DIGEST ((TPM_PT)(PT_FIXED + 32)) 2850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_MAX_OBJECT_CONTEXT ((TPM_PT)(PT_FIXED + 33)) 2860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_MAX_SESSION_CONTEXT ((TPM_PT)(PT_FIXED + 34)) 2870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PS_FAMILY_INDICATOR ((TPM_PT)(PT_FIXED + 35)) 2880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PS_LEVEL ((TPM_PT)(PT_FIXED + 36)) 2890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PS_REVISION ((TPM_PT)(PT_FIXED + 37)) 2900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PS_DAY_OF_YEAR ((TPM_PT)(PT_FIXED + 38)) 2910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PS_YEAR ((TPM_PT)(PT_FIXED + 39)) 2920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_SPLIT_MAX ((TPM_PT)(PT_FIXED + 40)) 2930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_TOTAL_COMMANDS ((TPM_PT)(PT_FIXED + 41)) 2940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_LIBRARY_COMMANDS ((TPM_PT)(PT_FIXED + 42)) 2950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_VENDOR_COMMANDS ((TPM_PT)(PT_FIXED + 43)) 2960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_NV_BUFFER_MAX ((TPM_PT)(PT_FIXED + 44)) 2970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define PT_VAR (PT_GROUP * 2) 2980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PERMANENT ((TPM_PT)(PT_VAR + 0)) 2990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_STARTUP_CLEAR ((TPM_PT)(PT_VAR + 1)) 3000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_NV_INDEX ((TPM_PT)(PT_VAR + 2)) 3010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_LOADED ((TPM_PT)(PT_VAR + 3)) 3020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_LOADED_AVAIL ((TPM_PT)(PT_VAR + 4)) 3030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_ACTIVE ((TPM_PT)(PT_VAR + 5)) 3040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_ACTIVE_AVAIL ((TPM_PT)(PT_VAR + 6)) 3050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_TRANSIENT_AVAIL ((TPM_PT)(PT_VAR + 7)) 3060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_PERSISTENT ((TPM_PT)(PT_VAR + 8)) 3070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_HR_PERSISTENT_AVAIL ((TPM_PT)(PT_VAR + 9)) 3080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_NV_COUNTERS ((TPM_PT)(PT_VAR + 10)) 3090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_NV_COUNTERS_AVAIL ((TPM_PT)(PT_VAR + 11)) 3100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_ALGORITHM_SET ((TPM_PT)(PT_VAR + 12)) 3110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_LOADED_CURVES ((TPM_PT)(PT_VAR + 13)) 3120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_LOCKOUT_COUNTER ((TPM_PT)(PT_VAR + 14)) 3130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_MAX_AUTH_FAIL ((TPM_PT)(PT_VAR + 15)) 3140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_LOCKOUT_INTERVAL ((TPM_PT)(PT_VAR + 16)) 3150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_LOCKOUT_RECOVERY ((TPM_PT)(PT_VAR + 17)) 3160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_NV_WRITE_RECOVERY ((TPM_PT)(PT_VAR + 18)) 3170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_AUDIT_COUNTER_0 ((TPM_PT)(PT_VAR + 19)) 3180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_AUDIT_COUNTER_1 ((TPM_PT)(PT_VAR + 20)) 3190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 3200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 25 Definition of TPM_PT_PCR Constants < IN/OUT, S> 3210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_PT_PCR; 3220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_FIRST 0x00000000 3230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_SAVE 0x00000000 3240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_EXTEND_L0 0x00000001 3250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_RESET_L0 0x00000002 3260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_EXTEND_L1 0x00000003 3270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_RESET_L1 0x00000004 3280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_EXTEND_L2 0x00000005 3290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_RESET_L2 0x00000006 3300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_EXTEND_L3 0x00000007 3310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_RESET_L3 0x00000008 3320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_EXTEND_L4 0x00000009 3330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_RESET_L4 0x0000000A 3340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_NO_INCREMENT 0x00000011 3350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_DRTM_RESET 0x00000012 3360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_POLICY 0x00000013 3370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_AUTH 0x00000014 3380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PT_PCR_LAST 0x00000014 3390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 3400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 26 Definition of TPM_PS Constants < OUT> 3410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_PS; 3420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_MAIN 0x00000000 3430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_PC 0x00000001 3440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_PDA 0x00000002 3450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_CELL_PHONE 0x00000003 3460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_SERVER 0x00000004 3470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_PERIPHERAL 0x00000005 3480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_TSS 0x00000006 3490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_STORAGE 0x00000007 3500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_AUTHENTICATION 0x00000008 3510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_EMBEDDED 0x00000009 3520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_HARDCOPY 0x0000000A 3530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_INFRASTRUCTURE 0x0000000B 3540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_VIRTUALIZATION 0x0000000C 3550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_TNC 0x0000000D 3560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_MULTI_TENANT 0x0000000E 3570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_PS_TC 0x0000000F 3580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 3590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 27 Definition of Types for Handles 3600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT32 TPM_HANDLE; 3610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 3620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 28 Definition of TPM_HT Constants < S> 3630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef UINT8 TPM_HT; 3640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_HT_PCR 0x00 3650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_HT_NV_INDEX 0x01 3660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_HT_HMAC_SESSION 0x02 3670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_HT_LOADED_SESSION 0x02 3680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_HT_POLICY_SESSION 0x03 3690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_HT_ACTIVE_SESSION 0x03 3700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_HT_PERMANENT 0x40 3710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_HT_TRANSIENT 0x80 3720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_HT_PERSISTENT 0x81 3730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 3740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 29 Definition of TPM_RH Constants < S> 3750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPM_RH; 3760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_FIRST 0x40000000 3770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_SRK 0x40000000 3780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_OWNER 0x40000001 3790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_REVOKE 0x40000002 3800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_TRANSPORT 0x40000003 3810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_OPERATOR 0x40000004 3820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_ADMIN 0x40000005 3830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_EK 0x40000006 3840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_NULL 0x40000007 3850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_UNASSIGNED 0x40000008 3860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RS_PW 0x40000009 3870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_LOCKOUT 0x4000000A 3880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_ENDORSEMENT 0x4000000B 3890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_PLATFORM 0x4000000C 3900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_PLATFORM_NV 0x4000000D 3910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_AUTH_00 0x40000010 3920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_AUTH_FF 0x4000010F 3930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TPM_RH_LAST 0x4000010F 3940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 3950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 30 Definition of TPM_HC Constants < S> 3960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPM_HC; 3970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HR_HANDLE_MASK 0x00FFFFFF 3980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HR_RANGE_MASK 0xFF000000 3990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HR_SHIFT 24 4000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HR_PCR (TPM_HT_PCR << HR_SHIFT) 4010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HR_HMAC_SESSION (TPM_HT_HMAC_SESSION << HR_SHIFT) 4020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HR_POLICY_SESSION (TPM_HT_POLICY_SESSION << HR_SHIFT) 4030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HR_TRANSIENT (TPM_HT_TRANSIENT << HR_SHIFT) 4040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HR_PERSISTENT (TPM_HT_PERSISTENT << HR_SHIFT) 4050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HR_NV_INDEX (TPM_HT_NV_INDEX << HR_SHIFT) 4060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HR_PERMANENT (TPM_HT_PERMANENT << HR_SHIFT) 4070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define PCR_FIRST (HR_PCR + 0) 4080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define PCR_LAST (PCR_FIRST + IMPLEMENTATION_PCR-1) 4090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HMAC_SESSION_FIRST (HR_HMAC_SESSION + 0) 4100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define HMAC_SESSION_LAST (HMAC_SESSION_FIRST+MAX_ACTIVE_SESSIONS-1) 4110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define LOADED_SESSION_FIRST HMAC_SESSION_FIRST 4120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define LOADED_SESSION_LAST HMAC_SESSION_LAST 4130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define POLICY_SESSION_FIRST (HR_POLICY_SESSION + 0) 4140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define POLICY_SESSION_LAST (POLICY_SESSION_FIRST + MAX_ACTIVE_SESSIONS-1) 4150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TRANSIENT_FIRST (HR_TRANSIENT + 0) 4160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define ACTIVE_SESSION_FIRST POLICY_SESSION_FIRST 4170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define ACTIVE_SESSION_LAST POLICY_SESSION_LAST 4180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define TRANSIENT_LAST (TRANSIENT_FIRST+MAX_LOADED_OBJECTS-1) 4190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define PERSISTENT_FIRST (HR_PERSISTENT + 0) 4200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define PERSISTENT_LAST (PERSISTENT_FIRST + 0x00FFFFFF) 4210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define PLATFORM_PERSISTENT (PERSISTENT_FIRST + 0x00800000) 4220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define NV_INDEX_FIRST (HR_NV_INDEX + 0) 4230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define NV_INDEX_LAST (NV_INDEX_FIRST + 0x00FFFFFF) 4240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define PERMANENT_FIRST TPM_RH_FIRST 4250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#define PERMANENT_LAST TPM_RH_LAST 4260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 4270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 31 Definition of TPMA_ALGORITHM Bits 4280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 4290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 asymmetric : 1; 4300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 symmetric : 1; 4310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 hash : 1; 4320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 object : 1; 4330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved4_7 : 4; 4340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 signing : 1; 4350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 encrypting : 1; 4360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 method : 1; 4370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved11_31 : 21; 4380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMA_ALGORITHM; 4390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 4400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 32 Definition of TPMA_OBJECT Bits 4410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 4420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved0 : 1; 4430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 fixedTPM : 1; 4440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 stClear : 1; 4450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved3 : 1; 4460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 fixedParent : 1; 4470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 sensitiveDataOrigin : 1; 4480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 userWithAuth : 1; 4490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 adminWithPolicy : 1; 4500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved8_9 : 2; 4510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 noDA : 1; 4520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 encryptedDuplication : 1; 4530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved12_15 : 4; 4540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 restricted : 1; 4550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 decrypt : 1; 4560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 sign : 1; 4570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved19_31 : 13; 4580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMA_OBJECT; 4590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 4600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 33 Definition of TPMA_SESSION Bits < IN/OUT> 4610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 4620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 continueSession : 1; 4630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 auditExclusive : 1; 4640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 auditReset : 1; 4650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 reserved3_4 : 2; 4660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 decrypt : 1; 4670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 encrypt : 1; 4680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 audit : 1; 4690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMA_SESSION; 4700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 4710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 34 Definition of TPMA_LOCALITY Bits < IN/OUT> 4720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 4730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 locZero : 1; 4740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 locOne : 1; 4750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 locTwo : 1; 4760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 locThree : 1; 4770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 locFour : 1; 4780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 Extended : 3; 4790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMA_LOCALITY; 4800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 4810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 35 Definition of TPMA_PERMANENT Bits < OUT> 4820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 4830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 ownerAuthSet : 1; 4840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 endorsementAuthSet : 1; 4850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 lockoutAuthSet : 1; 4860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved3_7 : 5; 4870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 disableClear : 1; 4880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 inLockout : 1; 4890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 tpmGeneratedEPS : 1; 4900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved11_31 : 21; 4910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMA_PERMANENT; 4920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 4930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 36 Definition of TPMA_STARTUP_CLEAR Bits < OUT> 4940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 4950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 phEnable : 1; 4960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 shEnable : 1; 4970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 ehEnable : 1; 4980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 phEnableNV : 1; 4990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved4_30 : 27; 5000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 orderly : 1; 5010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMA_STARTUP_CLEAR; 5020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 5030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 37 Definition of TPMA_MEMORY Bits < Out> 5040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 5050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 sharedRAM : 1; 5060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 sharedNV : 1; 5070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 objectCopiedToRam : 1; 5080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved3_31 : 29; 5090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMA_MEMORY; 5100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 5110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 38 Definition of TPMA_CC Bits < OUT> 5120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 5130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CC commandIndex : 16; 5140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CC reserved16_21 : 6; 5150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CC nv : 1; 5160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CC extensive : 1; 5170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CC flushed : 1; 5180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CC cHandles : 3; 5190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CC rHandle : 1; 5200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CC V : 1; 5210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CC Res : 2; 5220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMA_CC; 5230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 5240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 39 Definition of TPMI_YES_NO Type 5250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef BYTE TPMI_YES_NO; 5260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 40 Definition of TPMI_DH_OBJECT Type 5270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_DH_OBJECT; 5280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 41 Definition of TPMI_DH_PERSISTENT Type 5290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_DH_PERSISTENT; 5300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 42 Definition of TPMI_DH_ENTITY Type < IN> 5310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_DH_ENTITY; 5320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 43 Definition of TPMI_DH_PCR Type < IN> 5330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_DH_PCR; 5340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 44 Definition of TPMI_SH_AUTH_SESSION Type < IN/OUT> 5350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_SH_AUTH_SESSION; 5360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 45 Definition of TPMI_SH_HMAC Type < IN/OUT> 5370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_SH_HMAC; 5380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 46 Definition of TPMI_SH_POLICY Type < IN/OUT> 5390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_SH_POLICY; 5400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 47 Definition of TPMI_DH_CONTEXT Type 5410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_DH_CONTEXT; 5420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 48 Definition of TPMI_RH_HIERARCHY Type 5430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_HIERARCHY; 5440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 49 Definition of TPMI_RH_ENABLES Type 5450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_ENABLES; 5460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 50 Definition of TPMI_RH_HIERARCHY_AUTH Type < IN> 5470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_HIERARCHY_AUTH; 5480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 51 Definition of TPMI_RH_PLATFORM Type < IN> 5490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_PLATFORM; 5500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 52 Definition of TPMI_RH_OWNER Type < IN> 5510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_OWNER; 5520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 53 Definition of TPMI_RH_ENDORSEMENT Type < IN> 5530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_ENDORSEMENT; 5540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 54 Definition of TPMI_RH_PROVISION Type < IN> 5550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_PROVISION; 5560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 55 Definition of TPMI_RH_CLEAR Type < IN> 5570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_CLEAR; 5580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 56 Definition of TPMI_RH_NV_AUTH Type < IN> 5590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_NV_AUTH; 5600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 57 Definition of TPMI_RH_LOCKOUT Type < IN> 5610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_LOCKOUT; 5620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 58 Definition of TPMI_RH_NV_INDEX Type < IN/OUT> 5630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_HANDLE TPMI_RH_NV_INDEX; 5640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 59 Definition of TPMI_ALG_HASH Type 5650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_HASH; 5660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 60 Definition of TPMI_ALG_ASYM Type 5670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_ASYM; 5680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 61 Definition of TPMI_ALG_SYM Type 5690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_SYM; 5700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 62 Definition of TPMI_ALG_SYM_OBJECT Type 5710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_SYM_OBJECT; 5720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 63 Definition of TPMI_ALG_SYM_MODE Type 5730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_SYM_MODE; 5740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 64 Definition of TPMI_ALG_KDF Type 5750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_KDF; 5760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 65 Definition of TPMI_ALG_SIG_SCHEME Type 5770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_SIG_SCHEME; 5780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 66 Definition of TPMI_ECC_KEY_EXCHANGE Type 5790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ECC_KEY_EXCHANGE; 5800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 67 Definition of TPMI_ST_COMMAND_TAG Type 5810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ST TPMI_ST_COMMAND_TAG; 5820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 68 Definition of TPMS_EMPTY Structure < IN/OUT> 5830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 5840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_EMPTY; 5850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 5860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 69 Definition of TPMS_ALGORITHM_DESCRIPTION Structure < OUT> 5870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 5880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ALG_ID alg; 5890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMA_ALGORITHM attributes; 5900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_ALGORITHM_DESCRIPTION; 5910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 5920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 70 Definition of TPMU_HA Union < IN/OUT, S> 5930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 5947251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SHA 5950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE sha[SHA_DIGEST_SIZE]; 5967251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 5977251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SHA1 5980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE sha1[SHA1_DIGEST_SIZE]; 5997251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 6007251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SHA256 6010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE sha256[SHA256_DIGEST_SIZE]; 6027251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 6037251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SHA384 6040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE sha384[SHA384_DIGEST_SIZE]; 6057251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 6067251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SHA512 6070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE sha512[SHA512_DIGEST_SIZE]; 6087251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 6097251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SM3_256 6100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE sm3_256[SM3_256_DIGEST_SIZE]; 6117251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 6120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_HA; 6130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 71 Definition of TPMT_HA Structure < IN/OUT> 6150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 6160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_HASH hashAlg; 6170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_HA digest; 6180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_HA; 6190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 72 Definition of TPM2B_DIGEST Structure 6210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 6220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 6230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 6240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[sizeof(TPMU_HA)]; 6250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 6260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 6270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_DIGEST; 6280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 73 Definition of TPM2B_DATA Structure 6300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 6310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 6320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 6330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[sizeof(TPMT_HA)]; 6340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 6350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 6360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_DATA; 6370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 74 Definition of Types for TPM2B_NONCE 6390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM2B_DIGEST TPM2B_NONCE; 6400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 75 Definition of Types for TPM2B_AUTH 6420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM2B_DIGEST TPM2B_AUTH; 6430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 76 Definition of Types for TPM2B_OPERAND 6450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM2B_DIGEST TPM2B_OPERAND; 6460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 77 Definition of TPM2B_EVENT Structure 6480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 6490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 6500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 6510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[1024]; 6520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 6530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 6540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_EVENT; 6550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 78 Definition of TPM2B_MAX_BUFFER Structure 6570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 6580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 6590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 6600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[MAX_DIGEST_BUFFER]; 6610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 6620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 6630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_MAX_BUFFER; 6640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 79 Definition of TPM2B_MAX_NV_BUFFER Structure 6660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 6670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 6680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 6690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[MAX_NV_BUFFER_SIZE]; 6700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 6710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 6720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_MAX_NV_BUFFER; 6730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 80 Definition of TPM2B_TIMEOUT Structure < IN/OUT> 6750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 6760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 6770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 6780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[sizeof(UINT64)]; 6790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 6800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 6810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_TIMEOUT; 6820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 81 Definition of TPM2B_IV Structure < IN/OUT> 6840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 6850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 6860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 6870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[MAX_SYM_BLOCK_SIZE]; 6880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 6890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 6900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_IV; 6910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 82 Definition of TPMU_NAME Union <> 6930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 6940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_HA digest; 6950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_HANDLE handle; 6960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_NAME; 6970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 6980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 83 Definition of TPM2B_NAME Structure 6990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 7000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 7010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 7020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE name[sizeof(TPMU_NAME)]; 7030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 7040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 7050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_NAME; 7060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 84 Definition of TPMS_PCR_SELECT Structure 7080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 sizeofSelect; 7100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE pcrSelect[PCR_SELECT_MAX]; 7110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_PCR_SELECT; 7120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 85 Definition of TPMS_PCR_SELECTION Structure 7140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_HASH hash; 7160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 sizeofSelect; 7170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE pcrSelect[PCR_SELECT_MAX]; 7180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_PCR_SELECTION; 7190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Unprocessed: Table 86 Values for proof Used in Tickets 7210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Unprocessed: Table 87 General Format of a Ticket 7220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 88 Definition of TPMT_TK_CREATION Structure 7230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ST tag; 7250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_RH_HIERARCHY hierarchy; 7260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST digest; 7270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_TK_CREATION; 7280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 89 Definition of TPMT_TK_VERIFIED Structure 7300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ST tag; 7320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_RH_HIERARCHY hierarchy; 7330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST digest; 7340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_TK_VERIFIED; 7350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 90 Definition of TPMT_TK_AUTH Structure 7370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ST tag; 7390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_RH_HIERARCHY hierarchy; 7400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST digest; 7410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_TK_AUTH; 7420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 91 Definition of TPMT_TK_HASHCHECK Structure 7440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ST tag; 7460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_RH_HIERARCHY hierarchy; 7470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST digest; 7480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_TK_HASHCHECK; 7490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 92 Definition of TPMS_ALG_PROPERTY Structure < OUT> 7510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ALG_ID alg; 7530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMA_ALGORITHM algProperties; 7540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_ALG_PROPERTY; 7550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 93 Definition of TPMS_TAGGED_PROPERTY Structure < OUT> 7570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_PT property; 7590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 value; 7600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_TAGGED_PROPERTY; 7610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 94 Definition of TPMS_TAGGED_PCR_SELECT Structure < OUT> 7630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_PT tag; 7650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT8 sizeofSelect; 7660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE pcrSelect[PCR_SELECT_MAX]; 7670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_TAGGED_PCR_SELECT; 7680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 95 Definition of TPML_CC Structure 7700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 7720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CC commandCodes[MAX_CAP_CC]; 7730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_CC; 7740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 96 Definition of TPML_CCA Structure < OUT> 7760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 7780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMA_CC commandAttributes[MAX_CAP_CC]; 7790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_CCA; 7800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 97 Definition of TPML_ALG Structure 7820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 7840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ALG_ID algorithms[MAX_ALG_LIST_SIZE]; 7850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_ALG; 7860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 98 Definition of TPML_HANDLE Structure < OUT> 7880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 7900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_HANDLE handle[MAX_CAP_HANDLES]; 7910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_HANDLE; 7920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 99 Definition of TPML_DIGEST Structure 7940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 7950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 7960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST digests[8]; 7970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_DIGEST; 7980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 7990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 100 Definition of TPML_DIGEST_VALUES Structure 8000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 8020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_HA digests[HASH_COUNT]; 8030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_DIGEST_VALUES; 8040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 101 Definition of TPM2B_DIGEST_VALUES Structure 8060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 8070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 8080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 8090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[sizeof(TPML_DIGEST_VALUES)]; 8100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 8110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 8120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_DIGEST_VALUES; 8130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 102 Definition of TPML_PCR_SELECTION Structure 8150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 8170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_PCR_SELECTION pcrSelections[HASH_COUNT]; 8180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_PCR_SELECTION; 8190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 103 Definition of TPML_ALG_PROPERTY Structure < OUT> 8210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 8230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_ALG_PROPERTY algProperties[MAX_CAP_ALGS]; 8240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_ALG_PROPERTY; 8250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 104 Definition of TPML_TAGGED_TPM_PROPERTY Structure < OUT> 8270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 8290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_TAGGED_PROPERTY tpmProperty[MAX_TPM_PROPERTIES]; 8300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_TAGGED_TPM_PROPERTY; 8310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 105 Definition of TPML_TAGGED_PCR_PROPERTY Structure < OUT> 8330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 8350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_TAGGED_PCR_SELECT pcrProperty[MAX_PCR_PROPERTIES]; 8360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_TAGGED_PCR_PROPERTY; 8370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 106 Definition of TPML_ECC_CURVE Structure < OUT> 8390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 count; 8410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ECC_CURVE eccCurves[MAX_ECC_CURVES]; 8420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPML_ECC_CURVE; 8430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 107 Definition of TPMU_CAPABILITIES Union < OUT> 8450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 8460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_ALG_PROPERTY algorithms; 8470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_HANDLE handles; 8480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_CCA command; 8490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_CC ppCommands; 8500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_CC auditCommands; 8510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_PCR_SELECTION assignedPCR; 8520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_TAGGED_TPM_PROPERTY tpmProperties; 8530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_TAGGED_PCR_PROPERTY pcrProperties; 8540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_ECC_CURVE eccCurves; 8550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_CAPABILITIES; 8560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 108 Definition of TPMS_CAPABILITY_DATA Structure < OUT> 8580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_CAP capability; 8600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_CAPABILITIES data; 8610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_CAPABILITY_DATA; 8620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 109 Definition of TPMS_CLOCK_INFO Structure 8640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT64 clock; 8660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 resetCount; 8670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 restartCount; 8680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_YES_NO safe; 8690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_CLOCK_INFO; 8700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 110 Definition of TPMS_TIME_INFO Structure 8720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT64 time; 8740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_CLOCK_INFO clockInfo; 8750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_TIME_INFO; 8760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 111 Definition of TPMS_TIME_ATTEST_INFO Structure < OUT> 8780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_TIME_INFO time; 8800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT64 firmwareVersion; 8810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_TIME_ATTEST_INFO; 8820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 112 Definition of TPMS_CERTIFY_INFO Structure < OUT> 8840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_NAME name; 8860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_NAME qualifiedName; 8870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_CERTIFY_INFO; 8880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 113 Definition of TPMS_QUOTE_INFO Structure < OUT> 8900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_PCR_SELECTION pcrSelect; 8920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST pcrDigest; 8930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_QUOTE_INFO; 8940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 8950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 114 Definition of TPMS_COMMAND_AUDIT_INFO Structure < OUT> 8960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 8970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT64 auditCounter; 8980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ALG_ID digestAlg; 8990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST auditDigest; 9000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST commandDigest; 9010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_COMMAND_AUDIT_INFO; 9020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 115 Definition of TPMS_SESSION_AUDIT_INFO Structure < OUT> 9040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 9050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_YES_NO exclusiveSession; 9060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST sessionDigest; 9070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_SESSION_AUDIT_INFO; 9080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 116 Definition of TPMS_CREATION_INFO Structure < OUT> 9100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 9110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_NAME objectName; 9120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST creationHash; 9130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_CREATION_INFO; 9140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 117 Definition of TPMS_NV_CERTIFY_INFO Structure < OUT> 9160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 9170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_NAME indexName; 9180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 offset; 9190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_MAX_NV_BUFFER nvContents; 9200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_NV_CERTIFY_INFO; 9210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 118 Definition of TPMI_ST_ATTEST Type < OUT> 9230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ST TPMI_ST_ATTEST; 9240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 119 Definition of TPMU_ATTEST Union < OUT> 9250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 9260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_CERTIFY_INFO certify; 9270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_CREATION_INFO creation; 9280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_QUOTE_INFO quote; 9290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_COMMAND_AUDIT_INFO commandAudit; 9300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SESSION_AUDIT_INFO sessionAudit; 9310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_TIME_ATTEST_INFO time; 9320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_NV_CERTIFY_INFO nv; 9330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_ATTEST; 9340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 120 Definition of TPMS_ATTEST Structure < OUT> 9360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 9370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_GENERATED magic; 9380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ST_ATTEST type; 9390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_NAME qualifiedSigner; 9400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DATA extraData; 9410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_CLOCK_INFO clockInfo; 9420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT64 firmwareVersion; 9430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_ATTEST attested; 9440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_ATTEST; 9450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 121 Definition of TPM2B_ATTEST Structure < OUT> 9470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 9480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 9490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 9500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE attestationData[sizeof(TPMS_ATTEST)]; 9510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 9520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 9530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_ATTEST; 9540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 122 Definition of TPMS_AUTH_COMMAND Structure < IN> 9560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 9570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_SH_AUTH_SESSION sessionHandle; 9580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_NONCE nonce; 9590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMA_SESSION sessionAttributes; 9600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_AUTH hmac; 9610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_AUTH_COMMAND; 9620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 123 Definition of TPMS_AUTH_RESPONSE Structure < OUT> 9640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 9650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_NONCE nonce; 9660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMA_SESSION sessionAttributes; 9670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_AUTH hmac; 9680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_AUTH_RESPONSE; 9690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 124 Definition of TPMI_!ALG.S_KEY_BITS Type 9710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_KEY_BITS TPMI_AES_KEY_BITS; 9720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_KEY_BITS TPMI_SM4_KEY_BITS; 9730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_KEY_BITS TPMI_CAMELLIA_KEY_BITS; 9740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 125 Definition of TPMU_SYM_KEY_BITS Union 9770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 9787251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_AES 9790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_AES_KEY_BITS aes; 9807251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 9817251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SM4 9820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_SM4_KEY_BITS sm4; 9837251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 9847251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_CAMELLIA 9850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_CAMELLIA_KEY_BITS camellia; 9867251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 9870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_KEY_BITS sym; 9887251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_XOR 9890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_HASH xor_; 9907251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 9910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_SYM_KEY_BITS; 9920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 9930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 126 Definition of TPMU_SYM_MODE Union 9940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 9957251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_AES 9960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_SYM_MODE aes; 9977251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 9987251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SM4 9990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_SYM_MODE sm4; 10007251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 10017251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_CAMELLIA 10020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_SYM_MODE camellia; 10037251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 10040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_SYM_MODE sym; 10050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_SYM_MODE; 10060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 127 xDefinition of TPMU_SYM_DETAILS Union 10080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 10090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_SYM_DETAILS; 10100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 128 Definition of TPMT_SYM_DEF Structure 10120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 10130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_SYM algorithm; 10140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_SYM_KEY_BITS keyBits; 10150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_SYM_MODE mode; 10160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_SYM_DEF; 10170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 129 Definition of TPMT_SYM_DEF_OBJECT Structure 10190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 10200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_SYM_OBJECT algorithm; 10210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_SYM_KEY_BITS keyBits; 10220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_SYM_MODE mode; 10230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_SYM_DEF_OBJECT; 10240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 130 Definition of TPM2B_SYM_KEY Structure 10260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 10270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 10280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 10290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[MAX_SYM_KEY_BYTES]; 10300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 10310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 10320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_SYM_KEY; 10330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 131 Definition of TPMS_SYMCIPHER_PARMS Structure 10350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 10360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_SYM_DEF_OBJECT sym; 10370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_SYMCIPHER_PARMS; 10380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 132 Definition of TPM2B_SENSITIVE_DATA Structure 10400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 10410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 10420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 10430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[MAX_SYM_DATA]; 10440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 10450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 10460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_SENSITIVE_DATA; 10470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 133 Definition of TPMS_SENSITIVE_CREATE Structure < IN> 10490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 10500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_AUTH userAuth; 10510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_SENSITIVE_DATA data; 10520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_SENSITIVE_CREATE; 10530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 134 Definition of TPM2B_SENSITIVE_CREATE Structure < IN, S> 10550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 10560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 10570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 10580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SENSITIVE_CREATE sensitive; 10590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 10600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 10610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_SENSITIVE_CREATE; 10620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 135 Definition of TPMS_SCHEME_HASH Structure 10640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 10650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_HASH hashAlg; 10660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_SCHEME_HASH; 10670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 136 Definition of TPMS_SCHEME_ECDAA Structure 10690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 10700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_HASH hashAlg; 10710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 count; 10720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_SCHEME_ECDAA; 10730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 137 Definition of TPMI_ALG_KEYEDHASH_SCHEME Type 10750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_KEYEDHASH_SCHEME; 10760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 138 Definition of Types for HMAC_SIG_SCHEME 10770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_SCHEME_HMAC; 10780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 139 Definition of TPMS_SCHEME_XOR Structure 10800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 10810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_HASH hashAlg; 10820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_KDF kdf; 10830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_SCHEME_XOR; 10840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 140 Definition of TPMU_SCHEME_KEYEDHASH Union < IN/OUT, S> 10860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 10877251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_HMAC 10880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SCHEME_HMAC hmac; 10897251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 10907251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_XOR 10910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SCHEME_XOR xor_; 10927251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 10930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_SCHEME_KEYEDHASH; 10940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 10950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 141 Definition of TPMT_KEYEDHASH_SCHEME Structure 10960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 10970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_KEYEDHASH_SCHEME scheme; 10980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_SCHEME_KEYEDHASH details; 10990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_KEYEDHASH_SCHEME; 11000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 11010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 142 Definition of Types for RSA Signature Schemes 11020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_SIG_SCHEME_RSASSA; 11030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_SIG_SCHEME_RSAPSS; 11040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 11050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 143 Definition of Types for ECC Signature Schemes 11060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_SIG_SCHEME_ECDSA; 11070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_SIG_SCHEME_SM2; 11080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_SIG_SCHEME_ECSCHNORR; 11090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_ECDAA TPMS_SIG_SCHEME_ECDAA; 11100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 11110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 144 Definition of TPMU_SIG_SCHEME Union < IN/OUT, S> 11120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 11137251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSASSA 11140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_RSASSA rsassa; 11157251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11167251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSAPSS 11170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_RSAPSS rsapss; 11187251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11197251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECDSA 11200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_ECDSA ecdsa; 11217251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 112216e65be1bdf7ee570373449d8cff729c55fc8776nagendra modadugu// TODO(ngm): ECDAA is not currently supported 112316e65be1bdf7ee570373449d8cff729c55fc8776nagendra modadugu// on CR50, but this field has unguarded references 112416e65be1bdf7ee570373449d8cff729c55fc8776nagendra modadugu// in CryptUtil.c, so allow its inclusion. 112516e65be1bdf7ee570373449d8cff729c55fc8776nagendra modadugu// #ifdef TPM_ALG_ECDAA 11260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_ECDAA ecdaa; 112716e65be1bdf7ee570373449d8cff729c55fc8776nagendra modadugu// #endif 11287251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SM2 11290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_SM2 sm2; 11307251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11317251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECSCHNORR 11320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_ECSCHNORR ecschnorr; 11337251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11347251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_HMAC 11350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SCHEME_HMAC hmac; 11367251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SCHEME_HASH any; 11380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_SIG_SCHEME; 11390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 11400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 145 Definition of TPMT_SIG_SCHEME Structure 11410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 11420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_SIG_SCHEME scheme; 11430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_SIG_SCHEME details; 11440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_SIG_SCHEME; 11450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 11460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 146 Definition of Types for Encryption Schemes 11470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_ENC_SCHEME_OAEP; 11480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_EMPTY TPMS_ENC_SCHEME_RSAES; 11490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 11500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 147 Definition of Types for ECC Key Exchange 11510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_KEY_SCHEME_ECDH; 11520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_KEY_SCHEME_ECMQV; 11530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 11540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 148 Definition of Types for KDF Schemes 11550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_SCHEME_MGF1; 11560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_SCHEME_KDF1_SP800_56A; 11570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_SCHEME_KDF2; 11580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SCHEME_HASH TPMS_SCHEME_KDF1_SP800_108; 11590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 11600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 149 Definition of TPMU_KDF_SCHEME Union < IN/OUT, S> 11610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 11627251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_MGF1 11630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SCHEME_MGF1 mgf1; 11647251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11657251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_KDF1_SP800_56A 11660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SCHEME_KDF1_SP800_56A kdf1_sp800_56a; 11677251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11687251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_KDF2 11690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SCHEME_KDF2 kdf2; 11707251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11717251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_KDF1_SP800_108 11720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SCHEME_KDF1_SP800_108 kdf1_sp800_108; 11737251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_KDF_SCHEME; 11750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 11760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 150 Definition of TPMT_KDF_SCHEME Structure 11770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 11780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_KDF scheme; 11790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_KDF_SCHEME details; 11800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_KDF_SCHEME; 11810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 11820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 151 Definition of TPMI_ALG_ASYM_SCHEME Type <> 11830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_ASYM_SCHEME; 11840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 152 Definition of TPMU_ASYM_SCHEME Union 11850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 11867251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECDH 11870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_KEY_SCHEME_ECDH ecdh; 11887251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11897251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECMQV 11900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_KEY_SCHEME_ECMQV ecmqv; 11917251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11927251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSASSA 11930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_RSASSA rsassa; 11947251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11957251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSAPSS 11960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_RSAPSS rsapss; 11977251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 11987251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECDSA 11990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_ECDSA ecdsa; 12007251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 12017251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECDAA 12020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_ECDAA ecdaa; 12037251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 12047251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SM2 12050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_SM2 sm2; 12067251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 12077251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECSCHNORR 12080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIG_SCHEME_ECSCHNORR ecschnorr; 12097251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 12107251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSAES 12110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_ENC_SCHEME_RSAES rsaes; 12127251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 12137251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_OAEP 12140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_ENC_SCHEME_OAEP oaep; 12157251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 12160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SCHEME_HASH anySig; 12170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_ASYM_SCHEME; 12180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 12190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 153 Definition of TPMT_ASYM_SCHEME Structure <> 12200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 12210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_ASYM_SCHEME scheme; 12220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_ASYM_SCHEME details; 12230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_ASYM_SCHEME; 12240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 12250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 154 Definition of TPMI_ALG_RSA_SCHEME Type 12260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_RSA_SCHEME; 12270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 155 Definition of TPMT_RSA_SCHEME Structure 12280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 12290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_RSA_SCHEME scheme; 12300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_ASYM_SCHEME details; 12310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_RSA_SCHEME; 12320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 12330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 156 Definition of TPMI_ALG_RSA_DECRYPT Type 12340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_RSA_DECRYPT; 12350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 157 Definition of TPMT_RSA_DECRYPT Structure 12360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 12370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_RSA_DECRYPT scheme; 12380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_ASYM_SCHEME details; 12390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_RSA_DECRYPT; 12400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 12410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 158 Definition of TPM2B_PUBLIC_KEY_RSA Structure 12420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 12430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 12440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 12450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[MAX_RSA_KEY_BYTES]; 12460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 12470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 12480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_PUBLIC_KEY_RSA; 12490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 12500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 159 Definition of TPMI_RSA_KEY_BITS Type 12510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_KEY_BITS TPMI_RSA_KEY_BITS; 12520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 160 Definition of TPM2B_PRIVATE_KEY_RSA Structure 12530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 12540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 12550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 12560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[MAX_RSA_KEY_BYTES/2]; 12570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 12580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 12590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_PRIVATE_KEY_RSA; 12600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 12610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 161 Definition of TPM2B_ECC_PARAMETER Structure 12620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 12630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 12640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 12650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[MAX_ECC_KEY_BYTES]; 12660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 12670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 12680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_ECC_PARAMETER; 12690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 12700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 162 Definition of TPMS_ECC_POINT Structure 12710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 12720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER x; 12730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER y; 1274d93651340e362a54ae148899a0106d55aaf04b8enagendra modadugu} TPMS_ECC_POINT; 12750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 12760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 163 Definition of TPM2B_ECC_POINT Structure 12770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 12780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 12790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 12800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_ECC_POINT point; 12810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 12820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 12830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_ECC_POINT; 12840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 12850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 164 Definition of TPMI_ALG_ECC_SCHEME Type 12860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_ECC_SCHEME; 12870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 165 Definition of TPMI_ECC_CURVE Type 12880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ECC_CURVE TPMI_ECC_CURVE; 12890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 166 Definition of TPMT_ECC_SCHEME Structure 12900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 12910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_ECC_SCHEME scheme; 1292d7f4c46b70e957a68fec88f1c1f2aab39daf4ad2Vadim Bendebury TPMU_ASYM_SCHEME details; 12930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_ECC_SCHEME; 12940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 12950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 167 Definition of TPMS_ALGORITHM_DETAIL_ECC Structure < OUT> 12960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 12970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ECC_CURVE curveID; 12980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 keySize; 12990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_KDF_SCHEME kdf; 13000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_ECC_SCHEME sign; 13010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER p; 13020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER a; 13030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER b; 13040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER gX; 13050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER gY; 13060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER n; 13070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER h; 13080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_ALGORITHM_DETAIL_ECC; 13090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 13100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 168 Definition of TPMS_SIGNATURE_RSA Structure 13110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 13120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_HASH hash; 13130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_PUBLIC_KEY_RSA sig; 13140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_SIGNATURE_RSA; 13150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 13160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 169 Definition of Types for Signature 13170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SIGNATURE_RSA TPMS_SIGNATURE_RSASSA; 13180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SIGNATURE_RSA TPMS_SIGNATURE_RSAPSS; 13190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 13200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 170 Definition of TPMS_SIGNATURE_ECC Structure 13210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 13220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_HASH hash; 13230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER signatureR; 13240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER signatureS; 13250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_SIGNATURE_ECC; 13260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 13270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 171 Definition of Types for TPMS_SIGNATUE_ECC 13280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SIGNATURE_ECC TPMS_SIGNATURE_ECDSA; 13290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SIGNATURE_ECC TPMS_SIGNATURE_ECDAA; 13300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SIGNATURE_ECC TPMS_SIGNATURE_SM2; 13310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPMS_SIGNATURE_ECC TPMS_SIGNATURE_ECSCHNORR; 13320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 13330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 172 Definition of TPMU_SIGNATURE Union < IN/OUT, S> 13340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 13357251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSASSA 13360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIGNATURE_RSASSA rsassa; 13377251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13387251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSAPSS 13390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIGNATURE_RSAPSS rsapss; 13407251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13417251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECDSA 13420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIGNATURE_ECDSA ecdsa; 13437251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13447251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECDAA 13450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIGNATURE_ECDAA ecdaa; 13467251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13477251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SM2 13480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIGNATURE_SM2 sm2; 13497251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13507251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECSCHNORR 13510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SIGNATURE_ECSCHNORR ecschnorr; 13527251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13537251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_HMAC 13540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_HA hmac; 13557251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_SCHEME_HASH any; 13570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_SIGNATURE; 13580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 13590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 173 Definition of TPMT_SIGNATURE Structure 13600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 13610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_SIG_SCHEME sigAlg; 13620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_SIGNATURE signature; 13630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_SIGNATURE; 13640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 13650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 174 Definition of TPMU_ENCRYPTED_SECRET Union < S> 13660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 13677251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECC 13680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE ecc[sizeof(TPMS_ECC_POINT)]; 13697251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13707251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSA 13710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE rsa[MAX_RSA_KEY_BYTES]; 13727251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13737251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SYMCIPHER 13740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE symmetric[sizeof(TPM2B_DIGEST)]; 13757251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13767251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_KEYEDHASH 13770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE keyedHash[sizeof(TPM2B_DIGEST)]; 13787251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_ENCRYPTED_SECRET; 13800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 13810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 175 Definition of TPM2B_ENCRYPTED_SECRET Structure 13820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 13830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 13840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 13850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE secret[sizeof(TPMU_ENCRYPTED_SECRET)]; 13860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 13870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 13880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_ENCRYPTED_SECRET; 13890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 13900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 176 Definition of TPMI_ALG_PUBLIC Type 13910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef TPM_ALG_ID TPMI_ALG_PUBLIC; 13920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 177 Definition of TPMU_PUBLIC_ID Union < IN/OUT, S> 13930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 13947251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_KEYEDHASH 13950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST keyedHash; 13967251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 13977251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SYMCIPHER 13980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST sym; 13997251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 14007251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSA 14010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_PUBLIC_KEY_RSA rsa; 14027251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 14037251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECC 14040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_ECC_POINT ecc; 14057251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 14060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_PUBLIC_ID; 14070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 14080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 178 Definition of TPMS_KEYEDHASH_PARMS Structure 14090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 14100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_KEYEDHASH_SCHEME scheme; 14110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_KEYEDHASH_PARMS; 14120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 14130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 179 Definition of TPMS_ASYM_PARMS Structure <> 14140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 14150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_SYM_DEF_OBJECT symmetric; 14160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_ASYM_SCHEME scheme; 14170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_ASYM_PARMS; 14180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 14190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 180 Definition of TPMS_RSA_PARMS Structure 14200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 14210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_SYM_DEF_OBJECT symmetric; 14220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_RSA_SCHEME scheme; 14230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_RSA_KEY_BITS keyBits; 14240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 exponent; 14250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_RSA_PARMS; 14260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 14270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 181 Definition of TPMS_ECC_PARMS Structure 14280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 14290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_SYM_DEF_OBJECT symmetric; 14300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_ECC_SCHEME scheme; 14310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ECC_CURVE curveID; 14320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_KDF_SCHEME kdf; 14330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_ECC_PARMS; 14340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 14350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 182 Definition of TPMU_PUBLIC_PARMS Union < IN/OUT, S> 14360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 14377251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_KEYEDHASH 14380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_KEYEDHASH_PARMS keyedHashDetail; 14397251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 14407251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SYMCIPHER 1441d7f4c46b70e957a68fec88f1c1f2aab39daf4ad2Vadim Bendebury TPMS_SYMCIPHER_PARMS symDetail; 14427251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 14437251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSA 14440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_RSA_PARMS rsaDetail; 14457251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 14467251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECC 14470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_ECC_PARMS eccDetail; 14487251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 14490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_ASYM_PARMS asymDetail; 14500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_PUBLIC_PARMS; 14510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 14520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 183 Definition of TPMT_PUBLIC_PARMS Structure 14530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 14540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_PUBLIC type; 14550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_PUBLIC_PARMS parameters; 14560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_PUBLIC_PARMS; 14570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 14580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 184 Definition of TPMT_PUBLIC Structure 14590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 14600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_PUBLIC type; 14610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_HASH nameAlg; 14620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMA_OBJECT objectAttributes; 14630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST authPolicy; 14640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_PUBLIC_PARMS parameters; 14650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_PUBLIC_ID unique; 14660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_PUBLIC; 14670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 14680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 185 Definition of TPM2B_PUBLIC Structure 14690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 14700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 14710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 14720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_PUBLIC publicArea; 14730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 14740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 14750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_PUBLIC; 14760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 14770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 186 Definition of TPM2B_PRIVATE_VENDOR_SPECIFIC Structure<> 14780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 14790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 14800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 14810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[PRIVATE_VENDOR_SPECIFIC_BYTES]; 14820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 14830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 14840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_PRIVATE_VENDOR_SPECIFIC; 14850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 14860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 187 Definition of TPMU_SENSITIVE_COMPOSITE Union < IN/OUT, S> 14870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 14887251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_RSA 14890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_PRIVATE_KEY_RSA rsa; 14907251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 14917251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_ECC 14920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_ECC_PARAMETER ecc; 14937251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 14947251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_KEYEDHASH 14950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_SENSITIVE_DATA bits; 14967251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 14977251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#ifdef TPM_ALG_SYMCIPHER 14980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_SYM_KEY sym; 14997251a1bc659c90dad49850a0b5bb28f4c541cd48Vadim Bendebury#endif 15000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_PRIVATE_VENDOR_SPECIFIC any; 15010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMU_SENSITIVE_COMPOSITE; 15020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 15030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 188 Definition of TPMT_SENSITIVE Structure 15040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 15050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_PUBLIC sensitiveType; 15060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_AUTH authValue; 15070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST seedValue; 15080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMU_SENSITIVE_COMPOSITE sensitive; 15090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMT_SENSITIVE; 15100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 15110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 189 Definition of TPM2B_SENSITIVE Structure < IN/OUT> 15120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 15130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 15140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 15150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_SENSITIVE sensitiveArea; 15160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 15170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 15180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_SENSITIVE; 15190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 15200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 190 Definition of _PRIVATE Structure <> 15210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 15220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST integrityOuter; 15230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST integrityInner; 15240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMT_SENSITIVE sensitive; 15250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} _PRIVATE; 15260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 15270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 191 Definition of TPM2B_PRIVATE Structure < IN/OUT, S> 15280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 15290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 15300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 15310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[sizeof(_PRIVATE)]; 15320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 15330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 15340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_PRIVATE; 15350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 15360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 192 Definition of _ID_OBJECT Structure <> 15370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 15380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST integrityHMAC; 15390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST encIdentity; 15400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} _ID_OBJECT; 15410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 15420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 193 Definition of TPM2B_ID_OBJECT Structure < IN/OUT> 15430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 15440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 15450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 15460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE credential[sizeof(_ID_OBJECT)]; 15470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 15480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 15490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_ID_OBJECT; 15500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 15510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 194 Definition of TPM_NV_INDEX Bits <> 15520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 15530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 index : 24; 15540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 RH_NV : 8; 15550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM_NV_INDEX; 15560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 15570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 195 Definition of TPMA_NV Bits 15580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 15590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_PPWRITE : 1; 15600232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_OWNERWRITE : 1; 15610232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_AUTHWRITE : 1; 15620232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_POLICYWRITE : 1; 15630232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_COUNTER : 1; 15640232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_BITS : 1; 15650232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_EXTEND : 1; 15660232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved7_9 : 3; 15670232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_POLICY_DELETE : 1; 15680232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_WRITELOCKED : 1; 15690232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_WRITEALL : 1; 15700232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_WRITEDEFINE : 1; 15710232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_WRITE_STCLEAR : 1; 15720232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_GLOBALLOCK : 1; 15730232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_PPREAD : 1; 15740232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_OWNERREAD : 1; 15750232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_AUTHREAD : 1; 15760232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_POLICYREAD : 1; 15770232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 reserved20_24 : 5; 15780232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_NO_DA : 1; 15790232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_ORDERLY : 1; 15800232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_CLEAR_STCLEAR : 1; 15810232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_READLOCKED : 1; 15820232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_WRITTEN : 1; 15830232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_PLATFORMCREATE : 1; 15840232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT32 TPMA_NV_READ_STCLEAR : 1; 15850232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMA_NV; 15860232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 15870232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 196 Definition of TPMS_NV_PUBLIC Structure 15880232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 15890232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_RH_NV_INDEX nvIndex; 15900232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_ALG_HASH nameAlg; 15910232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMA_NV attributes; 15920232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST authPolicy; 15930232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 dataSize; 15940232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_NV_PUBLIC; 15950232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 15960232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 197 Definition of TPM2B_NV_PUBLIC Structure 15970232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 15980232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 15990232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 16000232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_NV_PUBLIC nvPublic; 16010232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 16020232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 16030232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_NV_PUBLIC; 16040232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 16050232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 198 Definition of TPM2B_CONTEXT_SENSITIVE Structure < IN/OUT> 16060232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 16070232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 16080232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 16090232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[MAX_CONTEXT_SIZE]; 16100232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 16110232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 16120232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_CONTEXT_SENSITIVE; 16130232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 16140232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 199 Definition of TPMS_CONTEXT_DATA Structure < IN/OUT, S> 16150232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 16160232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST integrity; 16170232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_CONTEXT_SENSITIVE encrypted; 16180232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_CONTEXT_DATA; 16190232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 16200232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 200 Definition of TPM2B_CONTEXT_DATA Structure < IN/OUT> 16210232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 16220232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 16230232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 16240232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury BYTE buffer[sizeof(TPMS_CONTEXT_DATA)]; 16250232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 16260232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 16270232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_CONTEXT_DATA; 16280232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 16290232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 201 Definition of TPMS_CONTEXT Structure 16300232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 16310232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT64 sequence; 16320232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_DH_CONTEXT savedHandle; 16330232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMI_RH_HIERARCHY hierarchy; 16340232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_CONTEXT_DATA contextBlob; 16350232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_CONTEXT; 16360232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 16370232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Unprocessed: Table 202 Context Handle Values 16380232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 203 Definition of TPMS_CREATION_DATA Structure < OUT> 16390232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef struct { 16400232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPML_PCR_SELECTION pcrSelect; 16410232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DIGEST pcrDigest; 16420232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMA_LOCALITY locality; 16430232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM_ALG_ID parentNameAlg; 16440232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_NAME parentName; 16450232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_NAME parentQualifiedName; 16460232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B_DATA outsideInfo; 16470232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPMS_CREATION_DATA; 16480232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 16490232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury// Table 204 Definition of TPM2B_CREATION_DATA Structure < OUT> 16500232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendeburytypedef union { 16510232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury struct { 16520232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury UINT16 size; 16530232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPMS_CREATION_DATA creationData; 16540232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury } t; 16550232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury TPM2B b; 16560232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury} TPM2B_CREATION_DATA; 16570232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 16580232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury 16590232bace9083911ff90c04b7d1ca39baedf61f81Vadim Bendebury#endif // TPM2_TPM_TYPES_H_ 1660