47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll/*
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * The Initial Developer of the Original Code is International
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * Business Machines Corporation. Portions created by IBM
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * Corporation are Copyright (C) 2005 International Business
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * Machines Corporation. All Rights Reserved.
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll *
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * This program is free software; you can redistribute it and/or modify
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * it under the terms of the Common Public License as published by
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * IBM Corporation; either version 1 of the License, or (at your option)
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * any later version.
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll *
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * This program is distributed in the hope that it will be useful,
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * but WITHOUT ANY WARRANTY; without even the implied warranty of
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * Common Public License for more details.
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll *
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * You should have received a copy of the Common Public License
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * along with this program; if not, a copy can be viewed at
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * http://www.opensource.org/licenses/cpl1.0.php.
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll */
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll/*
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll * Use is subject to license terms.
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll */
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#ifndef _TPMTOK_DEFS_H
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define _TPMTOK_DEFS_H
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll/* TSS key type helper */
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_TSS_KEY_TYPE_MASK 0x000000F0
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_TSS_KEY_TYPE(x) (x & TPMTOK_TSS_KEY_TYPE_MASK)
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_TSS_KEY_MIG_TYPE(x) (x & TSS_KEY_MIGRATABLE)
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_TSS_MAX_ERROR 0x00000FFF
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_TSS_ERROR_CODE(x) (x & TPMTOK_TSS_MAX_ERROR)
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll/* key types in the TPM token */
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_PRIVATE_ROOT_KEY 1
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_PRIVATE_LEAF_KEY 2
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_PUBLIC_ROOT_KEY 3
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_PUBLIC_LEAF_KEY 4
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll/* key identifiers for the PKCS#11 objects */
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_PRIVATE_ROOT_KEY_ID "PRIVATE_ROOT_KEY"
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_PRIVATE_LEAF_KEY_ID "PRIVATE_LEAF_KEY"
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_PUBLIC_ROOT_KEY_ID "PUBLIC_ROOT_KEY"
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define TPMTOK_PUBLIC_LEAF_KEY_ID "PUBLIC_LEAF_KEY"
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define NULL_HKEY 0
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define NULL_HENCDATA 0
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define NULL_HPOLICY 0
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define NULL_HCONTEXT 0
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define NULL_HPCRS 0
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#define LOG(priority, fmt, ...) \
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll{\
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll openlog("tpmtoken", LOG_NDELAY|LOG_PID, LOG_USER);\
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll syslog(priority, "%s " fmt, __FILE__, ##__VA_ARGS__);\
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll}
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll#endif /* _TPMTOK_DEFS_H */