⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tss_defines.h

📁 TCG软件栈 linux系统上使用 为可信应用软件提供和 TPM通信的 接口 其网站上有很多关于使用此软件的测试用例
💻 H
📖 第 1 页 / 共 4 页
字号:
/*++
 
Global defines for TSS.

--*/

#ifndef __TSS_DEFINES_H__
#define __TSS_DEFINES_H__

#include <tss/platform.h>
#include <tss/tpm.h>


//////////////////////////////////////////////////////////////////////////
// Object types:
//////////////////////////////////////////////////////////////////////////

//
// definition of the object types that can be created via CreateObject
//
#define   TSS_OBJECT_TYPE_POLICY    (0x01)      // Policy object
#define   TSS_OBJECT_TYPE_RSAKEY    (0x02)      // RSA-Key object
#define   TSS_OBJECT_TYPE_ENCDATA   (0x03)      // Encrypted data object
#define   TSS_OBJECT_TYPE_PCRS      (0x04)      // PCR composite object
#define   TSS_OBJECT_TYPE_HASH      (0x05)      // Hash object
#define   TSS_OBJECT_TYPE_DELFAMILY (0x06)      // Delegation Family object
#define   TSS_OBJECT_TYPE_NV        (0x07)      // NV object
#define   TSS_OBJECT_TYPE_MIGDATA   (0x08)      // CMK Migration data object
#define   TSS_OBJECT_TYPE_DAA_CERTIFICATE (0x09) // DAA credential
#define   TSS_OBJECT_TYPE_DAA_ISSUER_KEY  (0x0a) // DAA cred. issuer keypair
#define   TSS_OBJECT_TYPE_DAA_ARA_KEY     (0x0b) // DAA anonymity revocation
                                                 // authority keypair


//////////////////////////////////////////////////////////////////////////
// CreateObject: Flags
//////////////////////////////////////////////////////////////////////////


//************************************
// Flags for creating RSAKEY object: *
//************************************

//
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//                                                              |x x|Auth
//                                                            |x|    Volatility
//                                                          |x|      Migration
//                                                  |x x x x|        Type
//                                          |x x x x|                Size
//                                      |x x|                        CMK
//                                |x x x|                            Version
//              |0 0 0 0 0 0 0 0 0|                                  Reserved
//  |x x x x x x|                                                    Fixed Type
//

//  Authorization:
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
//   Never                                                      |0 0|
//   Always                                                     |0 1|
//   Private key always                                         |1 0|
//
#define   TSS_KEY_NO_AUTHORIZATION            (0x00000000) // no auth needed
                                                           // for this key
#define   TSS_KEY_AUTHORIZATION               (0x00000001) // key needs auth
                                                           // for all ops
#define   TSS_KEY_AUTHORIZATION_PRIV_USE_ONLY (0x00000002) // key needs auth
                                                           // for privkey ops,
                                                           // noauth for pubkey

//
//  Volatility
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
//   Non Volatile                                             |0|
//   Volatile                                                 |1|
//
#define    TSS_KEY_NON_VOLATILE      (0x00000000)   // Key is non-volatile
#define    TSS_KEY_VOLATILE          (0x00000004)   // Key is volatile

//
//  Migration
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
//   Non Migratable                                         |0|
//   Migratable                                             |1|
//
#define   TSS_KEY_NOT_MIGRATABLE     (0x00000000)   // key is not migratable
#define   TSS_KEY_MIGRATABLE         (0x00000008)   // key is migratable

//
//  Usage
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
//   Default (Legacy)                               |0 0 0 0|
//   Signing                                        |0 0 0 1|
//   Storage                                        |0 0 1 0|
//   Identity                                       |0 0 1 1|
//   AuthChange                                     |0 1 0 0|
//   Bind                                           |0 1 0 1|
//   Legacy                                         |0 1 1 0|
//
#define   TSS_KEY_TYPE_DEFAULT    (0x00000000)   // indicate a default key
                                                 // (Legacy-Key)
#define   TSS_KEY_TYPE_SIGNING    (0x00000010)   // indicate a signing key
#define   TSS_KEY_TYPE_STORAGE    (0x00000020)   // used as storage key
#define   TSS_KEY_TYPE_IDENTITY   (0x00000030)   // indicate an idendity key
#define   TSS_KEY_TYPE_AUTHCHANGE (0x00000040)   // indicate an ephemeral key
#define   TSS_KEY_TYPE_BIND       (0x00000050)   // indicate a key for TPM_Bind
#define   TSS_KEY_TYPE_LEGACY     (0x00000060)   // indicate a key that can
                                                 // perform signing and binding
#define   TSS_KEY_TYPE_MIGRATE    (0x00000070)   // indicate a key that can
                                                 // act as a CMK MA
#define   TSS_KEY_TYPE_BITMASK    (0x000000F0)   // mask to extract key type

