From 39ab235938c1c9db482f3d9862145fb6d92e335e Mon Sep 17 00:00:00 2001 From: "glen.beasley%sun.com" Date: Mon, 30 Mar 2009 23:40:54 +0000 Subject: Bug 473147 - fix for aix, pk11mode verbose output, and pk11util/pk11mode both using pk11table.c r=bob --- security/nss/cmd/lib/manifest.mn | 2 + security/nss/cmd/lib/pk11table.c | 46 +- security/nss/cmd/lib/pk11table.h | 47 ++ security/nss/cmd/pk11mode/Makefile | 4 + security/nss/cmd/pk11mode/manifest.mn | 2 +- security/nss/cmd/pk11mode/pk11mode.c | 347 ++------ security/nss/cmd/pk11util/manifest.mn | 2 +- security/nss/cmd/pk11util/pk11table.c | 1411 --------------------------------- security/nss/cmd/pk11util/pk11util.c | 34 +- security/nss/cmd/pk11util/pk11util.h | 165 ---- 10 files changed, 199 insertions(+), 1861 deletions(-) delete mode 100644 security/nss/cmd/pk11util/pk11table.c delete mode 100644 security/nss/cmd/pk11util/pk11util.h diff --git a/security/nss/cmd/lib/manifest.mn b/security/nss/cmd/lib/manifest.mn index ee4a29c10..767b58a10 100644 --- a/security/nss/cmd/lib/manifest.mn +++ b/security/nss/cmd/lib/manifest.mn @@ -47,6 +47,7 @@ PRIVATE_EXPORTS = secutil.h \ NSPRerrs.h \ SECerrs.h \ SSLerrs.h \ + pk11table.h \ $(NULL) CSRCS = secutil.c \ @@ -56,6 +57,7 @@ CSRCS = secutil.c \ pppolicy.c \ secerror.c \ ffs.c \ + pk11table.c \ $(NULL) REQUIRES = dbm diff --git a/security/nss/cmd/lib/pk11table.c b/security/nss/cmd/lib/pk11table.c index c233fd80d..5ec551fb2 100644 --- a/security/nss/cmd/lib/pk11table.c +++ b/security/nss/cmd/lib/pk11table.c @@ -34,8 +34,7 @@ * * ***** END LICENSE BLOCK ***** */ -#include -#include "pk11util.h" +#include "pk11table.h" const char *_valueString[] = { "None", @@ -483,6 +482,14 @@ const Constant _consts[] = { mkEntry(CKM_CAMELLIA_MAC, Mechanism), mkEntry(CKM_CAMELLIA_MAC_GENERAL, Mechanism), mkEntry(CKM_CAMELLIA_CBC_PAD, Mechanism), + mkEntry(CKM_SEED_KEY_GEN, Mechanism), + mkEntry(CKM_SEED_ECB, Mechanism), + mkEntry(CKM_SEED_CBC, Mechanism), + mkEntry(CKM_SEED_MAC, Mechanism), + mkEntry(CKM_SEED_MAC_GENERAL, Mechanism), + mkEntry(CKM_SEED_CBC_PAD, Mechanism), + mkEntry(CKM_SEED_ECB_ENCRYPT_DATA, Mechanism), + mkEntry(CKM_SEED_CBC_ENCRYPT_DATA, Mechanism), mkEntry(CKM_DSA_PARAMETER_GEN, Mechanism), mkEntry(CKM_DH_PKCS_PARAMETER_GEN, Mechanism), mkEntry(CKM_NETSCAPE_AES_KEY_WRAP, Mechanism), @@ -1405,7 +1412,38 @@ const Topics _topics[] = { }, }; -const Topics *topics=&_topics[0]; -const int topicCount = sizeof(_topics)/sizeof(_topics[0]); +const Topics *topics= &_topics[0]; +const int topicCount = sizeof(_topics) / sizeof(_topics[0]); +const char * +getName(CK_ULONG value, ConstType type) +{ + int i; + + for (i=0; i < constCount; i++) { + if (consts[i].type == type && consts[i].value == value) { + return consts[i].name; + } + if (type == ConstNone && consts[i].value == value) { + return consts[i].name; + } + } + return NULL; +} + +const char * +getNameFromAttribute(CK_ATTRIBUTE_TYPE type) +{ + return getName(type, ConstAttribute); +} + +int totalKnownType(ConstType type) { + int count = 0; + int i; + + for (i=0; i < constCount; i++) { + if (consts[i].type == type) count++; + } + return count; +} diff --git a/security/nss/cmd/lib/pk11table.h b/security/nss/cmd/lib/pk11table.h index 8a2f4d592..4c2e3f038 100644 --- a/security/nss/cmd/lib/pk11table.h +++ b/security/nss/cmd/lib/pk11table.h @@ -1,3 +1,40 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Netscape security libraries. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1994-2000 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +#ifndef _PK11_TABLE_H_ +#define _PK11_TABLE_H_ /* * Supported functions.. @@ -163,3 +200,13 @@ extern const int commandCount; extern const Topics *topics; extern const int topicCount; +extern const char * +getName(CK_ULONG value, ConstType type); + +extern const char * +getNameFromAttribute(CK_ATTRIBUTE_TYPE type); + +extern int totalKnownType(ConstType type); + +#endif /* _PK11_TABLE_H_ */ + diff --git a/security/nss/cmd/pk11mode/Makefile b/security/nss/cmd/pk11mode/Makefile index 9e2708a76..c342b4f8e 100755 --- a/security/nss/cmd/pk11mode/Makefile +++ b/security/nss/cmd/pk11mode/Makefile @@ -56,6 +56,8 @@ include $(CORE_DEPTH)/coreconf/config.mk # (4) Include "local" platform-dependent assignments (OPTIONAL). # ####################################################################### +include ../platlibs.mk + ifeq ($(OS_ARCH), WINNT) EXTRA_LIBS += \ @@ -91,3 +93,5 @@ include $(CORE_DEPTH)/coreconf/rules.mk # (7) Execute "local" rules. (OPTIONAL). # ####################################################################### +include ../platrules.mk + diff --git a/security/nss/cmd/pk11mode/manifest.mn b/security/nss/cmd/pk11mode/manifest.mn index 6c84958b6..6059bbd54 100644 --- a/security/nss/cmd/pk11mode/manifest.mn +++ b/security/nss/cmd/pk11mode/manifest.mn @@ -45,4 +45,4 @@ CSRCS = pk11mode.c PROGRAM = pk11mode -REQUIRES = +REQUIRES = seccmd diff --git a/security/nss/cmd/pk11mode/pk11mode.c b/security/nss/cmd/pk11mode/pk11mode.c index 1199b20f1..e73940bcd 100644 --- a/security/nss/cmd/pk11mode/pk11mode.c +++ b/security/nss/cmd/pk11mode/pk11mode.c @@ -67,8 +67,7 @@ #include "plgetopt.h" #include "prenv.h" -#include "pkcs11.h" - +#include "pk11table.h" #define NUM_ELEM(array) (sizeof(array)/sizeof(array[0])) @@ -76,159 +75,20 @@ #define NULL_PTR 0 #endif -struct tuple_str { - CK_RV errNum; - const char * errString; -}; - - -typedef struct tuple_str tuple_str; - -static const tuple_str errStrings[] = { -{CKR_OK , "CKR_OK "}, -{CKR_CANCEL , "CKR_CANCEL "}, -{CKR_HOST_MEMORY , "CKR_HOST_MEMORY "}, -{CKR_SLOT_ID_INVALID , "CKR_SLOT_ID_INVALID "}, -{CKR_GENERAL_ERROR , "CKR_GENERAL_ERROR "}, -{CKR_FUNCTION_FAILED , "CKR_FUNCTION_FAILED "}, -{CKR_ARGUMENTS_BAD , "CKR_ARGUMENTS_BAD "}, -{CKR_NO_EVENT , "CKR_NO_EVENT "}, -{CKR_NEED_TO_CREATE_THREADS , "CKR_NEED_TO_CREATE_THREADS "}, -{CKR_CANT_LOCK , "CKR_CANT_LOCK "}, -{CKR_ATTRIBUTE_READ_ONLY , "CKR_ATTRIBUTE_READ_ONLY "}, -{CKR_ATTRIBUTE_SENSITIVE , "CKR_ATTRIBUTE_SENSITIVE "}, -{CKR_ATTRIBUTE_TYPE_INVALID , "CKR_ATTRIBUTE_TYPE_INVALID "}, -{CKR_ATTRIBUTE_VALUE_INVALID , "CKR_ATTRIBUTE_VALUE_INVALID "}, -{CKR_DATA_INVALID , "CKR_DATA_INVALID "}, -{CKR_DATA_LEN_RANGE , "CKR_DATA_LEN_RANGE "}, -{CKR_DEVICE_ERROR , "CKR_DEVICE_ERROR "}, -{CKR_DEVICE_MEMORY , "CKR_DEVICE_MEMORY "}, -{CKR_DEVICE_REMOVED , "CKR_DEVICE_REMOVED "}, -{CKR_ENCRYPTED_DATA_INVALID , "CKR_ENCRYPTED_DATA_INVALID "}, -{CKR_ENCRYPTED_DATA_LEN_RANGE , "CKR_ENCRYPTED_DATA_LEN_RANGE "}, -{CKR_FUNCTION_CANCELED , "CKR_FUNCTION_CANCELED "}, -{CKR_FUNCTION_NOT_PARALLEL , "CKR_FUNCTION_NOT_PARALLEL "}, -{CKR_FUNCTION_NOT_SUPPORTED , "CKR_FUNCTION_NOT_SUPPORTED "}, -{CKR_KEY_HANDLE_INVALID , "CKR_KEY_HANDLE_INVALID "}, -{CKR_KEY_SIZE_RANGE , "CKR_KEY_SIZE_RANGE "}, -{CKR_KEY_TYPE_INCONSISTENT , "CKR_KEY_TYPE_INCONSISTENT "}, -{CKR_KEY_NOT_NEEDED , "CKR_KEY_NOT_NEEDED "}, -{CKR_KEY_CHANGED , "CKR_KEY_CHANGED "}, -{CKR_KEY_NEEDED , "CKR_KEY_NEEDED "}, -{CKR_KEY_INDIGESTIBLE , "CKR_KEY_INDIGESTIBLE "}, -{CKR_KEY_FUNCTION_NOT_PERMITTED , "CKR_KEY_FUNCTION_NOT_PERMITTED "}, -{CKR_KEY_NOT_WRAPPABLE , "CKR_KEY_NOT_WRAPPABLE "}, -{CKR_KEY_UNEXTRACTABLE , "CKR_KEY_UNEXTRACTABLE "}, -{CKR_MECHANISM_INVALID , "CKR_MECHANISM_INVALID "}, -{CKR_MECHANISM_PARAM_INVALID , "CKR_MECHANISM_PARAM_INVALID "}, -{CKR_OBJECT_HANDLE_INVALID , "CKR_OBJECT_HANDLE_INVALID "}, -{CKR_OPERATION_ACTIVE , "CKR_OPERATION_ACTIVE "}, -{CKR_OPERATION_NOT_INITIALIZED , "CKR_OPERATION_NOT_INITIALIZED "}, -{CKR_PIN_INCORRECT , "CKR_PIN_INCORRECT "}, -{CKR_PIN_INVALID , "CKR_PIN_INVALID "}, -{CKR_PIN_LEN_RANGE , "CKR_PIN_LEN_RANGE "}, -{CKR_PIN_EXPIRED , "CKR_PIN_EXPIRED "}, -{CKR_PIN_LOCKED , "CKR_PIN_LOCKED "}, -{CKR_SESSION_CLOSED , "CKR_SESSION_CLOSED "}, -{CKR_SESSION_COUNT , "CKR_SESSION_COUNT "}, -{CKR_SESSION_HANDLE_INVALID , "CKR_SESSION_HANDLE_INVALID "}, -{CKR_SESSION_PARALLEL_NOT_SUPPORTED , "CKR_SESSION_PARALLEL_NOT_SUPPORTED "}, -{CKR_SESSION_READ_ONLY , "CKR_SESSION_READ_ONLY "}, -{CKR_SESSION_EXISTS , "CKR_SESSION_EXISTS "}, -{CKR_SESSION_READ_ONLY_EXISTS , "CKR_SESSION_READ_ONLY_EXISTS "}, -{CKR_SESSION_READ_WRITE_SO_EXISTS , "CKR_SESSION_READ_WRITE_SO_EXISTS "}, -{CKR_SIGNATURE_INVALID , "CKR_SIGNATURE_INVALID "}, -{CKR_SIGNATURE_LEN_RANGE , "CKR_SIGNATURE_LEN_RANGE "}, -{CKR_TEMPLATE_INCOMPLETE , "CKR_TEMPLATE_INCOMPLETE "}, -{CKR_TEMPLATE_INCONSISTENT , "CKR_TEMPLATE_INCONSISTENT "}, -{CKR_TOKEN_NOT_PRESENT , "CKR_TOKEN_NOT_PRESENT "}, -{CKR_TOKEN_NOT_RECOGNIZED , "CKR_TOKEN_NOT_RECOGNIZED "}, -{CKR_TOKEN_WRITE_PROTECTED , "CKR_TOKEN_WRITE_PROTECTED "}, -{CKR_UNWRAPPING_KEY_HANDLE_INVALID , "CKR_UNWRAPPING_KEY_HANDLE_INVALID "}, -{CKR_UNWRAPPING_KEY_SIZE_RANGE , "CKR_UNWRAPPING_KEY_SIZE_RANGE "}, -{CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT, "CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT"}, -{CKR_USER_ALREADY_LOGGED_IN , "CKR_USER_ALREADY_LOGGED_IN "}, -{CKR_USER_NOT_LOGGED_IN , "CKR_USER_NOT_LOGGED_IN "}, -{CKR_USER_PIN_NOT_INITIALIZED , "CKR_USER_PIN_NOT_INITIALIZED "}, -{CKR_USER_TYPE_INVALID , "CKR_USER_TYPE_INVALID "}, -{CKR_USER_ANOTHER_ALREADY_LOGGED_IN , "CKR_USER_ANOTHER_ALREADY_LOGGED_IN "}, -{CKR_USER_TOO_MANY_TYPES , "CKR_USER_TOO_MANY_TYPES "}, -{CKR_WRAPPED_KEY_INVALID , "CKR_WRAPPED_KEY_INVALID "}, -{CKR_WRAPPED_KEY_LEN_RANGE , "CKR_WRAPPED_KEY_LEN_RANGE "}, -{CKR_WRAPPING_KEY_HANDLE_INVALID , "CKR_WRAPPING_KEY_HANDLE_INVALID "}, -{CKR_WRAPPING_KEY_SIZE_RANGE , "CKR_WRAPPING_KEY_SIZE_RANGE "}, -{CKR_WRAPPING_KEY_TYPE_INCONSISTENT , "CKR_WRAPPING_KEY_TYPE_INCONSISTENT "}, -{CKR_RANDOM_SEED_NOT_SUPPORTED , "CKR_RANDOM_SEED_NOT_SUPPORTED "}, -{CKR_RANDOM_NO_RNG , "CKR_RANDOM_NO_RNG "}, -{CKR_DOMAIN_PARAMS_INVALID , "CKR_DOMAIN_PARAMS_INVALID "}, -{CKR_BUFFER_TOO_SMALL , "CKR_BUFFER_TOO_SMALL "}, -{CKR_SAVED_STATE_INVALID , "CKR_SAVED_STATE_INVALID "}, -{CKR_INFORMATION_SENSITIVE , "CKR_INFORMATION_SENSITIVE "}, -{CKR_STATE_UNSAVEABLE , "CKR_STATE_UNSAVEABLE "}, -{CKR_CRYPTOKI_NOT_INITIALIZED , "CKR_CRYPTOKI_NOT_INITIALIZED "}, -{CKR_CRYPTOKI_ALREADY_INITIALIZED , "CKR_CRYPTOKI_ALREADY_INITIALIZED "}, -{CKR_MUTEX_BAD , "CKR_MUTEX_BAD "}, -{CKR_MUTEX_NOT_LOCKED , "CKR_MUTEX_NOT_LOCKED "}, -{CKR_FUNCTION_REJECTED , "CKR_FUNCTION_REJECTED "}, -{CKR_VENDOR_DEFINED , "CKR_VENDOR_DEFINED "}, -{0xCE534351 , "CKR_NETSCAPE_CERTDB_FAILED "}, -{0xCE534352 , "CKR_NETSCAPE_KEYDB_FAILED "} -}; - -static const CK_ULONG numStrings = sizeof(errStrings) / sizeof(tuple_str); - /* Returns constant error string for "CRV". * Returns "unknown error" if errNum is unknown. */ const char * PKM_CK_RVtoStr(CK_RV errNum) { - CK_ULONG low = 1; - CK_ULONG high = numStrings - 1; - CK_ULONG i; - CK_RV num; - static int initDone; + const char * err; - /* make sure table is in ascending order. - * binary search depends on it. - */ - if (!initDone) { - CK_RV lastNum = CKR_OK; - for (i = low; i <= high; ++i) { - num = errStrings[i].errNum; - if (num <= lastNum) { - fprintf(stderr, -"sequence error in error strings at item %d\n" -"error %d (%s)\n" -"should come after \n" -"error %d (%s)\n", - (int) i, (int) lastNum, errStrings[i-1].errString, - (int) num, errStrings[i].errString); - } - lastNum = num; - } - initDone = 1; - } - - /* Do binary search of table. */ - while (low + 1 < high) { - i = (low + high) / 2; - num = errStrings[i].errNum; - if (errNum == num) - return errStrings[i].errString; - if (errNum < num) - high = i; - else - low = i; - } - if (errNum == errStrings[low].errNum) - return errStrings[low].errString; - if (errNum == errStrings[high].errNum) - return errStrings[high].errString; + err = getName(errNum, ConstResult); + + if (err) return err; + return "unknown error"; } -#include "pkcs11p.h" - typedef struct CK_C_INITIALIZE_ARGS_NSS { CK_CREATEMUTEX CreateMutex; CK_DESTROYMUTEX DestroyMutex; @@ -249,83 +109,6 @@ typedef struct CK_C_INITIALIZE_ARGS_NSS { CK_VOID_PTR pReserved; } CK_C_INITIALIZE_ARGS_NSS; -#include "pkcs11u.h" - -static CK_ATTRIBUTE_TYPE all_known_attribute_types[] = { - CKA_CLASS, - CKA_TOKEN, - CKA_PRIVATE, - CKA_LABEL, - CKA_APPLICATION, - CKA_VALUE, - CKA_CERTIFICATE_TYPE, - CKA_ISSUER, - CKA_SERIAL_NUMBER, - CKA_KEY_TYPE, - CKA_SUBJECT, - CKA_ID, - CKA_SENSITIVE, - CKA_ENCRYPT, - CKA_DECRYPT, - CKA_WRAP, - CKA_UNWRAP, - CKA_SIGN, - CKA_SIGN_RECOVER, - CKA_VERIFY, - CKA_VERIFY_RECOVER, - CKA_DERIVE, - CKA_START_DATE, - CKA_END_DATE, - CKA_MODULUS, - CKA_MODULUS_BITS, - CKA_PUBLIC_EXPONENT, - CKA_PRIVATE_EXPONENT, - CKA_PRIME_1, - CKA_PRIME_2, - CKA_EXPONENT_1, - CKA_EXPONENT_2, - CKA_COEFFICIENT, - CKA_PRIME, - CKA_SUBPRIME, - CKA_BASE, - CKA_VALUE_BITS, - CKA_VALUE_LEN, - CKA_EXTRACTABLE, - CKA_LOCAL, - CKA_NEVER_EXTRACTABLE, - CKA_ALWAYS_SENSITIVE, - CKA_MODIFIABLE, -#ifdef CKA_NETSCAPE - CKA_NETSCAPE_URL, - CKA_NETSCAPE_EMAIL, - CKA_NETSCAPE_SMIME_INFO, - CKA_NETSCAPE_SMIME_TIMESTAMP, - CKA_NETSCAPE_PKCS8_SALT, - CKA_NETSCAPE_PASSWORD_CHECK, - CKA_NETSCAPE_EXPIRES, -#endif /* CKA_NETSCAPE */ -#ifdef CKA_TRUST - CKA_TRUST_DIGITAL_SIGNATURE, - CKA_TRUST_NON_REPUDIATION, - CKA_TRUST_KEY_ENCIPHERMENT, - CKA_TRUST_DATA_ENCIPHERMENT, - CKA_TRUST_KEY_AGREEMENT, - CKA_TRUST_KEY_CERT_SIGN, - CKA_TRUST_CRL_SIGN, - CKA_TRUST_SERVER_AUTH, - CKA_TRUST_CLIENT_AUTH, - CKA_TRUST_CODE_SIGNING, - CKA_TRUST_EMAIL_PROTECTION, - CKA_TRUST_IPSEC_END_SYSTEM, - CKA_TRUST_IPSEC_TUNNEL, - CKA_TRUST_IPSEC_USER, - CKA_TRUST_TIME_STAMPING, -#endif /* CKA_TRUST */ -}; - -static int number_of_all_known_attribute_types = -(sizeof(all_known_attribute_types)/sizeof(all_known_attribute_types[0])); - #define MAX_SIG_SZ 128 #define MAX_CIPHER_SZ 128 #define MAX_DATA_SZ 64 @@ -1824,7 +1607,7 @@ void PKM_LogIt(const char *fmt, ...) { printf("NON FIPS MODE: "); } else if (MODE == HYBRIDMODE) { printf("Hybrid MODE: "); - } else printf ("NO MODE: "); + } vprintf(fmt, args); va_end(args); } @@ -1903,7 +1686,7 @@ CK_RV PKM_InitPWforDB(CK_FUNCTION_LIST_PTR pFunctionList, } if (MODE == FIPSMODE) { crv = pFunctionList->C_InitPIN(hSession, (CK_UTF8CHAR *) weakPin, - sizeof(weakPin)); + strlen((char *)weakPin)); if (crv == CKR_OK) { PKM_Error( "C_InitPIN with a weak password succeeded\n"); return crv; @@ -1913,7 +1696,7 @@ CK_RV PKM_InitPWforDB(CK_FUNCTION_LIST_PTR pFunctionList, } } crv = pFunctionList->C_InitPIN(hSession, (CK_UTF8CHAR *) testPin, - sizeof(testPin)); + strlen((char *)testPin)); if (crv == CKR_OK) { PKM_LogIt("C_InitPIN succeeded\n"); } else { @@ -2303,7 +2086,8 @@ CK_RV PKM_Mechanism(CK_FUNCTION_LIST_PTR pFunctionList, CK_MECHANISM_TYPE *pMechanismList; CK_ULONG mechanismCount; CK_ULONG i; - + const char * mechName = NULL; + NUMTESTS++; /* increment NUMTESTS */ /* Get the mechanism list */ @@ -2331,13 +2115,21 @@ CK_RV PKM_Mechanism(CK_FUNCTION_LIST_PTR pFunctionList, } PKM_LogIt("C_GetMechanismList returned the mechanism types:\n"); if (verbose) { - for (i = 0; i < mechanismCount; i++) { - printf(" 0x%08lX", pMechanismList[i]); - if ((i != 0) && ((i % 4) == 0 )) printf("\n"); + for (i = 1; i <= mechanismCount; i++) { + mechName = getName(pMechanismList[(i-1)], ConstMechanism); + + /* output two mechanism name on each line */ + /* currently the longest known mechansim name length is 37 */ + if (mechName) { + printf("%-40s",mechName); + } else { + printf("Unknown mechanism: 0x%08lX ", pMechanismList[i]); + } + if ((i != 0) && ((i % 2) == 0 )) printf("\n"); } - printf("\n"); + printf("\n\n"); } - + for ( i = 0; i < mechanismCount; i++ ) { CK_MECHANISM_INFO minfo; @@ -2351,7 +2143,10 @@ CK_RV PKM_Mechanism(CK_FUNCTION_LIST_PTR pFunctionList, return crv; } - PKM_LogIt( " [%lu]: CK_MECHANISM_TYPE = %lu\n", (i+1), + mechName = getName(pMechanismList[i], ConstMechanism); + if (!mechName) mechName = "Unknown mechanism"; + PKM_LogIt( " [%lu]: CK_MECHANISM_TYPE = %s 0x%08lX\n", (i+1), + mechName, pMechanismList[i]); PKM_LogIt( " ulMinKeySize = %lu\n", minfo.ulMinKeySize); PKM_LogIt( " ulMaxKeySize = %lu\n", minfo.ulMaxKeySize); @@ -3263,8 +3058,6 @@ CK_RV PKM_PubKeySign(CK_FUNCTION_LIST_PTR pFunctionList, } - - CK_RV PKM_PublicKey(CK_FUNCTION_LIST_PTR pFunctionList, CK_SLOT_ID * pSlotList, CK_ULONG slotID, CK_UTF8CHAR_PTR pwd, @@ -3737,7 +3530,10 @@ CK_RV PKM_FindAllObjects(CK_FUNCTION_LIST_PTR pFunctionList, CK_SESSION_INFO sinfo; CK_ATTRIBUTE_PTR pTemplate; CK_ULONG tnObjects = 0; - + int curMode; + int i; + int number_of_all_known_attribute_types = totalKnownType(ConstAttribute); + NUMTESTS++; /* increment NUMTESTS */ crv = pFunctionList->C_OpenSession(pSlotList[slotID], CKF_SERIAL_SESSION, @@ -3789,13 +3585,16 @@ CK_RV PKM_FindAllObjects(CK_FUNCTION_LIST_PTR pFunctionList, pTemplate = (CK_ATTRIBUTE_PTR)calloc(number_of_all_known_attribute_types, sizeof(CK_ATTRIBUTE)); if ( (CK_ATTRIBUTE_PTR)NULL == pTemplate ) { - PKM_Error( "[memory allocation of %lu bytes failed]\n", + PKM_Error( "[pTemplate memory allocation of %lu bytes failed]\n", number_of_all_known_attribute_types * sizeof(CK_ATTRIBUTE)); return crv; } PKM_LogIt( " All objects:\n"); + /* Printing table set to NOMODE */ + curMode = MODE; + MODE = NOMODE; while (1) { CK_OBJECT_HANDLE o = (CK_OBJECT_HANDLE)0; @@ -3804,6 +3603,7 @@ CK_RV PKM_FindAllObjects(CK_FUNCTION_LIST_PTR pFunctionList, CK_ULONG nAttributes = 0; CK_ATTRIBUTE_PTR pT2; CK_ULONG l; + const char * attName = NULL; crv = pFunctionList->C_FindObjects(h, &o, 1, &nObjects); if ( CKR_OK != crv ) { @@ -3821,10 +3621,15 @@ CK_RV PKM_FindAllObjects(CK_FUNCTION_LIST_PTR pFunctionList, PKM_LogIt( " OBJECT HANDLE %lu:\n", o); - for ( k = 0; k < (CK_ULONG)number_of_all_known_attribute_types; k++ ) { - pTemplate[k].type = all_known_attribute_types[k]; - pTemplate[k].pValue = (CK_VOID_PTR) NULL; - pTemplate[k].ulValueLen = 0; + k = 0; + for (i=0; i < constCount; i++) { + if (consts[i].type == ConstAttribute) { + pTemplate[k].type = consts[i].value; + pTemplate[k].pValue = (CK_VOID_PTR) NULL; + pTemplate[k].ulValueLen = 0; + k++; + } + assert(k <= number_of_all_known_attribute_types); } crv = pFunctionList->C_GetAttributeValue(h, o, pTemplate, @@ -3848,38 +3653,44 @@ CK_RV PKM_FindAllObjects(CK_FUNCTION_LIST_PTR pFunctionList, nAttributes++; } } - - if ( 1 ) { - PKM_LogIt( " %lu attributes:\n", nAttributes); - for ( k = 0; k < (CK_ULONG) number_of_all_known_attribute_types; - k++ ) { - if ( -1 != (CK_LONG)pTemplate[k].ulValueLen ) { - PKM_LogIt( " 0x%08x (len = %lu)\n", - pTemplate[k].type, - pTemplate[k].ulValueLen); + + PKM_LogIt( " %lu attributes:\n", nAttributes); + for ( k = 0; k < (CK_ULONG) number_of_all_known_attribute_types; + k++ ) { + if ( -1 != (CK_LONG)pTemplate[k].ulValueLen ) { + attName = getNameFromAttribute(pTemplate[k].type); + if (!attName) { + PKM_Error("Unable to find attribute name update pk11table.c\n"); } + PKM_LogIt( " %s 0x%08x (len = %lu)\n", + attName, + pTemplate[k].type, + pTemplate[k].ulValueLen); } - PKM_LogIt( "\n"); } - + PKM_LogIt( "\n"); + pT2 = (CK_ATTRIBUTE_PTR)calloc(nAttributes, sizeof(CK_ATTRIBUTE)); if ( (CK_ATTRIBUTE_PTR)NULL == pT2 ) { - PKM_Error( "[memory allocation of %lu bytes failed]\n", + PKM_Error( "[pT2 memory allocation of %lu bytes failed]\n", nAttributes * sizeof(CK_ATTRIBUTE)); return crv; } + /* allocate memory for the attribute values */ for ( l = 0, k = 0; k < (CK_ULONG) number_of_all_known_attribute_types; k++ ) { if ( -1 != (CK_LONG)pTemplate[k].ulValueLen ) { pT2[l].type = pTemplate[k].type; pT2[l].ulValueLen = pTemplate[k].ulValueLen; - pT2[l].pValue = (CK_VOID_PTR)malloc(pT2[l].ulValueLen); - if ( (CK_VOID_PTR)NULL == pT2[l].pValue ) { - PKM_Error( "[memory allocation of %lu bytes failed]\n", - pT2[l].ulValueLen); - return crv; - } + if (pT2[l].ulValueLen > 0) { + pT2[l].pValue = (CK_VOID_PTR)malloc(pT2[l].ulValueLen); + if ( (CK_VOID_PTR)NULL == pT2[l].pValue ) { + PKM_Error( "pValue memory allocation of %lu bytes failed]\n", + pT2[l].ulValueLen); + return crv; + } + } else pT2[l].pValue = (CK_VOID_PTR) NULL; l++; } } @@ -3901,8 +3712,11 @@ CK_RV PKM_FindAllObjects(CK_FUNCTION_LIST_PTR pFunctionList, } for ( l = 0; l < nAttributes; l++ ) { - PKM_LogIt( " type = 0x%08x, len = %ld", pT2[l].type, - (CK_LONG)pT2[l].ulValueLen); + attName = getNameFromAttribute(pT2[l].type); + if (!attName) attName = "unknown attribute"; + PKM_LogIt( " type = %s len = %ld", + attName, (CK_LONG)pT2[l].ulValueLen); + if ( -1 == (CK_LONG)pT2[l].ulValueLen ) { ; } else { @@ -3936,11 +3750,15 @@ CK_RV PKM_FindAllObjects(CK_FUNCTION_LIST_PTR pFunctionList, PKM_LogIt( "\n"); for ( l = 0; l < nAttributes; l++ ) { - free(pT2[l].pValue); + if (pT2[l].pValue) { + free(pT2[l].pValue); + } } free(pT2); } /* while(1) */ + MODE = curMode; /* reset the logging MODE */ + crv = pFunctionList->C_FindObjectsFinal(h); if ( CKR_OK != crv ) { PKM_Error( "C_FindObjectsFinal(%lu) returned 0x%08X, %-26s\n", h, crv, @@ -5453,7 +5271,6 @@ CK_RV PKM_ForkCheck(int expected, CK_FUNCTION_LIST_PTR fList, CK_RV crv = CKR_OK; #ifndef NO_FORK_CHECK int rc = -1; - int retStatus = 0; NUMTESTS++; /* increment NUMTESTS */ if (forkAssert) { putenv("NSS_STRICT_NOFORK=1"); @@ -5476,7 +5293,7 @@ CK_RV PKM_ForkCheck(int expected, CK_FUNCTION_LIST_PTR fList, * If it was initialized in the parent, the fork check should * kick in, and make it return CKR_DEVICE_ERROR. */ - CK_RV child_crv = fList->C_GetTokenInfo(NULL, NULL); + CK_RV child_crv = fList->C_GetTokenInfo(0, NULL); exit(child_crv & 255); } else { /* If softoken is loaded, make a PKCS#11 call to C_Initialize @@ -5498,7 +5315,7 @@ CK_RV PKM_ForkCheck(int expected, CK_FUNCTION_LIST_PTR fList, pid_t ret = wait(&rc); if (ret != child || (!WIFEXITED(rc)) || ( (expected & 255) != (WEXITSTATUS(rc) & 255)) ) { - int retstatus = -1; + int retStatus = -1; if (WIFEXITED(rc)) { retStatus = WEXITSTATUS(rc); } diff --git a/security/nss/cmd/pk11util/manifest.mn b/security/nss/cmd/pk11util/manifest.mn index 3badc6efe..ff4504fcc 100644 --- a/security/nss/cmd/pk11util/manifest.mn +++ b/security/nss/cmd/pk11util/manifest.mn @@ -42,7 +42,7 @@ DEFINES += -DNSPR20 # MODULE public and private header directories are implicitly REQUIRED. MODULE = nss -CSRCS = pk11util.c pk11table.c +CSRCS = pk11util.c #CSRCS = symkeytest.c # The MODULE is always implicitly required. diff --git a/security/nss/cmd/pk11util/pk11table.c b/security/nss/cmd/pk11util/pk11table.c deleted file mode 100644 index c233fd80d..000000000 --- a/security/nss/cmd/pk11util/pk11table.c +++ /dev/null @@ -1,1411 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Netscape security libraries. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1994-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include -#include "pk11util.h" - -const char *_valueString[] = { - "None", - "Variable", - "CK_ULONG", - "Data", - "UTF8", - "CK_INFO", - "CK_SLOT_INFO", - "CK_TOKEN_INFO", - "CK_SESSION_INFO", - "CK_ATTRIBUTE", - "CK_MECHANISM", - "CK_MECHANISM_INFO", - "CK_C_INITIALIZE_ARGS", - "CK_FUNCTION_LIST" -}; - -const char **valueString = &_valueString[0]; -const int valueCount = sizeof(_valueString)/sizeof(_valueString[0]); - -const char *_constTypeString[] = { - "None", - "Bool", - "InfoFlags", - "SlotFlags", - "TokenFlags", - "SessionFlags", - "MechanismFlags", - "InitializeFlags", - "Users", - "SessionState", - "Object", - "Hardware", - "KeyType", - "CertificateType", - "Attribute", - "Mechanism", - "Result", - "Trust", - "AvailableSizes", - "CurrentSize" -}; - -const char **constTypeString = &_constTypeString[0]; -const int constTypeCount = sizeof(_constTypeString)/sizeof(_constTypeString[0]); - -#define mkEntry(x,t) { #x, x, Const##t, ConstNone } -#define mkEntry2(x,t,t2) { #x, x, Const##t, Const##t2 } - -const Constant _consts[] = { - mkEntry(CK_FALSE, Bool), - mkEntry(CK_TRUE, Bool), - - mkEntry(CKF_TOKEN_PRESENT, SlotFlags), - mkEntry(CKF_REMOVABLE_DEVICE, SlotFlags), - mkEntry(CKF_HW_SLOT, SlotFlags), - - mkEntry(CKF_RNG, TokenFlags), - mkEntry(CKF_WRITE_PROTECTED, TokenFlags), - mkEntry(CKF_LOGIN_REQUIRED, TokenFlags), - mkEntry(CKF_USER_PIN_INITIALIZED, TokenFlags), - mkEntry(CKF_RESTORE_KEY_NOT_NEEDED, TokenFlags), - mkEntry(CKF_CLOCK_ON_TOKEN, TokenFlags), - mkEntry(CKF_PROTECTED_AUTHENTICATION_PATH, TokenFlags), - mkEntry(CKF_DUAL_CRYPTO_OPERATIONS, TokenFlags), - mkEntry(CKF_TOKEN_INITIALIZED, TokenFlags), - mkEntry(CKF_SECONDARY_AUTHENTICATION, TokenFlags), - mkEntry(CKF_USER_PIN_COUNT_LOW, TokenFlags), - mkEntry(CKF_USER_PIN_FINAL_TRY, TokenFlags), - mkEntry(CKF_USER_PIN_LOCKED, TokenFlags), - mkEntry(CKF_USER_PIN_TO_BE_CHANGED, TokenFlags), - mkEntry(CKF_SO_PIN_COUNT_LOW, TokenFlags), - mkEntry(CKF_SO_PIN_FINAL_TRY, TokenFlags), - mkEntry(CKF_SO_PIN_LOCKED, TokenFlags), - mkEntry(CKF_SO_PIN_TO_BE_CHANGED, TokenFlags), - - mkEntry(CKF_RW_SESSION, SessionFlags), - mkEntry(CKF_SERIAL_SESSION, SessionFlags), - - mkEntry(CKF_HW, MechanismFlags), - mkEntry(CKF_ENCRYPT, MechanismFlags), - mkEntry(CKF_DECRYPT, MechanismFlags), - mkEntry(CKF_DIGEST, MechanismFlags), - mkEntry(CKF_SIGN, MechanismFlags), - mkEntry(CKF_SIGN_RECOVER, MechanismFlags), - mkEntry(CKF_VERIFY, MechanismFlags), - mkEntry(CKF_VERIFY_RECOVER, MechanismFlags), - mkEntry(CKF_GENERATE, MechanismFlags), - mkEntry(CKF_GENERATE_KEY_PAIR, MechanismFlags), - mkEntry(CKF_WRAP, MechanismFlags), - mkEntry(CKF_UNWRAP, MechanismFlags), - mkEntry(CKF_DERIVE, MechanismFlags), - mkEntry(CKF_EC_FP, MechanismFlags), - mkEntry(CKF_EC_F_2M, MechanismFlags), - mkEntry(CKF_EC_ECPARAMETERS, MechanismFlags), - mkEntry(CKF_EC_NAMEDCURVE, MechanismFlags), - mkEntry(CKF_EC_UNCOMPRESS, MechanismFlags), - mkEntry(CKF_EC_COMPRESS, MechanismFlags), - - mkEntry(CKF_LIBRARY_CANT_CREATE_OS_THREADS, InitializeFlags), - mkEntry(CKF_OS_LOCKING_OK, InitializeFlags), - - mkEntry(CKU_SO, Users), - mkEntry(CKU_USER, Users), - - mkEntry(CKS_RO_PUBLIC_SESSION, SessionState), - mkEntry(CKS_RO_USER_FUNCTIONS, SessionState), - mkEntry(CKS_RW_PUBLIC_SESSION, SessionState), - mkEntry(CKS_RW_USER_FUNCTIONS, SessionState), - mkEntry(CKS_RW_SO_FUNCTIONS, SessionState), - - mkEntry(CKO_DATA, Object), - mkEntry(CKO_CERTIFICATE, Object), - mkEntry(CKO_PUBLIC_KEY, Object), - mkEntry(CKO_PRIVATE_KEY, Object), - mkEntry(CKO_SECRET_KEY, Object), - mkEntry(CKO_HW_FEATURE, Object), - mkEntry(CKO_DOMAIN_PARAMETERS, Object), - mkEntry(CKO_KG_PARAMETERS, Object), - mkEntry(CKO_NETSCAPE_CRL, Object), - mkEntry(CKO_NETSCAPE_SMIME, Object), - mkEntry(CKO_NETSCAPE_TRUST, Object), - mkEntry(CKO_NETSCAPE_BUILTIN_ROOT_LIST, Object), - - mkEntry(CKH_MONOTONIC_COUNTER, Hardware), - mkEntry(CKH_CLOCK, Hardware), - - mkEntry(CKK_RSA, KeyType), - mkEntry(CKK_DSA, KeyType), - mkEntry(CKK_DH, KeyType), - mkEntry(CKK_ECDSA, KeyType), - mkEntry(CKK_EC, KeyType), - mkEntry(CKK_X9_42_DH, KeyType), - mkEntry(CKK_KEA, KeyType), - mkEntry(CKK_GENERIC_SECRET, KeyType), - mkEntry(CKK_RC2, KeyType), - mkEntry(CKK_RC4, KeyType), - mkEntry(CKK_DES, KeyType), - mkEntry(CKK_DES2, KeyType), - mkEntry(CKK_DES3, KeyType), - mkEntry(CKK_CAST, KeyType), - mkEntry(CKK_CAST3, KeyType), - mkEntry(CKK_CAST5, KeyType), - mkEntry(CKK_CAST128, KeyType), - mkEntry(CKK_RC5, KeyType), - mkEntry(CKK_IDEA, KeyType), - mkEntry(CKK_SKIPJACK, KeyType), - mkEntry(CKK_BATON, KeyType), - mkEntry(CKK_JUNIPER, KeyType), - mkEntry(CKK_CDMF, KeyType), - mkEntry(CKK_AES, KeyType), - mkEntry(CKK_CAMELLIA, KeyType), - mkEntry(CKK_NETSCAPE_PKCS8, KeyType), - - mkEntry(CKC_X_509, CertType), - mkEntry(CKC_X_509_ATTR_CERT, CertType), - - mkEntry2(CKA_CLASS, Attribute, Object), - mkEntry2(CKA_TOKEN, Attribute, Bool), - mkEntry2(CKA_PRIVATE, Attribute, Bool), - mkEntry2(CKA_LABEL, Attribute, None), - mkEntry2(CKA_APPLICATION, Attribute, None), - mkEntry2(CKA_VALUE, Attribute, None), - mkEntry2(CKA_OBJECT_ID, Attribute, None), - mkEntry2(CKA_CERTIFICATE_TYPE, Attribute, CertType), - mkEntry2(CKA_ISSUER, Attribute, None), - mkEntry2(CKA_SERIAL_NUMBER, Attribute, None), - mkEntry2(CKA_AC_ISSUER, Attribute, None), - mkEntry2(CKA_OWNER, Attribute, None), - mkEntry2(CKA_ATTR_TYPES, Attribute, None), - mkEntry2(CKA_TRUSTED, Attribute, Bool), - mkEntry2(CKA_KEY_TYPE, Attribute, KeyType), - mkEntry2(CKA_SUBJECT, Attribute, None), - mkEntry2(CKA_ID, Attribute, None), - mkEntry2(CKA_SENSITIVE, Attribute, Bool), - mkEntry2(CKA_ENCRYPT, Attribute, Bool), - mkEntry2(CKA_DECRYPT, Attribute, Bool), - mkEntry2(CKA_WRAP, Attribute, Bool), - mkEntry2(CKA_UNWRAP, Attribute, Bool), - mkEntry2(CKA_SIGN, Attribute, Bool), - mkEntry2(CKA_SIGN_RECOVER, Attribute, Bool), - mkEntry2(CKA_VERIFY, Attribute, Bool), - mkEntry2(CKA_VERIFY_RECOVER, Attribute, Bool), - mkEntry2(CKA_DERIVE, Attribute, Bool), - mkEntry2(CKA_START_DATE, Attribute, None), - mkEntry2(CKA_END_DATE, Attribute, None), - mkEntry2(CKA_MODULUS, Attribute, None), - mkEntry2(CKA_MODULUS_BITS, Attribute, None), - mkEntry2(CKA_PUBLIC_EXPONENT, Attribute, None), - mkEntry2(CKA_PRIVATE_EXPONENT, Attribute, None), - mkEntry2(CKA_PRIME_1, Attribute, None), - mkEntry2(CKA_PRIME_2, Attribute, None), - mkEntry2(CKA_EXPONENT_1, Attribute, None), - mkEntry2(CKA_EXPONENT_2, Attribute, None), - mkEntry2(CKA_COEFFICIENT, Attribute, None), - mkEntry2(CKA_PRIME, Attribute, None), - mkEntry2(CKA_SUBPRIME, Attribute, None), - mkEntry2(CKA_BASE, Attribute, None), - mkEntry2(CKA_PRIME_BITS, Attribute, None), - mkEntry2(CKA_SUB_PRIME_BITS, Attribute, None), - mkEntry2(CKA_VALUE_BITS, Attribute, None), - mkEntry2(CKA_VALUE_LEN, Attribute, None), - mkEntry2(CKA_EXTRACTABLE, Attribute, Bool), - mkEntry2(CKA_LOCAL, Attribute, Bool), - mkEntry2(CKA_NEVER_EXTRACTABLE, Attribute, Bool), - mkEntry2(CKA_ALWAYS_SENSITIVE, Attribute, Bool), - mkEntry2(CKA_KEY_GEN_MECHANISM, Attribute, Mechanism), - mkEntry2(CKA_MODIFIABLE, Attribute, Bool), - mkEntry2(CKA_ECDSA_PARAMS, Attribute, None), - mkEntry2(CKA_EC_PARAMS, Attribute, None), - mkEntry2(CKA_EC_POINT, Attribute, None), - mkEntry2(CKA_SECONDARY_AUTH, Attribute, None), - mkEntry2(CKA_AUTH_PIN_FLAGS, Attribute, None), - mkEntry2(CKA_HW_FEATURE_TYPE, Attribute, Hardware), - mkEntry2(CKA_RESET_ON_INIT, Attribute, Bool), - mkEntry2(CKA_HAS_RESET, Attribute, Bool), - mkEntry2(CKA_NETSCAPE_URL, Attribute, None), - mkEntry2(CKA_NETSCAPE_EMAIL, Attribute, None), - mkEntry2(CKA_NETSCAPE_SMIME_INFO, Attribute, None), - mkEntry2(CKA_NETSCAPE_SMIME_TIMESTAMP, Attribute, None), - mkEntry2(CKA_NETSCAPE_PKCS8_SALT, Attribute, None), - mkEntry2(CKA_NETSCAPE_PASSWORD_CHECK, Attribute, None), - mkEntry2(CKA_NETSCAPE_EXPIRES, Attribute, None), - mkEntry2(CKA_NETSCAPE_KRL, Attribute, None), - mkEntry2(CKA_NETSCAPE_PQG_COUNTER, Attribute, None), - mkEntry2(CKA_NETSCAPE_PQG_SEED, Attribute, None), - mkEntry2(CKA_NETSCAPE_PQG_H, Attribute, None), - mkEntry2(CKA_NETSCAPE_PQG_SEED_BITS, Attribute, None), - mkEntry2(CKA_TRUST_DIGITAL_SIGNATURE, Attribute, Trust), - mkEntry2(CKA_TRUST_NON_REPUDIATION, Attribute, Trust), - mkEntry2(CKA_TRUST_KEY_ENCIPHERMENT, Attribute, Trust), - mkEntry2(CKA_TRUST_DATA_ENCIPHERMENT, Attribute, Trust), - mkEntry2(CKA_TRUST_KEY_AGREEMENT, Attribute, Trust), - mkEntry2(CKA_TRUST_KEY_CERT_SIGN, Attribute, Trust), - mkEntry2(CKA_TRUST_CRL_SIGN, Attribute, Trust), - mkEntry2(CKA_TRUST_SERVER_AUTH, Attribute, Trust), - mkEntry2(CKA_TRUST_CLIENT_AUTH, Attribute, Trust), - mkEntry2(CKA_TRUST_CODE_SIGNING, Attribute, Trust), - mkEntry2(CKA_TRUST_EMAIL_PROTECTION, Attribute, Trust), - mkEntry2(CKA_TRUST_IPSEC_END_SYSTEM, Attribute, Trust), - mkEntry2(CKA_TRUST_IPSEC_TUNNEL, Attribute, Trust), - mkEntry2(CKA_TRUST_IPSEC_USER, Attribute, Trust), - mkEntry2(CKA_TRUST_TIME_STAMPING, Attribute, Trust), - mkEntry2(CKA_CERT_SHA1_HASH, Attribute, None), - mkEntry2(CKA_CERT_MD5_HASH, Attribute, None), - mkEntry2(CKA_NETSCAPE_DB, Attribute, None), - mkEntry2(CKA_NETSCAPE_TRUST, Attribute, Trust), - - mkEntry(CKM_RSA_PKCS, Mechanism), - mkEntry(CKM_RSA_9796, Mechanism), - mkEntry(CKM_RSA_X_509, Mechanism), - mkEntry(CKM_RSA_PKCS_KEY_PAIR_GEN, Mechanism), - mkEntry(CKM_MD2_RSA_PKCS, Mechanism), - mkEntry(CKM_MD5_RSA_PKCS, Mechanism), - mkEntry(CKM_SHA1_RSA_PKCS, Mechanism), - mkEntry(CKM_RIPEMD128_RSA_PKCS, Mechanism), - mkEntry(CKM_RIPEMD160_RSA_PKCS, Mechanism), - mkEntry(CKM_RSA_PKCS_OAEP, Mechanism), - mkEntry(CKM_RSA_X9_31_KEY_PAIR_GEN, Mechanism), - mkEntry(CKM_RSA_X9_31, Mechanism), - mkEntry(CKM_SHA1_RSA_X9_31, Mechanism), - mkEntry(CKM_DSA_KEY_PAIR_GEN, Mechanism), - mkEntry(CKM_DSA, Mechanism), - mkEntry(CKM_DSA_SHA1, Mechanism), - mkEntry(CKM_DH_PKCS_KEY_PAIR_GEN, Mechanism), - mkEntry(CKM_DH_PKCS_DERIVE, Mechanism), - mkEntry(CKM_X9_42_DH_DERIVE, Mechanism), - mkEntry(CKM_X9_42_DH_HYBRID_DERIVE, Mechanism), - mkEntry(CKM_X9_42_MQV_DERIVE, Mechanism), - mkEntry(CKM_SHA256_RSA_PKCS, Mechanism), - mkEntry(CKM_SHA384_RSA_PKCS, Mechanism), - mkEntry(CKM_SHA512_RSA_PKCS, Mechanism), - mkEntry(CKM_RC2_KEY_GEN, Mechanism), - mkEntry(CKM_RC2_ECB, Mechanism), - mkEntry(CKM_RC2_CBC, Mechanism), - mkEntry(CKM_RC2_MAC, Mechanism), - mkEntry(CKM_RC2_MAC_GENERAL, Mechanism), - mkEntry(CKM_RC2_CBC_PAD, Mechanism), - mkEntry(CKM_RC4_KEY_GEN, Mechanism), - mkEntry(CKM_RC4, Mechanism), - mkEntry(CKM_DES_KEY_GEN, Mechanism), - mkEntry(CKM_DES_ECB, Mechanism), - mkEntry(CKM_DES_CBC, Mechanism), - mkEntry(CKM_DES_MAC, Mechanism), - mkEntry(CKM_DES_MAC_GENERAL, Mechanism), - mkEntry(CKM_DES_CBC_PAD, Mechanism), - mkEntry(CKM_DES2_KEY_GEN, Mechanism), - mkEntry(CKM_DES3_KEY_GEN, Mechanism), - mkEntry(CKM_DES3_ECB, Mechanism), - mkEntry(CKM_DES3_CBC, Mechanism), - mkEntry(CKM_DES3_MAC, Mechanism), - mkEntry(CKM_DES3_MAC_GENERAL, Mechanism), - mkEntry(CKM_DES3_CBC_PAD, Mechanism), - mkEntry(CKM_CDMF_KEY_GEN, Mechanism), - mkEntry(CKM_CDMF_ECB, Mechanism), - mkEntry(CKM_CDMF_CBC, Mechanism), - mkEntry(CKM_CDMF_MAC, Mechanism), - mkEntry(CKM_CDMF_MAC_GENERAL, Mechanism), - mkEntry(CKM_CDMF_CBC_PAD, Mechanism), - mkEntry(CKM_MD2, Mechanism), - mkEntry(CKM_MD2_HMAC, Mechanism), - mkEntry(CKM_MD2_HMAC_GENERAL, Mechanism), - mkEntry(CKM_MD5, Mechanism), - mkEntry(CKM_MD5_HMAC, Mechanism), - mkEntry(CKM_MD5_HMAC_GENERAL, Mechanism), - mkEntry(CKM_SHA_1, Mechanism), - mkEntry(CKM_SHA_1_HMAC, Mechanism), - mkEntry(CKM_SHA_1_HMAC_GENERAL, Mechanism), - mkEntry(CKM_RIPEMD128, Mechanism), - mkEntry(CKM_RIPEMD128_HMAC, Mechanism), - mkEntry(CKM_RIPEMD128_HMAC_GENERAL, Mechanism), - mkEntry(CKM_RIPEMD160, Mechanism), - mkEntry(CKM_RIPEMD160_HMAC, Mechanism), - mkEntry(CKM_RIPEMD160_HMAC_GENERAL, Mechanism), - mkEntry(CKM_SHA256, Mechanism), - mkEntry(CKM_SHA256_HMAC_GENERAL, Mechanism), - mkEntry(CKM_SHA256_HMAC, Mechanism), - mkEntry(CKM_SHA384, Mechanism), - mkEntry(CKM_SHA384_HMAC_GENERAL, Mechanism), - mkEntry(CKM_SHA384_HMAC, Mechanism), - mkEntry(CKM_SHA512, Mechanism), - mkEntry(CKM_SHA512_HMAC_GENERAL, Mechanism), - mkEntry(CKM_SHA512_HMAC, Mechanism), - mkEntry(CKM_CAST_KEY_GEN, Mechanism), - mkEntry(CKM_CAST_ECB, Mechanism), - mkEntry(CKM_CAST_CBC, Mechanism), - mkEntry(CKM_CAST_MAC, Mechanism), - mkEntry(CKM_CAST_MAC_GENERAL, Mechanism), - mkEntry(CKM_CAST_CBC_PAD, Mechanism), - mkEntry(CKM_CAST3_KEY_GEN, Mechanism), - mkEntry(CKM_CAST3_ECB, Mechanism), - mkEntry(CKM_CAST3_CBC, Mechanism), - mkEntry(CKM_CAST3_MAC, Mechanism), - mkEntry(CKM_CAST3_MAC_GENERAL, Mechanism), - mkEntry(CKM_CAST3_CBC_PAD, Mechanism), - mkEntry(CKM_CAST5_KEY_GEN, Mechanism), - mkEntry(CKM_CAST128_KEY_GEN, Mechanism), - mkEntry(CKM_CAST5_ECB, Mechanism), - mkEntry(CKM_CAST128_ECB, Mechanism), - mkEntry(CKM_CAST5_CBC, Mechanism), - mkEntry(CKM_CAST128_CBC, Mechanism), - mkEntry(CKM_CAST5_MAC, Mechanism), - mkEntry(CKM_CAST128_MAC, Mechanism), - mkEntry(CKM_CAST5_MAC_GENERAL, Mechanism), - mkEntry(CKM_CAST128_MAC_GENERAL, Mechanism), - mkEntry(CKM_CAST5_CBC_PAD, Mechanism), - mkEntry(CKM_CAST128_CBC_PAD, Mechanism), - mkEntry(CKM_RC5_KEY_GEN, Mechanism), - mkEntry(CKM_RC5_ECB, Mechanism), - mkEntry(CKM_RC5_CBC, Mechanism), - mkEntry(CKM_RC5_MAC, Mechanism), - mkEntry(CKM_RC5_MAC_GENERAL, Mechanism), - mkEntry(CKM_RC5_CBC_PAD, Mechanism), - mkEntry(CKM_IDEA_KEY_GEN, Mechanism), - mkEntry(CKM_IDEA_ECB, Mechanism), - mkEntry(CKM_IDEA_CBC, Mechanism), - mkEntry(CKM_IDEA_MAC, Mechanism), - mkEntry(CKM_IDEA_MAC_GENERAL, Mechanism), - mkEntry(CKM_IDEA_CBC_PAD, Mechanism), - mkEntry(CKM_GENERIC_SECRET_KEY_GEN, Mechanism), - mkEntry(CKM_CONCATENATE_BASE_AND_KEY, Mechanism), - mkEntry(CKM_CONCATENATE_BASE_AND_DATA, Mechanism), - mkEntry(CKM_CONCATENATE_DATA_AND_BASE, Mechanism), - mkEntry(CKM_XOR_BASE_AND_DATA, Mechanism), - mkEntry(CKM_EXTRACT_KEY_FROM_KEY, Mechanism), - mkEntry(CKM_SSL3_PRE_MASTER_KEY_GEN, Mechanism), - mkEntry(CKM_SSL3_MASTER_KEY_DERIVE, Mechanism), - mkEntry(CKM_SSL3_KEY_AND_MAC_DERIVE, Mechanism), - mkEntry(CKM_SSL3_MASTER_KEY_DERIVE_DH, Mechanism), - mkEntry(CKM_TLS_PRE_MASTER_KEY_GEN, Mechanism), - mkEntry(CKM_TLS_MASTER_KEY_DERIVE, Mechanism), - mkEntry(CKM_TLS_KEY_AND_MAC_DERIVE, Mechanism), - mkEntry(CKM_TLS_MASTER_KEY_DERIVE_DH, Mechanism), - mkEntry(CKM_SSL3_MD5_MAC, Mechanism), - mkEntry(CKM_SSL3_SHA1_MAC, Mechanism), - mkEntry(CKM_MD5_KEY_DERIVATION, Mechanism), - mkEntry(CKM_MD2_KEY_DERIVATION, Mechanism), - mkEntry(CKM_SHA1_KEY_DERIVATION, Mechanism), - mkEntry(CKM_SHA256_KEY_DERIVATION, Mechanism), - mkEntry(CKM_SHA384_KEY_DERIVATION, Mechanism), - mkEntry(CKM_SHA512_KEY_DERIVATION, Mechanism), - mkEntry(CKM_PBE_MD2_DES_CBC, Mechanism), - mkEntry(CKM_PBE_MD5_DES_CBC, Mechanism), - mkEntry(CKM_PBE_MD5_CAST_CBC, Mechanism), - mkEntry(CKM_PBE_MD5_CAST3_CBC, Mechanism), - mkEntry(CKM_PBE_MD5_CAST5_CBC, Mechanism), - mkEntry(CKM_PBE_MD5_CAST128_CBC, Mechanism), - mkEntry(CKM_PBE_SHA1_CAST5_CBC, Mechanism), - mkEntry(CKM_PBE_SHA1_CAST128_CBC, Mechanism), - mkEntry(CKM_PBE_SHA1_RC4_128, Mechanism), - mkEntry(CKM_PBE_SHA1_RC4_40, Mechanism), - mkEntry(CKM_PBE_SHA1_DES3_EDE_CBC, Mechanism), - mkEntry(CKM_PBE_SHA1_DES2_EDE_CBC, Mechanism), - mkEntry(CKM_PBE_SHA1_RC2_128_CBC, Mechanism), - mkEntry(CKM_PBE_SHA1_RC2_40_CBC, Mechanism), - mkEntry(CKM_PKCS5_PBKD2, Mechanism), - mkEntry(CKM_PBA_SHA1_WITH_SHA1_HMAC, Mechanism), - mkEntry(CKM_KEY_WRAP_LYNKS, Mechanism), - mkEntry(CKM_KEY_WRAP_SET_OAEP, Mechanism), - mkEntry(CKM_SKIPJACK_KEY_GEN, Mechanism), - mkEntry(CKM_SKIPJACK_ECB64, Mechanism), - mkEntry(CKM_SKIPJACK_CBC64, Mechanism), - mkEntry(CKM_SKIPJACK_OFB64, Mechanism), - mkEntry(CKM_SKIPJACK_CFB64, Mechanism), - mkEntry(CKM_SKIPJACK_CFB32, Mechanism), - mkEntry(CKM_SKIPJACK_CFB16, Mechanism), - mkEntry(CKM_SKIPJACK_CFB8, Mechanism), - mkEntry(CKM_SKIPJACK_WRAP, Mechanism), - mkEntry(CKM_SKIPJACK_PRIVATE_WRAP, Mechanism), - mkEntry(CKM_SKIPJACK_RELAYX, Mechanism), - mkEntry(CKM_KEA_KEY_PAIR_GEN, Mechanism), - mkEntry(CKM_KEA_KEY_DERIVE, Mechanism), - mkEntry(CKM_FORTEZZA_TIMESTAMP, Mechanism), - mkEntry(CKM_BATON_KEY_GEN, Mechanism), - mkEntry(CKM_BATON_ECB128, Mechanism), - mkEntry(CKM_BATON_ECB96, Mechanism), - mkEntry(CKM_BATON_CBC128, Mechanism), - mkEntry(CKM_BATON_COUNTER, Mechanism), - mkEntry(CKM_BATON_SHUFFLE, Mechanism), - mkEntry(CKM_BATON_WRAP, Mechanism), - mkEntry(CKM_ECDSA_KEY_PAIR_GEN, Mechanism), - mkEntry(CKM_EC_KEY_PAIR_GEN, Mechanism), - mkEntry(CKM_ECDSA, Mechanism), - mkEntry(CKM_ECDSA_SHA1, Mechanism), - mkEntry(CKM_ECDH1_DERIVE, Mechanism), - mkEntry(CKM_ECDH1_COFACTOR_DERIVE, Mechanism), - mkEntry(CKM_ECMQV_DERIVE, Mechanism), - mkEntry(CKM_JUNIPER_KEY_GEN, Mechanism), - mkEntry(CKM_JUNIPER_ECB128, Mechanism), - mkEntry(CKM_JUNIPER_CBC128, Mechanism), - mkEntry(CKM_JUNIPER_COUNTER, Mechanism), - mkEntry(CKM_JUNIPER_SHUFFLE, Mechanism), - mkEntry(CKM_JUNIPER_WRAP, Mechanism), - mkEntry(CKM_FASTHASH, Mechanism), - mkEntry(CKM_AES_KEY_GEN, Mechanism), - mkEntry(CKM_AES_ECB, Mechanism), - mkEntry(CKM_AES_CBC, Mechanism), - mkEntry(CKM_AES_MAC, Mechanism), - mkEntry(CKM_AES_MAC_GENERAL, Mechanism), - mkEntry(CKM_AES_CBC_PAD, Mechanism), - mkEntry(CKM_CAMELLIA_KEY_GEN, Mechanism), - mkEntry(CKM_CAMELLIA_ECB, Mechanism), - mkEntry(CKM_CAMELLIA_CBC, Mechanism), - mkEntry(CKM_CAMELLIA_MAC, Mechanism), - mkEntry(CKM_CAMELLIA_MAC_GENERAL, Mechanism), - mkEntry(CKM_CAMELLIA_CBC_PAD, Mechanism), - mkEntry(CKM_DSA_PARAMETER_GEN, Mechanism), - mkEntry(CKM_DH_PKCS_PARAMETER_GEN, Mechanism), - mkEntry(CKM_NETSCAPE_AES_KEY_WRAP, Mechanism), - mkEntry(CKM_NETSCAPE_AES_KEY_WRAP_PAD, Mechanism), - mkEntry(CKM_NETSCAPE_PBE_SHA1_DES_CBC, Mechanism), - mkEntry(CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC, Mechanism), - mkEntry(CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC, Mechanism), - mkEntry(CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC, Mechanism), - mkEntry(CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4, Mechanism), - mkEntry(CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4, Mechanism), - mkEntry(CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC, Mechanism), - mkEntry(CKM_NETSCAPE_PBE_SHA1_HMAC_KEY_GEN, Mechanism), - mkEntry(CKM_NETSCAPE_PBE_MD5_HMAC_KEY_GEN, Mechanism), - mkEntry(CKM_NETSCAPE_PBE_MD2_HMAC_KEY_GEN, Mechanism), - mkEntry(CKM_TLS_PRF_GENERAL, Mechanism), - - mkEntry(CKR_OK, Result), - mkEntry(CKR_CANCEL, Result), - mkEntry(CKR_HOST_MEMORY, Result), - mkEntry(CKR_SLOT_ID_INVALID, Result), - mkEntry(CKR_GENERAL_ERROR, Result), - mkEntry(CKR_FUNCTION_FAILED, Result), - mkEntry(CKR_ARGUMENTS_BAD, Result), - mkEntry(CKR_NO_EVENT, Result), - mkEntry(CKR_NEED_TO_CREATE_THREADS, Result), - mkEntry(CKR_CANT_LOCK, Result), - mkEntry(CKR_ATTRIBUTE_READ_ONLY, Result), - mkEntry(CKR_ATTRIBUTE_SENSITIVE, Result), - mkEntry(CKR_ATTRIBUTE_TYPE_INVALID, Result), - mkEntry(CKR_ATTRIBUTE_VALUE_INVALID, Result), - mkEntry(CKR_DATA_INVALID, Result), - mkEntry(CKR_DATA_LEN_RANGE, Result), - mkEntry(CKR_DEVICE_ERROR, Result), - mkEntry(CKR_DEVICE_MEMORY, Result), - mkEntry(CKR_DEVICE_REMOVED, Result), - mkEntry(CKR_ENCRYPTED_DATA_INVALID, Result), - mkEntry(CKR_ENCRYPTED_DATA_LEN_RANGE, Result), - mkEntry(CKR_FUNCTION_CANCELED, Result), - mkEntry(CKR_FUNCTION_NOT_PARALLEL, Result), - mkEntry(CKR_FUNCTION_NOT_SUPPORTED, Result), - mkEntry(CKR_KEY_HANDLE_INVALID, Result), - mkEntry(CKR_KEY_SIZE_RANGE, Result), - mkEntry(CKR_KEY_TYPE_INCONSISTENT, Result), - mkEntry(CKR_KEY_NOT_NEEDED, Result), - mkEntry(CKR_KEY_CHANGED, Result), - mkEntry(CKR_KEY_NEEDED, Result), - mkEntry(CKR_KEY_INDIGESTIBLE, Result), - mkEntry(CKR_KEY_FUNCTION_NOT_PERMITTED, Result), - mkEntry(CKR_KEY_NOT_WRAPPABLE, Result), - mkEntry(CKR_KEY_UNEXTRACTABLE, Result), - mkEntry(CKR_KEY_PARAMS_INVALID, Result), - mkEntry(CKR_MECHANISM_INVALID, Result), - mkEntry(CKR_MECHANISM_PARAM_INVALID, Result), - mkEntry(CKR_OBJECT_HANDLE_INVALID, Result), - mkEntry(CKR_OPERATION_ACTIVE, Result), - mkEntry(CKR_OPERATION_NOT_INITIALIZED, Result), - mkEntry(CKR_PIN_INCORRECT, Result), - mkEntry(CKR_PIN_INVALID, Result), - mkEntry(CKR_PIN_LEN_RANGE, Result), - mkEntry(CKR_PIN_EXPIRED, Result), - mkEntry(CKR_PIN_LOCKED, Result), - mkEntry(CKR_SESSION_CLOSED, Result), - mkEntry(CKR_SESSION_COUNT, Result), - mkEntry(CKR_SESSION_HANDLE_INVALID, Result), - mkEntry(CKR_SESSION_PARALLEL_NOT_SUPPORTED, Result), - mkEntry(CKR_SESSION_READ_ONLY, Result), - mkEntry(CKR_SESSION_EXISTS, Result), - mkEntry(CKR_SESSION_READ_ONLY_EXISTS, Result), - mkEntry(CKR_SESSION_READ_WRITE_SO_EXISTS, Result), - mkEntry(CKR_SIGNATURE_INVALID, Result), - mkEntry(CKR_SIGNATURE_LEN_RANGE, Result), - mkEntry(CKR_TEMPLATE_INCOMPLETE, Result), - mkEntry(CKR_TEMPLATE_INCONSISTENT, Result), - mkEntry(CKR_TOKEN_NOT_PRESENT, Result), - mkEntry(CKR_TOKEN_NOT_RECOGNIZED, Result), - mkEntry(CKR_TOKEN_WRITE_PROTECTED, Result), - mkEntry(CKR_UNWRAPPING_KEY_HANDLE_INVALID, Result), - mkEntry(CKR_UNWRAPPING_KEY_SIZE_RANGE, Result), - mkEntry(CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT, Result), - mkEntry(CKR_USER_ALREADY_LOGGED_IN, Result), - mkEntry(CKR_USER_NOT_LOGGED_IN, Result), - mkEntry(CKR_USER_PIN_NOT_INITIALIZED, Result), - mkEntry(CKR_USER_TYPE_INVALID, Result), - mkEntry(CKR_USER_ANOTHER_ALREADY_LOGGED_IN, Result), - mkEntry(CKR_USER_TOO_MANY_TYPES, Result), - mkEntry(CKR_WRAPPED_KEY_INVALID, Result), - mkEntry(CKR_WRAPPED_KEY_LEN_RANGE, Result), - mkEntry(CKR_WRAPPING_KEY_HANDLE_INVALID, Result), - mkEntry(CKR_WRAPPING_KEY_SIZE_RANGE, Result), - mkEntry(CKR_WRAPPING_KEY_TYPE_INCONSISTENT, Result), - mkEntry(CKR_RANDOM_SEED_NOT_SUPPORTED, Result), - mkEntry(CKR_RANDOM_NO_RNG, Result), - mkEntry(CKR_DOMAIN_PARAMS_INVALID, Result), - mkEntry(CKR_BUFFER_TOO_SMALL, Result), - mkEntry(CKR_SAVED_STATE_INVALID, Result), - mkEntry(CKR_INFORMATION_SENSITIVE, Result), - mkEntry(CKR_STATE_UNSAVEABLE, Result), - mkEntry(CKR_CRYPTOKI_NOT_INITIALIZED, Result), - mkEntry(CKR_CRYPTOKI_ALREADY_INITIALIZED, Result), - mkEntry(CKR_MUTEX_BAD, Result), - mkEntry(CKR_MUTEX_NOT_LOCKED, Result), - mkEntry(CKR_VENDOR_DEFINED, Result), - - mkEntry(CKT_NETSCAPE_TRUSTED, Trust), - mkEntry(CKT_NETSCAPE_TRUSTED_DELEGATOR, Trust), - mkEntry(CKT_NETSCAPE_UNTRUSTED, Trust), - mkEntry(CKT_NETSCAPE_MUST_VERIFY, Trust), - mkEntry(CKT_NETSCAPE_TRUST_UNKNOWN, Trust), - mkEntry(CKT_NETSCAPE_VALID, Trust), - mkEntry(CKT_NETSCAPE_VALID_DELEGATOR, Trust), - - mkEntry(CK_EFFECTIVELY_INFINITE, AvailableSizes), - mkEntry(CK_UNAVAILABLE_INFORMATION, CurrentSize), -}; - -const Constant *consts = &_consts[0]; -const int constCount = sizeof(_consts)/sizeof(_consts[0]); - -const Commands _commands[] = { - {"C_Initialize", F_C_Initialize, -"C_Initialize pInitArgs\n\n" -"C_Initialize initializes the PKCS #11 library.\n" -" pInitArgs if this is not NULL_PTR it gets cast to and dereferenced\n", - {ArgInitializeArgs, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_Finalize", F_C_Finalize, -"C_Finalize pReserved\n\n" -"C_Finalize indicates that an application is done with the PKCS #11 library.\n" -" pReserved reserved. Should be NULL_PTR\n", - {ArgInitializeArgs, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetInfo", F_C_GetInfo, -"C_GetInfo pInfo\n\n" -"C_GetInfo returns general information about PKCS #11.\n" -" pInfo location that receives information\n", - {ArgInfo|ArgOut, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetFunctionList", F_C_GetFunctionList, -"C_GetFunctionList ppFunctionList\n\n" -"C_GetFunctionList returns the function list.\n" -" ppFunctionList receives pointer to function list\n", - {ArgFunctionList|ArgOut, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetSlotList", F_C_GetSlotList, -"C_GetSlotList tokenPresent pSlotList pulCount\n\n" -"C_GetSlotList obtains a list of slots in the system.\n" -" tokenPresent only slots with tokens?\n" -" pSlotList receives array of slot IDs\n" -" pulCount receives number of slots\n", - {ArgULong, ArgULong|ArgArray|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetSlotInfo", F_C_GetSlotInfo, -"C_GetSlotInfo slotID pInfo\n\n" -"C_GetSlotInfo obtains information about a particular slot in the system.\n" -" slotID the ID of the slot\n" -" pInfo receives the slot information\n", - {ArgULong, ArgSlotInfo|ArgOut, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetTokenInfo", F_C_GetTokenInfo, -"C_GetTokenInfo slotID pInfo\n\n" -"C_GetTokenInfo obtains information about a particular token in the system.\n" -" slotID ID of the token's slot\n" -" pInfo receives the token information\n", - {ArgULong, ArgTokenInfo|ArgOut, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetMechanismList", F_C_GetMechanismList, -"C_GetMechanismList slotID pMechanismList pulCount\n\n" -"C_GetMechanismList obtains a list of mechanism types supported by a token.\n" -" slotID ID of token's slot\n" -" pMechanismList gets mech. array\n" -" pulCount gets # of mechs.\n", - {ArgULong, ArgULong|ArgArray|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetMechanismInfo", F_C_GetMechanismInfo, -"C_GetMechanismInfo slotID type pInfo\n\n" -"C_GetMechanismInfo obtains information about a particular mechanism possibly\n" -"supported by a token.\n" -" slotID ID of the token's slot\n" -" type type of mechanism\n" -" pInfo receives mechanism info\n", - {ArgULong, ArgULong, ArgMechanismInfo|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_InitToken", F_C_InitToken, -"C_InitToken slotID pPin ulPinLen pLabel\n\n" -"C_InitToken initializes a token.\n" -" slotID ID of the token's slot\n" -" pPin the SO's initial PIN\n" -" ulPinLen length in bytes of the PIN\n" -" pLabel 32-byte token label (blank padded)\n", - {ArgULong, ArgUTF8, ArgULong, ArgUTF8, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_InitPIN", F_C_InitPIN, -"C_InitPIN hSession pPin ulPinLen\n\n" -"C_InitPIN initializes the normal user's PIN.\n" -" hSession the session's handle\n" -" pPin the normal user's PIN\n" -" ulPinLen length in bytes of the PIN\n", - {ArgULong, ArgUTF8, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_SetPIN", F_C_SetPIN, -"C_SetPIN hSession pOldPin ulOldLen pNewPin ulNewLen\n\n" -"C_SetPIN modifies the PIN of the user who is logged in.\n" -" hSession the session's handle\n" -" pOldPin the old PIN\n" -" ulOldLen length of the old PIN\n" -" pNewPin the new PIN\n" -" ulNewLen length of the new PIN\n", - {ArgULong, ArgUTF8, ArgULong, ArgUTF8, ArgULong, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_OpenSession", F_C_OpenSession, -"C_OpenSession slotID flags phSession\n\n" -"C_OpenSession opens a session between an application and a token.\n" -" slotID the slot's ID\n" -" flags from\n" -" phSession gets session handle\n", - {ArgULong, ArgULong, ArgULong|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_CloseSession", F_C_CloseSession, -"C_CloseSession hSession\n\n" -"C_CloseSession closes a session between an application and a token.\n" -" hSession the session's handle\n", - {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_CloseAllSessions", F_C_CloseAllSessions, -"C_CloseAllSessions slotID\n\n" -"C_CloseAllSessions closes all sessions with a token.\n" -" slotID the token's slot\n", - {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetSessionInfo", F_C_GetSessionInfo, -"C_GetSessionInfo hSession pInfo\n\n" -"C_GetSessionInfo obtains information about the session.\n" -" hSession the session's handle\n" -" pInfo receives session info\n", - {ArgULong, ArgSessionInfo|ArgOut, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetOperationState", F_C_GetOperationState, -"C_GetOperationState hSession pOpState pulOpStateLen\n\n" -"C_GetOperationState obtains the state of the cryptographic operation in a\n" -"session.\n" -" hSession session's handle\n" -" pOpState gets state\n" -" pulOpStateLen gets state length\n", - {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_SetOperationState", F_C_SetOperationState, -"C_SetOperationState hSession pOpState ulOpStateLen hEncKey hAuthKey\n\n" -"C_SetOperationState restores the state of the cryptographic operation in a\n" -"session.\n" -" hSession session's handle\n" -" pOpState holds state\n" -" ulOpStateLen holds state length\n" -" hEncKey en/decryption key\n" -" hAuthnKey sign/verify key\n", - {ArgULong, ArgChar|ArgOut, ArgULong, ArgULong, ArgULong, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_Login", F_C_Login, -"C_Login hSession userType pPin ulPinLen\n\n" -"C_Login logs a user into a token.\n" -" hSession the session's handle\n" -" userType the user type\n" -" pPin the user's PIN\n" -" ulPinLen the length of the PIN\n", - {ArgULong, ArgULong, ArgVar, ArgULong, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_Logout", F_C_Logout, -"C_Logout hSession\n\n" -"C_Logout logs a user out from a token.\n" -" hSession the session's handle\n", - {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_CreateObject", F_C_CreateObject, -"C_CreateObject hSession pTemplate ulCount phObject\n\n" -"C_CreateObject creates a new object.\n" -" hSession the session's handle\n" -" pTemplate the object's template\n" -" ulCount attributes in template\n" -" phObject gets new object's handle.\n", - {ArgULong, ArgAttribute|ArgArray, ArgULong, ArgULong|ArgOut, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_CopyObject", F_C_CopyObject, -"C_CopyObject hSession hObject pTemplate ulCount phNewObject\n\n" -"C_CopyObject copies an object creating a new object for the copy.\n" -" hSession the session's handle\n" -" hObject the object's handle\n" -" pTemplate template for new object\n" -" ulCount attributes in template\n" -" phNewObject receives handle of copy\n", - {ArgULong, ArgULong, ArgAttribute|ArgArray, ArgULong, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DestroyObject", F_C_DestroyObject, -"C_DestroyObject hSession hObject\n\n" -"C_DestroyObject destroys an object.\n" -" hSession the session's handle\n" -" hObject the object's handle\n", - {ArgULong, ArgULong, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetObjectSize", F_C_GetObjectSize, -"C_GetObjectSize hSession hObject pulSize\n\n" -"C_GetObjectSize gets the size of an object in bytes.\n" -" hSession the session's handle\n" -" hObject the object's handle\n" -" pulSize receives size of object\n", - {ArgULong, ArgULong, ArgULong|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetAttributeValue", F_C_GetAttributeValue, -"C_GetAttributeValue hSession hObject pTemplate ulCount\n\n" -"C_GetAttributeValue obtains the value of one or more object attributes.\n" -" hSession the session's handle\n" -" hObject the object's handle\n" -" pTemplate specifies attrs; gets vals\n" -" ulCount attributes in template\n", - {ArgULong, ArgULong, ArgAttribute|ArgArray, ArgULong, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_SetAttributeValue", F_C_SetAttributeValue, -"C_SetAttributeValue hSession hObject pTemplate ulCount\n\n" -"C_SetAttributeValue modifies the value of one or more object attributes\n" -" hSession the session's handle\n" -" hObject the object's handle\n" -" pTemplate specifies attrs and values\n" -" ulCount attributes in template\n", - {ArgULong, ArgULong, ArgAttribute|ArgArray, ArgULong, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_FindObjectsInit", F_C_FindObjectsInit, -"C_FindObjectsInit hSession pTemplate ulCount\n\n" -"C_FindObjectsInit initializes a search for token and session objects that\n" -"match a template.\n" -" hSession the session's handle\n" -" pTemplate attribute values to match\n" -" ulCount attrs in search template\n", - {ArgULong, ArgAttribute|ArgArray, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_FindObjectsFinal", F_C_FindObjectsFinal, -"C_FindObjectsFinal hSession\n\n" -"C_FindObjectsFinal finishes a search for token and session objects.\n" -" hSession the session's handle\n", - {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_FindObjects", F_C_FindObjects, -"C_FindObjects hSession phObject ulMaxObjectCount pulObjectCount\n\n" -"C_FindObjects continues a search for token and session objects that match\n" -"a template obtaining additional object handles.\n" -" hSession session's handle\n" -" phObject gets obj. handles\n" -" ulMaxObjectCount max handles to get\n" -" pulObjectCount actual # returned\n", - {ArgULong, ArgULong|ArgOut, ArgULong, ArgULong|ArgOut, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_EncryptInit", F_C_EncryptInit, -"C_EncryptInit hSession pMechanism hKey\n\n" -"C_EncryptInit initializes an encryption operation.\n" -" hSession the session's handle\n" -" pMechanism the encryption mechanism\n" -" hKey handle of encryption key\n", - {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_EncryptUpdate", F_C_EncryptUpdate, -"C_EncryptUpdate hSession pPart ulPartLen pEncryptedPart pulEncryptedPartLen\n" -"\n" -"C_EncryptUpdate continues a multiple-part encryption operation.\n" -" hSession session's handle\n" -" pPart the plaintext data\n" -" ulPartLen plaintext data len\n" -" pEncryptedPart gets ciphertext\n" -" pulEncryptedPartLen gets c-text size\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_EncryptFinal", F_C_EncryptFinal, -"C_EncryptFinal hSession pLastEncryptedPart pulLastEncryptedPartLen\n\n" -"C_EncryptFinal finishes a multiple-part encryption operation.\n" -" hSession session handle\n" -" pLastEncryptedPart last c-text\n" -" pulLastEncryptedPartLen gets last size\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_Encrypt", F_C_Encrypt, -"C_Encrypt hSession pData ulDataLen pEncryptedData pulEncryptedDataLen\n\n" -"C_Encrypt encrypts single-part data.\n" -" hSession session's handle\n" -" pData the plaintext data\n" -" ulDataLen bytes of plaintext\n" -" pEncryptedData gets ciphertext\n" -" pulEncryptedDataLen gets c-text size\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DecryptInit", F_C_DecryptInit, -"C_DecryptInit hSession pMechanism hKey\n\n" -"C_DecryptInit initializes a decryption operation.\n" -" hSession the session's handle\n" -" pMechanism the decryption mechanism\n" -" hKey handle of decryption key\n", - {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DecryptUpdate", F_C_DecryptUpdate, -"C_DecryptUpdate hSession pEncryptedPart ulEncryptedPartLen pPart pulPartLen\n" -"\n" -"C_DecryptUpdate continues a multiple-part decryption operation.\n" -" hSession session's handle\n" -" pEncryptedPart encrypted data\n" -" ulEncryptedPartLen input length\n" -" pPart gets plaintext\n" -" pulPartLen p-text size\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DecryptFinal", F_C_DecryptFinal, -"C_DecryptFinal hSession pLastPart pulLastPartLen\n\n" -"C_DecryptFinal finishes a multiple-part decryption operation.\n" -" hSession the session's handle\n" -" pLastPart gets plaintext\n" -" pulLastPartLen p-text size\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_Decrypt", F_C_Decrypt, -"C_Decrypt hSession pEncryptedData ulEncryptedDataLen pData pulDataLen\n\n" -"C_Decrypt decrypts encrypted data in a single part.\n" -" hSession session's handle\n" -" pEncryptedData ciphertext\n" -" ulEncryptedDataLen ciphertext length\n" -" pData gets plaintext\n" -" pulDataLen gets p-text size\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DigestInit", F_C_DigestInit, -"C_DigestInit hSession pMechanism\n\n" -"C_DigestInit initializes a message-digesting operation.\n" -" hSession the session's handle\n" -" pMechanism the digesting mechanism\n", - {ArgULong, ArgMechanism, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DigestUpdate", F_C_DigestUpdate, -"C_DigestUpdate hSession pPart ulPartLen\n\n" -"C_DigestUpdate continues a multiple-part message-digesting operation.\n" -" hSession the session's handle\n" -" pPart data to be digested\n" -" ulPartLen bytes of data to be digested\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DigestKey", F_C_DigestKey, -"C_DigestKey hSession hKey\n\n" -"C_DigestKey continues a multi-part message-digesting operation by digesting\n" -"the value of a secret key as part of the data already digested.\n" -" hSession the session's handle\n" -" hKey secret key to digest\n", - {ArgULong, ArgULong, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DigestFinal", F_C_DigestFinal, -"C_DigestFinal hSession pDigest pulDigestLen\n\n" -"C_DigestFinal finishes a multiple-part message-digesting operation.\n" -" hSession the session's handle\n" -" pDigest gets the message digest\n" -" pulDigestLen gets byte count of digest\n", - {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_Digest", F_C_Digest, -"C_Digest hSession pData ulDataLen pDigest pulDigestLen\n\n" -"C_Digest digests data in a single part.\n" -" hSession the session's handle\n" -" pData data to be digested\n" -" ulDataLen bytes of data to digest\n" -" pDigest gets the message digest\n" -" pulDigestLen gets digest length\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_SignInit", F_C_SignInit, -"C_SignInit hSession pMechanism hKey\n\n" -"C_SignInit initializes a signature (private key encryption operation where\n" -"the signature is (will be) an appendix to the data and plaintext cannot be\n" -"recovered from the signature.\n" -" hSession the session's handle\n" -" pMechanism the signature mechanism\n" -" hKey handle of signature key\n", - {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_SignUpdate", F_C_SignUpdate, -"C_SignUpdate hSession pPart ulPartLen\n\n" -"C_SignUpdate continues a multiple-part signature operation where the\n" -"signature is (will be) an appendix to the data and plaintext cannot be\n" -"recovered from the signature.\n" -" hSession the session's handle\n" -" pPart the data to sign\n" -" ulPartLen count of bytes to sign\n", - {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_SignFinal", F_C_SignFinal, -"C_SignFinal hSession pSignature pulSignatureLen\n\n" -"C_SignFinal finishes a multiple-part signature operation returning the\n" -"signature.\n" -" hSession the session's handle\n" -" pSignature gets the signature\n" -" pulSignatureLen gets signature length\n", - {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_SignRecoverInit", F_C_SignRecoverInit, -"C_SignRecoverInit hSession pMechanism hKey\n\n" -"C_SignRecoverInit initializes a signature operation where the data can be\n" -"recovered from the signature.\n" -" hSession the session's handle\n" -" pMechanism the signature mechanism\n" -" hKey handle of the signature key\n", - {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_SignRecover", F_C_SignRecover, -"C_SignRecover hSession pData ulDataLen pSignature pulSignatureLen\n\n" -"C_SignRecover signs data in a single operation where the data can be\n" -"recovered from the signature.\n" -" hSession the session's handle\n" -" pData the data to sign\n" -" ulDataLen count of bytes to sign\n" -" pSignature gets the signature\n" -" pulSignatureLen gets signature length\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_Sign", F_C_Sign, -"C_Sign hSession pData ulDataLen pSignature pulSignatureLen\n\n" -"C_Sign signs (encrypts with private key) data in a single part where the\n" -"signature is (will be) an appendix to the data and plaintext cannot be\n" -"recovered from the signature.\n" -" hSession the session's handle\n" -" pData the data to sign\n" -" ulDataLen count of bytes to sign\n" -" pSignature gets the signature\n" -" pulSignatureLen gets signature length\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_VerifyInit", F_C_VerifyInit, -"C_VerifyInit hSession pMechanism hKey\n\n" -"C_VerifyInit initializes a verification operation where the signature is an\n" -"appendix to the data and plaintext cannot cannot be recovered from the\n" -"signature (e.g. DSA).\n" -" hSession the session's handle\n" -" pMechanism the verification mechanism\n" -" hKey verification key\n", - {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_VerifyUpdate", F_C_VerifyUpdate, -"C_VerifyUpdate hSession pPart ulPartLen\n\n" -"C_VerifyUpdate continues a multiple-part verification operation where the\n" -"signature is an appendix to the data and plaintext cannot be recovered from\n" -"the signature.\n" -" hSession the session's handle\n" -" pPart signed data\n" -" ulPartLen length of signed data\n", - {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_VerifyFinal", F_C_VerifyFinal, -"C_VerifyFinal hSession pSignature ulSignatureLen\n\n" -"C_VerifyFinal finishes a multiple-part verification operation checking the\n" -"signature.\n" -" hSession the session's handle\n" -" pSignature signature to verify\n" -" ulSignatureLen signature length\n", - {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_VerifyRecoverInit", F_C_VerifyRecoverInit, -"C_VerifyRecoverInit hSession pMechanism hKey\n\n" -"C_VerifyRecoverInit initializes a signature verification operation where the\n" -"data is recovered from the signature.\n" -" hSession the session's handle\n" -" pMechanism the verification mechanism\n" -" hKey verification key\n", - {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_VerifyRecover", F_C_VerifyRecover, -"C_VerifyRecover hSession pSignature ulSignatureLen pData pulDataLen\n\n" -"C_VerifyRecover verifies a signature in a single-part operation where the\n" -"data is recovered from the signature.\n" -" hSession the session's handle\n" -" pSignature signature to verify\n" -" ulSignatureLen signature length\n" -" pData gets signed data\n" -" pulDataLen gets signed data len\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_Verify", F_C_Verify, -"C_Verify hSession pData ulDataLen pSignature ulSignatureLen\n\n" -"C_Verify verifies a signature in a single-part operation where the signature\n" -"is an appendix to the data and plaintext cannot be recovered from the\n" -"signature.\n" -" hSession the session's handle\n" -" pData signed data\n" -" ulDataLen length of signed data\n" -" pSignature signature\n" -" ulSignatureLen signature length*/\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DigestEncryptUpdate", F_C_DigestEncryptUpdate, -"C_DigestEncryptUpdate hSession pPart ulPartLen pEncryptedPart \\\n" -" pulEncryptedPartLen\n\n" -"C_DigestEncryptUpdate continues a multiple-part digesting and encryption\n" -"operation.\n" -" hSession session's handle\n" -" pPart the plaintext data\n" -" ulPartLen plaintext length\n" -" pEncryptedPart gets ciphertext\n" -" pulEncryptedPartLen gets c-text length\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DecryptDigestUpdate", F_C_DecryptDigestUpdate, -"C_DecryptDigestUpdate hSession pEncryptedPart ulEncryptedPartLen pPart \\\n" -" pulPartLen\n\n" -"C_DecryptDigestUpdate continues a multiple-part decryption and digesting\n" -"operation.\n" -" hSession session's handle\n" -" pEncryptedPart ciphertext\n" -" ulEncryptedPartLen ciphertext length\n" -" pPart gets plaintext\n" -" pulPartLen gets plaintext len\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_SignEncryptUpdate", F_C_SignEncryptUpdate, -"C_SignEncryptUpdate hSession pPart ulPartLen pEncryptedPart \\\n" -" pulEncryptedPartLen\n\n" -"C_SignEncryptUpdate continues a multiple-part signing and encryption\n" -"operation.\n" -" hSession session's handle\n" -" pPart the plaintext data\n" -" ulPartLen plaintext length\n" -" pEncryptedPart gets ciphertext\n" -" pulEncryptedPartLen gets c-text length\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_DecryptVerifyUpdate", F_C_DecryptVerifyUpdate, -"C_DecryptVerifyUpdate hSession pEncryptedPart ulEncryptedPartLen pPart \\\n" -" pulPartLen\n\n" -"C_DecryptVerifyUpdate continues a multiple-part decryption and verify\n" -"operation.\n" -" hSession session's handle\n" -" pEncryptedPart ciphertext\n" -" ulEncryptedPartLen ciphertext length\n" -" pPart gets plaintext\n" -" pulPartLen gets p-text length\n", - {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GenerateKeyPair", F_C_GenerateKeyPair, -"C_GenerateKeyPair hSession pMechanism pPublicKeyTemplate \\\n" -" ulPublicKeyAttributeCount pPrivateKeyTemplate ulPrivateKeyAttributeCount \\\n" -" phPublicKey phPrivateKey\n\n" -"C_GenerateKeyPair generates a public-key/private-key pair creating new key\n" -"objects.\n" -" hSession sessionhandle\n" -" pMechanism key-genmech.\n" -" pPublicKeyTemplate templatefor pub. key\n" -" ulPublicKeyAttributeCount # pub. attrs.\n" -" pPrivateKeyTemplate templatefor priv. key\n" -" ulPrivateKeyAttributeCount # priv. attrs.\n" -" phPublicKey gets pub. keyhandle\n" -" phPrivateKey getspriv. keyhandle\n", - {ArgULong, ArgMechanism, ArgAttribute|ArgArray, ArgULong, - ArgAttribute|ArgArray, - ArgULong, ArgULong|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone }}, - {"C_GenerateKey", F_C_GenerateKey, -"C_GenerateKey hSession pMechanism pTemplate ulCount phKey\n\n" -"C_GenerateKey generates a secret key creating a new key object.\n" -" hSession the session's handle\n" -" pMechanism key generation mech.\n" -" pTemplate template for new key\n" -" ulCount # of attrs in template\n" -" phKey gets handle of new key\n", - {ArgULong, ArgMechanism, ArgAttribute|ArgArray, ArgULong, - ArgULong|ArgOut, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_WrapKey", F_C_WrapKey, -"C_WrapKey hSession pMechanism hWrappingKey hKey pWrappedKey pulWrappedKeyLen\n\n" -"C_WrapKey wraps (i.e. encrypts) a key.\n" -" hSession the session's handle\n" -" pMechanism the wrapping mechanism\n" -" hWrappingKey wrapping key\n" -" hKey key to be wrapped\n" -" pWrappedKey gets wrapped key\n" -" pulWrappedKeyLen gets wrapped key size\n", - {ArgULong, ArgMechanism, ArgULong, ArgULong, ArgULong, - ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone, ArgNone }}, - {"C_UnwrapKey", F_C_UnwrapKey, -"C_UnwrapKey hSession pMechanism hUnwrappingKey pWrappedKey ulWrappedKeyLen \\\n" -" pTemplate ulAttributeCount phKey\n\n" -"C_UnwrapKey unwraps (decrypts) a wrapped key creating a new key object.\n" -" hSession session's handle\n" -" pMechanism unwrapping mech.\n" -" hUnwrappingKey unwrapping key\n" -" pWrappedKey the wrapped key\n" -" ulWrappedKeyLen wrapped key len\n" -" pTemplate new key template\n" -" ulAttributeCount template length\n" -" phKey gets new handle\n", - {ArgULong, ArgMechanism, ArgULong, ArgChar, ArgULong, - ArgAttribute|ArgArray, ArgULong, ArgULong|ArgOut, ArgNone, ArgNone }}, - {"C_DeriveKey", F_C_DeriveKey, -"C_DeriveKey hSession pMechanism hBaseKey pTemplate ulAttributeCount phKey\n\n" -"C_DeriveKey derives a key from a base key creating a new key object.\n" -" hSession session's handle\n" -" pMechanism key deriv. mech.\n" -" hBaseKey base key\n" -" pTemplate new key template\n" -" ulAttributeCount template length\n" -" phKey gets new handle\n", - {ArgULong, ArgMechanism, ArgULong, ArgAttribute|ArgArray, ArgULong, - ArgULong|ArgOut, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_SeedRandom", F_C_SeedRandom, -"C_SeedRandom hSession pSeed ulSeedLen\n\n" -"C_SeedRandom mixes additional seed material into the token's random number\n" -"generator.\n" -" hSession the session's handle\n" -" pSeed the seed material\n" -" ulSeedLen length of seed material\n", - {ArgULong, ArgChar, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GenerateRandom", F_C_GenerateRandom, -"C_GenerateRandom hSession RandomData ulRandomLen\n\n" -"C_GenerateRandom generates random data.\n" -" hSession the session's handle\n" -" RandomData receives the random data\n" -" ulRandomLen # of bytes to generate\n", - {ArgULong, ArgChar, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_GetFunctionStatus", F_C_GetFunctionStatus, -"C_GetFunctionStatus hSession\n\n" -"C_GetFunctionStatus is a legacy function; it obtains an updated status of\n" -"a function running in parallel with an application.\n" -" hSession the session's handle\n", - {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_CancelFunction", F_C_CancelFunction, -"C_CancelFunction hSession\n\n" -"C_CancelFunction is a legacy function; it cancels a function running in\n" -"parallel.\n" -" hSession the session's handle\n", - {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"C_WaitForSlotEvent", F_C_WaitForSlotEvent, -"C_WaitForSlotEvent flags pSlot pRserved\n\n" -"C_WaitForSlotEvent waits for a slot event (token insertion removal etc.)\n" -"to occur.\n" -" flags blocking/nonblocking flag\n" -" pSlot location that receives the slot ID\n" -" pRserved reserved. Should be NULL_PTR\n", - {ArgULong, ArgULong|ArgArray, ArgVar, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"NewArray", F_NewArray, -"NewArray varName varType array size\n\n" -"Creates a new array variable.\n" -" varName variable name of the new array\n" -" varType data type of the new array\n" -" size number of elements in the array\n", - {ArgVar|ArgNew, ArgVar, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"NewInitArg", F_NewInitializeArgs, -"NewInitArg varName flags string\n\n" -"Creates a new init variable.\n" -" varName variable name of the new initArg\n" -" flags value to set the flags field\n" -" string string parameter for init arg\n", - {ArgVar|ArgNew, ArgULong, ArgVar|ArgNew, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"NewTemplate", F_NewTemplate, -"NewTemplate varName attributeList\n\n" -"Create a new empty template and populate the attribute list\n" -" varName variable name of the new template\n" -" attributeList comma separated list of CKA_ATTRIBUTE types\n", - {ArgVar|ArgNew, ArgVar, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"NewMechanism", F_NewMechanism, -"NewMechanism varName mechanismType\n\n" -"Create a new CK_MECHANISM object with type NULL paramters and specified type\n" -" varName variable name of the new mechansim\n" -" mechanismType CKM_ mechanism type value to set int the type field\n", - {ArgVar|ArgNew, ArgULong, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"BuildTemplate", F_BuildTemplate, -"BuildTemplate template\n\n" -"Allocates space for the value in a template which has the sizes filled in,\n" -"but no values allocated yet.\n" -" template variable name of the template\n", - {ArgAttribute, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"SetTemplate", F_SetTemplate, -"SetTemplate template index value\n\n" -"Sets a particular element of a template to a CK_ULONG\n" -" template variable name of the template\n" -" index index into the template to the element to change\n" -" value 32 bit value to set in the template\n", - {ArgAttribute, ArgULong, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"SetString", F_SetStringVar, -"SetString varName string\n\n" -"Sets a particular variable to a string value\n" -" variable variable name of new string\n" -" string String to set the variable to\n", - {ArgVar|ArgNew, ArgVar, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Set", F_SetVar, -"Set varName value\n\n" -"Sets a particular variable to CK_ULONG\n" -" variable name of the new variable\n" -" value 32 bit value to set variable to\n", - {ArgVar|ArgNew, ArgULong, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Print", F_Print, -"Print varName\n\n" -"prints a variable\n" -" variable name of the variable to print\n", - {ArgVar, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Delete", F_Delete, -"Delete varName\n\n" -"delete a variable\n" -" variable name of the variable to delete\n", - {ArgVar|ArgNew, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Load", F_Load, -"load libraryName\n\n" -"load a pkcs #11 module\n" -" libraryName Name of a shared library\n", - {ArgVar, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Save", F_SaveVar, -"Save filename variable\n\n" -"Saves the binary value of 'variable' in file 'filename'\n" -" fileName target file to save the variable in\n" -" variable variable to save\n", - {ArgVar|ArgNew, ArgVar, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Restore", F_RestoreVar, -"Restore filename variable\n\n" -"Restores a variable from a file\n" -" fileName target file to restore the variable from\n" -" variable variable to restore\n", - {ArgVar|ArgNew, ArgVar, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Increment", F_Increment, -"Increment variable value\n\n" -"Increment a variable by value\n", - {ArgVar, ArgULong, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Decrement", F_Decrement, -"Decrement variable value\n\n" -"Decrement a variable by value\n", - {ArgVar, ArgULong, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"List", F_List, -"List all the variables\n", - {ArgNone, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Unload", F_Unload, -"Unload the currrently loaded PKCS #11 library\n", - {ArgNone, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Run", F_Run, -"Run filename\n\n" -"reads filename as script of commands to execute\n", - {ArgVar|ArgNew, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Time", F_Time, -"Time pkcs11 command\n\n" -"Execute a pkcs #11 command and time the results\n", - {ArgVar|ArgFull, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"System", F_System, - "Set System Flag", - {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"LoopRun", F_Loop, -"LoopRun filename var start end step\n\n" -"Run in a loop. Loop exit if scrip does and explicit quit (Quit QuitIf etc.)", - {ArgVar|ArgNew, ArgVar|ArgNew, ArgULong, ArgULong, ArgULong, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Help", F_Help, -"Help [command]\n\n" -"print general help, or help for a specific command\n", - {ArgVar|ArgOpt, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"QuitIf", F_QuitIf, -"QuitIf arg1 comparator arg2\n\n" -"Exit from this program if Condition is valid, valid comparators:\n" -" < > <= >= = !=\n", - {ArgULong, ArgVar|ArgNew, ArgULong, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"QuitIfString", F_QuitIfString, -"QuitIfString arg1 comparator arg2\n\n" -"Exit from this program if Condition is valid, valid comparators:\n" -" = !=\n", - {ArgVar|ArgNew, ArgVar|ArgNew, ArgVar|ArgNew, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, - {"Quit", F_Quit, -"Exit from this program", - {ArgNone, ArgNone, ArgNone, ArgNone, ArgNone, - ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }}, -}; - -const Commands *commands= &_commands[0]; -const int commandCount = sizeof(_commands) / sizeof(_commands[0]); - -const Topics _topics[] = { - { "variables", -"Variables are random strings of characters. These should begin with alpha\n" -" characters, and should not contain any spaces, nor should they match any\n" -" built-in constants. There is some checking in the code for these things,\n" -" but it's not 100% and using invalid variable names can cause problems.\n" -" Variables are created by any 'OUT' parameter. If the variable does not\n" -" exist, it will be created. For in parameters variables must already exist.\n" - }, - { "constants", -"pk11util recognizes *lots* of constants. All CKA_, CKF_, CKO_, CKU_, CKS_,\n" -" CKC_, CKK_, CKH_, CKM_, CKT_ values from the PKCS #11 spec are recognized.\n" -" Constants can be specified with their fully qualified CK?_ value, or the\n" -" prefix can be dropped. Constants are matched case insensitve.\n" - }, - { "arrays", -"Arrays are special variables which represent 'C' arrays. Each array \n" -" variable can be referenced as a group (using just the name), or as \n" -" individual elements (with the [int] operator). Example:\n" -" print myArray # prints the full array.\n" -" print myArray[3] # prints the 3rd elemement of the array \n" - }, - { "sizes", -"Size operaters returns the size in bytes of a variable, or the number of\n" -" elements in an array.\n" -" size(var) and sizeof(var) return the size of var in bytes.\n" -" sizea(var) and sizeofarray(var) return the number of elements in var.\n" -" If var is not an array, sizea(var) returns 1.\n" - }, -}; - -const Topics *topics=&_topics[0]; -const int topicCount = sizeof(_topics)/sizeof(_topics[0]); - - diff --git a/security/nss/cmd/pk11util/pk11util.c b/security/nss/cmd/pk11util/pk11util.c index 4929ad1e3..fc84a2ab9 100644 --- a/security/nss/cmd/pk11util/pk11util.c +++ b/security/nss/cmd/pk11util/pk11util.c @@ -60,7 +60,7 @@ #include "pkcs11.h" -#include "pk11util.h" +#include "pk11table.h" #ifndef O_BINARY #define O_BINARY 0 @@ -381,7 +381,7 @@ handleArray(char *vname, int *error) if (*error == 1) { return INVALID_INDEX; } else if (index == INVALID_INDEX) { - fprintf(stderr, "%s: 0x%x is an invalid index\n",vname,index); + fprintf(stderr, "%s: 0x%lx is an invalid index\n",vname,index); *error = 1; } } @@ -395,7 +395,7 @@ makeArrayTarget(const char *vname, const Value *value, CK_ULONG index) CK_ULONG elementSize; if (index >= (CK_ULONG)value->arraySize) { - fprintf(stderr, "%s[%d]: index larger than array size (%d)\n", + fprintf(stderr, "%s[%lu]: index larger than array size (%d)\n", vname, index, value->arraySize); return NULL; } @@ -1046,19 +1046,23 @@ printArg(Value *ptr,int arg_number) printf(" Cryptoki Version: %d.%02d\n", VERSION(info->cryptokiVersion)); printf(" Manufacturer ID: "); - printChars(info->manufacturerID,sizeof(info->manufacturerID)); + printChars((char *)info->manufacturerID, + sizeof(info->manufacturerID)); printFlags(" Flags: ", info->flags, ConstInfoFlags); printf(" Library Description: "); - printChars(info->libraryDescription,sizeof(info->libraryDescription)); + printChars((char *)info->libraryDescription, + sizeof(info->libraryDescription)); printf(" Library Version: %d.%02d\n", VERSION(info->libraryVersion)); break; case ArgSlotInfo: slotInfo = (CK_SLOT_INFO *)ptr->data; printf(" Slot Description: "); - printChars(slotInfo->slotDescription,sizeof(slotInfo->slotDescription)); + printChars((char *)slotInfo->slotDescription, + sizeof(slotInfo->slotDescription)); printf(" Manufacturer ID: "); - printChars(slotInfo->manufacturerID,sizeof(slotInfo->manufacturerID)); + printChars((char *)slotInfo->manufacturerID, + sizeof(slotInfo->manufacturerID)); printFlags(" Flags: ", slotInfo->flags, ConstSlotFlags); printf(" Hardware Version: %d.%02d\n", VERSION(slotInfo->hardwareVersion)); @@ -1068,13 +1072,15 @@ printArg(Value *ptr,int arg_number) case ArgTokenInfo: tokenInfo = (CK_TOKEN_INFO *)ptr->data; printf(" Label: "); - printChars(tokenInfo->label,sizeof(tokenInfo->label)); + printChars((char *) tokenInfo->label,sizeof(tokenInfo->label)); printf(" Manufacturer ID: "); - printChars(tokenInfo->manufacturerID,sizeof(tokenInfo->manufacturerID)); + printChars((char *)tokenInfo->manufacturerID, + sizeof(tokenInfo->manufacturerID)); printf(" Model: "); - printChars(tokenInfo->model,sizeof(tokenInfo->model)); + printChars((char *)tokenInfo->model,sizeof(tokenInfo->model)); printf(" Serial Number: "); - printChars(tokenInfo->serialNumber,sizeof(tokenInfo->serialNumber)); + printChars((char *)tokenInfo->serialNumber, + sizeof(tokenInfo->serialNumber)); printFlags(" Flags: ", tokenInfo->flags, ConstTokenFlags); printf(" Max Session Count: "); printConst(tokenInfo->ulMaxSessionCount, ConstAvailableSizes, 1); @@ -1099,7 +1105,7 @@ printArg(Value *ptr,int arg_number) printf(" Firmware Version: %d.%02d\n", VERSION(tokenInfo->firmwareVersion)); printf(" UTC Time: "); - printChars(tokenInfo->utcTime,sizeof(tokenInfo->utcTime)); + printChars((char *)tokenInfo->utcTime,sizeof(tokenInfo->utcTime)); break; case ArgSessionInfo: sessionInfo = (CK_SESSION_INFO *)ptr->data; @@ -1148,7 +1154,7 @@ printArg(Value *ptr,int arg_number) initArgs = (CK_C_INITIALIZE_ARGS *)ptr->data; printFlags(" Flags: ", initArgs->flags, ConstInitializeFlags); if (initArgs->LibraryParameters) { - printf("Params: %s\n",initArgs->LibraryParameters); + printf("Params: %s\n",(char *)initArgs->LibraryParameters); } case ArgFunctionList: functionList = (CK_FUNCTION_LIST *)ptr->data; @@ -1609,7 +1615,7 @@ do_func(int index, Value **a) if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; return func->C_GetSlotList((CK_BBOOL)*(CK_ULONG *)a[0]->data, (CK_SLOT_ID *)a[1]->data, - (CK_LONG *)a[2]->data); + (CK_ULONG *)a[2]->data); case F_C_GetSlotInfo: if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; return func->C_GetSlotInfo(*(CK_ULONG *)a[0]->data, diff --git a/security/nss/cmd/pk11util/pk11util.h b/security/nss/cmd/pk11util/pk11util.h deleted file mode 100644 index 8a2f4d592..000000000 --- a/security/nss/cmd/pk11util/pk11util.h +++ /dev/null @@ -1,165 +0,0 @@ - -/* - * Supported functions.. - */ -#include -#include "nspr.h" -#include "prtypes.h" - -typedef enum { - F_No_Function, -#undef CK_NEED_ARG_LIST -#define CK_PKCS11_FUNCTION_INFO(func) F_##func, -#include "pkcs11f.h" -#undef CK_NEED_ARG_LISt -#undef CK_PKCS11_FUNCTION_INFO - F_SetVar, - F_SetStringVar, - F_NewArray, - F_NewInitializeArgs, - F_NewTemplate, - F_NewMechanism, - F_BuildTemplate, - F_SetTemplate, - F_Print, - F_SaveVar, - F_RestoreVar, - F_Increment, - F_Decrement, - F_Delete, - F_List, - F_Run, - F_Load, - F_Unload, - F_System, - F_Loop, - F_Time, - F_Help, - F_Quit, - F_QuitIf, - F_QuitIfString, -} FunctionType; - -/* - * Supported Argument Types - */ -typedef enum { - ArgNone, - ArgVar, - ArgULong, - ArgChar, - ArgUTF8, - ArgInfo, - ArgSlotInfo, - ArgTokenInfo, - ArgSessionInfo, - ArgAttribute, - ArgMechanism, - ArgMechanismInfo, - ArgInitializeArgs, - ArgFunctionList, -/* Modifier Flags */ - ArgMask = 0xff, - ArgOut = 0x100, - ArgArray = 0x200, - ArgNew = 0x400, - ArgFile = 0x800, - ArgStatic = 0x1000, - ArgOpt = 0x2000, - ArgFull = 0x4000, -} ArgType; - -typedef enum _constType -{ - ConstNone, - ConstBool, - ConstInfoFlags, - ConstSlotFlags, - ConstTokenFlags, - ConstSessionFlags, - ConstMechanismFlags, - ConstInitializeFlags, - ConstUsers, - ConstSessionState, - ConstObject, - ConstHardware, - ConstKeyType, - ConstCertType, - ConstAttribute, - ConstMechanism, - ConstResult, - ConstTrust, - ConstAvailableSizes, - ConstCurrentSize -} ConstType; - -typedef struct _constant { - const char *name; - CK_ULONG value; - ConstType type; - ConstType attrType; -} Constant ; - -/* - * Values structures. - */ -typedef struct _values { - ArgType type; - ConstType constType; - int size; - char *filename; - void *data; - int reference; - int arraySize; -} Value; - -/* - * Variables - */ -typedef struct _variable Variable; -struct _variable { - Variable *next; - char *vname; - Value *value; -}; - -/* NOTE: if you change MAX_ARGS, you need to change the commands array - * below as well. - */ - -#define MAX_ARGS 10 -/* - * structure for master command array - */ -typedef struct _commands { - char *fname; - FunctionType fType; - char *helpString; - ArgType args[MAX_ARGS]; -} Commands; - -typedef struct _module { - PRLibrary *library; - CK_FUNCTION_LIST *functionList; -} Module; - -typedef struct _topics { - char *name; - char *helpString; -} Topics; - -/* - * the command array itself. Make name to function and it's arguments - */ - -extern const char **valueString; -extern const int valueCount; -extern const char **constTypeString; -extern const int constTypeCount; -extern const Constant *consts; -extern const int constCount; -extern const Commands *commands; -extern const int commandCount; -extern const Topics *topics; -extern const int topicCount; - -- cgit v1.2.1