1723e4046Schristos 2723e4046Schristos /* 3723e4046Schristos * Licensed Materials - Property of IBM 4723e4046Schristos * 5723e4046Schristos * trousers - An open source TCG Software Stack 6723e4046Schristos * 7723e4046Schristos * (C) Copyright International Business Machines Corp. 2006 8723e4046Schristos * 9723e4046Schristos */ 10723e4046Schristos 11723e4046Schristos #ifndef _TSPPS_H_ 12723e4046Schristos #define _TSPPS_H_ 13723e4046Schristos 14723e4046Schristos #define PASSWD_BUFSIZE 4096 15723e4046Schristos 16723e4046Schristos #define TSS_USER_PS_DIR ".trousers" 17723e4046Schristos #define TSS_USER_PS_FILE "user.data" 18723e4046Schristos 19723e4046Schristos TSS_RESULT get_file(int *); 20723e4046Schristos int put_file(int); 21*e3c8635aSchristos TSS_RESULT read_data(int, void *, UINT32); 22*e3c8635aSchristos TSS_RESULT write_data(int, void *, UINT32); 23723e4046Schristos UINT32 psfile_get_num_keys(int); 24723e4046Schristos TSS_RESULT psfile_get_parent_uuid_by_uuid(int, TSS_UUID *, TSS_UUID *); 25723e4046Schristos TSS_RESULT psfile_remove_key_by_uuid(int, TSS_UUID *); 26723e4046Schristos TSS_RESULT psfile_get_key_by_uuid(int, TSS_UUID *, BYTE *); 27723e4046Schristos TSS_RESULT psfile_get_ps_type_by_uuid(int, TSS_UUID *, UINT32 *); 28723e4046Schristos TSS_RESULT psfile_is_pub_registered(int, TCPA_STORE_PUBKEY *, TSS_BOOL *); 29723e4046Schristos TSS_RESULT psfile_is_key_registered(int, TSS_UUID *, TSS_BOOL *); 30723e4046Schristos TSS_RESULT psfile_get_uuid_by_pub(int, UINT32, BYTE *, TSS_UUID *); 31723e4046Schristos TSS_RESULT psfile_write_key(int, TSS_UUID *, TSS_UUID *, UINT32, BYTE *, UINT16); 32723e4046Schristos TSS_RESULT psfile_get_key_by_pub(int, TSS_UUID *, UINT32, BYTE *, BYTE *); 33723e4046Schristos TSS_RESULT psfile_get_registered_keys(int, TSS_UUID *, TSS_UUID *, UINT32 *, TSS_KM_KEYINFO **); 34723e4046Schristos TSS_RESULT psfile_get_registered_keys2(int, TSS_UUID *, TSS_UUID *, UINT32 *, TSS_KM_KEYINFO2 **); 35723e4046Schristos TSS_RESULT psfile_remove_key(int, TSS_UUID *); 36723e4046Schristos TSS_RESULT psfile_get_parent_ps_type(int, TSS_UUID *, UINT32 *); 37723e4046Schristos TSS_RESULT psfile_get_cache_entry_by_uuid(int, TSS_UUID *, struct key_disk_cache *); 38723e4046Schristos TSS_RESULT psfile_get_cache_entry_by_pub(int, UINT32, BYTE *, struct key_disk_cache *); 39723e4046Schristos void psfile_close(int); 40723e4046Schristos 41723e4046Schristos TSS_RESULT ps_remove_key(TSS_UUID *); 42723e4046Schristos TSS_RESULT ps_write_key(TSS_UUID *, TSS_UUID *, UINT32, UINT32, BYTE *); 43723e4046Schristos TSS_RESULT ps_get_key_by_uuid(TSS_HCONTEXT, TSS_UUID *, TSS_HKEY *); 44723e4046Schristos TSS_RESULT ps_init_disk_cache(); 45723e4046Schristos TSS_RESULT ps_close(); 46723e4046Schristos TSS_RESULT ps_get_key_by_pub(TSS_HCONTEXT, UINT32, BYTE *, TSS_HKEY *); 47723e4046Schristos TSS_RESULT ps_get_parent_uuid_by_uuid(TSS_UUID *, TSS_UUID *); 48723e4046Schristos TSS_RESULT ps_get_parent_ps_type_by_uuid(TSS_UUID *, UINT32 *); 49723e4046Schristos TSS_RESULT ps_is_key_registered(TSS_UUID *, TSS_BOOL *); 50723e4046Schristos TSS_RESULT ps_get_registered_keys(TSS_UUID *uuid, TSS_UUID *, UINT32 *size, TSS_KM_KEYINFO **); 51723e4046Schristos TSS_RESULT ps_get_registered_keys2(TSS_UUID *uuid, TSS_UUID *, UINT32 *size, TSS_KM_KEYINFO2 **); 52723e4046Schristos 53723e4046Schristos #ifdef TSS_BUILD_PS 54723e4046Schristos #define PS_close() ps_close() 55723e4046Schristos #else 56723e4046Schristos #define PS_close() 57723e4046Schristos #endif 58723e4046Schristos 59723e4046Schristos #endif 60