xref: /netbsd-src/crypto/external/cpl/trousers/dist/src/include/obj_encdata.h (revision 1023804e3833a0bd94414f2545512128f6502c74)
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