12e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/** 22e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Copyright(c) 2011 Trusted Logic. All rights reserved. 32e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * 42e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Redistribution and use in source and binary forms, with or without 52e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * modification, are permitted provided that the following conditions 62e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * are met: 72e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * 82e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * * Redistributions of source code must retain the above copyright 92e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * notice, this list of conditions and the following disclaimer. 102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * * Redistributions in binary form must reproduce the above copyright 112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * notice, this list of conditions and the following disclaimer in 122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * the documentation and/or other materials provided with the 132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * distribution. 142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * * Neither the name Trusted Logic nor the names of its 152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * contributors may be used to endorse or promote products derived 162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * from this software without specific prior written permission. 172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * 182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 222e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 232e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 242e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 252e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 262e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 272e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 282e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 292e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */ 302e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 312e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/* 322e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * This header file contains the definition of the PKCS#11 types and functions 332e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * supported by the Trusted Foundations Software. This header file is 342e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * derived from the RSA Security Inc. PKCS #11 Cryptographic Token Interface 352e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * (Cryptoki) 362e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */ 372e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#ifndef __PKCS11_H__ 382e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define __PKCS11_H__ 392e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 402e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#ifdef __cplusplus 412e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleyextern "C" { 422e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif 432e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 442e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/*------------------------------------------ 452e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley* Types and constants 462e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley*------------------------------------------*/ 472e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 482e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#include "s_type.h" 492e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 502e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CK_TRUE true 512e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CK_FALSE false 522e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 532e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#ifndef FALSE 542e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define FALSE CK_FALSE 552e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif 562e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 572e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#ifndef TRUE 582e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TRUE CK_TRUE 592e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif 602e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 612e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define NULL_PTR NULL 622e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 632e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef uint8_t CK_BYTE, *CK_BYTE_PTR; 642e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_BYTE CK_CHAR, *CK_CHAR_PTR; 652e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_BYTE CK_UTF8CHAR, *CK_UTF8CHAR_PTR; 662e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef bool CK_BBOOL; 672e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef uint32_t CK_ULONG, *CK_ULONG_PTR; 682e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef int32_t CK_LONG; 692e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_FLAGS; 702e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef void* CK_VOID_PTR, *CK_VOID_PTR_PTR; 712e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 722e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CK_INVALID_HANDLE 0 732e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 742e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef struct CK_VERSION 752e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley{ 762e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE major; 772e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE minor; 782e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley} 792e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_VERSION, *CK_VERSION_PTR; 802e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 812e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef struct CK_INFO 822e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley{ 832e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_VERSION cryptokiVersion; 842e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_UTF8CHAR manufacturerID[32]; 852e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_FLAGS flags; 862e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_UTF8CHAR libraryDescription[32]; 872e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_VERSION libraryVersion; 882e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley} 892e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_INFO, *CK_INFO_PTR; 902e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 912e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_NOTIFICATION; 922e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_SLOT_ID, *CK_SLOT_ID_PTR; 932e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_SESSION_HANDLE, *CK_SESSION_HANDLE_PTR; 942e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 952e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_USER_TYPE; 962e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKU_SO 0 972e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKU_USER 1 982e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKU_CONTEXT_SPECIFIC 2 992e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1002e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_STATE; 1012e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKS_RO_PUBLIC_SESSION 0 1022e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKS_RO_USER_FUNCTIONS 1 1032e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKS_RW_PUBLIC_SESSION 2 1042e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKS_RW_USER_FUNCTIONS 3 1052e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKS_RW_SO_FUNCTIONS 4 1062e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1072e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef struct CK_SESSION_INFO 1082e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley{ 1092e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SLOT_ID slotID; 1102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_STATE state; 1112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_FLAGS flags; 1122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulDeviceError; 1132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley} 1142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_SESSION_INFO, *CK_SESSION_INFO_PTR; 1152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKF_RW_SESSION 0x00000002 1172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKF_SERIAL_SESSION 0x00000004 1182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKVF_OPEN_SUB_SESSION 0x00000008 1192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_OBJECT_HANDLE, *CK_OBJECT_HANDLE_PTR; 1212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1222e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_OBJECT_CLASS, *CK_OBJECT_CLASS_PTR; 1232e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1242e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKO_DATA 0x00000000 1252e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKO_PUBLIC_KEY 0x00000002 1262e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKO_PRIVATE_KEY 0x00000003 1272e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKO_SECRET_KEY 0x00000004 1282e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1292e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_KEY_TYPE; 1302e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1312e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_RSA 0x00000000 1322e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_DSA 0x00000001 1332e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_DH 0x00000002 1342e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_EC 0x00000003 1352e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1362e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_GENERIC_SECRET 0x00000010 1372e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1382e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_RC4 0x00000012 1392e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_DES 0x00000013 1402e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_DES2 0x00000014 1412e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_DES3 0x00000015 1422e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1432e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_AES 0x0000001F 1442e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1452e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKK_VENDOR_DEFINED 0x80000000 1462e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1472e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_ATTRIBUTE_TYPE; 1482e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1492e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKF_ARRAY_ATTRIBUTE 0x40000000 1502e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1512e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_CLASS 0x00000000 1522e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_TOKEN 0x00000001 1532e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_PRIVATE 0x00000002 1542e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_VALUE 0x00000011 1552e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1562e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_OBJECT_ID 0x00000012 1572e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1582e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_KEY_TYPE 0x00000100 1592e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_ID 0x00000102 1602e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_SENSITIVE 0x00000103 1612e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_ENCRYPT 0x00000104 1622e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_DECRYPT 0x00000105 1632e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_WRAP 0x00000106 1642e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_UNWRAP 0x00000107 1652e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_SIGN 0x00000108 1662e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_VERIFY 0x0000010A 1672e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_DERIVE 0x0000010C 1682e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_MODULUS 0x00000120 1692e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_MODULUS_BITS 0x00000121 1702e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_PUBLIC_EXPONENT 0x00000122 1712e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_PRIVATE_EXPONENT 0x00000123 1722e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_PRIME_1 0x00000124 1732e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_PRIME_2 0x00000125 1742e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_EXPONENT_1 0x00000126 1752e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_EXPONENT_2 0x00000127 1762e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_COEFFICIENT 0x00000128 1772e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_PRIME 0x00000130 1782e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_SUBPRIME 0x00000131 1792e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_BASE 0x00000132 1802e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1812e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_VALUE_BITS 0x00000160 1822e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_VALUE_LEN 0x00000161 1832e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1842e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_EXTRACTABLE 0x00000162 1852e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1862e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_MODIFIABLE 0x00000170 1872e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_COPYABLE 0x00000171 1882e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_ALWAYS_AUTHENTICATE 0x00000202 1892e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1902e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKA_VENDOR_DEFINED 0x80000000 1912e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1922e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKAV_ALLOW_NON_SENSITIVE_DERIVED_KEY 0x80000001 1932e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1942e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef struct CK_ATTRIBUTE 1952e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley{ 1962e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ATTRIBUTE_TYPE type; 1972e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley void* pValue; 1982e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulValueLen; 1992e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley} 2002e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_ATTRIBUTE, *CK_ATTRIBUTE_PTR; 2012e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 2022e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_MECHANISM_TYPE, *CK_MECHANISM_TYPE_PTR; 2032e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 2042e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_RSA_PKCS_KEY_PAIR_GEN 0x00000000 2052e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_RSA_PKCS 0x00000001 2062e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_RSA_X_509 0x00000003 2072e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_MD5_RSA_PKCS 0x00000005 2082e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA1_RSA_PKCS 0x00000006 2092e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_RSA_PKCS_OAEP 0x00000009 2102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_RSA_PKCS_PSS 0x0000000D 2112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA1_RSA_PKCS_PSS 0x0000000E 2122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DSA_KEY_PAIR_GEN 0x00000010 2132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DSA 0x00000011 2142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DSA_SHA1 0x00000012 2152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DH_PKCS_KEY_PAIR_GEN 0x00000020 2162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DH_PKCS_DERIVE 0x00000021 2172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA256_RSA_PKCS 0x00000040 2182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA384_RSA_PKCS 0x00000041 2192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA512_RSA_PKCS 0x00000042 2202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA256_RSA_PKCS_PSS 0x00000043 2212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA384_RSA_PKCS_PSS 0x00000044 2222e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA512_RSA_PKCS_PSS 0x00000045 2232e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA224_RSA_PKCS 0x00000046 2242e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA224_RSA_PKCS_PSS 0x00000047 2252e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_RC4_KEY_GEN 0x00000110 2262e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_RC4 0x00000111 2272e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DES_KEY_GEN 0x00000120 2282e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DES_ECB 0x00000121 2292e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DES_CBC 0x00000122 2302e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DES_MAC 0x00000123 2312e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DES2_KEY_GEN 0x00000130 2322e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DES3_KEY_GEN 0x00000131 2332e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DES3_ECB 0x00000132 2342e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DES3_CBC 0x00000133 2352e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_DES3_MAC 0x00000134 2362e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_MD5 0x00000210 2372e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_MD5_HMAC 0x00000211 2382e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA_1 0x00000220 2392e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA_1_HMAC 0x00000221 2402e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA256 0x00000250 2412e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA256_HMAC 0x00000251 2422e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA224 0x00000255 2432e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA224_HMAC 0x00000256 2442e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA384 0x00000260 2452e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA384_HMAC 0x00000261 2462e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA512 0x00000270 2472e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_SHA512_HMAC 0x00000271 2482e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_GENERIC_SECRET_KEY_GEN 0x00000350 2492e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_AES_KEY_GEN 0x00001080 2502e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_AES_ECB 0x00001081 2512e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_AES_CBC 0x00001082 2522e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_AES_MAC 0x00001083 2532e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_AES_CTR 0x00001086 2542e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKM_VENDOR_DEFINED 0x80000000 2552e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_AES_CTR 0x80000001 2562e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 2572e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_0 0xC0000000 2582e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_1 0xC0000001 2592e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_2 0xC0000002 2602e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_3 0xC0000003 2612e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_4 0xC0000004 2622e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_5 0xC0000005 2632e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_6 0xC0000006 2642e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_7 0xC0000007 2652e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_8 0xC0000008 2662e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_9 0xC0000009 2672e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_10 0xC000000A 2682e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_11 0xC000000B 2692e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_12 0xC000000C 2702e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_13 0xC000000D 2712e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_14 0xC000000E 2722e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKMV_IMPLEMENTATION_DEFINED_15 0xC000000F 2732e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 2742e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef struct CK_MECHANISM 2752e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley{ 2762e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_MECHANISM_TYPE mechanism; 2772e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley void* pParameter; 2782e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulParameterLen; /* in bytes */ 2792e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley} 2802e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_MECHANISM, *CK_MECHANISM_PTR; 2812e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 2822e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_RV; 2832e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 2842e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_OK 0x00000000 2852e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_CANCEL 0x00000001 2862e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_HOST_MEMORY 0x00000002 2872e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_SLOT_ID_INVALID 0x00000003 2882e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_GENERAL_ERROR 0x00000005 2892e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_ARGUMENTS_BAD 0x00000007 2902e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_ATTRIBUTE_SENSITIVE 0x00000011 2912e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_ATTRIBUTE_TYPE_INVALID 0x00000012 2922e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_ATTRIBUTE_VALUE_INVALID 0x00000013 2932e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_COPY_PROHIBITED 0x0000001A 2942e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_DATA_INVALID 0x00000020 2952e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_DATA_LEN_RANGE 0x00000021 2962e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_DEVICE_ERROR 0x00000030 2972e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_DEVICE_MEMORY 0x00000031 2982e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_ENCRYPTED_DATA_INVALID 0x00000040 2992e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_ENCRYPTED_DATA_LEN_RANGE 0x00000041 3002e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_KEY_HANDLE_INVALID 0x00000060 3012e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_KEY_SIZE_RANGE 0x00000062 3022e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_KEY_TYPE_INCONSISTENT 0x00000063 3032e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_KEY_FUNCTION_NOT_PERMITTED 0x00000068 3042e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_KEY_NOT_WRAPPABLE 0x00000069 3052e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_MECHANISM_INVALID 0x00000070 3062e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_MECHANISM_PARAM_INVALID 0x00000071 3072e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_OBJECT_HANDLE_INVALID 0x00000082 3082e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_OPERATION_ACTIVE 0x00000090 3092e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_OPERATION_NOT_INITIALIZED 0x00000091 3102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_PIN_INCORRECT 0x000000A0 3112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_SESSION_COUNT 0x000000B1 3122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_SESSION_HANDLE_INVALID 0x000000B3 3132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_SESSION_PARALLEL_NOT_SUPPORTED 0x000000B4 3142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_SESSION_READ_ONLY 0x000000B5 3152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_SIGNATURE_INVALID 0x000000C0 3162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_SIGNATURE_LEN_RANGE 0x000000C1 3172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_TEMPLATE_INCOMPLETE 0x000000D0 3182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_TEMPLATE_INCONSISTENT 0x000000D1 3192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_TOKEN_NOT_PRESENT 0x000000E0 3202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_USER_ALREADY_LOGGED_IN 0x00000100 3212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_USER_NOT_LOGGED_IN 0x00000101 3222e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_USER_TYPE_INVALID 0x00000103 3232e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_WRAPPED_KEY_LEN_RANGE 0x00000112 3242e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_WRAPPING_KEY_HANDLE_INVALID 0x00000113 3252e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_RANDOM_SEED_NOT_SUPPORTED 0x00000120 3262e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_RANDOM_NO_RNG 0x00000121 3272e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_BUFFER_TOO_SMALL 0x00000150 3282e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_CRYPTOKI_NOT_INITIALIZED 0x00000190 3292e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_CRYPTOKI_ALREADY_INITIALIZED 0x00000191 3302e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKR_VENDOR_DEFINED 0x80000000 3312e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3322e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_RV (*CK_NOTIFY)( 3332e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 3342e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_NOTIFICATION event, 3352e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley void* pApplication 3362e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley); 3372e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3382e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_RSA_PKCS_MGF_TYPE, *CK_RSA_PKCS_MGF_TYPE_PTR; 3392e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3402e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKG_MGF1_SHA1 0x00000001 3412e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKG_MGF1_SHA256 0x00000002 3422e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKG_MGF1_SHA384 0x00000003 3432e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKG_MGF1_SHA512 0x00000004 3442e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKG_MGF1_SHA224 0x00000005 3452e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3462e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef CK_ULONG CK_RSA_PKCS_OAEP_SOURCE_TYPE, *CK_RSA_PKCS_OAEP_SOURCE_TYPE_PTR; 3472e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3482e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define CKZ_DATA_SPECIFIED 0x00000001 3492e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef struct CK_RSA_PKCS_OAEP_PARAMS 3502e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley{ 3512e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_MECHANISM_TYPE hashAlg; 3522e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_RSA_PKCS_MGF_TYPE mgf; 3532e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_RSA_PKCS_OAEP_SOURCE_TYPE source; 3542e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley void* pSourceData; 3552e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulSourceDataLen; 3562e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley} 3572e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RSA_PKCS_OAEP_PARAMS, *CK_RSA_PKCS_OAEP_PARAMS_PTR; 3582e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3592e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef struct CK_RSA_PKCS_PSS_PARAMS 3602e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley{ 3612e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_MECHANISM_TYPE hashAlg; 3622e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_RSA_PKCS_MGF_TYPE mgf; 3632e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG sLen; 3642e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley} 3652e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RSA_PKCS_PSS_PARAMS, *CK_RSA_PKCS_PSS_PARAMS_PTR; 3662e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3672e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckleytypedef struct CK_AES_CTR_PARAMS 3682e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley{ 3692e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulCounterBits; 3702e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE cb[16]; 3712e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley} 3722e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_AES_CTR_PARAMS, *CK_AES_CTR_PARAMS_PTR; 3732e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3742e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/*------------------------------------------ 3752e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley* Functions 3762e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley*------------------------------------------*/ 3772e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_Initialize(void* pInitArgs); 3782e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3792e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_Finalize(void* pReserved); 3802e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3812e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_GetInfo(CK_INFO* pInfo); 3822e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3832e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_OpenSession( 3842e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SLOT_ID slotID, 3852e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_FLAGS flags, 3862e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley void* pApplication, 3872e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_NOTIFY Notify, 3882e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE* phSession); 3892e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3902e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_CloseSession( 3912e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession); 3922e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3932e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_Login( 3942e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 3952e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_USER_TYPE userType, 3962e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_UTF8CHAR* pPin, 3972e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulPinLen); 3982e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 3992e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_Logout( 4002e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession); 4012e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4022e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_CreateObject( 4032e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4042e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_ATTRIBUTE* pTemplate, 4052e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulCount, 4062e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE* phObject); 4072e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4082e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_DestroyObject( 4092e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE hObject); 4112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_GetAttributeValue( 4132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE hObject, 4152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ATTRIBUTE* pTemplate, 4162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulCount); 4172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_FindObjectsInit( 4192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_ATTRIBUTE* pTemplate, 4212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulCount); 4222e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4232e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_FindObjects( 4242e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4252e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE* phObject, 4262e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulMaxObjectCount, 4272e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulObjectCount); 4282e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4292e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_FindObjectsFinal( 4302e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession); 4312e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4322e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_EncryptInit( 4332e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4342e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_MECHANISM* pMechanism, 4352e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE hKey); 4362e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4372e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_Encrypt( 4382e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4392e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pData, 4402e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulDataLen, 4412e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pEncryptedData, 4422e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulEncryptedDataLen); 4432e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4442e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_EncryptUpdate( 4452e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4462e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pPart, 4472e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulPartLen, 4482e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pEncryptedPart, 4492e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulEncryptedPartLen); 4502e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4512e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_EncryptFinal( 4522e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4532e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pLastEncryptedPart, 4542e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulLastEncryptedPartLen); 4552e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4562e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_DecryptInit( 4572e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4582e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_MECHANISM* pMechanism, 4592e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE hKey); 4602e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4612e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_Decrypt( 4622e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4632e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pEncryptedData, 4642e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulEncryptedDataLen, 4652e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pData, 4662e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulDataLen); 4672e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4682e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_DecryptUpdate( 4692e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4702e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pEncryptedPart, 4712e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulEncryptedPartLen, 4722e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pPart, 4732e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulPartLen); 4742e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4752e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_DecryptFinal( 4762e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4772e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pLastPart, 4782e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulLastPartLen); 4792e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4802e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_DigestInit( 4812e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4822e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_MECHANISM* pMechanism); 4832e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4842e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_Digest( 4852e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4862e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pData, 4872e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulDataLen, 4882e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pDigest, 4892e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulDigestLen); 4902e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4912e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_DigestUpdate( 4922e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4932e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pPart, 4942e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulPartLen); 4952e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 4962e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_DigestFinal( 4972e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 4982e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pDigest, 4992e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulDigestLen); 5002e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5012e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_SignInit( 5022e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5032e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_MECHANISM* pMechanism, 5042e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE hKey); 5052e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5062e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_Sign( 5072e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5082e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pData, 5092e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulDataLen, 5102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pSignature, 5112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulSignatureLen); 5122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_SignUpdate( 5142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pPart, 5162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulPartLen); 5172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_SignFinal( 5192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pSignature, 5212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG* pulSignatureLen); 5222e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5232e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_VerifyInit( 5242e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5252e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_MECHANISM* pMechanism, 5262e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE hKey); 5272e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5282e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_Verify( 5292e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5302e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pData, 5312e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulDataLen, 5322e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pSignature, 5332e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulSignatureLen); 5342e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5352e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_VerifyUpdate( 5362e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5372e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pPart, 5382e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulPartLen); 5392e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5402e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_VerifyFinal( 5412e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5422e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pSignature, 5432e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulSignatureLen); 5442e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5452e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_GenerateKey( 5462e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5472e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_MECHANISM* pMechanism, 5482e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_ATTRIBUTE* pTemplate, 5492e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulCount, 5502e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE* phKey); 5512e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5522e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_GenerateKeyPair( 5532e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5542e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_MECHANISM* pMechanism, 5552e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_ATTRIBUTE* pPublicKeyTemplate, 5562e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulPublicKeyAttributeCount, 5572e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_ATTRIBUTE* pPrivateKeyTemplate, 5582e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulPrivateKeyAttributeCount, 5592e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE* phPublicKey, 5602e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE* phPrivateKey); 5612e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5622e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_DeriveKey( 5632e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5642e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_MECHANISM* pMechanism, 5652e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE hBaseKey, 5662e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_ATTRIBUTE* pTemplate, 5672e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulAttributeCount, 5682e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE* phKey); 5692e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5702e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_SeedRandom( 5712e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5722e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_BYTE* pSeed, 5732e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulSeedLen); 5742e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5752e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_GenerateRandom( 5762e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5772e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_BYTE* pRandomData, 5782e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulRandomLen); 5792e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5802e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_CloseObjectHandle( 5812e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5822e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE hObject); 5832e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5842e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan BuckleyCK_RV PKCS11_EXPORT C_CopyObject( 5852e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_SESSION_HANDLE hSession, 5862e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE hObject, 5872e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley const CK_ATTRIBUTE* pTemplate, 5882e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_ULONG ulAttributeCount, 5892e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley CK_OBJECT_HANDLE* phNewObject); 5902e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5912e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#ifdef __cplusplus 5922e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley} 5932e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif 5942e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 5952e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif /* __PKCS11_H__ */ 596