summaryrefslogtreecommitdiff
path: root/src/include/obj.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/obj.h')
-rw-r--r--src/include/obj.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/include/obj.h b/src/include/obj.h
new file mode 100644
index 0000000..109a1ae
--- /dev/null
+++ b/src/include/obj.h
@@ -0,0 +1,92 @@
+
+/*
+ * Licensed Materials - Property of IBM
+ *
+ * trousers - An open source TCG Software Stack
+ *
+ * (C) Copyright International Business Machines Corp. 2004-2007
+ *
+ */
+
+#ifndef _OBJ_H_
+#define _OBJ_H_
+
+#include "threads.h"
+
+/* definitions */
+
+/* When TRUE, the object has PCRs associated with it */
+#define TSS_OBJ_FLAG_PCRS 0x00000001
+/* When TRUE, the object has a usage auth secret associated with it */
+#define TSS_OBJ_FLAG_USAGEAUTH 0x00000002
+/* When TRUE, the object has a migration auth secret associated with it */
+#define TSS_OBJ_FLAG_MIGAUTH 0x00000004
+/* When TRUE, the object has previously been registered in USER PS */
+#define TSS_OBJ_FLAG_USER_PS 0x00000008
+/* When TRUE, the object has previously been registered in SYSTEM PS */
+#define TSS_OBJ_FLAG_SYSTEM_PS 0x00000010
+/* When TRUE, the key has been created and cannot be altered */
+#define TSS_OBJ_FLAG_KEY_SET 0x00000020
+
+/* structures */
+struct tsp_object {
+ UINT32 handle;
+ UINT32 tspContext;
+ TSS_FLAG flags;
+ void *data;
+ struct tsp_object *next;
+};
+
+struct obj_list {
+ struct tsp_object *head;
+ MUTEX_DECLARE(lock);
+};
+
+/* prototypes */
+TSS_RESULT obj_getTpmObject(UINT32, TSS_HOBJECT *);
+TSS_HOBJECT obj_GetPolicyOfObject(UINT32, UINT32);
+void __tspi_obj_list_init();
+TSS_HOBJECT obj_get_next_handle();
+TSS_RESULT obj_list_add(struct obj_list *, UINT32, TSS_FLAG, void *, TSS_HOBJECT *);
+TSS_RESULT obj_list_remove(struct obj_list *, void (*)(void *), TSS_HOBJECT, TSS_HCONTEXT);
+void obj_list_put(struct obj_list *);
+struct tsp_object *obj_list_get_obj(struct obj_list *, UINT32);
+struct tsp_object *obj_list_get_tspcontext(struct obj_list *, UINT32);
+void obj_list_close(struct obj_list *, void (*)(void *), TSS_HCONTEXT);
+void obj_connectContext(TSS_HCONTEXT, TCS_CONTEXT_HANDLE);
+void obj_close_context(TSS_HCONTEXT);
+void obj_lists_remove_policy_refs(TSS_HPOLICY, TSS_HCONTEXT);
+
+/* prototypes for functions that may traverse more than one list */
+TSS_RESULT obj_tcskey_get_pubkeyhash(TCS_KEY_HANDLE, BYTE *);
+
+#include "obj_tpm.h"
+#include "obj_context.h"
+#include "obj_hash.h"
+#include "obj_pcrs.h"
+#include "obj_policy.h"
+#include "obj_rsakey.h"
+#include "obj_encdata.h"
+#include "obj_daacred.h"
+#include "obj_daaarakey.h"
+#include "obj_daaissuerkey.h"
+#include "obj_nv.h"
+#include "obj_delfamily.h"
+#include "obj_migdata.h"
+
+
+TPM_LIST_DECLARE_EXTERN;
+CONTEXT_LIST_DECLARE_EXTERN;
+HASH_LIST_DECLARE_EXTERN;
+PCRS_LIST_DECLARE_EXTERN;
+POLICY_LIST_DECLARE_EXTERN;
+RSAKEY_LIST_DECLARE_EXTERN;
+ENCDATA_LIST_DECLARE_EXTERN;
+DAACRED_LIST_DECLARE_EXTERN;
+DAAARAKEY_LIST_DECLARE_EXTERN;
+DAAISSUERKEY_LIST_DECLARE_EXTERN;
+NVSTORE_LIST_DECLARE_EXTERN;
+DELFAMILY_LIST_DECLARE_EXTERN;
+MIGDATA_LIST_DECLARE_EXTERN;
+
+#endif