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