//
//  Key size
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
// DEFAULT                                  |0 0 0 0|
//   512                                    |0 0 0 1|
//  1024                                    |0 0 1 0|
//  2048                                    |0 0 1 1|
//  4096                                    |0 1 0 0|
//  8192                                    |0 1 0 1|
// 16384                                    |0 1 1 0|
//
#define TSS_KEY_SIZE_DEFAULT (UINT32)(0x00000000) // indicate tpm-specific size
#define TSS_KEY_SIZE_512     (UINT32)(0x00000100) // indicate a 512-bit key
#define TSS_KEY_SIZE_1024    (UINT32)(0x00000200) // indicate a 1024-bit key
#define TSS_KEY_SIZE_2048    (UINT32)(0x00000300) // indicate a 2048-bit key
#define TSS_KEY_SIZE_4096    (UINT32)(0x00000400) // indicate a 4096-bit key
#define TSS_KEY_SIZE_8192    (UINT32)(0x00000500) // indicate a 8192-bit key
#define TSS_KEY_SIZE_16384   (UINT32)(0x00000600) // indicate a 16384-bit key
#define TSS_KEY_SIZE_BITMASK (UINT32)(0x00000F00) // mask to extract key size

//
//  Certified Migratability
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
// DEFAULT                              |0 0|
// Not Certified Migratable             |0 0|
// Certified Migratable                 |0 1|
//
#define TSS_KEY_NOT_CERTIFIED_MIGRATABLE (UINT32)(0x00000000)
#define TSS_KEY_CERTIFIED_MIGRATABLE     (UINT32)(0x00001000)

//
//  Specification version
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
// Context default                |0 0 0|
// TPM_KEY 1.1b key               |0 0 1|
// TPM_KEY12 1.2 key              |0 1 0|
//
#define TSS_KEY_STRUCT_DEFAULT            (UINT32)(0x00000000)
#define TSS_KEY_STRUCT_KEY                (UINT32)(0x00004000)
#define TSS_KEY_STRUCT_KEY12              (UINT32)(0x00008000)
#define TSS_KEY_STRUCT_BITMASK            (UINT32)(0x0001C000)


//
//  fixed KeyTypes (templates)
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
//  |0 0 0 0 0 0|                             Empty Key
//  |0 0 0 0 0 1|                             Storage Root Key
//
#define   TSS_KEY_EMPTY_KEY (0x00000000) // no TPM key template
                                         // (empty TSP key object)
#define   TSS_KEY_TSP_SRK   (0x04000000) // use a TPM SRK template
                                         // (TSP key object for SRK)
#define   TSS_KEY_TEMPLATE_BITMASK (0xFC000000) // bitmask to extract key
                                                // template


//*************************************
// Flags for creating ENCDATA object: *
//*************************************

//
//  Type
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
//   Seal                                                     |0 0 1|
//   Bind                                                     |0 1 0|
//   Legacy                                                   |0 1 1|
//
//   ENCDATA Reserved:
//  |x x x x x x x x x x x x x x x x x x x x x x x x x x x x x|
//
#define   TSS_ENCDATA_SEAL     (0x00000001)   // data for seal operation
#define   TSS_ENCDATA_BIND     (0x00000002)   // data for bind operation
#define   TSS_ENCDATA_LEGACY   (0x00000003)   // data for legacy bind operation


//**********************************
// Flags for creating HASH object: *
//**********************************

//
//  Algorithm
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
//   DEFAULT               
//  |0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
//   SHA1
//  |0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1|
//   OTHER
//  |1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1|
//
#define   TSS_HASH_DEFAULT    (0x00000000)   // Default hash algorithm
#define   TSS_HASH_SHA1       (0x00000001)   // SHA-1 with 20 bytes
#define   TSS_HASH_OTHER      (0xFFFFFFFF)   // Not-specified hash algorithm


//************************************
// Flags for creating POLICY object: *
//************************************

//
//  Type
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//
//   Usage                                                    |0 0 1|
//   Migration                                                |0 1 0|
//   Operator                                                 |0 1 1|
//
//   POLICY Reserved:
//  |x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x|

#define   TSS_POLICY_USAGE         (0x00000001)   // usage policy object
#define   TSS_POLICY_MIGRATION     (0x00000002)   // migration policy object
#define   TSS_POLICY_OPERATOR      (0x00000003)   // migration policy object


//******************************************
// Flags for creating PCRComposite object: *
//******************************************

//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
//                                                              |x x| Struct
//  |x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x|     Reserved
//

//  PCRComposite Version:
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//   ---------------------------------------------------------------
// TPM_PCR_DEFAULT                                            |0 0 0|
// TPM_PCR_INFO                                               |0 0 1|
// TPM_PCR_INFO_LONG                                          |0 1 0|
// TPM_PCR_INFO_SHORT                                         |0 1 1|
//

#define   TSS_PCRS_STRUCT_DEFAULT    (0x00000000) // depends on context
#define   TSS_PCRS_STRUCT_INFO       (0x00000001) // TPM_PCR_INFO
#define   TSS_PCRS_STRUCT_INFO_LONG  (0x00000002) // TPM_PCR_INFO_LONG
#define   TSS_PCRS_STRUCT_INFO_SHORT (0x00000003) // TPM_PCR_INFO_SHORT



//////////////////////////////////////////////////////////////////////////
// Attribute Flags, Subflags, and Values
//////////////////////////////////////////////////////////////////////////


//******************
// Context object: *
//******************

//
// Attributes
//
#define TSS_TSPATTRIB_CONTEXT_SILENT_MODE        (0x00000001)
                                                    // dialog display control
#define TSS_TSPATTRIB_CONTEXT_MACHINE_NAME       (0x00000002)
                                                    // remote machine name
#define TSS_TSPATTRIB_CONTEXT_VERSION_MODE       (0x00000003)
                                                    // context version
#define TSS_TSPATTRIB_CONTEXT_TRANSPORT          (0x00000004)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -