summaryrefslogtreecommitdiff
path: root/src/include/trousers_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/trousers_types.h')
-rw-r--r--src/include/trousers_types.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/src/include/trousers_types.h b/src/include/trousers_types.h
new file mode 100644
index 0000000..1c1d79f
--- /dev/null
+++ b/src/include/trousers_types.h
@@ -0,0 +1,128 @@
+
+/*
+ * Licensed Materials - Property of IBM
+ *
+ * trousers - An open source TCG Software Stack
+ *
+ * (C) Copyright International Business Machines Corp. 2004, 2005, 2007
+ *
+ */
+
+#ifndef _TROUSERS_TYPES_H_
+#define _TROUSERS_TYPES_H_
+
+#define TCPA_NONCE_SIZE sizeof(TCPA_NONCE)
+#define TCPA_DIGEST_SIZE sizeof(TCPA_DIGEST)
+#define TCPA_ENCAUTH_SIZE sizeof(TCPA_ENCAUTH)
+#define TCPA_DIRVALUE_SIZE sizeof(TCPA_DIRVALUE)
+#define TCPA_AUTHDATA_SIZE sizeof(TCPA_AUTHDATA)
+#define TPM_NONCE_SIZE TCPA_NONCE_SIZE
+#define TPM_DIGEST_SIZE TCPA_DIGEST_SIZE
+#define TPM_ENCAUTH_SIZE TCPA_ENCAUTH_SIZE
+#define TPM_DIRVALUE_SIZE TCPA_DIRVALUE_SIZE
+#define TPM_AUTHDATA_SIZE TCPA_AUTHDATA_SIZE
+
+#define TSS_FLAG_MIGRATABLE (migratable)
+#define TSS_FLAG_VOLATILE (volatileKey)
+#define TSS_FLAG_REDIRECTION (redirection)
+
+/* return codes */
+#define TCPA_E_INAPPROPRIATE_ENC TCPA_E_NEED_SELFTEST
+
+#define TSS_ERROR_LAYER(x) (x & 0x3000)
+#define TSS_ERROR_CODE(x) (x & TSS_MAX_ERROR)
+
+#ifdef TSS_DEBUG
+#define TSPERR(x) LogTSPERR(x, __FILE__, __LINE__)
+#define TCSERR(x) LogTCSERR(x, __FILE__, __LINE__)
+#define TDDLERR(x) LogTDDLERR(x, __FILE__, __LINE__)
+#else
+#define TSPERR(x) (x | TSS_LAYER_TSP)
+#define TCSERR(x) (x | TSS_LAYER_TCS)
+#define TDDLERR(x) (x | TSS_LAYER_TDDL)
+#endif
+
+extern TSS_UUID NULL_UUID;
+extern TSS_UUID SRK_UUID;
+
+#define NULL_HOBJECT 0
+#define NULL_HCONTEXT NULL_HOBJECT
+#define NULL_HPCRS NULL_HOBJECT
+#define NULL_HENCDATA NULL_HOBJECT
+#define NULL_HKEY NULL_HOBJECT
+#define NULL_HTPM NULL_HOBJECT
+#define NULL_HHASH NULL_HOBJECT
+#define NULL_HPOLICY NULL_HOBJECT
+#define NULL_HDELFAMILY NULL_HOBJECT
+#define NULL_HMIGDATA NULL_HOBJECT
+
+#define TSS_OBJECT_TYPE_CONTEXT (0x0e)
+#define TSS_OBJECT_TYPE_TPM (0x0f)
+
+#define TSS_PS_TYPE_NO (0)
+
+/* Derived Types */
+#define TSS_MIGRATION_SCHEME TSS_MIGRATE_SCHEME
+
+// The TPM's non-volatile flags (TPM_PERMANENT_FLAGS)
+#define TSS_TPM_PF_DISABLE_BIT (1 << (TPM_PF_DISABLE - 1))
+#define TSS_TPM_PF_OWNERSHIP_BIT (1 << (TPM_PF_OWNERSHIP - 1))
+#define TSS_TPM_PF_DEACTIVATED_BIT (1 << (TPM_PF_DEACTIVATED - 1))
+#define TSS_TPM_PF_READPUBEK_BIT (1 << (TPM_PF_READPUBEK - 1))
+#define TSS_TPM_PF_DISABLEOWNERCLEAR_BIT (1 << (TPM_PF_DISABLEOWNERCLEAR - 1))
+#define TSS_TPM_PF_ALLOWMAINTENANCE_BIT (1 << (TPM_PF_ALLOWMAINTENANCE - 1))
+#define TSS_TPM_PF_PHYSICALPRESENCELIFETIMELOCK_BIT (1 << (TPM_PF_PHYSICALPRESENCELIFETIMELOCK - 1))
+#define TSS_TPM_PF_PHYSICALPRESENCEHWENABLE_BIT (1 << (TPM_PF_PHYSICALPRESENCEHWENABLE - 1))
+#define TSS_TPM_PF_PHYSICALPRESENCECMDENABLE_BIT (1 << (TPM_PF_PHYSICALPRESENCECMDENABLE - 1))
+#define TSS_TPM_PF_CEKPUSED_BIT (1 << (TPM_PF_CEKPUSED - 1))
+#define TSS_TPM_PF_TPMPOST_BIT (1 << (TPM_PF_TPMPOST - 1))
+#define TSS_TPM_PF_TPMPOSTLOCK_BIT (1 << (TPM_PF_TPMPOSTLOCK - 1))
+#define TSS_TPM_PF_FIPS_BIT (1 << (TPM_PF_FIPS - 1))
+#define TSS_TPM_PF_OPERATOR_BIT (1 << (TPM_PF_OPERATOR - 1))
+#define TSS_TPM_PF_ENABLEREVOKEEK_BIT (1 << (TPM_PF_ENABLEREVOKEEK - 1))
+#define TSS_TPM_PF_NV_LOCKED_BIT (1 << (TPM_PF_NV_LOCKED - 1))
+#define TSS_TPM_PF_READSRKPUB_BIT (1 << (TPM_PF_READSRKPUB - 1))
+#define TSS_TPM_PF_RESETESTABLISHMENTBIT_BIT (1 << (TPM_PF_RESETESTABLISHMENTBIT - 1))
+#define TSS_TPM_PF_MAINTENANCEDONE_BIT (1 << (TPM_PF_MAINTENANCEDONE - 1))
+
+// The TPM's volatile flags (TPM_STCLEAR_FLAGS)
+#define TSS_TPM_SF_DEACTIVATED_BIT (1 << (TPM_SF_DEACTIVATED - 1))
+#define TSS_TPM_SF_DISABLEFORCECLEAR_BIT (1 << (TPM_SF_DISABLEFORCECLEAR - 1))
+#define TSS_TPM_SF_PHYSICALPRESENCE_BIT (1 << (TPM_SF_PHYSICALPRESENCE - 1))
+#define TSS_TPM_SF_PHYSICALPRESENCELOCK_BIT (1 << (TPM_SF_PHYSICALPRESENCELOCK - 1))
+#define TSS_TPM_SF_GLOBALLOCK_BIT (1 << (TPM_SF_GLOBALLOCK - 1))
+
+// Trousers key formats to ease use of the different TPM_KEY structs
+typedef struct tdTSS_KEY11_HDR {
+ TPM_STRUCT_VER ver;
+} TSS_KEY11_HDR;
+
+typedef struct tdTSS_KEY12_HDR {
+ TPM_STRUCTURE_TAG tag;
+ UINT16 fill;
+} __attribute__((packed)) TSS_KEY12_HDR;
+
+typedef struct tdTSS_KEY {
+ union {
+ TSS_KEY11_HDR key11;
+ TSS_KEY12_HDR key12;
+ } hdr;
+ TPM_KEY_USAGE keyUsage;
+ TPM_KEY_FLAGS keyFlags;
+ TPM_AUTH_DATA_USAGE authDataUsage;
+ TPM_KEY_PARMS algorithmParms;
+ UINT32 PCRInfoSize;
+ BYTE *PCRInfo;
+ TPM_STORE_PUBKEY pubKey;
+ UINT32 encSize;
+ BYTE *encData;
+} TSS_KEY;
+
+#if (defined (__linux) || defined (linux) || defined (SOLARIS) || defined (__GLIBC__))
+#define BSD_CONST
+#elif (defined (__OpenBSD__) || defined (__FreeBSD__))
+#define BSD_CONST const
+#endif
+
+
+#endif