1 /*
2  * The Initial Developer of the Original Code is International
3  * Business Machines Corporation. Portions created by IBM
4  * Corporation are Copyright (C) 2005 International Business
5  * Machines Corporation. All Rights Reserved.
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the Common Public License as published by
9  * IBM Corporation; either version 1 of the License, or (at your option)
10  * any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * Common Public License for more details.
16  *
17  * You should have received a copy of the Common Public License
18  * along with this program; if not, a copy can be viewed at
19  * http://www.opensource.org/licenses/cpl1.0.php.
20  */
21 /*
22  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23  * Use is subject to license terms.
24  */
25 
26 #ifndef _TPMTOK_DEFS_H
27 #define	_TPMTOK_DEFS_H
28 
29 /* TSS key type helper */
30 #define	TPMTOK_TSS_KEY_TYPE_MASK	0x000000F0
31 #define	TPMTOK_TSS_KEY_TYPE(x)		(x & TPMTOK_TSS_KEY_TYPE_MASK)
32 #define	TPMTOK_TSS_KEY_MIG_TYPE(x)	(x & TSS_KEY_MIGRATABLE)
33 
34 #define	TPMTOK_TSS_MAX_ERROR		0x00000FFF
35 #define	TPMTOK_TSS_ERROR_CODE(x)	(x & TPMTOK_TSS_MAX_ERROR)
36 
37 /* key types in the TPM token */
38 #define	TPMTOK_PRIVATE_ROOT_KEY	1
39 #define	TPMTOK_PRIVATE_LEAF_KEY	2
40 #define	TPMTOK_PUBLIC_ROOT_KEY	3
41 #define	TPMTOK_PUBLIC_LEAF_KEY	4
42 
43 /* key identifiers for the PKCS#11 objects */
44 #define	TPMTOK_PRIVATE_ROOT_KEY_ID	"PRIVATE_ROOT_KEY"
45 #define	TPMTOK_PRIVATE_LEAF_KEY_ID	"PRIVATE_LEAF_KEY"
46 #define	TPMTOK_PUBLIC_ROOT_KEY_ID	"PUBLIC_ROOT_KEY"
47 #define	TPMTOK_PUBLIC_LEAF_KEY_ID	"PUBLIC_LEAF_KEY"
48 
49 #define	NULL_HKEY	0
50 #define	NULL_HENCDATA	0
51 #define	NULL_HPOLICY	0
52 #define	NULL_HCONTEXT	0
53 #define	NULL_HPCRS	0
54 
55 #define	LOG(priority, fmt, ...) \
56 {\
57 	openlog("tpmtoken", LOG_NDELAY|LOG_PID, LOG_USER);\
58 	syslog(priority, "%s " fmt, __FILE__, ##__VA_ARGS__);\
59 }
60 
61 #endif /* _TPMTOK_DEFS_H */
62