xref: /netbsd-src/crypto/external/cpl/trousers/dist/src/include/obj_hash.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_HASH_H_
12 #define _OBJ_HASH_H_
13 
14 #ifdef TSS_BUILD_HASH_LIST
15 
16 /* structures */
17 struct tr_hash_obj {
18 	UINT32 type;
19 	BYTE *hashData;
20 	UINT32 hashSize;
21 	UINT32 hashUpdateSize;
22 	BYTE *hashUpdateBuffer;
23 };
24 
25 /* obj_hash.c */
26 void       __tspi_hash_free(void *data);
27 TSS_RESULT obj_hash_add(TSS_HCONTEXT, UINT32, TSS_HOBJECT *);
28 TSS_BOOL   obj_is_hash(TSS_HOBJECT);
29 TSS_RESULT obj_hash_remove(TSS_HOBJECT, TSS_HCONTEXT);
30 TSS_RESULT obj_hash_get_tsp_context(TSS_HHASH, TSS_HCONTEXT *);
31 TSS_RESULT obj_hash_set_value(TSS_HHASH, UINT32, BYTE *);
32 TSS_RESULT obj_hash_get_value(TSS_HHASH, UINT32 *, BYTE **);
33 TSS_RESULT obj_hash_update_value(TSS_HHASH, UINT32, BYTE *);
34 
35 #define HASH_LIST_DECLARE		struct obj_list hash_list
36 #define HASH_LIST_DECLARE_EXTERN	extern struct obj_list hash_list
37 #define HASH_LIST_INIT()		tspi_list_init(&hash_list)
38 #define HASH_LIST_CONNECT(a,b)		obj_connectContext_list(&hash_list, a, b)
39 #define HASH_LIST_CLOSE(a)		obj_list_close(&hash_list, &__tspi_hash_free, a)
40 
41 #else
42 
43 #define obj_is_hash(a)	FALSE
44 
45 #define HASH_LIST_DECLARE
46 #define HASH_LIST_DECLARE_EXTERN
47 #define HASH_LIST_INIT()
48 #define HASH_LIST_CONNECT(a,b)
49 #define HASH_LIST_CLOSE(a)
50 
51 #endif
52 
53 #endif
54