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