Home | History | Annotate | Line # | Download | only in include
      1 
      2 /*
      3  * Licensed Materials - Property of IBM
      4  *
      5  * trousers - An open source TCG Software Stack
      6  *
      7  * (C) Copyright International Business Machines Corp. 2004-2007
      8  *
      9  */
     10 
     11 #ifndef _OBJ_ENCDATA_H_
     12 #define _OBJ_ENCDATA_H_
     13 
     14 #ifdef TSS_BUILD_ENCDATA_LIST
     15 
     16 /* structures */
     17 struct tr_encdata_obj {
     18 	TSS_HPOLICY usagePolicy;
     19 	UINT32 encryptedDataLength;
     20 	BYTE *encryptedData;
     21 	union {
     22 		TPM_PCR_INFO info11;
     23 		TPM_PCR_INFO_LONG infolong;
     24 	} pcrInfo;
     25 	UINT32 pcrInfoType;
     26 	UINT32 type;
     27 #ifdef TSS_BUILD_SEALX
     28 	UINT32 protectMode;
     29 #endif
     30 };
     31 
     32 /* obj_encdata.c */
     33 void       encdata_free(void *data);
     34 TSS_BOOL   obj_is_encdata(TSS_HOBJECT);
     35 TSS_RESULT obj_encdata_set_policy(TSS_HKEY, TSS_HPOLICY);
     36 TSS_RESULT obj_encdata_set_data(TSS_HENCDATA, UINT32, BYTE *);
     37 TSS_RESULT obj_encdata_remove(TSS_HOBJECT, TSS_HCONTEXT);
     38 TSS_RESULT obj_encdata_get_tsp_context(TSS_HENCDATA, TSS_HCONTEXT *);
     39 TSS_RESULT obj_encdata_add(TSS_HCONTEXT, UINT32, TSS_HOBJECT *);
     40 TSS_RESULT obj_encdata_get_data(TSS_HENCDATA, UINT32 *, BYTE **);
     41 TSS_RESULT obj_encdata_get_pcr_selection(TSS_HENCDATA, TSS_FLAG, TSS_FLAG, UINT32 *, BYTE **);
     42 TSS_RESULT obj_encdata_get_pcr_locality(TSS_HENCDATA, TSS_FLAG, UINT32 *);
     43 TSS_RESULT obj_encdata_get_pcr_digest(TSS_HENCDATA, TSS_FLAG, TSS_FLAG, UINT32 *, BYTE **);
     44 TSS_RESULT obj_encdata_set_pcr_info(TSS_HENCDATA, UINT32, BYTE *);
     45 TSS_RESULT obj_encdata_get_policy(TSS_HENCDATA, UINT32, TSS_HPOLICY *);
     46 void       obj_encdata_remove_policy_refs(TSS_HPOLICY, TSS_HCONTEXT);
     47 #ifdef TSS_BUILD_SEALX
     48 TSS_RESULT obj_encdata_set_seal_protect_mode(TSS_HENCDATA, UINT32);
     49 TSS_RESULT obj_encdata_get_seal_protect_mode(TSS_HENCDATA, UINT32 *);
     50 #endif
     51 
     52 
     53 #define ENCDATA_LIST_DECLARE		struct obj_list encdata_list
     54 #define ENCDATA_LIST_DECLARE_EXTERN	extern struct obj_list encdata_list
     55 #define ENCDATA_LIST_INIT()		tspi_list_init(&encdata_list)
     56 #define ENCDATA_LIST_CONNECT(a,b)	obj_connectContext_list(&encdata_list, a, b)
     57 #define ENCDATA_LIST_CLOSE(a)		obj_list_close(&encdata_list, &encdata_free, a)
     58 
     59 #else
     60 
     61 #define obj_is_encdata(a)	FALSE
     62 
     63 #define ENCDATA_LIST_DECLARE
     64 #define ENCDATA_LIST_DECLARE_EXTERN
     65 #define ENCDATA_LIST_INIT()
     66 #define ENCDATA_LIST_CONNECT(a,b)
     67 #define ENCDATA_LIST_CLOSE(a)
     68 
     69 #endif
     70 
     71 #endif
     72