19126SWyllys.Ingersoll@Sun.COM /* 29126SWyllys.Ingersoll@Sun.COM * The Initial Developer of the Original Code is International 39126SWyllys.Ingersoll@Sun.COM * Business Machines Corporation. Portions created by IBM 49126SWyllys.Ingersoll@Sun.COM * Corporation are Copyright(C) 2005 International Business 59126SWyllys.Ingersoll@Sun.COM * Machines Corporation. All Rights Reserved. 69126SWyllys.Ingersoll@Sun.COM * 79126SWyllys.Ingersoll@Sun.COM * This program is free software; you can redistribute it and/or modify 89126SWyllys.Ingersoll@Sun.COM * it under the terms of the Common Public License as published by 99126SWyllys.Ingersoll@Sun.COM * IBM Corporation; either version 1 of the License, or(at your option) 109126SWyllys.Ingersoll@Sun.COM * any later version. 119126SWyllys.Ingersoll@Sun.COM * 129126SWyllys.Ingersoll@Sun.COM * This program is distributed in the hope that it will be useful, 139126SWyllys.Ingersoll@Sun.COM * but WITHOUT ANY WARRANTY; without even the implied warranty of 149126SWyllys.Ingersoll@Sun.COM * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 159126SWyllys.Ingersoll@Sun.COM * Common Public License for more details. 169126SWyllys.Ingersoll@Sun.COM * 179126SWyllys.Ingersoll@Sun.COM * You should have received a copy of the Common Public License 189126SWyllys.Ingersoll@Sun.COM * along with this program; if not, a copy can be viewed at 199126SWyllys.Ingersoll@Sun.COM * http://www.opensource.org/licenses/cpl1.0.php. 209126SWyllys.Ingersoll@Sun.COM */ 219126SWyllys.Ingersoll@Sun.COM 229126SWyllys.Ingersoll@Sun.COM /* (C) COPYRIGHT International Business Machines Corp. 2001, 2002, 2005 */ 239126SWyllys.Ingersoll@Sun.COM /* 249126SWyllys.Ingersoll@Sun.COM * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 259126SWyllys.Ingersoll@Sun.COM * Use is subject to license terms. 269126SWyllys.Ingersoll@Sun.COM */ 279126SWyllys.Ingersoll@Sun.COM 289126SWyllys.Ingersoll@Sun.COM #ifndef _TPMTOK_INT_H 299126SWyllys.Ingersoll@Sun.COM #define _TPMTOK_INT_H 309126SWyllys.Ingersoll@Sun.COM 319126SWyllys.Ingersoll@Sun.COM #include <stdio.h> 329126SWyllys.Ingersoll@Sun.COM #include <pthread.h> 339126SWyllys.Ingersoll@Sun.COM #include <string.h> 349126SWyllys.Ingersoll@Sun.COM #include <strings.h> 359126SWyllys.Ingersoll@Sun.COM #include <md5.h> 369126SWyllys.Ingersoll@Sun.COM #include <sha1.h> 379126SWyllys.Ingersoll@Sun.COM #include <limits.h> 389126SWyllys.Ingersoll@Sun.COM #include <syslog.h> 399126SWyllys.Ingersoll@Sun.COM #include <errno.h> 409126SWyllys.Ingersoll@Sun.COM #include <sys/types.h> 419126SWyllys.Ingersoll@Sun.COM #include <sys/stat.h> 429126SWyllys.Ingersoll@Sun.COM #include <sys/param.h> 439126SWyllys.Ingersoll@Sun.COM #include <sys/byteorder.h> 449126SWyllys.Ingersoll@Sun.COM #include <security/cryptoki.h> 459126SWyllys.Ingersoll@Sun.COM 469126SWyllys.Ingersoll@Sun.COM #include <tss/platform.h> 479126SWyllys.Ingersoll@Sun.COM #include <tss/tss_defines.h> 489126SWyllys.Ingersoll@Sun.COM #include <tss/tss_typedef.h> 499126SWyllys.Ingersoll@Sun.COM #include <tss/tss_structs.h> 509126SWyllys.Ingersoll@Sun.COM #include <tss/tspi.h> 519126SWyllys.Ingersoll@Sun.COM 529126SWyllys.Ingersoll@Sun.COM #define VERSION_MAJOR 2 539126SWyllys.Ingersoll@Sun.COM #define VERSION_MINOR 1 549126SWyllys.Ingersoll@Sun.COM 559126SWyllys.Ingersoll@Sun.COM #define MAX_SESSION_COUNT 64 569126SWyllys.Ingersoll@Sun.COM #define MAX_PIN_LEN 256 579126SWyllys.Ingersoll@Sun.COM #define MIN_PIN_LEN 1 589126SWyllys.Ingersoll@Sun.COM 599126SWyllys.Ingersoll@Sun.COM #define MAX_SLOT_ID 10 609126SWyllys.Ingersoll@Sun.COM 619126SWyllys.Ingersoll@Sun.COM #ifndef MIN 629126SWyllys.Ingersoll@Sun.COM #define MIN(a, b) ((a) < (b) ? (a) : (b)) 639126SWyllys.Ingersoll@Sun.COM #endif 649126SWyllys.Ingersoll@Sun.COM 659126SWyllys.Ingersoll@Sun.COM #define MODE_COPY (1 << 0) 669126SWyllys.Ingersoll@Sun.COM #define MODE_CREATE (1 << 1) 679126SWyllys.Ingersoll@Sun.COM #define MODE_KEYGEN (1 << 2) 689126SWyllys.Ingersoll@Sun.COM #define MODE_MODIFY (1 << 3) 699126SWyllys.Ingersoll@Sun.COM #define MODE_DERIVE (1 << 4) 709126SWyllys.Ingersoll@Sun.COM #define MODE_UNWRAP (1 << 5) 719126SWyllys.Ingersoll@Sun.COM 729126SWyllys.Ingersoll@Sun.COM // RSA block formatting types 739126SWyllys.Ingersoll@Sun.COM // 749126SWyllys.Ingersoll@Sun.COM #define PKCS_BT_1 1 759126SWyllys.Ingersoll@Sun.COM #define PKCS_BT_2 2 769126SWyllys.Ingersoll@Sun.COM 779126SWyllys.Ingersoll@Sun.COM #define OP_ENCRYPT_INIT 1 789126SWyllys.Ingersoll@Sun.COM #define OP_DECRYPT_INIT 2 799126SWyllys.Ingersoll@Sun.COM #define OP_WRAP 3 809126SWyllys.Ingersoll@Sun.COM #define OP_UNWRAP 4 819126SWyllys.Ingersoll@Sun.COM #define OP_SIGN_INIT 5 829126SWyllys.Ingersoll@Sun.COM #define OP_VERIFY_INIT 6 839126SWyllys.Ingersoll@Sun.COM 849126SWyllys.Ingersoll@Sun.COM enum { 859126SWyllys.Ingersoll@Sun.COM STATE_INVALID = 0, 869126SWyllys.Ingersoll@Sun.COM STATE_ENCR, 879126SWyllys.Ingersoll@Sun.COM STATE_DECR, 889126SWyllys.Ingersoll@Sun.COM STATE_DIGEST, 899126SWyllys.Ingersoll@Sun.COM STATE_SIGN, 909126SWyllys.Ingersoll@Sun.COM STATE_VERIFY 919126SWyllys.Ingersoll@Sun.COM }; 929126SWyllys.Ingersoll@Sun.COM 939126SWyllys.Ingersoll@Sun.COM #define SHA1_BLOCK_SIZE 64 949126SWyllys.Ingersoll@Sun.COM #define SHA1_BLOCK_SIZE_MASK (SHA1_BLOCK_SIZE - 1) 959126SWyllys.Ingersoll@Sun.COM 969126SWyllys.Ingersoll@Sun.COM #define RSA_BLOCK_SIZE 256 979126SWyllys.Ingersoll@Sun.COM 989126SWyllys.Ingersoll@Sun.COM #ifndef PATH_MAX 999126SWyllys.Ingersoll@Sun.COM #define PATH_MAX MAXPATHLEN 1009126SWyllys.Ingersoll@Sun.COM #endif 1019126SWyllys.Ingersoll@Sun.COM 1029126SWyllys.Ingersoll@Sun.COM #ifndef PACK_DATA 1039126SWyllys.Ingersoll@Sun.COM #define PACK_DATA 1049126SWyllys.Ingersoll@Sun.COM #endif 1059126SWyllys.Ingersoll@Sun.COM 1069126SWyllys.Ingersoll@Sun.COM #define MD5_BLOCK_SIZE 64 1079126SWyllys.Ingersoll@Sun.COM 1089126SWyllys.Ingersoll@Sun.COM #define DSA_SIGNATURE_SIZE 40 1099126SWyllys.Ingersoll@Sun.COM 1109126SWyllys.Ingersoll@Sun.COM #define DEFAULT_SO_PIN "87654321" 1119126SWyllys.Ingersoll@Sun.COM 1129126SWyllys.Ingersoll@Sun.COM typedef enum { 1139126SWyllys.Ingersoll@Sun.COM ALL = 1, 1149126SWyllys.Ingersoll@Sun.COM PRIVATE, 1159126SWyllys.Ingersoll@Sun.COM PUBLIC 1169126SWyllys.Ingersoll@Sun.COM } SESS_OBJ_TYPE; 1179126SWyllys.Ingersoll@Sun.COM 1189126SWyllys.Ingersoll@Sun.COM typedef struct _DL_NODE 1199126SWyllys.Ingersoll@Sun.COM { 1209126SWyllys.Ingersoll@Sun.COM struct _DL_NODE *next; 1219126SWyllys.Ingersoll@Sun.COM struct _DL_NODE *prev; 1229126SWyllys.Ingersoll@Sun.COM void *data; 1239126SWyllys.Ingersoll@Sun.COM } DL_NODE; 1249126SWyllys.Ingersoll@Sun.COM 1259126SWyllys.Ingersoll@Sun.COM #define TOKEN_DATA_FILE "token.dat" 1269126SWyllys.Ingersoll@Sun.COM #define TOKEN_OBJ_DIR "objects" 1279126SWyllys.Ingersoll@Sun.COM #define TOKEN_OBJ_INDEX_FILE "obj.idx" 1289126SWyllys.Ingersoll@Sun.COM 1299126SWyllys.Ingersoll@Sun.COM #define TPMTOK_UUID_INDEX_FILENAME "uuids.idx" 1309126SWyllys.Ingersoll@Sun.COM 1319126SWyllys.Ingersoll@Sun.COM /* 1329126SWyllys.Ingersoll@Sun.COM * Filenames used to store migration data. 1339126SWyllys.Ingersoll@Sun.COM */ 1349126SWyllys.Ingersoll@Sun.COM #define SO_MAKEY_FILENAME "so_makey.dat" 1359126SWyllys.Ingersoll@Sun.COM #define USER_MAKEY_FILENAME "user_makey.dat" 1369126SWyllys.Ingersoll@Sun.COM #define SO_KEYBLOB_FILENAME "so_blob.dat" 1379126SWyllys.Ingersoll@Sun.COM #define USER_KEYBLOB_FILENAME "user_blob.dat" 1389126SWyllys.Ingersoll@Sun.COM 1399126SWyllys.Ingersoll@Sun.COM #define __FUNCTION__ __func__ 1409126SWyllys.Ingersoll@Sun.COM 1419126SWyllys.Ingersoll@Sun.COM // 1429126SWyllys.Ingersoll@Sun.COM // Both of the strings below have a length of 32 chars and must be 1439126SWyllys.Ingersoll@Sun.COM // padded with spaces, and non - null terminated. 1449126SWyllys.Ingersoll@Sun.COM // 1459126SWyllys.Ingersoll@Sun.COM #define PKW_CRYPTOKI_VERSION_MAJOR 2 1469126SWyllys.Ingersoll@Sun.COM #define PKW_CRYPTOKI_VERSION_MINOR 1 1479126SWyllys.Ingersoll@Sun.COM #define PKW_CRYPTOKI_MANUFACTURER "Sun Microsystems, Inc. " 1489126SWyllys.Ingersoll@Sun.COM #define PKW_CRYPTOKI_LIBDESC "PKCS#11 Interface for TPM " 1499126SWyllys.Ingersoll@Sun.COM #define PKW_CRYPTOKI_LIB_VERSION_MAJOR 1 1509126SWyllys.Ingersoll@Sun.COM #define PKW_CRYPTOKI_LIB_VERSION_MINOR 0 1519126SWyllys.Ingersoll@Sun.COM #define PKW_MAX_DEVICES 10 1529126SWyllys.Ingersoll@Sun.COM 1539126SWyllys.Ingersoll@Sun.COM #define MAX_TOK_OBJS 2048 1549126SWyllys.Ingersoll@Sun.COM #define NUMBER_SLOTS_MANAGED 1 1559126SWyllys.Ingersoll@Sun.COM #define TPM_SLOTID 1 1569126SWyllys.Ingersoll@Sun.COM 1579126SWyllys.Ingersoll@Sun.COM /* 1589126SWyllys.Ingersoll@Sun.COM * CKA_HIDDEN will be used to filter return results on 1599126SWyllys.Ingersoll@Sun.COM * a C_FindObjects call. Used for objects internal to the 1609126SWyllys.Ingersoll@Sun.COM * TPM token for management 1619126SWyllys.Ingersoll@Sun.COM */ 1629126SWyllys.Ingersoll@Sun.COM /* custom attributes for the TPM token */ 1639126SWyllys.Ingersoll@Sun.COM #define CKA_HIDDEN CKA_VENDOR_DEFINED + 0x01 1649126SWyllys.Ingersoll@Sun.COM #define CKA_IBM_OPAQUE CKA_VENDOR_DEFINED + 0x02 1659126SWyllys.Ingersoll@Sun.COM /* 1669126SWyllys.Ingersoll@Sun.COM * CKA_ENC_AUTHDATA will be used to store the encrypted SHA-1 1679126SWyllys.Ingersoll@Sun.COM * hashes of auth data passed in for TPM keys. The authdata 1689126SWyllys.Ingersoll@Sun.COM * will be encrypted using either the public 1699126SWyllys.Ingersoll@Sun.COM * leaf key or the private leaf key 1709126SWyllys.Ingersoll@Sun.COM */ 1719126SWyllys.Ingersoll@Sun.COM #define CKA_ENC_AUTHDATA CKA_VENDOR_DEFINED + 0x03 1729126SWyllys.Ingersoll@Sun.COM 1739126SWyllys.Ingersoll@Sun.COM /* custom return codes for the TPM token */ 1749126SWyllys.Ingersoll@Sun.COM #define CKR_KEY_NOT_FOUND CKR_VENDOR_DEFINED + 0x01 1759126SWyllys.Ingersoll@Sun.COM #define CKR_FILE_NOT_FOUND CKR_VENDOR_DEFINED + 0x02 1769126SWyllys.Ingersoll@Sun.COM 1779126SWyllys.Ingersoll@Sun.COM typedef struct { 1789126SWyllys.Ingersoll@Sun.COM CK_SLOT_ID slotID; 1799126SWyllys.Ingersoll@Sun.COM CK_SESSION_HANDLE sessionh; 1809126SWyllys.Ingersoll@Sun.COM } ST_SESSION_T; 1819126SWyllys.Ingersoll@Sun.COM 1829126SWyllys.Ingersoll@Sun.COM typedef ST_SESSION_T ST_SESSION_HANDLE; 1839126SWyllys.Ingersoll@Sun.COM 1849126SWyllys.Ingersoll@Sun.COM typedef struct { 1859126SWyllys.Ingersoll@Sun.COM void *Previous; 1869126SWyllys.Ingersoll@Sun.COM void *Next; 1879126SWyllys.Ingersoll@Sun.COM CK_SLOT_ID SltId; 1889126SWyllys.Ingersoll@Sun.COM CK_SESSION_HANDLE RealHandle; 1899126SWyllys.Ingersoll@Sun.COM } Session_Struct_t; 1909126SWyllys.Ingersoll@Sun.COM 1919126SWyllys.Ingersoll@Sun.COM typedef Session_Struct_t *SessStructP; 1929126SWyllys.Ingersoll@Sun.COM 1939126SWyllys.Ingersoll@Sun.COM typedef struct { 1949126SWyllys.Ingersoll@Sun.COM pid_t Pid; 1959126SWyllys.Ingersoll@Sun.COM pthread_mutex_t ProcMutex; 1969126SWyllys.Ingersoll@Sun.COM Session_Struct_t *SessListBeg; 1979126SWyllys.Ingersoll@Sun.COM Session_Struct_t *SessListEnd; 1989126SWyllys.Ingersoll@Sun.COM pthread_mutex_t SessListMutex; 1999126SWyllys.Ingersoll@Sun.COM } API_Proc_Struct_t; 2009126SWyllys.Ingersoll@Sun.COM 2019126SWyllys.Ingersoll@Sun.COM 2029126SWyllys.Ingersoll@Sun.COM 2039126SWyllys.Ingersoll@Sun.COM 2049126SWyllys.Ingersoll@Sun.COM enum { 2059126SWyllys.Ingersoll@Sun.COM PRF_DUMMYFUNCTION = 1, 2069126SWyllys.Ingersoll@Sun.COM PRF_FCVFUNCTION, 2079126SWyllys.Ingersoll@Sun.COM PRF_INITIALIZE, 2089126SWyllys.Ingersoll@Sun.COM PRF_FINALIZE, 2099126SWyllys.Ingersoll@Sun.COM PRF_GETINFO, 2109126SWyllys.Ingersoll@Sun.COM PRF_GETFUNCTIONLIST, 2119126SWyllys.Ingersoll@Sun.COM PRF_GETSLOTLIST, 2129126SWyllys.Ingersoll@Sun.COM PRF_GETSLOTINFO, 2139126SWyllys.Ingersoll@Sun.COM PRF_GETTOKENINFO, 2149126SWyllys.Ingersoll@Sun.COM PRF_GETMECHLIST, 2159126SWyllys.Ingersoll@Sun.COM PRF_GETMECHINFO, 2169126SWyllys.Ingersoll@Sun.COM PRF_INITTOKEN, 2179126SWyllys.Ingersoll@Sun.COM PRF_INITPIN, 2189126SWyllys.Ingersoll@Sun.COM PRF_SETPIN, 2199126SWyllys.Ingersoll@Sun.COM PRF_OPENSESSION, 2209126SWyllys.Ingersoll@Sun.COM PRF_CLOSESESSION, 2219126SWyllys.Ingersoll@Sun.COM PRF_CLOSEALLSESSIONS, 2229126SWyllys.Ingersoll@Sun.COM PRF_GETSESSIONINFO, 2239126SWyllys.Ingersoll@Sun.COM PRF_GETOPERATIONSTATE, 2249126SWyllys.Ingersoll@Sun.COM PRF_SETOPERATIONSTATE, 2259126SWyllys.Ingersoll@Sun.COM PRF_LOGIN, 2269126SWyllys.Ingersoll@Sun.COM PRF_LOGOUT, 2279126SWyllys.Ingersoll@Sun.COM PRF_CREATEOBJECT, 2289126SWyllys.Ingersoll@Sun.COM PRF_COPYOBJECT, 2299126SWyllys.Ingersoll@Sun.COM PRF_DESTROYOBJECT, 2309126SWyllys.Ingersoll@Sun.COM PRF_GETOBJECTSIZE, 2319126SWyllys.Ingersoll@Sun.COM PRF_GETATTRIBUTEVALUE, 2329126SWyllys.Ingersoll@Sun.COM PRF_SETATTRIBUTEVALUE, 2339126SWyllys.Ingersoll@Sun.COM PRF_FINDOBJECTSINIT, 2349126SWyllys.Ingersoll@Sun.COM PRF_FINDOBJECTS, 2359126SWyllys.Ingersoll@Sun.COM PRF_FINDOBJECTSFINAL, 2369126SWyllys.Ingersoll@Sun.COM PRF_ENCRYPTINIT, 2379126SWyllys.Ingersoll@Sun.COM PRF_ENCRYPT, 2389126SWyllys.Ingersoll@Sun.COM PRF_ENCRYPTUPDATE, 2399126SWyllys.Ingersoll@Sun.COM PRF_ENCRYPTFINAL, 2409126SWyllys.Ingersoll@Sun.COM PRF_DECRYPTINIT, 2419126SWyllys.Ingersoll@Sun.COM PRF_DECRYPT, 2429126SWyllys.Ingersoll@Sun.COM PRF_DECRYPTUPDATE, 2439126SWyllys.Ingersoll@Sun.COM PRF_DECRYPTFINAL, 2449126SWyllys.Ingersoll@Sun.COM PRF_DIGESTINIT, 2459126SWyllys.Ingersoll@Sun.COM PRF_DIGEST, 2469126SWyllys.Ingersoll@Sun.COM PRF_DIGESTUPDATE, 2479126SWyllys.Ingersoll@Sun.COM PRF_DIGESTKEY, 2489126SWyllys.Ingersoll@Sun.COM PRF_DIGESTFINAL, 2499126SWyllys.Ingersoll@Sun.COM PRF_SIGNINIT, 2509126SWyllys.Ingersoll@Sun.COM PRF_SIGN, 2519126SWyllys.Ingersoll@Sun.COM PRF_SIGNUPDATE, 2529126SWyllys.Ingersoll@Sun.COM PRF_SIGNFINAL, 2539126SWyllys.Ingersoll@Sun.COM PRF_SIGNRECOVERINIT, 2549126SWyllys.Ingersoll@Sun.COM PRF_SIGNRECOVER, 2559126SWyllys.Ingersoll@Sun.COM PRF_VERIFYINIT, 2569126SWyllys.Ingersoll@Sun.COM PRF_VERIFY, 2579126SWyllys.Ingersoll@Sun.COM PRF_VERIFYUPDATE, 2589126SWyllys.Ingersoll@Sun.COM PRF_VERIFYFINAL, 2599126SWyllys.Ingersoll@Sun.COM PRF_VERIFYRECOVERINIT, 2609126SWyllys.Ingersoll@Sun.COM PRF_VERIFYRECOVER, 2619126SWyllys.Ingersoll@Sun.COM PRF_GENKEY, 2629126SWyllys.Ingersoll@Sun.COM PRF_GENKEYPAIR, 2639126SWyllys.Ingersoll@Sun.COM PRF_WRAPKEY, 2649126SWyllys.Ingersoll@Sun.COM PRF_UNWRAPKEY, 2659126SWyllys.Ingersoll@Sun.COM PRF_DERIVEKEY, 2669126SWyllys.Ingersoll@Sun.COM PRF_GENRND, 2679126SWyllys.Ingersoll@Sun.COM PRF_LASTENTRY 2689126SWyllys.Ingersoll@Sun.COM }; 2699126SWyllys.Ingersoll@Sun.COM 2709126SWyllys.Ingersoll@Sun.COM typedef struct _ENCR_DECR_CONTEXT 2719126SWyllys.Ingersoll@Sun.COM { 2729126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE key; 2739126SWyllys.Ingersoll@Sun.COM CK_MECHANISM mech; 2749126SWyllys.Ingersoll@Sun.COM CK_BYTE *context; 2759126SWyllys.Ingersoll@Sun.COM CK_ULONG context_len; 2769126SWyllys.Ingersoll@Sun.COM CK_BBOOL multi; 2779126SWyllys.Ingersoll@Sun.COM CK_BBOOL active; 2789126SWyllys.Ingersoll@Sun.COM } ENCR_DECR_CONTEXT; 2799126SWyllys.Ingersoll@Sun.COM 2809126SWyllys.Ingersoll@Sun.COM typedef struct _DIGEST_CONTEXT 2819126SWyllys.Ingersoll@Sun.COM { 2829126SWyllys.Ingersoll@Sun.COM CK_MECHANISM mech; 2839126SWyllys.Ingersoll@Sun.COM union { 2849126SWyllys.Ingersoll@Sun.COM MD5_CTX *md5ctx; 2859126SWyllys.Ingersoll@Sun.COM SHA1_CTX *sha1ctx; 2869126SWyllys.Ingersoll@Sun.COM void *ref; /* reference ptr for the union */ 2879126SWyllys.Ingersoll@Sun.COM } context; 2889126SWyllys.Ingersoll@Sun.COM CK_ULONG context_len; 2899126SWyllys.Ingersoll@Sun.COM CK_BBOOL multi; 2909126SWyllys.Ingersoll@Sun.COM CK_BBOOL active; 2919126SWyllys.Ingersoll@Sun.COM } DIGEST_CONTEXT; 2929126SWyllys.Ingersoll@Sun.COM 2939126SWyllys.Ingersoll@Sun.COM typedef struct _SIGN_VERIFY_CONTEXT 2949126SWyllys.Ingersoll@Sun.COM { 2959126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE key; 2969126SWyllys.Ingersoll@Sun.COM CK_MECHANISM mech; // current sign mechanism 2979126SWyllys.Ingersoll@Sun.COM void *context; // temporary work area 2989126SWyllys.Ingersoll@Sun.COM CK_ULONG context_len; 2999126SWyllys.Ingersoll@Sun.COM CK_BBOOL multi; // is this a multi - part operation? 3009126SWyllys.Ingersoll@Sun.COM CK_BBOOL recover; // are we in recover mode? 3019126SWyllys.Ingersoll@Sun.COM CK_BBOOL active; 3029126SWyllys.Ingersoll@Sun.COM } SIGN_VERIFY_CONTEXT; 3039126SWyllys.Ingersoll@Sun.COM 3049126SWyllys.Ingersoll@Sun.COM typedef struct _SESSION 3059126SWyllys.Ingersoll@Sun.COM { 3069126SWyllys.Ingersoll@Sun.COM CK_SESSION_HANDLE handle; 3079126SWyllys.Ingersoll@Sun.COM CK_SESSION_INFO session_info; 3089126SWyllys.Ingersoll@Sun.COM 3099126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE *find_list; // array of CK_OBJECT_HANDLE 3109126SWyllys.Ingersoll@Sun.COM CK_ULONG find_count; // # handles in the list 3119126SWyllys.Ingersoll@Sun.COM CK_ULONG find_len; // max # of handles in the list 3129126SWyllys.Ingersoll@Sun.COM CK_ULONG find_idx; // current position 3139126SWyllys.Ingersoll@Sun.COM CK_BBOOL find_active; 3149126SWyllys.Ingersoll@Sun.COM 3159126SWyllys.Ingersoll@Sun.COM ENCR_DECR_CONTEXT encr_ctx; 3169126SWyllys.Ingersoll@Sun.COM ENCR_DECR_CONTEXT decr_ctx; 3179126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT digest_ctx; 3189126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT sign_ctx; 3199126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT verify_ctx; 3209126SWyllys.Ingersoll@Sun.COM 3219126SWyllys.Ingersoll@Sun.COM TSS_HCONTEXT hContext; 3229126SWyllys.Ingersoll@Sun.COM } SESSION; 3239126SWyllys.Ingersoll@Sun.COM 3249126SWyllys.Ingersoll@Sun.COM typedef struct _TEMPLATE 3259126SWyllys.Ingersoll@Sun.COM { 3269126SWyllys.Ingersoll@Sun.COM DL_NODE *attribute_list; 3279126SWyllys.Ingersoll@Sun.COM } TEMPLATE; 3289126SWyllys.Ingersoll@Sun.COM 3299126SWyllys.Ingersoll@Sun.COM typedef struct _OBJECT 3309126SWyllys.Ingersoll@Sun.COM { 3319126SWyllys.Ingersoll@Sun.COM CK_OBJECT_CLASS class; 3329126SWyllys.Ingersoll@Sun.COM CK_BYTE name[8]; // for token objects 3339126SWyllys.Ingersoll@Sun.COM 3349126SWyllys.Ingersoll@Sun.COM SESSION *session; // creator; only for session objects 3359126SWyllys.Ingersoll@Sun.COM TEMPLATE *template; 3369126SWyllys.Ingersoll@Sun.COM CK_ULONG count_hi; // only significant for token objects 3379126SWyllys.Ingersoll@Sun.COM CK_ULONG count_lo; // only significant for token objects 3389126SWyllys.Ingersoll@Sun.COM CK_ULONG index; 3399126SWyllys.Ingersoll@Sun.COM } OBJECT; 3409126SWyllys.Ingersoll@Sun.COM 3419126SWyllys.Ingersoll@Sun.COM typedef struct _OBJECT_MAP 3429126SWyllys.Ingersoll@Sun.COM { 3439126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE handle; 3449126SWyllys.Ingersoll@Sun.COM CK_BBOOL is_private; 3459126SWyllys.Ingersoll@Sun.COM CK_BBOOL is_session_obj; 3469126SWyllys.Ingersoll@Sun.COM SESSION *session; 3479126SWyllys.Ingersoll@Sun.COM OBJECT *ptr; 3489126SWyllys.Ingersoll@Sun.COM } OBJECT_MAP; 3499126SWyllys.Ingersoll@Sun.COM 3509126SWyllys.Ingersoll@Sun.COM typedef struct _ATTRIBUTE_PARSE_LIST 3519126SWyllys.Ingersoll@Sun.COM { 3529126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE_TYPE type; 3539126SWyllys.Ingersoll@Sun.COM void *ptr; 3549126SWyllys.Ingersoll@Sun.COM CK_ULONG len; 3559126SWyllys.Ingersoll@Sun.COM CK_BBOOL found; 3569126SWyllys.Ingersoll@Sun.COM } ATTRIBUTE_PARSE_LIST; 3579126SWyllys.Ingersoll@Sun.COM 3589126SWyllys.Ingersoll@Sun.COM typedef struct _OP_STATE_DATA 3599126SWyllys.Ingersoll@Sun.COM { 3609126SWyllys.Ingersoll@Sun.COM CK_STATE session_state; 3619126SWyllys.Ingersoll@Sun.COM CK_ULONG active_operation; 3629126SWyllys.Ingersoll@Sun.COM CK_ULONG data_len; 3639126SWyllys.Ingersoll@Sun.COM } OP_STATE_DATA; 3649126SWyllys.Ingersoll@Sun.COM 3659126SWyllys.Ingersoll@Sun.COM typedef struct _TWEAK_VEC 3669126SWyllys.Ingersoll@Sun.COM { 3679126SWyllys.Ingersoll@Sun.COM int allow_key_mods; 3689126SWyllys.Ingersoll@Sun.COM } TWEAK_VEC; 3699126SWyllys.Ingersoll@Sun.COM 3709126SWyllys.Ingersoll@Sun.COM typedef struct _TOKEN_DATA 3719126SWyllys.Ingersoll@Sun.COM { 3729126SWyllys.Ingersoll@Sun.COM CK_TOKEN_INFO token_info; 3739126SWyllys.Ingersoll@Sun.COM CK_BYTE user_pin_sha[SHA1_DIGEST_LENGTH]; 3749126SWyllys.Ingersoll@Sun.COM CK_BYTE so_pin_sha[SHA1_DIGEST_LENGTH]; 3759126SWyllys.Ingersoll@Sun.COM CK_BYTE next_token_object_name[8]; 3769126SWyllys.Ingersoll@Sun.COM TWEAK_VEC tweak_vector; 3779126SWyllys.Ingersoll@Sun.COM } TOKEN_DATA; 3789126SWyllys.Ingersoll@Sun.COM 3799126SWyllys.Ingersoll@Sun.COM typedef struct _RSA_DIGEST_CONTEXT { 3809126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT hash_context; 3819126SWyllys.Ingersoll@Sun.COM CK_BBOOL flag; 3829126SWyllys.Ingersoll@Sun.COM } RSA_DIGEST_CONTEXT; 3839126SWyllys.Ingersoll@Sun.COM 3849126SWyllys.Ingersoll@Sun.COM typedef struct _MECH_LIST_ELEMENT 3859126SWyllys.Ingersoll@Sun.COM { 3869126SWyllys.Ingersoll@Sun.COM CK_MECHANISM_TYPE mech_type; 3879126SWyllys.Ingersoll@Sun.COM CK_MECHANISM_INFO mech_info; 3889126SWyllys.Ingersoll@Sun.COM } MECH_LIST_ELEMENT; 3899126SWyllys.Ingersoll@Sun.COM 3909126SWyllys.Ingersoll@Sun.COM struct mech_list_item; 3919126SWyllys.Ingersoll@Sun.COM 3929126SWyllys.Ingersoll@Sun.COM struct mech_list_item { 3939126SWyllys.Ingersoll@Sun.COM struct mech_list_item *next; 3949126SWyllys.Ingersoll@Sun.COM MECH_LIST_ELEMENT element; 3959126SWyllys.Ingersoll@Sun.COM }; 3969126SWyllys.Ingersoll@Sun.COM 3979126SWyllys.Ingersoll@Sun.COM struct mech_list_item * 3989126SWyllys.Ingersoll@Sun.COM find_mech_list_item_for_type(CK_MECHANISM_TYPE type, 3999126SWyllys.Ingersoll@Sun.COM struct mech_list_item *head); 4009126SWyllys.Ingersoll@Sun.COM 4019126SWyllys.Ingersoll@Sun.COM typedef struct _TOK_OBJ_ENTRY 4029126SWyllys.Ingersoll@Sun.COM { 4039126SWyllys.Ingersoll@Sun.COM CK_BBOOL deleted; 4049126SWyllys.Ingersoll@Sun.COM char name[8]; 4059126SWyllys.Ingersoll@Sun.COM CK_ULONG count_lo; 4069126SWyllys.Ingersoll@Sun.COM CK_ULONG count_hi; 4079126SWyllys.Ingersoll@Sun.COM } TOK_OBJ_ENTRY; 4089126SWyllys.Ingersoll@Sun.COM 4099126SWyllys.Ingersoll@Sun.COM typedef struct _LW_SHM_TYPE 4109126SWyllys.Ingersoll@Sun.COM { 4119126SWyllys.Ingersoll@Sun.COM pthread_mutex_t mutex; 4129126SWyllys.Ingersoll@Sun.COM TOKEN_DATA nv_token_data; 4139126SWyllys.Ingersoll@Sun.COM CK_ULONG num_priv_tok_obj; 4149126SWyllys.Ingersoll@Sun.COM CK_ULONG num_publ_tok_obj; 4159126SWyllys.Ingersoll@Sun.COM CK_BBOOL priv_loaded; 4169126SWyllys.Ingersoll@Sun.COM CK_BBOOL publ_loaded; 417*10346Swyllys.ingersoll@sun.com CK_BBOOL token_available; 4189126SWyllys.Ingersoll@Sun.COM TOK_OBJ_ENTRY publ_tok_objs[ MAX_TOK_OBJS ]; 4199126SWyllys.Ingersoll@Sun.COM TOK_OBJ_ENTRY priv_tok_objs[ MAX_TOK_OBJS ]; 4209126SWyllys.Ingersoll@Sun.COM } LW_SHM_TYPE; 4219126SWyllys.Ingersoll@Sun.COM 4229126SWyllys.Ingersoll@Sun.COM typedef unsigned int CK_ULONG_32; 4239126SWyllys.Ingersoll@Sun.COM typedef CK_ULONG_32 CK_OBJECT_CLASS_32; 4249126SWyllys.Ingersoll@Sun.COM typedef CK_ULONG_32 CK_ATTRIBUTE_TYPE_32; 4259126SWyllys.Ingersoll@Sun.COM 4269126SWyllys.Ingersoll@Sun.COM typedef struct CK_ATTRIBUTE_32 { 4279126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE_TYPE_32 type; 4289126SWyllys.Ingersoll@Sun.COM CK_ULONG_32 pValue; 4299126SWyllys.Ingersoll@Sun.COM CK_ULONG_32 ulValueLen; 4309126SWyllys.Ingersoll@Sun.COM } CK_ATTRIBUTE_32; 4319126SWyllys.Ingersoll@Sun.COM 4329126SWyllys.Ingersoll@Sun.COM char *get_tpm_keystore_path(); 4339126SWyllys.Ingersoll@Sun.COM 4349126SWyllys.Ingersoll@Sun.COM struct messages { 4359126SWyllys.Ingersoll@Sun.COM char *msg; 4369126SWyllys.Ingersoll@Sun.COM }; 4379126SWyllys.Ingersoll@Sun.COM 4389126SWyllys.Ingersoll@Sun.COM struct token_specific_struct { 4399126SWyllys.Ingersoll@Sun.COM CK_BYTE token_debug_tag[MAXPATHLEN]; 4409126SWyllys.Ingersoll@Sun.COM 4419126SWyllys.Ingersoll@Sun.COM CK_RV (*t_init)(char *, CK_SLOT_ID, TSS_HCONTEXT *); 4429126SWyllys.Ingersoll@Sun.COM int (*t_slot2local)(); 4439126SWyllys.Ingersoll@Sun.COM 4449126SWyllys.Ingersoll@Sun.COM CK_RV (*t_rng)(TSS_HCONTEXT, CK_BYTE *, CK_ULONG); 4459126SWyllys.Ingersoll@Sun.COM CK_RV (*t_session)(CK_SLOT_ID); 4469453SWyllys.Ingersoll@Sun.COM CK_RV (*t_final)(TSS_HCONTEXT); 4479126SWyllys.Ingersoll@Sun.COM CK_RV (*t_rsa_decrypt)(TSS_HCONTEXT, CK_BYTE *, 4489126SWyllys.Ingersoll@Sun.COM CK_ULONG, CK_BYTE *, CK_ULONG *, OBJECT *); 4499126SWyllys.Ingersoll@Sun.COM 4509126SWyllys.Ingersoll@Sun.COM CK_RV (*t_rsa_encrypt)( 4519126SWyllys.Ingersoll@Sun.COM TSS_HCONTEXT, 4529126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG, CK_BYTE *, 4539126SWyllys.Ingersoll@Sun.COM CK_ULONG *, OBJECT *); 4549126SWyllys.Ingersoll@Sun.COM 4559126SWyllys.Ingersoll@Sun.COM CK_RV (*t_rsa_sign)(TSS_HCONTEXT, 4569126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 4579126SWyllys.Ingersoll@Sun.COM CK_ULONG, 4589126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 4599126SWyllys.Ingersoll@Sun.COM CK_ULONG *, 4609126SWyllys.Ingersoll@Sun.COM OBJECT *); 4619126SWyllys.Ingersoll@Sun.COM 4629126SWyllys.Ingersoll@Sun.COM CK_RV (*t_rsa_verify)(TSS_HCONTEXT, 4639126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 4649126SWyllys.Ingersoll@Sun.COM CK_ULONG, 4659126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 4669126SWyllys.Ingersoll@Sun.COM CK_ULONG, 4679126SWyllys.Ingersoll@Sun.COM OBJECT *); 4689126SWyllys.Ingersoll@Sun.COM 4699126SWyllys.Ingersoll@Sun.COM CK_RV (*t_rsa_generate_keypair)(TSS_HCONTEXT, TEMPLATE *, TEMPLATE *); 4709126SWyllys.Ingersoll@Sun.COM 4719126SWyllys.Ingersoll@Sun.COM CK_RV (*t_sha_init)(DIGEST_CONTEXT *); 4729126SWyllys.Ingersoll@Sun.COM 4739126SWyllys.Ingersoll@Sun.COM CK_RV (*t_sha_update)( 4749126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT *, 4759126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 4769126SWyllys.Ingersoll@Sun.COM CK_ULONG); 4779126SWyllys.Ingersoll@Sun.COM 4789126SWyllys.Ingersoll@Sun.COM CK_RV (*t_sha_final)( 4799126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT *, 4809126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 4819126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 4829126SWyllys.Ingersoll@Sun.COM CK_RV (*t_login)(TSS_HCONTEXT, CK_USER_TYPE, CK_BYTE *, CK_ULONG); 4839126SWyllys.Ingersoll@Sun.COM CK_RV (*t_logout)(TSS_HCONTEXT); 4849126SWyllys.Ingersoll@Sun.COM CK_RV (*t_init_pin)(TSS_HCONTEXT, CK_BYTE *, CK_ULONG); 4859126SWyllys.Ingersoll@Sun.COM CK_RV (*t_set_pin)(ST_SESSION_HANDLE, CK_BYTE *, 4869126SWyllys.Ingersoll@Sun.COM CK_ULONG, CK_BYTE *, CK_ULONG); 4879126SWyllys.Ingersoll@Sun.COM CK_RV (*t_verify_so_pin)(TSS_HCONTEXT, CK_BYTE *, CK_ULONG); 4889126SWyllys.Ingersoll@Sun.COM }; 4899126SWyllys.Ingersoll@Sun.COM 4909126SWyllys.Ingersoll@Sun.COM typedef struct token_specific_struct token_spec_t; 4919126SWyllys.Ingersoll@Sun.COM 4929126SWyllys.Ingersoll@Sun.COM /* 4939126SWyllys.Ingersoll@Sun.COM * Global Variables 4949126SWyllys.Ingersoll@Sun.COM */ 4959126SWyllys.Ingersoll@Sun.COM extern void copy_slot_info(CK_SLOT_ID, CK_SLOT_INFO_PTR); 4969126SWyllys.Ingersoll@Sun.COM 4979126SWyllys.Ingersoll@Sun.COM extern struct messages err_msg[]; 4989126SWyllys.Ingersoll@Sun.COM 4999126SWyllys.Ingersoll@Sun.COM extern token_spec_t token_specific; 5009126SWyllys.Ingersoll@Sun.COM extern CK_BBOOL initialized; 5019126SWyllys.Ingersoll@Sun.COM extern char *card_function_names[]; 5029126SWyllys.Ingersoll@Sun.COM extern char *total_function_names[]; 5039126SWyllys.Ingersoll@Sun.COM 5049126SWyllys.Ingersoll@Sun.COM extern MECH_LIST_ELEMENT mech_list[]; 5059126SWyllys.Ingersoll@Sun.COM extern CK_ULONG mech_list_len; 5069126SWyllys.Ingersoll@Sun.COM 5079126SWyllys.Ingersoll@Sun.COM extern pthread_mutex_t native_mutex; 5089126SWyllys.Ingersoll@Sun.COM 5099126SWyllys.Ingersoll@Sun.COM extern void *xproclock; 5109126SWyllys.Ingersoll@Sun.COM 5119126SWyllys.Ingersoll@Sun.COM extern pthread_mutex_t pkcs_mutex, obj_list_mutex, 5129126SWyllys.Ingersoll@Sun.COM sess_list_mutex, login_mutex; 5139126SWyllys.Ingersoll@Sun.COM 5149126SWyllys.Ingersoll@Sun.COM extern DL_NODE *sess_list; 5159126SWyllys.Ingersoll@Sun.COM extern DL_NODE *sess_obj_list; 5169126SWyllys.Ingersoll@Sun.COM extern DL_NODE *publ_token_obj_list; 5179126SWyllys.Ingersoll@Sun.COM extern DL_NODE *priv_token_obj_list; 5189126SWyllys.Ingersoll@Sun.COM extern DL_NODE *object_map; 5199126SWyllys.Ingersoll@Sun.COM 5209126SWyllys.Ingersoll@Sun.COM extern CK_BYTE so_pin_md5[MD5_DIGEST_LENGTH]; 5219126SWyllys.Ingersoll@Sun.COM extern CK_BYTE user_pin_md5[MD5_DIGEST_LENGTH]; 5229126SWyllys.Ingersoll@Sun.COM 5239126SWyllys.Ingersoll@Sun.COM extern CK_BYTE default_user_pin_sha[SHA1_DIGEST_LENGTH]; 5249126SWyllys.Ingersoll@Sun.COM extern CK_BYTE default_so_pin_sha[SHA1_DIGEST_LENGTH]; 5259126SWyllys.Ingersoll@Sun.COM extern CK_BYTE default_so_pin_md5[MD5_DIGEST_LENGTH]; 5269126SWyllys.Ingersoll@Sun.COM 5279126SWyllys.Ingersoll@Sun.COM extern LW_SHM_TYPE *global_shm; 5289126SWyllys.Ingersoll@Sun.COM 5299126SWyllys.Ingersoll@Sun.COM extern TOKEN_DATA *nv_token_data; 5309126SWyllys.Ingersoll@Sun.COM 5319126SWyllys.Ingersoll@Sun.COM extern CK_ULONG next_object_handle; 5329126SWyllys.Ingersoll@Sun.COM extern CK_ULONG next_session_handle; 5339126SWyllys.Ingersoll@Sun.COM 5349126SWyllys.Ingersoll@Sun.COM extern CK_STATE global_login_state; 5359126SWyllys.Ingersoll@Sun.COM 5369126SWyllys.Ingersoll@Sun.COM extern CK_BYTE ber_AlgIdRSAEncryption[]; 5379126SWyllys.Ingersoll@Sun.COM extern CK_ULONG ber_AlgIdRSAEncryptionLen; 5389126SWyllys.Ingersoll@Sun.COM extern CK_BYTE ber_rsaEncryption[]; 5399126SWyllys.Ingersoll@Sun.COM extern CK_ULONG ber_rsaEncryptionLen; 5409126SWyllys.Ingersoll@Sun.COM extern CK_BYTE ber_idDSA[]; 5419126SWyllys.Ingersoll@Sun.COM extern CK_ULONG ber_idDSALen; 5429126SWyllys.Ingersoll@Sun.COM 5439126SWyllys.Ingersoll@Sun.COM extern CK_BYTE ber_md5WithRSAEncryption[]; 5449126SWyllys.Ingersoll@Sun.COM extern CK_ULONG ber_md5WithRSAEncryptionLen; 5459126SWyllys.Ingersoll@Sun.COM extern CK_BYTE ber_sha1WithRSAEncryption[]; 5469126SWyllys.Ingersoll@Sun.COM extern CK_ULONG ber_sha1WithRSAEncryptionLen; 5479126SWyllys.Ingersoll@Sun.COM extern CK_BYTE ber_AlgMd5[]; 5489126SWyllys.Ingersoll@Sun.COM extern CK_ULONG ber_AlgMd5Len; 5499126SWyllys.Ingersoll@Sun.COM extern CK_BYTE ber_AlgSha1[]; 5509126SWyllys.Ingersoll@Sun.COM extern CK_ULONG ber_AlgSha1Len; 5519126SWyllys.Ingersoll@Sun.COM 5529126SWyllys.Ingersoll@Sun.COM extern CK_C_INITIALIZE_ARGS cinit_args; 5539126SWyllys.Ingersoll@Sun.COM 5549126SWyllys.Ingersoll@Sun.COM /* 5559126SWyllys.Ingersoll@Sun.COM * Function Prototypes 5569126SWyllys.Ingersoll@Sun.COM */ 5579126SWyllys.Ingersoll@Sun.COM void *attach_shared_memory(); 5589126SWyllys.Ingersoll@Sun.COM void detach_shared_memory(char *); 5599126SWyllys.Ingersoll@Sun.COM 5609126SWyllys.Ingersoll@Sun.COM int API_Initialized(); 5619126SWyllys.Ingersoll@Sun.COM void Terminate_All_Process_Sessions(); 5629126SWyllys.Ingersoll@Sun.COM int API_Register(); 5639126SWyllys.Ingersoll@Sun.COM void API_UnRegister(); 5649126SWyllys.Ingersoll@Sun.COM 5659126SWyllys.Ingersoll@Sun.COM void CreateXProcLock(void *); 5669126SWyllys.Ingersoll@Sun.COM int XProcLock(void *); 5679126SWyllys.Ingersoll@Sun.COM int XProcUnLock(void *); 5689126SWyllys.Ingersoll@Sun.COM 5699126SWyllys.Ingersoll@Sun.COM void _init(void); 5709126SWyllys.Ingersoll@Sun.COM void loginit(); 5719126SWyllys.Ingersoll@Sun.COM void logterm(); 5729126SWyllys.Ingersoll@Sun.COM void logit(int, char *, ...); 5739126SWyllys.Ingersoll@Sun.COM void AddToSessionList(Session_Struct_t *); 5749126SWyllys.Ingersoll@Sun.COM void RemoveFromSessionList(Session_Struct_t *); 5759126SWyllys.Ingersoll@Sun.COM 5769126SWyllys.Ingersoll@Sun.COM int Valid_Session(Session_Struct_t *, ST_SESSION_T *); 5779126SWyllys.Ingersoll@Sun.COM 5789126SWyllys.Ingersoll@Sun.COM CK_BBOOL pin_expired(CK_SESSION_INFO *, CK_FLAGS); 5799126SWyllys.Ingersoll@Sun.COM CK_BBOOL pin_locked(CK_SESSION_INFO *, CK_FLAGS); 5809126SWyllys.Ingersoll@Sun.COM void set_login_flags(CK_USER_TYPE, CK_FLAGS *); 5819126SWyllys.Ingersoll@Sun.COM 5829126SWyllys.Ingersoll@Sun.COM extern void init_slot_info(TOKEN_DATA *); 5839126SWyllys.Ingersoll@Sun.COM 5849126SWyllys.Ingersoll@Sun.COM CK_RV update_migration_data(TSS_HCONTEXT, 5859126SWyllys.Ingersoll@Sun.COM TSS_HKEY, TSS_HKEY, char *, char *, BYTE *, BYTE *); 5869126SWyllys.Ingersoll@Sun.COM CK_RV token_rng(TSS_HCONTEXT, CK_BYTE *, CK_ULONG); 5879126SWyllys.Ingersoll@Sun.COM 5889126SWyllys.Ingersoll@Sun.COM TSS_RESULT set_public_modulus(TSS_HCONTEXT, TSS_HKEY, 5899126SWyllys.Ingersoll@Sun.COM unsigned long, unsigned char *); 5909126SWyllys.Ingersoll@Sun.COM TSS_RESULT open_tss_context(TSS_HCONTEXT *); 5919126SWyllys.Ingersoll@Sun.COM CK_RV token_get_tpm_info(TSS_HCONTEXT, TOKEN_DATA *); 5929126SWyllys.Ingersoll@Sun.COM 5939126SWyllys.Ingersoll@Sun.COM CK_RV clock_set_default_attributes(TEMPLATE *); 5949126SWyllys.Ingersoll@Sun.COM CK_RV clock_check_required_attributes(TEMPLATE *, CK_ULONG); 5959126SWyllys.Ingersoll@Sun.COM CK_RV clock_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 5969126SWyllys.Ingersoll@Sun.COM 5979126SWyllys.Ingersoll@Sun.COM CK_RV counter_set_default_attributes(TEMPLATE *); 5989126SWyllys.Ingersoll@Sun.COM CK_RV counter_check_required_attributes(TEMPLATE *, CK_ULONG); 5999126SWyllys.Ingersoll@Sun.COM CK_RV counter_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 6009126SWyllys.Ingersoll@Sun.COM 6019126SWyllys.Ingersoll@Sun.COM CK_RV compute_next_token_obj_name(CK_BYTE *, CK_BYTE *); 6029126SWyllys.Ingersoll@Sun.COM 6039126SWyllys.Ingersoll@Sun.COM CK_RV save_token_object(TSS_HCONTEXT, OBJECT *); 6049126SWyllys.Ingersoll@Sun.COM CK_RV save_public_token_object(OBJECT *); 6059126SWyllys.Ingersoll@Sun.COM CK_RV save_private_token_object(TSS_HCONTEXT, OBJECT *); 6069126SWyllys.Ingersoll@Sun.COM 6079126SWyllys.Ingersoll@Sun.COM CK_RV load_public_token_objects(void); 6089126SWyllys.Ingersoll@Sun.COM CK_RV load_private_token_objects(TSS_HCONTEXT); 6099126SWyllys.Ingersoll@Sun.COM 6109126SWyllys.Ingersoll@Sun.COM CK_RV reload_token_object(TSS_HCONTEXT, OBJECT *); 6119126SWyllys.Ingersoll@Sun.COM 6129126SWyllys.Ingersoll@Sun.COM CK_RV delete_token_object(OBJECT *); 6139126SWyllys.Ingersoll@Sun.COM 6149126SWyllys.Ingersoll@Sun.COM CK_RV init_token_data(TSS_HCONTEXT, TOKEN_DATA *); 6159126SWyllys.Ingersoll@Sun.COM CK_RV load_token_data(TSS_HCONTEXT, TOKEN_DATA *); 6169126SWyllys.Ingersoll@Sun.COM CK_RV save_token_data(TOKEN_DATA *); 6179126SWyllys.Ingersoll@Sun.COM void copy_slot_info(CK_SLOT_ID, CK_SLOT_INFO_PTR); 6189126SWyllys.Ingersoll@Sun.COM 6199651SWyllys.Ingersoll@Sun.COM CK_RV compute_sha(CK_BYTE *, CK_ULONG_32, CK_BYTE *); 6209126SWyllys.Ingersoll@Sun.COM 6219126SWyllys.Ingersoll@Sun.COM CK_RV parity_is_odd(CK_BYTE); 6229126SWyllys.Ingersoll@Sun.COM 6239126SWyllys.Ingersoll@Sun.COM CK_RV build_attribute(CK_ATTRIBUTE_TYPE, 6249126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG, CK_ATTRIBUTE **); 6259126SWyllys.Ingersoll@Sun.COM 6269651SWyllys.Ingersoll@Sun.COM CK_RV add_pkcs_padding(CK_BYTE *, UINT32, UINT32, UINT32); 6279126SWyllys.Ingersoll@Sun.COM 6289651SWyllys.Ingersoll@Sun.COM CK_RV strip_pkcs_padding(CK_BYTE *, UINT32, UINT32 *); 6299126SWyllys.Ingersoll@Sun.COM 6309126SWyllys.Ingersoll@Sun.COM CK_RV remove_leading_zeros(CK_ATTRIBUTE *); 6319126SWyllys.Ingersoll@Sun.COM 6329126SWyllys.Ingersoll@Sun.COM CK_RV rsa_pkcs_encrypt( 6339126SWyllys.Ingersoll@Sun.COM SESSION *, 6349126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 6359126SWyllys.Ingersoll@Sun.COM ENCR_DECR_CONTEXT *, 6369126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6379126SWyllys.Ingersoll@Sun.COM CK_ULONG, 6389126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6399126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 6409126SWyllys.Ingersoll@Sun.COM 6419126SWyllys.Ingersoll@Sun.COM CK_RV rsa_pkcs_decrypt(SESSION *, 6429126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 6439126SWyllys.Ingersoll@Sun.COM ENCR_DECR_CONTEXT *, 6449126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6459126SWyllys.Ingersoll@Sun.COM CK_ULONG, 6469126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6479126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 6489126SWyllys.Ingersoll@Sun.COM 6499126SWyllys.Ingersoll@Sun.COM CK_RV rsa_pkcs_sign(SESSION *, 6509126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 6519126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 6529126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6539126SWyllys.Ingersoll@Sun.COM CK_ULONG, 6549126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6559126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 6569126SWyllys.Ingersoll@Sun.COM 6579126SWyllys.Ingersoll@Sun.COM CK_RV rsa_pkcs_verify(SESSION *, 6589126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 6599126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6609126SWyllys.Ingersoll@Sun.COM CK_ULONG, 6619126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6629126SWyllys.Ingersoll@Sun.COM CK_ULONG); 6639126SWyllys.Ingersoll@Sun.COM 6649126SWyllys.Ingersoll@Sun.COM CK_RV rsa_pkcs_verify_recover(SESSION *, 6659126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 6669126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 6679126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6689126SWyllys.Ingersoll@Sun.COM CK_ULONG, 6699126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6709126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 6719126SWyllys.Ingersoll@Sun.COM 6729126SWyllys.Ingersoll@Sun.COM CK_RV rsa_hash_pkcs_sign(SESSION *, 6739126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 6749126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 6759126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6769126SWyllys.Ingersoll@Sun.COM CK_ULONG, 6779126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6789126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 6799126SWyllys.Ingersoll@Sun.COM 6809126SWyllys.Ingersoll@Sun.COM CK_RV rsa_hash_pkcs_verify(SESSION *, 6819126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 6829126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6839126SWyllys.Ingersoll@Sun.COM CK_ULONG, 6849126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6859126SWyllys.Ingersoll@Sun.COM CK_ULONG); 6869126SWyllys.Ingersoll@Sun.COM 6879126SWyllys.Ingersoll@Sun.COM CK_RV rsa_hash_pkcs_sign_update(SESSION *, 6889126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 6899126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6909126SWyllys.Ingersoll@Sun.COM CK_ULONG); 6919126SWyllys.Ingersoll@Sun.COM 6929126SWyllys.Ingersoll@Sun.COM CK_RV rsa_hash_pkcs_verify_update(SESSION *, 6939126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 6949126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 6959126SWyllys.Ingersoll@Sun.COM CK_ULONG); 6969126SWyllys.Ingersoll@Sun.COM 6979126SWyllys.Ingersoll@Sun.COM CK_RV rsa_hash_pkcs_sign_final(SESSION *, 6989126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 6999126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 7009126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 7019126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 7029126SWyllys.Ingersoll@Sun.COM 7039126SWyllys.Ingersoll@Sun.COM CK_RV rsa_hash_pkcs_verify_final(SESSION *, 7049126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 7059126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 7069126SWyllys.Ingersoll@Sun.COM CK_ULONG); 7079126SWyllys.Ingersoll@Sun.COM 7089126SWyllys.Ingersoll@Sun.COM 7099126SWyllys.Ingersoll@Sun.COM CK_RV ckm_rsa_key_pair_gen(TSS_HCONTEXT, TEMPLATE *, TEMPLATE *); 7109126SWyllys.Ingersoll@Sun.COM 7119126SWyllys.Ingersoll@Sun.COM CK_RV sha1_hash(SESSION *, CK_BBOOL, 7129126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT *, 7139126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG, 7149126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG *); 7159126SWyllys.Ingersoll@Sun.COM 7169126SWyllys.Ingersoll@Sun.COM CK_RV sha1_hmac_sign(SESSION *, CK_BBOOL, 7179126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 7189126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 7199126SWyllys.Ingersoll@Sun.COM CK_ULONG, 7209126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 7219126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 7229126SWyllys.Ingersoll@Sun.COM 7239126SWyllys.Ingersoll@Sun.COM CK_RV sha1_hmac_verify(SESSION *, 7249126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 7259126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 7269126SWyllys.Ingersoll@Sun.COM CK_ULONG, 7279126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 7289126SWyllys.Ingersoll@Sun.COM CK_ULONG); 7299126SWyllys.Ingersoll@Sun.COM 7309126SWyllys.Ingersoll@Sun.COM CK_RV md5_hash(SESSION *, CK_BBOOL, 7319126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT *, 7329126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG, 7339126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG *); 7349126SWyllys.Ingersoll@Sun.COM 7359126SWyllys.Ingersoll@Sun.COM CK_RV md5_hmac_sign(SESSION *, CK_BBOOL, 7369126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 7379126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 7389126SWyllys.Ingersoll@Sun.COM CK_ULONG, 7399126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 7409126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 7419126SWyllys.Ingersoll@Sun.COM 7429126SWyllys.Ingersoll@Sun.COM CK_RV md5_hmac_verify(SESSION *, 7439126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 7449126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 7459126SWyllys.Ingersoll@Sun.COM CK_ULONG, 7469126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 7479126SWyllys.Ingersoll@Sun.COM CK_ULONG); 7489126SWyllys.Ingersoll@Sun.COM 7499126SWyllys.Ingersoll@Sun.COM DL_NODE *dlist_add_as_first(DL_NODE *, void *); 7509126SWyllys.Ingersoll@Sun.COM DL_NODE *dlist_add_as_last(DL_NODE *, void *); 7519126SWyllys.Ingersoll@Sun.COM DL_NODE *dlist_find(DL_NODE *, void *); 7529126SWyllys.Ingersoll@Sun.COM DL_NODE *dlist_get_first(DL_NODE *); 7539126SWyllys.Ingersoll@Sun.COM DL_NODE *dlist_get_last(DL_NODE *); 7549126SWyllys.Ingersoll@Sun.COM CK_ULONG dlist_length(DL_NODE *); 7559126SWyllys.Ingersoll@Sun.COM DL_NODE *dlist_next(DL_NODE *); 7569126SWyllys.Ingersoll@Sun.COM DL_NODE *dlist_prev(DL_NODE *); 7579126SWyllys.Ingersoll@Sun.COM void dlist_purge(DL_NODE *); 7589126SWyllys.Ingersoll@Sun.COM DL_NODE *dlist_remove_node(DL_NODE *, DL_NODE *); 7599126SWyllys.Ingersoll@Sun.COM 7609126SWyllys.Ingersoll@Sun.COM CK_RV attach_shm(void); 7619126SWyllys.Ingersoll@Sun.COM CK_RV detach_shm(void); 7629126SWyllys.Ingersoll@Sun.COM 7639126SWyllys.Ingersoll@Sun.COM // encryption manager routines 7649126SWyllys.Ingersoll@Sun.COM // 7659126SWyllys.Ingersoll@Sun.COM CK_RV encr_mgr_init(SESSION *, 7669126SWyllys.Ingersoll@Sun.COM ENCR_DECR_CONTEXT *, 7679126SWyllys.Ingersoll@Sun.COM CK_ULONG, 7689126SWyllys.Ingersoll@Sun.COM CK_MECHANISM *, 7699126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE); 7709126SWyllys.Ingersoll@Sun.COM 7719126SWyllys.Ingersoll@Sun.COM CK_RV encr_mgr_cleanup(ENCR_DECR_CONTEXT *); 7729126SWyllys.Ingersoll@Sun.COM 7739126SWyllys.Ingersoll@Sun.COM CK_RV encr_mgr_encrypt(SESSION *, CK_BBOOL, 7749126SWyllys.Ingersoll@Sun.COM ENCR_DECR_CONTEXT *, 7759126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG, 7769126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG *); 7779126SWyllys.Ingersoll@Sun.COM 7789126SWyllys.Ingersoll@Sun.COM CK_RV decr_mgr_init(SESSION *, 7799126SWyllys.Ingersoll@Sun.COM ENCR_DECR_CONTEXT *, 7809126SWyllys.Ingersoll@Sun.COM CK_ULONG, 7819126SWyllys.Ingersoll@Sun.COM CK_MECHANISM *, 7829126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE); 7839126SWyllys.Ingersoll@Sun.COM 7849126SWyllys.Ingersoll@Sun.COM CK_RV decr_mgr_cleanup(ENCR_DECR_CONTEXT *); 7859126SWyllys.Ingersoll@Sun.COM 7869126SWyllys.Ingersoll@Sun.COM CK_RV decr_mgr_decrypt(SESSION *, CK_BBOOL, 7879126SWyllys.Ingersoll@Sun.COM ENCR_DECR_CONTEXT *, 7889126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG, 7899126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG *); 7909126SWyllys.Ingersoll@Sun.COM 7919126SWyllys.Ingersoll@Sun.COM CK_RV digest_mgr_cleanup(DIGEST_CONTEXT *); 7929126SWyllys.Ingersoll@Sun.COM 7939126SWyllys.Ingersoll@Sun.COM CK_RV digest_mgr_init(SESSION *, 7949126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT *, 7959126SWyllys.Ingersoll@Sun.COM CK_MECHANISM *); 7969126SWyllys.Ingersoll@Sun.COM 7979126SWyllys.Ingersoll@Sun.COM CK_RV digest_mgr_digest(SESSION *, CK_BBOOL, 7989126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT *, 7999126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG, 8009126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG *); 8019126SWyllys.Ingersoll@Sun.COM 8029126SWyllys.Ingersoll@Sun.COM CK_RV digest_mgr_digest_update(SESSION *, 8039126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT *, 8049126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG); 8059126SWyllys.Ingersoll@Sun.COM 8069126SWyllys.Ingersoll@Sun.COM CK_RV digest_mgr_digest_key(SESSION *, 8079126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT *, 8089126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE); 8099126SWyllys.Ingersoll@Sun.COM 8109126SWyllys.Ingersoll@Sun.COM CK_RV digest_mgr_digest_final(SESSION *, 8119126SWyllys.Ingersoll@Sun.COM DIGEST_CONTEXT *, 8129126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG *); 8139126SWyllys.Ingersoll@Sun.COM 8149126SWyllys.Ingersoll@Sun.COM CK_RV key_mgr_generate_key_pair(SESSION *, 8159126SWyllys.Ingersoll@Sun.COM CK_MECHANISM *, 8169126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ULONG, 8179126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ULONG, 8189126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE *, 8199126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE *); 8209126SWyllys.Ingersoll@Sun.COM 8219126SWyllys.Ingersoll@Sun.COM CK_RV key_mgr_wrap_key(SESSION *, 8229126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 8239126SWyllys.Ingersoll@Sun.COM CK_MECHANISM *, 8249126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE, 8259126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE, 8269126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8279126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 8289126SWyllys.Ingersoll@Sun.COM 8299126SWyllys.Ingersoll@Sun.COM CK_RV key_mgr_unwrap_key(SESSION *, 8309126SWyllys.Ingersoll@Sun.COM CK_MECHANISM *, 8319126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, 8329126SWyllys.Ingersoll@Sun.COM CK_ULONG, 8339126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8349126SWyllys.Ingersoll@Sun.COM CK_ULONG, 8359126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE, 8369126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE *); 8379126SWyllys.Ingersoll@Sun.COM 8389126SWyllys.Ingersoll@Sun.COM CK_RV sign_mgr_init(SESSION *, 8399126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 8409126SWyllys.Ingersoll@Sun.COM CK_MECHANISM *, 8419126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 8429126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE); 8439126SWyllys.Ingersoll@Sun.COM 8449126SWyllys.Ingersoll@Sun.COM CK_RV sign_mgr_cleanup(SIGN_VERIFY_CONTEXT *); 8459126SWyllys.Ingersoll@Sun.COM 8469126SWyllys.Ingersoll@Sun.COM CK_RV sign_mgr_sign(SESSION *, 8479126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 8489126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 8499126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8509126SWyllys.Ingersoll@Sun.COM CK_ULONG, 8519126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8529126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 8539126SWyllys.Ingersoll@Sun.COM 8549126SWyllys.Ingersoll@Sun.COM CK_RV sign_mgr_sign_recover(SESSION *, 8559126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 8569126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 8579126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8589126SWyllys.Ingersoll@Sun.COM CK_ULONG, 8599126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8609126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 8619126SWyllys.Ingersoll@Sun.COM 8629126SWyllys.Ingersoll@Sun.COM CK_RV sign_mgr_sign_final(SESSION *, 8639126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 8649126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 8659126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8669126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 8679126SWyllys.Ingersoll@Sun.COM 8689126SWyllys.Ingersoll@Sun.COM CK_RV sign_mgr_sign_update(SESSION *, 8699126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 8709126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8719126SWyllys.Ingersoll@Sun.COM CK_ULONG); 8729126SWyllys.Ingersoll@Sun.COM 8739126SWyllys.Ingersoll@Sun.COM CK_RV verify_mgr_init(SESSION *, 8749126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 8759126SWyllys.Ingersoll@Sun.COM CK_MECHANISM *, 8769126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 8779126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE); 8789126SWyllys.Ingersoll@Sun.COM 8799126SWyllys.Ingersoll@Sun.COM CK_RV verify_mgr_cleanup(SIGN_VERIFY_CONTEXT *); 8809126SWyllys.Ingersoll@Sun.COM 8819126SWyllys.Ingersoll@Sun.COM CK_RV verify_mgr_verify(SESSION *, 8829126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 8839126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8849126SWyllys.Ingersoll@Sun.COM CK_ULONG, 8859126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8869126SWyllys.Ingersoll@Sun.COM CK_ULONG); 8879126SWyllys.Ingersoll@Sun.COM 8889126SWyllys.Ingersoll@Sun.COM CK_RV verify_mgr_verify_recover(SESSION *, 8899126SWyllys.Ingersoll@Sun.COM CK_BBOOL, 8909126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 8919126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8929126SWyllys.Ingersoll@Sun.COM CK_ULONG, 8939126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8949126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 8959126SWyllys.Ingersoll@Sun.COM 8969126SWyllys.Ingersoll@Sun.COM CK_RV verify_mgr_verify_update(SESSION *, 8979126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 8989126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 8999126SWyllys.Ingersoll@Sun.COM CK_ULONG); 9009126SWyllys.Ingersoll@Sun.COM 9019126SWyllys.Ingersoll@Sun.COM CK_RV verify_mgr_verify_final(SESSION *, 9029126SWyllys.Ingersoll@Sun.COM SIGN_VERIFY_CONTEXT *, 9039126SWyllys.Ingersoll@Sun.COM CK_BYTE *, 9049126SWyllys.Ingersoll@Sun.COM CK_ULONG); 9059126SWyllys.Ingersoll@Sun.COM 9069126SWyllys.Ingersoll@Sun.COM 9079126SWyllys.Ingersoll@Sun.COM // session manager routines 9089126SWyllys.Ingersoll@Sun.COM // 9099126SWyllys.Ingersoll@Sun.COM CK_RV session_mgr_close_all_sessions(void); 9109126SWyllys.Ingersoll@Sun.COM CK_RV session_mgr_close_session(SESSION *); 9119126SWyllys.Ingersoll@Sun.COM SESSION *session_mgr_find(CK_SESSION_HANDLE); 9129126SWyllys.Ingersoll@Sun.COM CK_RV session_mgr_login_all(CK_USER_TYPE); 9139126SWyllys.Ingersoll@Sun.COM CK_RV session_mgr_logout_all(void); 9149126SWyllys.Ingersoll@Sun.COM CK_RV session_mgr_new(CK_ULONG, SESSION **); 9159126SWyllys.Ingersoll@Sun.COM 9169126SWyllys.Ingersoll@Sun.COM CK_BBOOL session_mgr_readonly_exists(void); 9179126SWyllys.Ingersoll@Sun.COM CK_BBOOL session_mgr_so_session_exists(void); 9189126SWyllys.Ingersoll@Sun.COM CK_BBOOL session_mgr_user_session_exists(void); 9199126SWyllys.Ingersoll@Sun.COM CK_BBOOL session_mgr_public_session_exists(void); 9209126SWyllys.Ingersoll@Sun.COM 9219126SWyllys.Ingersoll@Sun.COM CK_RV session_mgr_get_op_state(SESSION *, CK_BBOOL, 9229126SWyllys.Ingersoll@Sun.COM CK_BYTE *, CK_ULONG *); 9239126SWyllys.Ingersoll@Sun.COM 9249126SWyllys.Ingersoll@Sun.COM CK_RV session_mgr_set_op_state(SESSION *, 9259126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE, CK_OBJECT_HANDLE, CK_BYTE *); 9269126SWyllys.Ingersoll@Sun.COM 9279126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_add(SESSION *, 9289126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ULONG, CK_OBJECT_HANDLE *); 9299126SWyllys.Ingersoll@Sun.COM 9309126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_add_to_map(SESSION *, OBJECT *, CK_OBJECT_HANDLE *); 9319126SWyllys.Ingersoll@Sun.COM 9329126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_add_to_shm(OBJECT *); 9339126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_del_from_shm(OBJECT *); 9349126SWyllys.Ingersoll@Sun.COM 9359126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_copy(SESSION *, 9369126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ULONG, CK_OBJECT_HANDLE, 9379126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE *); 9389126SWyllys.Ingersoll@Sun.COM 9399126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_create_final(SESSION *, 9409126SWyllys.Ingersoll@Sun.COM OBJECT *, CK_OBJECT_HANDLE *); 9419126SWyllys.Ingersoll@Sun.COM 9429126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_create_skel(SESSION *, 9439126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ULONG, CK_ULONG, 9449126SWyllys.Ingersoll@Sun.COM CK_ULONG, CK_ULONG, OBJECT **); 9459126SWyllys.Ingersoll@Sun.COM 9469126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_destroy_object(SESSION *, CK_OBJECT_HANDLE); 9479126SWyllys.Ingersoll@Sun.COM 9489126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_destroy_token_objects(TSS_HCONTEXT); 9499126SWyllys.Ingersoll@Sun.COM 9509126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_find_in_map1(TSS_HCONTEXT, CK_OBJECT_HANDLE, OBJECT **); 9519126SWyllys.Ingersoll@Sun.COM 9529126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_find_in_map2(TSS_HCONTEXT, OBJECT *, CK_OBJECT_HANDLE *); 9539126SWyllys.Ingersoll@Sun.COM 9549126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_find_init(SESSION *, CK_ATTRIBUTE *, CK_ULONG); 9559126SWyllys.Ingersoll@Sun.COM 9569126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_find_build_list(SESSION *, 9579126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, 9589126SWyllys.Ingersoll@Sun.COM CK_ULONG, 9599126SWyllys.Ingersoll@Sun.COM DL_NODE *, 9609126SWyllys.Ingersoll@Sun.COM CK_BBOOL public_only); 9619126SWyllys.Ingersoll@Sun.COM 9629126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_find_final(SESSION *); 9639126SWyllys.Ingersoll@Sun.COM 9649126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_get_attribute_values(SESSION *, 9659126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE, 9669126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, 9679126SWyllys.Ingersoll@Sun.COM CK_ULONG); 9689126SWyllys.Ingersoll@Sun.COM 9699126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_get_object_size(TSS_HCONTEXT, CK_OBJECT_HANDLE, 9709126SWyllys.Ingersoll@Sun.COM CK_ULONG *); 9719126SWyllys.Ingersoll@Sun.COM 9729126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_mgr_invalidate_handle1(CK_OBJECT_HANDLE handle); 9739126SWyllys.Ingersoll@Sun.COM 9749126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_mgr_invalidate_handle2(OBJECT *); 9759126SWyllys.Ingersoll@Sun.COM 9769126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_mgr_purge_session_objects(SESSION *, SESS_OBJ_TYPE); 9779126SWyllys.Ingersoll@Sun.COM 9789126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_mgr_purge_token_objects(TSS_HCONTEXT); 9799126SWyllys.Ingersoll@Sun.COM 9809126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_mgr_purge_private_token_objects(TSS_HCONTEXT); 9819126SWyllys.Ingersoll@Sun.COM 9829126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_remove_from_map(CK_OBJECT_HANDLE); 9839126SWyllys.Ingersoll@Sun.COM 9849126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_restore_obj(CK_BYTE *, OBJECT *); 9859126SWyllys.Ingersoll@Sun.COM 9869126SWyllys.Ingersoll@Sun.COM CK_RV object_mgr_set_attribute_values(SESSION *, 9879126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE, 9889126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, 9899126SWyllys.Ingersoll@Sun.COM CK_ULONG); 9909126SWyllys.Ingersoll@Sun.COM 9919126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_mgr_purge_map(SESSION *, SESS_OBJ_TYPE); 9929126SWyllys.Ingersoll@Sun.COM 9939126SWyllys.Ingersoll@Sun.COM CK_RV object_create(CK_ATTRIBUTE *, CK_ULONG, OBJECT **); 9949126SWyllys.Ingersoll@Sun.COM 9959126SWyllys.Ingersoll@Sun.COM CK_RV object_create_skel(CK_ATTRIBUTE *, 9969126SWyllys.Ingersoll@Sun.COM CK_ULONG, 9979126SWyllys.Ingersoll@Sun.COM CK_ULONG, 9989126SWyllys.Ingersoll@Sun.COM CK_ULONG, 9999126SWyllys.Ingersoll@Sun.COM CK_ULONG, 10009126SWyllys.Ingersoll@Sun.COM OBJECT **); 10019126SWyllys.Ingersoll@Sun.COM 10029126SWyllys.Ingersoll@Sun.COM CK_RV object_copy(CK_ATTRIBUTE *, 10039126SWyllys.Ingersoll@Sun.COM CK_ULONG, 10049126SWyllys.Ingersoll@Sun.COM OBJECT *, 10059126SWyllys.Ingersoll@Sun.COM OBJECT **); 10069126SWyllys.Ingersoll@Sun.COM 10079126SWyllys.Ingersoll@Sun.COM CK_RV object_flatten(OBJECT *, 10089126SWyllys.Ingersoll@Sun.COM CK_BYTE **, 10099651SWyllys.Ingersoll@Sun.COM CK_ULONG_32 *); 10109126SWyllys.Ingersoll@Sun.COM 10119126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_free(OBJECT *); 10129126SWyllys.Ingersoll@Sun.COM 10139126SWyllys.Ingersoll@Sun.COM CK_RV object_get_attribute_values(OBJECT *, 10149126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, 10159126SWyllys.Ingersoll@Sun.COM CK_ULONG); 10169126SWyllys.Ingersoll@Sun.COM 10179126SWyllys.Ingersoll@Sun.COM CK_ULONG object_get_size(OBJECT *); 10189126SWyllys.Ingersoll@Sun.COM 10199126SWyllys.Ingersoll@Sun.COM CK_RV object_restore(CK_BYTE *, 10209126SWyllys.Ingersoll@Sun.COM OBJECT **, 10219126SWyllys.Ingersoll@Sun.COM CK_BBOOL replace); 10229126SWyllys.Ingersoll@Sun.COM 10239126SWyllys.Ingersoll@Sun.COM CK_RV object_set_attribute_values(OBJECT *, 10249126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, 10259126SWyllys.Ingersoll@Sun.COM CK_ULONG); 10269126SWyllys.Ingersoll@Sun.COM 10279126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_is_modifiable(OBJECT *); 10289126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_is_private(OBJECT *); 10299126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_is_public(OBJECT *); 10309126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_is_token_object(OBJECT *); 10319126SWyllys.Ingersoll@Sun.COM CK_BBOOL object_is_session_object(OBJECT *); 10329126SWyllys.Ingersoll@Sun.COM 10339126SWyllys.Ingersoll@Sun.COM CK_BBOOL is_attribute_defined(CK_ATTRIBUTE_TYPE); 10349126SWyllys.Ingersoll@Sun.COM 10359126SWyllys.Ingersoll@Sun.COM CK_RV template_add_attributes(TEMPLATE *, 10369126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ULONG); 10379126SWyllys.Ingersoll@Sun.COM 10389126SWyllys.Ingersoll@Sun.COM CK_RV template_add_default_attributes(TEMPLATE *, 10399126SWyllys.Ingersoll@Sun.COM CK_ULONG, 10409126SWyllys.Ingersoll@Sun.COM CK_ULONG, 10419126SWyllys.Ingersoll@Sun.COM CK_ULONG); 10429126SWyllys.Ingersoll@Sun.COM 10439126SWyllys.Ingersoll@Sun.COM CK_BBOOL template_attribute_find(TEMPLATE *, 10449126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE_TYPE, CK_ATTRIBUTE **); 10459126SWyllys.Ingersoll@Sun.COM 10469126SWyllys.Ingersoll@Sun.COM void template_attribute_find_multiple(TEMPLATE *, 10479126SWyllys.Ingersoll@Sun.COM ATTRIBUTE_PARSE_LIST *, 10489126SWyllys.Ingersoll@Sun.COM CK_ULONG); 10499126SWyllys.Ingersoll@Sun.COM 10509126SWyllys.Ingersoll@Sun.COM CK_BBOOL template_check_exportability(TEMPLATE *, CK_ATTRIBUTE_TYPE type); 10519126SWyllys.Ingersoll@Sun.COM 10529126SWyllys.Ingersoll@Sun.COM CK_RV template_check_required_attributes(TEMPLATE *, 10539126SWyllys.Ingersoll@Sun.COM CK_ULONG, CK_ULONG, CK_ULONG); 10549126SWyllys.Ingersoll@Sun.COM 10559126SWyllys.Ingersoll@Sun.COM CK_RV template_check_required_base_attributes(TEMPLATE *, 10569126SWyllys.Ingersoll@Sun.COM CK_ULONG); 10579126SWyllys.Ingersoll@Sun.COM 10589126SWyllys.Ingersoll@Sun.COM CK_BBOOL template_compare(CK_ATTRIBUTE *, 10599126SWyllys.Ingersoll@Sun.COM CK_ULONG, TEMPLATE *); 10609126SWyllys.Ingersoll@Sun.COM 10619126SWyllys.Ingersoll@Sun.COM CK_RV template_copy(TEMPLATE *, TEMPLATE *); 10629126SWyllys.Ingersoll@Sun.COM 10639126SWyllys.Ingersoll@Sun.COM CK_RV template_flatten(TEMPLATE *, CK_BYTE *); 10649126SWyllys.Ingersoll@Sun.COM 10659126SWyllys.Ingersoll@Sun.COM CK_RV template_free(TEMPLATE *); 10669126SWyllys.Ingersoll@Sun.COM 10679126SWyllys.Ingersoll@Sun.COM CK_BBOOL template_get_class(TEMPLATE *, CK_ULONG *, CK_ULONG *); 10689126SWyllys.Ingersoll@Sun.COM 10699126SWyllys.Ingersoll@Sun.COM CK_ULONG template_get_count(TEMPLATE *); 10709126SWyllys.Ingersoll@Sun.COM 10719126SWyllys.Ingersoll@Sun.COM CK_ULONG template_get_size(TEMPLATE *); 10729126SWyllys.Ingersoll@Sun.COM CK_ULONG template_get_compressed_size(TEMPLATE *); 10739126SWyllys.Ingersoll@Sun.COM 10749126SWyllys.Ingersoll@Sun.COM CK_RV template_set_default_common_attributes(TEMPLATE *); 10759126SWyllys.Ingersoll@Sun.COM 10769126SWyllys.Ingersoll@Sun.COM CK_RV template_merge(TEMPLATE *, TEMPLATE **); 10779126SWyllys.Ingersoll@Sun.COM 10789126SWyllys.Ingersoll@Sun.COM CK_RV template_update_attribute(TEMPLATE *, CK_ATTRIBUTE *); 10799126SWyllys.Ingersoll@Sun.COM 10809126SWyllys.Ingersoll@Sun.COM CK_RV template_unflatten(TEMPLATE **, CK_BYTE *, CK_ULONG); 10819126SWyllys.Ingersoll@Sun.COM 10829126SWyllys.Ingersoll@Sun.COM CK_RV template_validate_attribute(TEMPLATE *, 10839126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ULONG, CK_ULONG, CK_ULONG); 10849126SWyllys.Ingersoll@Sun.COM 10859126SWyllys.Ingersoll@Sun.COM CK_RV template_validate_attributes(TEMPLATE *, 10869126SWyllys.Ingersoll@Sun.COM CK_ULONG, CK_ULONG, CK_ULONG); 10879126SWyllys.Ingersoll@Sun.COM 10889126SWyllys.Ingersoll@Sun.COM CK_RV template_validate_base_attribute(TEMPLATE *, 10899126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ULONG); 10909126SWyllys.Ingersoll@Sun.COM 10919126SWyllys.Ingersoll@Sun.COM 10929126SWyllys.Ingersoll@Sun.COM // DATA OBJECT ROUTINES 10939126SWyllys.Ingersoll@Sun.COM // 10949126SWyllys.Ingersoll@Sun.COM CK_RV data_object_check_required_attributes(TEMPLATE *, CK_ULONG); 10959126SWyllys.Ingersoll@Sun.COM CK_RV data_object_set_default_attributes(TEMPLATE *, CK_ULONG); 10969126SWyllys.Ingersoll@Sun.COM CK_RV data_object_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 10979126SWyllys.Ingersoll@Sun.COM 10989126SWyllys.Ingersoll@Sun.COM // CERTIFICATE ROUTINES 10999126SWyllys.Ingersoll@Sun.COM CK_RV cert_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 11009126SWyllys.Ingersoll@Sun.COM 11019126SWyllys.Ingersoll@Sun.COM CK_RV cert_x509_check_required_attributes(TEMPLATE *, CK_ULONG); 11029126SWyllys.Ingersoll@Sun.COM CK_RV cert_x509_set_default_attributes(TEMPLATE *, CK_ULONG); 11039126SWyllys.Ingersoll@Sun.COM CK_RV cert_x509_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 11049126SWyllys.Ingersoll@Sun.COM CK_RV cert_vendor_check_required_attributes(TEMPLATE *, CK_ULONG); 11059126SWyllys.Ingersoll@Sun.COM CK_RV cert_vendor_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 11069126SWyllys.Ingersoll@Sun.COM 11079126SWyllys.Ingersoll@Sun.COM // 11089126SWyllys.Ingersoll@Sun.COM // KEY ROUTINES 11099126SWyllys.Ingersoll@Sun.COM // 11109126SWyllys.Ingersoll@Sun.COM CK_RV key_object_check_required_attributes(TEMPLATE *, CK_ULONG); 11119126SWyllys.Ingersoll@Sun.COM CK_RV key_object_set_default_attributes(TEMPLATE *, CK_ULONG); 11129126SWyllys.Ingersoll@Sun.COM CK_RV key_object_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 11139126SWyllys.Ingersoll@Sun.COM 11149126SWyllys.Ingersoll@Sun.COM CK_RV publ_key_check_required_attributes(TEMPLATE *, CK_ULONG); 11159126SWyllys.Ingersoll@Sun.COM CK_RV publ_key_set_default_attributes(TEMPLATE *, CK_ULONG); 11169126SWyllys.Ingersoll@Sun.COM CK_RV publ_key_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 11179126SWyllys.Ingersoll@Sun.COM 11189126SWyllys.Ingersoll@Sun.COM CK_RV priv_key_check_required_attributes(TEMPLATE *, CK_ULONG); 11199126SWyllys.Ingersoll@Sun.COM CK_RV priv_key_set_default_attributes(TEMPLATE *, CK_ULONG); 11209126SWyllys.Ingersoll@Sun.COM CK_RV priv_key_unwrap(TEMPLATE *, CK_ULONG, CK_BYTE *, CK_ULONG); 11219126SWyllys.Ingersoll@Sun.COM CK_RV priv_key_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 11229126SWyllys.Ingersoll@Sun.COM 11239126SWyllys.Ingersoll@Sun.COM CK_BBOOL secret_key_check_exportability(CK_ATTRIBUTE_TYPE type); 11249126SWyllys.Ingersoll@Sun.COM CK_RV secret_key_check_required_attributes(TEMPLATE *, CK_ULONG); 11259126SWyllys.Ingersoll@Sun.COM CK_RV secret_key_set_default_attributes(TEMPLATE *, CK_ULONG); 11269126SWyllys.Ingersoll@Sun.COM CK_RV secret_key_unwrap(TEMPLATE *, CK_ULONG, CK_BYTE *, CK_ULONG, 11279126SWyllys.Ingersoll@Sun.COM CK_BBOOL fromend); 11289126SWyllys.Ingersoll@Sun.COM CK_RV secret_key_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, 11299126SWyllys.Ingersoll@Sun.COM CK_ULONG); 11309126SWyllys.Ingersoll@Sun.COM 11319126SWyllys.Ingersoll@Sun.COM // rsa routines 11329126SWyllys.Ingersoll@Sun.COM // 11339126SWyllys.Ingersoll@Sun.COM CK_RV rsa_publ_check_required_attributes(TEMPLATE *, CK_ULONG); 11349126SWyllys.Ingersoll@Sun.COM CK_RV rsa_publ_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 11359126SWyllys.Ingersoll@Sun.COM CK_RV rsa_publ_set_default_attributes(TEMPLATE *, CK_ULONG); 11369126SWyllys.Ingersoll@Sun.COM CK_BBOOL rsa_priv_check_exportability(CK_ATTRIBUTE_TYPE type); 11379126SWyllys.Ingersoll@Sun.COM CK_RV rsa_priv_check_required_attributes(TEMPLATE *, CK_ULONG); 11389126SWyllys.Ingersoll@Sun.COM CK_RV rsa_priv_set_default_attributes(TEMPLATE *, CK_ULONG); 11399126SWyllys.Ingersoll@Sun.COM CK_RV rsa_priv_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 11409126SWyllys.Ingersoll@Sun.COM CK_RV rsa_priv_wrap_get_data(TEMPLATE *, CK_BBOOL, CK_BYTE **, CK_ULONG *); 11419126SWyllys.Ingersoll@Sun.COM CK_RV rsa_priv_unwrap(TEMPLATE *, CK_BYTE *, CK_ULONG); 11429126SWyllys.Ingersoll@Sun.COM 11439126SWyllys.Ingersoll@Sun.COM // Generic secret key routines 11449126SWyllys.Ingersoll@Sun.COM CK_RV generic_secret_check_required_attributes(TEMPLATE *, CK_ULONG); 11459126SWyllys.Ingersoll@Sun.COM CK_RV generic_secret_set_default_attributes(TEMPLATE *, CK_ULONG); 11469126SWyllys.Ingersoll@Sun.COM CK_RV generic_secret_validate_attribute(TEMPLATE *, CK_ATTRIBUTE *, CK_ULONG); 11479126SWyllys.Ingersoll@Sun.COM CK_RV generic_secret_wrap_get_data(TEMPLATE *, CK_BBOOL, 11489126SWyllys.Ingersoll@Sun.COM CK_BYTE **, CK_ULONG *); 11499126SWyllys.Ingersoll@Sun.COM 11509126SWyllys.Ingersoll@Sun.COM CK_RV generic_secret_unwrap(TEMPLATE *, CK_BYTE *, CK_ULONG, CK_BBOOL fromend); 11519126SWyllys.Ingersoll@Sun.COM 11529126SWyllys.Ingersoll@Sun.COM CK_RV tpm_encrypt_data(TSS_HCONTEXT, 11539126SWyllys.Ingersoll@Sun.COM TSS_HKEY, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *); 11549126SWyllys.Ingersoll@Sun.COM 11559126SWyllys.Ingersoll@Sun.COM CK_RV tpm_decrypt_data(TSS_HCONTEXT, 11569126SWyllys.Ingersoll@Sun.COM TSS_HKEY, CK_BYTE *, CK_ULONG, CK_BYTE *, CK_ULONG *); 11579126SWyllys.Ingersoll@Sun.COM 11589126SWyllys.Ingersoll@Sun.COM CK_ULONG ber_encode_INTEGER(CK_BBOOL, 11599126SWyllys.Ingersoll@Sun.COM CK_BYTE **, CK_ULONG *, CK_BYTE *, CK_ULONG); 11609126SWyllys.Ingersoll@Sun.COM 11619126SWyllys.Ingersoll@Sun.COM CK_RV ber_decode_INTEGER(CK_BYTE *, 11629126SWyllys.Ingersoll@Sun.COM CK_BYTE **, CK_ULONG *, CK_ULONG *); 11639126SWyllys.Ingersoll@Sun.COM 11649126SWyllys.Ingersoll@Sun.COM CK_RV ber_encode_OCTET_STRING(CK_BBOOL, 11659126SWyllys.Ingersoll@Sun.COM CK_BYTE **, CK_ULONG *, CK_BYTE *, CK_ULONG); 11669126SWyllys.Ingersoll@Sun.COM 11679126SWyllys.Ingersoll@Sun.COM CK_RV ber_decode_OCTET_STRING(CK_BYTE *, 11689126SWyllys.Ingersoll@Sun.COM CK_BYTE **, CK_ULONG *, CK_ULONG *); 11699126SWyllys.Ingersoll@Sun.COM 11709126SWyllys.Ingersoll@Sun.COM CK_RV ber_encode_SEQUENCE(CK_BBOOL, 11719126SWyllys.Ingersoll@Sun.COM CK_BYTE **, CK_ULONG *, CK_BYTE *, CK_ULONG); 11729126SWyllys.Ingersoll@Sun.COM 11739126SWyllys.Ingersoll@Sun.COM CK_RV ber_decode_SEQUENCE(CK_BYTE *, 11749126SWyllys.Ingersoll@Sun.COM CK_BYTE **, CK_ULONG *, CK_ULONG *); 11759126SWyllys.Ingersoll@Sun.COM 11769126SWyllys.Ingersoll@Sun.COM CK_RV ber_encode_PrivateKeyInfo(CK_BBOOL, 11779126SWyllys.Ingersoll@Sun.COM CK_BYTE **, CK_ULONG *, CK_BYTE *, 11789126SWyllys.Ingersoll@Sun.COM CK_ULONG, CK_BYTE *, CK_ULONG); 11799126SWyllys.Ingersoll@Sun.COM 11809126SWyllys.Ingersoll@Sun.COM CK_RV ber_decode_PrivateKeyInfo(CK_BYTE *, 11819126SWyllys.Ingersoll@Sun.COM CK_ULONG, CK_BYTE **, CK_ULONG *, CK_BYTE **); 11829126SWyllys.Ingersoll@Sun.COM 11839126SWyllys.Ingersoll@Sun.COM CK_RV ber_encode_RSAPrivateKey(CK_BBOOL, 11849126SWyllys.Ingersoll@Sun.COM CK_BYTE **, CK_ULONG *, CK_ATTRIBUTE *, 11859126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ATTRIBUTE *, CK_ATTRIBUTE *, 11869126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ATTRIBUTE *, CK_ATTRIBUTE *, 11879126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *); 11889126SWyllys.Ingersoll@Sun.COM 11899126SWyllys.Ingersoll@Sun.COM CK_RV ber_decode_RSAPrivateKey(CK_BYTE *, 11909126SWyllys.Ingersoll@Sun.COM CK_ULONG, CK_ATTRIBUTE **, CK_ATTRIBUTE **, 11919126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE **, CK_ATTRIBUTE **, CK_ATTRIBUTE **, 11929126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE **, CK_ATTRIBUTE **, CK_ATTRIBUTE **); 11939126SWyllys.Ingersoll@Sun.COM 11949126SWyllys.Ingersoll@Sun.COM 11959126SWyllys.Ingersoll@Sun.COM CK_RV ber_encode_DSAPrivateKey(CK_BBOOL, 11969126SWyllys.Ingersoll@Sun.COM CK_BYTE **, CK_ULONG *, CK_ATTRIBUTE *, 11979126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE *, CK_ATTRIBUTE *, CK_ATTRIBUTE *); 11989126SWyllys.Ingersoll@Sun.COM 11999126SWyllys.Ingersoll@Sun.COM CK_RV ber_decode_DSAPrivateKey(CK_BYTE *, 12009126SWyllys.Ingersoll@Sun.COM CK_ULONG, CK_ATTRIBUTE **, CK_ATTRIBUTE **, 12019126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE **, CK_ATTRIBUTE **); 12029126SWyllys.Ingersoll@Sun.COM 12039126SWyllys.Ingersoll@Sun.COM #define APPID "TPM_STDLL" 12049126SWyllys.Ingersoll@Sun.COM 12059126SWyllys.Ingersoll@Sun.COM /* log to stdout */ 12069126SWyllys.Ingersoll@Sun.COM #define LogMessage(dest, priority, layer, fmt, ...) \ 12079126SWyllys.Ingersoll@Sun.COM (void) fprintf(dest, "%s %s %s:%d " fmt "\n", (char *)priority, \ 12089126SWyllys.Ingersoll@Sun.COM (char *)layer, (char *)__FILE__,\ 12099126SWyllys.Ingersoll@Sun.COM (int)__LINE__, __VA_ARGS__); 12109126SWyllys.Ingersoll@Sun.COM 12119126SWyllys.Ingersoll@Sun.COM #define LogMessage1(dest, priority, layer, data) \ 12129126SWyllys.Ingersoll@Sun.COM (void) fprintf(dest, "%s %s %s:%d %s\n", priority, layer, __FILE__, \ 12139126SWyllys.Ingersoll@Sun.COM __LINE__, data); 12149126SWyllys.Ingersoll@Sun.COM 12159126SWyllys.Ingersoll@Sun.COM /* Debug logging */ 12169126SWyllys.Ingersoll@Sun.COM #ifdef DEBUG 12179126SWyllys.Ingersoll@Sun.COM #define LogDebug(fmt, ...) LogMessage(stdout, "LOG_DEBUG", APPID, \ 12189126SWyllys.Ingersoll@Sun.COM fmt, __VA_ARGS__) 12199126SWyllys.Ingersoll@Sun.COM 12209126SWyllys.Ingersoll@Sun.COM #define LogDebug1(data) LogMessage1(stdout, "LOG_DEBUG", APPID, data) 12219126SWyllys.Ingersoll@Sun.COM 12229126SWyllys.Ingersoll@Sun.COM /* Error logging */ 12239126SWyllys.Ingersoll@Sun.COM #define LogError(fmt, ...) LogMessage(stderr, "LOG_ERR", APPID,\ 12249126SWyllys.Ingersoll@Sun.COM "ERROR: " fmt, __VA_ARGS__) 12259126SWyllys.Ingersoll@Sun.COM 12269126SWyllys.Ingersoll@Sun.COM #define LogError1(data) LogMessage1(stderr, "LOG_ERR", APPID,\ 12279126SWyllys.Ingersoll@Sun.COM "ERROR: " data) 12289126SWyllys.Ingersoll@Sun.COM 12299126SWyllys.Ingersoll@Sun.COM /* Warn logging */ 12309126SWyllys.Ingersoll@Sun.COM #define LogWarn(fmt, ...) LogMessage(stdout, "LOG_WARNING", APPID,\ 12319126SWyllys.Ingersoll@Sun.COM "WARNING: " fmt, __VA_ARGS__) 12329126SWyllys.Ingersoll@Sun.COM 12339126SWyllys.Ingersoll@Sun.COM #define LogWarn1(data) LogMessage1(stdout, "LOG_WARNING", APPID,\ 12349126SWyllys.Ingersoll@Sun.COM "WARNING: " data) 12359126SWyllys.Ingersoll@Sun.COM 12369126SWyllys.Ingersoll@Sun.COM /* Info Logging */ 12379126SWyllys.Ingersoll@Sun.COM #define LogInfo(fmt, ...) LogMessage(stdout, "LOG_INFO", APPID,\ 12389126SWyllys.Ingersoll@Sun.COM fmt, __VA_ARGS__) 12399126SWyllys.Ingersoll@Sun.COM 12409126SWyllys.Ingersoll@Sun.COM #define LogInfo1(data) LogMessage1(stdout, "LOG_INFO", APPID, data) 12419126SWyllys.Ingersoll@Sun.COM 12429126SWyllys.Ingersoll@Sun.COM #define st_err_log(...) LogMessage(stderr, "ST MSG", APPID,\ 12439126SWyllys.Ingersoll@Sun.COM "", __VA_ARGS__) 12449126SWyllys.Ingersoll@Sun.COM #else 12459126SWyllys.Ingersoll@Sun.COM #define LogDebug(...) 12469126SWyllys.Ingersoll@Sun.COM #define LogDebug1(...) 12479126SWyllys.Ingersoll@Sun.COM #define LogBlob(...) 12489126SWyllys.Ingersoll@Sun.COM #define LogError(...) 12499126SWyllys.Ingersoll@Sun.COM #define LogError1(...) 12509126SWyllys.Ingersoll@Sun.COM #define LogWarn(...) 12519126SWyllys.Ingersoll@Sun.COM #define LogWarn1(...) 12529126SWyllys.Ingersoll@Sun.COM #define LogInfo(...) 12539126SWyllys.Ingersoll@Sun.COM #define LogInfo1(...) 12549126SWyllys.Ingersoll@Sun.COM #define st_err_log(...) 12559126SWyllys.Ingersoll@Sun.COM #endif 12569126SWyllys.Ingersoll@Sun.COM 12579126SWyllys.Ingersoll@Sun.COM /* 12589126SWyllys.Ingersoll@Sun.COM * CK_FUNCTION_LIST is a structure holding a Cryptoki spec 12599126SWyllys.Ingersoll@Sun.COM * version and pointers of appropriate types to all the 12609126SWyllys.Ingersoll@Sun.COM * Cryptoki functions 12619126SWyllys.Ingersoll@Sun.COM */ 12629126SWyllys.Ingersoll@Sun.COM 12639126SWyllys.Ingersoll@Sun.COM /* CK_FUNCTION_LIST is new for v2.0 */ 12649126SWyllys.Ingersoll@Sun.COM 12659126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12669126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_Initialize) 12679126SWyllys.Ingersoll@Sun.COM (void *ppFunctionList, CK_SLOT_ID slotID, CK_CHAR_PTR pCorrelator); 12689126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12699126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_Finalize) 12709126SWyllys.Ingersoll@Sun.COM (CK_VOID_PTR pReserved); 12719126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12729126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_Terminate)(); 12739126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12749126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetInfo) 12759126SWyllys.Ingersoll@Sun.COM (CK_INFO_PTR pInfo); 12769126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12779126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetFunctionList) 12789126SWyllys.Ingersoll@Sun.COM (CK_FUNCTION_LIST_PTR_PTR ppFunctionList); 12799126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12809126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetSlotList) 12819126SWyllys.Ingersoll@Sun.COM (CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, 12829126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusCount); 12839126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12849126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetSlotInfo) 12859126SWyllys.Ingersoll@Sun.COM (CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo); 12869126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12879126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetTokenInfo) 12889126SWyllys.Ingersoll@Sun.COM (CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo); 12899126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12909126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetMechanismList) 12919126SWyllys.Ingersoll@Sun.COM (CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMechanismList, 12929126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusCount); 12939126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12949126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetMechanismInfo) 12959126SWyllys.Ingersoll@Sun.COM (CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, 12969126SWyllys.Ingersoll@Sun.COM CK_MECHANISM_INFO_PTR pInfo); 12979126SWyllys.Ingersoll@Sun.COM typedef CK_RV 12989126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_InitToken) 12999126SWyllys.Ingersoll@Sun.COM (CK_SLOT_ID slotID, CK_CHAR_PTR pPin, CK_ULONG usPinLen, 13009126SWyllys.Ingersoll@Sun.COM CK_CHAR_PTR pLabel); 13019126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13029126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_InitPIN) 13039126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_CHAR_PTR pPin, 13049126SWyllys.Ingersoll@Sun.COM CK_ULONG usPinLen); 13059126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13069126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_SetPIN) 13079126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_CHAR_PTR pOldPin, 13089126SWyllys.Ingersoll@Sun.COM CK_ULONG usOldLen, CK_CHAR_PTR pNewPin, 13099126SWyllys.Ingersoll@Sun.COM CK_ULONG usNewLen); 13109126SWyllys.Ingersoll@Sun.COM 13119126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13129126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_OpenSession) 13139126SWyllys.Ingersoll@Sun.COM (CK_SLOT_ID slotID, CK_FLAGS flags, 13149126SWyllys.Ingersoll@Sun.COM CK_SESSION_HANDLE_PTR phSession); 13159126SWyllys.Ingersoll@Sun.COM 13169126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13179126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_CloseSession) 13189126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession); 13199126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13209126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_CloseAllSessions) 13219126SWyllys.Ingersoll@Sun.COM (CK_SLOT_ID slotID); 13229126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13239126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetSessionInfo) 13249126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_SESSION_INFO_PTR pInfo); 13259126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13269126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetOperationState) 13279126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pOperationState, 13289126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pulOperationStateLen); 13299126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13309126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_SetOperationState) 13319126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pOperationState, 13329126SWyllys.Ingersoll@Sun.COM CK_ULONG ulOperationStateLen, 13339126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hEncryptionKey, 13349126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hAuthenticationKey); 13359126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13369126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_Login)(ST_SESSION_T hSession, 13379126SWyllys.Ingersoll@Sun.COM CK_USER_TYPE userType, CK_CHAR_PTR pPin, 13389126SWyllys.Ingersoll@Sun.COM CK_ULONG usPinLen); 13399126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13409126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_Logout)(ST_SESSION_T hSession); 13419126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13429126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_CreateObject) 13439126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_ATTRIBUTE_PTR pTemplate, 13449126SWyllys.Ingersoll@Sun.COM CK_ULONG usCount, CK_OBJECT_HANDLE_PTR phObject); 13459126SWyllys.Ingersoll@Sun.COM 13469126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13479126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_CopyObject) 13489126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_OBJECT_HANDLE hObject, 13499126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount, 13509126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE_PTR phNewObject); 13519126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13529126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DestroyObject) 13539126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_OBJECT_HANDLE hObject); 13549126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13559126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetObjectSize) 13569126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_OBJECT_HANDLE hObject, 13579126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusSize); 13589126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13599126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetAttributeValue) 13609126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_OBJECT_HANDLE hObject, 13619126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount); 13629126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13639126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_SetAttributeValue) 13649126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_OBJECT_HANDLE hObject, 13659126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount); 13669126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13679126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_FindObjectsInit) 13689126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_ATTRIBUTE_PTR pTemplate, 13699126SWyllys.Ingersoll@Sun.COM CK_ULONG usCount); 13709126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13719126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_FindObjects) 13729126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, 13739126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE_PTR phObject, CK_ULONG usMaxObjectCount, 13749126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusObjectCount); 13759126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13769126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_FindObjectsFinal) 13779126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession); 13789126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13799126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_EncryptInit) 13809126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 13819126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hKey); 13829126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13839126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_Encrypt) 13849126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pData, 13859126SWyllys.Ingersoll@Sun.COM CK_ULONG usDataLen, CK_BYTE_PTR pEncryptedData, 13869126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusEncryptedDataLen); 13879126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13889126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_EncryptUpdate) 13899126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pPart, 13909126SWyllys.Ingersoll@Sun.COM CK_ULONG usPartLen, CK_BYTE_PTR pEncryptedPart, 13919126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusEncryptedPartLen); 13929126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13939126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_EncryptFinal) 13949126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, 13959126SWyllys.Ingersoll@Sun.COM CK_BYTE_PTR pLastEncryptedPart, 13969126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusLastEncryptedPartLen); 13979126SWyllys.Ingersoll@Sun.COM typedef CK_RV 13989126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DecryptInit) 13999126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 14009126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hKey); 14019126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14029126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_Decrypt) 14039126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pEncryptedData, 14049126SWyllys.Ingersoll@Sun.COM CK_ULONG usEncryptedDataLen, CK_BYTE_PTR pData, 14059126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusDataLen); 14069126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14079126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DecryptUpdate) 14089126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pEncryptedPart, 14099126SWyllys.Ingersoll@Sun.COM CK_ULONG usEncryptedPartLen, CK_BYTE_PTR pPart, 14109126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusPartLen); 14119126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14129126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DecryptFinal) 14139126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pLastPart, 14149126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusLastPartLen); 14159126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14169126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DigestInit) 14179126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, 14189126SWyllys.Ingersoll@Sun.COM CK_MECHANISM_PTR pMechanism); 14199126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14209126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_Digest) 14219126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pData, 14229126SWyllys.Ingersoll@Sun.COM CK_ULONG usDataLen, CK_BYTE_PTR pDigest, 14239126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusDigestLen); 14249126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14259126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DigestUpdate) 14269126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pPart, 14279126SWyllys.Ingersoll@Sun.COM CK_ULONG usPartLen); 14289126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14299126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DigestKey) 14309126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_OBJECT_HANDLE hKey); 14319126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14329126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DigestFinal) 14339126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pDigest, 14349126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusDigestLen); 14359126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14369126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_SignInit) 14379126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 14389126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hKey); 14399126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14409126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_Sign) 14419126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pData, 14429126SWyllys.Ingersoll@Sun.COM CK_ULONG usDataLen, CK_BYTE_PTR pSignature, 14439126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusSignatureLen); 14449126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14459126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_SignUpdate) 14469126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pPart, 14479126SWyllys.Ingersoll@Sun.COM CK_ULONG usPartLen); 14489126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14499126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_SignFinal) 14509126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pSignature, 14519126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusSignatureLen); 14529126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14539126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_SignRecoverInit) 14549126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 14559126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hKey); 14569126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14579126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_SignRecover) 14589126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pData, 14599126SWyllys.Ingersoll@Sun.COM CK_ULONG usDataLen, CK_BYTE_PTR pSignature, 14609126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusSignatureLen); 14619126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14629126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_VerifyInit) 14639126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 14649126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hKey); 14659126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14669126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_Verify) 14679126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pData, 14689126SWyllys.Ingersoll@Sun.COM CK_ULONG usDataLen, CK_BYTE_PTR pSignature, 14699126SWyllys.Ingersoll@Sun.COM CK_ULONG usSignatureLen); 14709126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14719126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_VerifyUpdate) 14729126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pPart, 14739126SWyllys.Ingersoll@Sun.COM CK_ULONG usPartLen); 14749126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14759126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_VerifyFinal) 14769126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pSignature, 14779126SWyllys.Ingersoll@Sun.COM CK_ULONG usSignatureLen); 14789126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14799126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_VerifyRecoverInit) 14809126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 14819126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hKey); 14829126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14839126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_VerifyRecover) 14849126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pSignature, 14859126SWyllys.Ingersoll@Sun.COM CK_ULONG usSignatureLen, CK_BYTE_PTR pData, 14869126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pusDataLen); 14879126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14889126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DigestEncryptUpdate) 14899126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pPart, 14909126SWyllys.Ingersoll@Sun.COM CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, 14919126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pulEncryptedPartLen); 14929126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14939126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DecryptDigestUpdate) 14949126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pEncryptedPart, 14959126SWyllys.Ingersoll@Sun.COM CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, 14969126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pulPartLen); 14979126SWyllys.Ingersoll@Sun.COM typedef CK_RV 14989126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_SignEncryptUpdate) 14999126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pPart, 15009126SWyllys.Ingersoll@Sun.COM CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, 15019126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pulEncryptedPartLen); 15029126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15039126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DecryptVerifyUpdate) 15049126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pEncryptedPart, 15059126SWyllys.Ingersoll@Sun.COM CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, 15069126SWyllys.Ingersoll@Sun.COM CK_ULONG_PTR pulPartLen); 15079126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15089126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GenerateKey) 15099126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 15109126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount, 15119126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE_PTR phKey); 15129126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15139126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GenerateKeyPair) 15149126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 15159126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE_PTR pPublicKeyTemplate, 15169126SWyllys.Ingersoll@Sun.COM CK_ULONG usPublicKeyAttributeCount, 15179126SWyllys.Ingersoll@Sun.COM CK_ATTRIBUTE_PTR pPrivateKeyTemplate, 15189126SWyllys.Ingersoll@Sun.COM CK_ULONG usPrivateKeyAttributeCount, 15199126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE_PTR phPrivateKey, 15209126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE_PTR phPublicKey); 15219126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15229126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_WrapKey) 15239126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 15249126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hWrappingKey, CK_OBJECT_HANDLE hKey, 15259126SWyllys.Ingersoll@Sun.COM CK_BYTE_PTR pWrappedKey, CK_ULONG_PTR pusWrappedKeyLen); 15269126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15279126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_UnwrapKey) 15289126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 15299126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hUnwrappingKey, CK_BYTE_PTR pWrappedKey, 15309126SWyllys.Ingersoll@Sun.COM CK_ULONG usWrappedKeyLen, CK_ATTRIBUTE_PTR pTemplate, 15319126SWyllys.Ingersoll@Sun.COM CK_ULONG usAttributeCount, CK_OBJECT_HANDLE_PTR phKey); 15329126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15339126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_DeriveKey) 15349126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_MECHANISM_PTR pMechanism, 15359126SWyllys.Ingersoll@Sun.COM CK_OBJECT_HANDLE hBaseKey, CK_ATTRIBUTE_PTR pTemplate, 15369126SWyllys.Ingersoll@Sun.COM CK_ULONG usAttributeCount, CK_OBJECT_HANDLE_PTR phKey); 15379126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15389126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_SeedRandom) 15399126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pSeed, 15409126SWyllys.Ingersoll@Sun.COM CK_ULONG usSeedLen); 15419126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15429126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GenerateRandom) 15439126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_BYTE_PTR pRandomData, 15449126SWyllys.Ingersoll@Sun.COM CK_ULONG usRandomLen); 15459126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15469126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_GetFunctionStatus) 15479126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession); 15489126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15499126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_CancelFunction) 15509126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession); 15519126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15529126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_Notify) 15539126SWyllys.Ingersoll@Sun.COM (ST_SESSION_T hSession, CK_NOTIFICATION event, 15549126SWyllys.Ingersoll@Sun.COM CK_VOID_PTR pApplication); 15559126SWyllys.Ingersoll@Sun.COM typedef CK_RV 15569126SWyllys.Ingersoll@Sun.COM (CK_PTR ST_C_WaitForSlotEvent) 15579126SWyllys.Ingersoll@Sun.COM (CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, 15589126SWyllys.Ingersoll@Sun.COM CK_VOID_PTR pReserved); 15599126SWyllys.Ingersoll@Sun.COM 15609126SWyllys.Ingersoll@Sun.COM 15619126SWyllys.Ingersoll@Sun.COM 15629126SWyllys.Ingersoll@Sun.COM struct ST_FCN_LIST { 15639126SWyllys.Ingersoll@Sun.COM 15649126SWyllys.Ingersoll@Sun.COM ST_C_Initialize ST_Initialize; 15659126SWyllys.Ingersoll@Sun.COM ST_C_Finalize ST_Finalize; 15669126SWyllys.Ingersoll@Sun.COM 15679126SWyllys.Ingersoll@Sun.COM ST_C_GetTokenInfo ST_GetTokenInfo; 15689126SWyllys.Ingersoll@Sun.COM ST_C_GetMechanismList ST_GetMechanismList; 15699126SWyllys.Ingersoll@Sun.COM ST_C_GetMechanismInfo ST_GetMechanismInfo; 15709126SWyllys.Ingersoll@Sun.COM ST_C_InitToken ST_InitToken; 15719126SWyllys.Ingersoll@Sun.COM ST_C_InitPIN ST_InitPIN; 15729126SWyllys.Ingersoll@Sun.COM ST_C_SetPIN ST_SetPIN; 15739126SWyllys.Ingersoll@Sun.COM 15749126SWyllys.Ingersoll@Sun.COM ST_C_OpenSession ST_OpenSession; 15759126SWyllys.Ingersoll@Sun.COM ST_C_CloseSession ST_CloseSession; 15769126SWyllys.Ingersoll@Sun.COM ST_C_GetSessionInfo ST_GetSessionInfo; 15779126SWyllys.Ingersoll@Sun.COM ST_C_GetOperationState ST_GetOperationState; 15789126SWyllys.Ingersoll@Sun.COM ST_C_SetOperationState ST_SetOperationState; 15799126SWyllys.Ingersoll@Sun.COM ST_C_Login ST_Login; 15809126SWyllys.Ingersoll@Sun.COM ST_C_Logout ST_Logout; 15819126SWyllys.Ingersoll@Sun.COM 15829126SWyllys.Ingersoll@Sun.COM ST_C_CreateObject ST_CreateObject; 15839126SWyllys.Ingersoll@Sun.COM ST_C_CopyObject ST_CopyObject; 15849126SWyllys.Ingersoll@Sun.COM ST_C_DestroyObject ST_DestroyObject; 15859126SWyllys.Ingersoll@Sun.COM ST_C_GetObjectSize ST_GetObjectSize; 15869126SWyllys.Ingersoll@Sun.COM ST_C_GetAttributeValue ST_GetAttributeValue; 15879126SWyllys.Ingersoll@Sun.COM ST_C_SetAttributeValue ST_SetAttributeValue; 15889126SWyllys.Ingersoll@Sun.COM ST_C_FindObjectsInit ST_FindObjectsInit; 15899126SWyllys.Ingersoll@Sun.COM ST_C_FindObjects ST_FindObjects; 15909126SWyllys.Ingersoll@Sun.COM ST_C_FindObjectsFinal ST_FindObjectsFinal; 15919126SWyllys.Ingersoll@Sun.COM 15929126SWyllys.Ingersoll@Sun.COM 15939126SWyllys.Ingersoll@Sun.COM ST_C_EncryptInit ST_EncryptInit; 15949126SWyllys.Ingersoll@Sun.COM ST_C_Encrypt ST_Encrypt; 15959126SWyllys.Ingersoll@Sun.COM ST_C_EncryptUpdate ST_EncryptUpdate; 15969126SWyllys.Ingersoll@Sun.COM ST_C_EncryptFinal ST_EncryptFinal; 15979126SWyllys.Ingersoll@Sun.COM ST_C_DecryptInit ST_DecryptInit; 15989126SWyllys.Ingersoll@Sun.COM ST_C_Decrypt ST_Decrypt; 15999126SWyllys.Ingersoll@Sun.COM ST_C_DecryptUpdate ST_DecryptUpdate; 16009126SWyllys.Ingersoll@Sun.COM ST_C_DecryptFinal ST_DecryptFinal; 16019126SWyllys.Ingersoll@Sun.COM ST_C_DigestInit ST_DigestInit; 16029126SWyllys.Ingersoll@Sun.COM ST_C_Digest ST_Digest; 16039126SWyllys.Ingersoll@Sun.COM ST_C_DigestUpdate ST_DigestUpdate; 16049126SWyllys.Ingersoll@Sun.COM ST_C_DigestKey ST_DigestKey; 16059126SWyllys.Ingersoll@Sun.COM ST_C_DigestFinal ST_DigestFinal; 16069126SWyllys.Ingersoll@Sun.COM ST_C_SignInit ST_SignInit; 16079126SWyllys.Ingersoll@Sun.COM ST_C_Sign ST_Sign; 16089126SWyllys.Ingersoll@Sun.COM ST_C_SignUpdate ST_SignUpdate; 16099126SWyllys.Ingersoll@Sun.COM ST_C_SignFinal ST_SignFinal; 16109126SWyllys.Ingersoll@Sun.COM ST_C_SignRecoverInit ST_SignRecoverInit; 16119126SWyllys.Ingersoll@Sun.COM ST_C_SignRecover ST_SignRecover; 16129126SWyllys.Ingersoll@Sun.COM ST_C_VerifyInit ST_VerifyInit; 16139126SWyllys.Ingersoll@Sun.COM ST_C_Verify ST_Verify; 16149126SWyllys.Ingersoll@Sun.COM ST_C_VerifyUpdate ST_VerifyUpdate; 16159126SWyllys.Ingersoll@Sun.COM ST_C_VerifyFinal ST_VerifyFinal; 16169126SWyllys.Ingersoll@Sun.COM ST_C_VerifyRecoverInit ST_VerifyRecoverInit; 16179126SWyllys.Ingersoll@Sun.COM ST_C_VerifyRecover ST_VerifyRecover; 16189126SWyllys.Ingersoll@Sun.COM ST_C_DigestEncryptUpdate ST_DigestEncryptUpdate; 16199126SWyllys.Ingersoll@Sun.COM ST_C_DecryptDigestUpdate ST_DecryptDigestUpdate; 16209126SWyllys.Ingersoll@Sun.COM ST_C_SignEncryptUpdate ST_SignEncryptUpdate; 16219126SWyllys.Ingersoll@Sun.COM ST_C_DecryptVerifyUpdate ST_DecryptVerifyUpdate; 16229126SWyllys.Ingersoll@Sun.COM ST_C_GenerateKey ST_GenerateKey; 16239126SWyllys.Ingersoll@Sun.COM ST_C_GenerateKeyPair ST_GenerateKeyPair; 16249126SWyllys.Ingersoll@Sun.COM ST_C_WrapKey ST_WrapKey; 16259126SWyllys.Ingersoll@Sun.COM ST_C_UnwrapKey ST_UnwrapKey; 16269126SWyllys.Ingersoll@Sun.COM ST_C_DeriveKey ST_DeriveKey; 16279126SWyllys.Ingersoll@Sun.COM ST_C_SeedRandom ST_SeedRandom; 16289126SWyllys.Ingersoll@Sun.COM ST_C_GenerateRandom ST_GenerateRandom; 16299126SWyllys.Ingersoll@Sun.COM ST_C_GetFunctionStatus ST_GetFunctionStatus; 16309126SWyllys.Ingersoll@Sun.COM ST_C_CancelFunction ST_CancelFunction; 16319126SWyllys.Ingersoll@Sun.COM }; 16329126SWyllys.Ingersoll@Sun.COM 16339126SWyllys.Ingersoll@Sun.COM typedef struct ST_FCN_LIST STDLL_FcnList_t; 16349126SWyllys.Ingersoll@Sun.COM 16359126SWyllys.Ingersoll@Sun.COM #endif /* _TPMTOK_INT_H */ 1636