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