diff options
Diffstat (limited to 'security/nss/cmd/pk11util')
-rw-r--r-- | security/nss/cmd/pk11util/Makefile | 80 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/manifest.mn | 55 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/pk11table.c | 1403 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/pk11util.c | 2182 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/pk11util.h | 165 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/scripts/dosign | 162 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/scripts/hssign | 48 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/scripts/lcert | 35 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/scripts/mechanisms | 11 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/scripts/pLabel1 | 6 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/scripts/pMechanisms | 8 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/scripts/pcert | 30 | ||||
-rw-r--r-- | security/nss/cmd/pk11util/scripts/pkey | bin | 1543 -> 0 bytes |
13 files changed, 0 insertions, 4185 deletions
diff --git a/security/nss/cmd/pk11util/Makefile b/security/nss/cmd/pk11util/Makefile deleted file mode 100644 index fe7991878..000000000 --- a/security/nss/cmd/pk11util/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** 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 ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include ../platlibs.mk - - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - - -include ../platrules.mk - diff --git a/security/nss/cmd/pk11util/manifest.mn b/security/nss/cmd/pk11util/manifest.mn deleted file mode 100644 index 3badc6efe..000000000 --- a/security/nss/cmd/pk11util/manifest.mn +++ /dev/null @@ -1,55 +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 ***** - -CORE_DEPTH = ../../.. - -DEFINES += -DNSPR20 - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = pk11util.c pk11table.c -#CSRCS = symkeytest.c - -# The MODULE is always implicitly required. -# Listing it here in REQUIRES makes it appear twice in the cc command line. -REQUIRES = seccmd - -PROGRAM = pk11util -#PROGRAM = symkeytest - -#USE_STATIC_LIBS = 1 diff --git a/security/nss/cmd/pk11util/pk11table.c b/security/nss/cmd/pk11util/pk11table.c deleted file mode 100644 index 1f1406a65..000000000 --- a/security/nss/cmd/pk11util/pk11table.c +++ /dev/null @@ -1,1403 +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 <pkcs11.h> -#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_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_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 string\n\n" -"Creates a new init variable.\n" -" varName variable name of the new initArg\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 deleted file mode 100644 index 3c8a1894f..000000000 --- a/security/nss/cmd/pk11util/pk11util.c +++ /dev/null @@ -1,2182 +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 <stdio.h> -#include <string.h> - -#if defined(WIN32) -#undef __STDC__ -#include "fcntl.h" -#include "io.h" -#include <fcntl.h> -#else -#include <unistd.h> -#include <sys/fcntl.h> -#endif - -#include "secutil.h" - - -#include "nspr.h" -#include "prtypes.h" -#include "prtime.h" -#include "prlong.h" -#include "prinrval.h" - -#include "pkcs11.h" - -#include "pk11util.h" - -#ifndef O_BINARY -#define O_BINARY 0 -#endif - -CK_ULONG systemFlags; -#define FLAG_NEGATE 0x80000000 -#define FLAG_Verify 0x00000001 -#define FLAG_VerifyFile 0x00000002 -#define CKR_QUIT 0x80000000 - -int ArgSize(ArgType type); -const char *constLookup(const char *bp, CK_ULONG *value, ConstType *type); - -int -isNum(char c) -{ - return (c >= '0' && c <= '9'); -} - -int -isConst(const char *c) -{ - CK_ULONG value; - ConstType type; - - constLookup(c, &value, &type); - return type != ConstNone; -} - -/* - * see if the variable is really a 'size' function. This - * function may modify var if it is a size function. - */ -char * -isSize(char *var, int *isArray) -{ - char *ptr = NULL; - char *end; - int array = 0; - - if (PL_strncasecmp(var,"sizeof(",/*)*/ 7) == 0) { - ptr = var + 7; - } else if (PL_strncasecmp(var,"size(",/*)*/ 5) == 0) { - ptr = var + 5; - } else if (PL_strncasecmp(var,"sizeofarray(",/*)*/ 12) == 0) { - ptr = var + 12; - array = 1; - } else if (PL_strncasecmp(var,"sizea(",/*)*/ 6) == 0) { - ptr = var + 6; - array = 1; - } else { - return NULL; - } - end = strchr(ptr,/*(*/ ')') ; - if (end == NULL) { - return NULL; - } - if (isArray) *isArray = array; - *end = 0; - return ptr; -} - -void -printConst(CK_ULONG value, ConstType type, int newLine) -{ - int i; - - for (i=0; i < constCount; i++) { - if (consts[i].type == type && consts[i].value == value) { - printf("%s",consts[i].name); - break; - } - if (type == ConstNone && consts[i].value == value) { - printf("%s",consts[i].name); - break; - } - } - if (i == constCount) { - if ((type == ConstAvailableSizes) || (type == ConstCurrentSize)) { - printf("%lu",value); - } else { - printf("Unknown %s (%lu:0x%lx)",constTypeString[type],value,value); - } - } - if (newLine) { - printf("\n"); - } -} - -ConstType -getConstFromAttribute(CK_ATTRIBUTE_TYPE type) -{ - int i; - - for (i=0; i < constCount; i++) { - if (consts[i].type == ConstAttribute && consts[i].value == type) { - return consts[i].attrType; - } - } - return ConstNone; -} - -void -printChars(const char *name, CK_ULONG size) -{ - CK_ULONG i; - for (i=0; i < size; i++) { - if (name[i] == 0) { - break; - } - printf("%c",name[i]); - } - printf("\n"); -} - -#define DUMP_LEN 16 -void printDump(const unsigned char *buf, int size) -{ - int i,j; - - for(i=0; i < size; i+= DUMP_LEN) { - printf(" "); - for (j=0; j< DUMP_LEN; j++) { - if (i+j < size) { - printf("%02x ",buf[i+j]); - } else { - printf(" "); - } - } - for (j=0; j< DUMP_LEN; j++) { - if (i+j < size) { - if (buf[i+j] < ' ' || buf[i+j] >= 0x7f) { - printf("."); - } else { - printf("%c",buf[i+j]); - } - } else { - printf(" "); - } - } - printf("\n"); - } -} - -/* - * free an argument structure - */ -void -argFreeData(Value *arg) -{ - if (arg->data && ((arg->type & ArgStatic) == 0)) { - if ((arg->type & ArgMask) == ArgAttribute) { - int i; - CK_ATTRIBUTE *template = (CK_ATTRIBUTE *)arg->data; - - for (i=0; i < arg->arraySize; i++) { - free(template[i].pValue); - } - } - if ((arg->type & ArgMask) == ArgInitializeArgs) { - CK_C_INITIALIZE_ARGS *init = (CK_C_INITIALIZE_ARGS *)arg->data; - if (init->LibraryParameters) { - free(init->LibraryParameters); - } - } - free(arg->data); - } - arg->type &= ~ArgStatic; - arg->data = NULL; -} - -void -argFree(Value *arg) -{ - if (arg == NULL) return; - - arg->reference--; - if (arg->reference == 0) { - if (arg->type & ArgFile) { - free(arg->filename); - } - argFreeData(arg); - free (arg); - } -} - -/* - * free and argument list - */ -void -parseFree(Value **ap) -{ - int i; - for (i=0 ; i < MAX_ARGS; i++) { - argFree(ap[i]); - } -} - -/* - * getEnd: how for to the end of this argmument list? - */ -int -getEnd(const char *bp) -{ - int count = 0; - - while (*bp) { - if (*bp == ' ' || *bp == '\t' || *bp == '\n') return count; - count++; - bp++; - } - return (count); -} - - -/* - * strip: return the first none white space character - */ -const char * -strip(const char *bp) -{ - while (*bp && (*bp == ' ' || *bp == '\t' || *bp == '\n')) bp++; - return bp; -} - -/* - * read in the next argument into dp ... don't overflow - */ -const char * -readChars(const char *bp, char *dp, int max ) -{ - int count = 1; - while (*bp) { - if (*bp == ' ' || *bp == '\t' || *bp == '\n' ) { - *dp = 0; - return bp; - } - *dp++ = *bp++; - if (++count == max) break; - } - while (*bp && (*bp != ' ' && *bp != '\t' && *bp != '\n')) bp++; - *dp = 0; - return (bp); -} - -Value * varLookup(const char *bp, char *vname, int max, int *error); - -CK_ULONG -getValue(const char *v, int *error) -{ - Value * varVal = NULL; - CK_ULONG retVal = 0; - ConstType type; - char tvar[512]; - - *error = 0; - - varVal = varLookup( v, tvar, sizeof(tvar), error); - - if (varVal) { - if ((varVal->type & ArgMask) == ArgULong) { - retVal = *(CK_ULONG *)varVal->data; - } else { - fprintf(stderr,"%s: is not a ulong\n", v); - *error = 1; - } - argFree(varVal); - return retVal; - } - constLookup(v, &retVal, &type); - return retVal; -} - -Value * -NewValue(ArgType type, CK_ULONG arraySize) -{ - Value *value; - - value = (Value *)malloc(sizeof(Value)); - if (!value) return NULL; - value->size = ArgSize(type)*arraySize; - value->type = type; - value->filename = NULL; - value->constType = ConstNone; - value->data = (void *)malloc(value->size); - if (!value->data) { - free(value); - return NULL; - } - value->reference = 1; - value->arraySize = (type == ArgChar) ? 1: arraySize; - - memset(value->data, 0, value->size); - return value; -} - -#define INVALID_INDEX 0xffffffff - -CK_ULONG -handleArray(char *vname, int *error) -{ - char *bracket; - CK_ULONG index = INVALID_INDEX; - - if ((bracket = strchr(vname,'[')) != 0) { - char *tmpv = bracket+1; - *bracket = 0; - bracket = strchr(tmpv,']'); - - if (bracket == 0) { - fprintf(stderr,"%s: missing closing brace\n", vname); - return INVALID_INDEX; - } - *bracket = 0; - - index = getValue(tmpv, error); - if (*error == 1) { - return INVALID_INDEX; - } else if (index == INVALID_INDEX) { - fprintf(stderr, "%s: 0x%x is an invalid index\n",vname,index); - *error = 1; - } - } - return index; -} - -void * -makeArrayTarget(const char *vname, const Value *value, CK_ULONG index) -{ - char * target; - CK_ULONG elementSize; - - if (index >= (CK_ULONG)value->arraySize) { - fprintf(stderr, "%s[%d]: index larger than array size (%d)\n", - vname, index, value->arraySize); - return NULL; - } - - target = (char *)value->data; - elementSize = value->size/value->arraySize; - target += index * elementSize; - return target; -} - -/* - * look up a variable from the variable chain - */ -static Variable *varHead = NULL; -Value * -varLookup(const char *bp, char *vname, int max, int *error) -{ - Variable *current; - CK_ULONG index = INVALID_INDEX; - int isArray = 0; - char *ptr; - *error = 0; - - if (bp != NULL) { - readChars(bp, vname, max); - } - - /* don't make numbers into variables */ - if (isNum(vname[0])) { - return NULL; - } - /* nor consts */ - if (isConst(vname)) { - return NULL; - } - /* handle sizeof() */ - if ((ptr = isSize(vname, &isArray)) != NULL) { - CK_ULONG size; - Value *targetValue = NULL; - Value *sourceValue = varLookup(NULL, ptr, 0, error); - if (!sourceValue) { - if (*error == 0) { - /* just didn't find it */ - *error = 1; - fprintf(stderr,"Couldn't find variable %s to take size of\n", - ptr); - return NULL; - } - } - size = isArray ? sourceValue->arraySize : sourceValue->size; - targetValue = NewValue(ArgULong,1); - memcpy(targetValue->data, &size, sizeof(size)); - - return targetValue; - } - - /* modifies vname */ - index = handleArray(vname, error); - if (*error == 1) { - return NULL; - } - - for (current = varHead; current; current = current->next) { - if (PL_strcasecmp(current->vname, vname) == 0) { - char *target; - if (index == INVALID_INDEX) { - (current->value->reference)++; - return current->value; - } - target = makeArrayTarget(vname, current->value, index); - if (target) { - Value *element = NewValue(current->value->type, 1); - if (!element) { - fprintf(stderr, "MEMORY ERROR!\n"); - *error = 1; - } - argFreeData(element); - element->data = target; - element->type |= ArgStatic; - return element; - } - *error = 1; - return NULL; - } - } - return NULL; -} - -static CK_RV -list(void) -{ - Variable *current; - - if (varHead) { - printf(" %10s\t%16s\t%8s\tSize\tElements\n","Name","Type","Const"); - } else { - printf(" no variables set\n"); - } - - for (current = varHead; current; current = current->next) { - printf(" %10s\t%16s\t%8s\t%d\t%d\n", current->vname, - valueString[current->value->type&ArgMask], - constTypeString[current->value->constType], - current->value->size, current->value->arraySize); - } - return CKR_OK; -} - -CK_RV -printFlags(const char *s, CK_ULONG flags, ConstType type) -{ - CK_ULONG i; - int needComma = 0; - - printf("%s",s); - for (i=1; i ; i=i << 1) { - if (flags & i) { - printf("%s",needComma?",":""); - printConst(i, type, 0); - needComma=1; - } - } - if (!needComma) { - printf("Empty"); - } - printf("\n"); - return CKR_OK; -} - -/* - * add a new variable to the chain - */ -const char * -AddVariable(const char *bp, Value **ptr) -{ - char vname[512]; - Variable *current; - int index = INVALID_INDEX; - int size; - int error = 0; - - bp = readChars(bp,vname,sizeof(vname)); - - /* don't make numbers into variables */ - if (isNum(vname[0])) { - return bp; - } - /* or consts */ - if (isConst(vname)) { - return bp; - } - /* or NULLs */ - if (vname[0] == 0) { - return bp; - } - /* or sizeof */ - if (isSize(vname, NULL)) { - return bp; - } - /* arrays values should be written back to the original */ - index = handleArray(vname, &error); - if (error == 1) { - return bp; - } - - - for (current = varHead; current; current = current->next) { - if (PL_strcasecmp(current->vname,vname) == 0) { - char *target; - /* found a complete object, return the found one */ - if (index == INVALID_INDEX) { - argFree(*ptr); - *ptr = current->value; - return bp; - } - /* found an array, update the array element */ - target = makeArrayTarget(vname, current->value, index); - if (target) { - memcpy(target, (*ptr)->data, (*ptr)->size); - argFreeData(*ptr); - (*ptr)->data = target; - (*ptr)->type |= ArgStatic; - } - return bp; - } - } - - /* we are looking for an array and didn't find one */ - if (index != INVALID_INDEX) { - return bp; - } - - - current = (Variable *)malloc(sizeof(Variable)); - size = strlen(vname); - current->vname = (char *)malloc(size+1); - strcpy(current->vname,vname); - current->value = *ptr; - (*ptr)->reference++; - - current->next = varHead; - varHead = current; - return bp; -} - -ArgType -FindTypeByName(const char *typeName) -{ - int i; - - for (i=0; i < valueCount; i++) { - if (PL_strcasecmp(typeName,valueString[i]) == 0) { - return (ArgType) i; - } - if (valueString[i][0] == 'C' && valueString[i][1] == 'K' && - valueString[i][2] == '_' && - (PL_strcasecmp(typeName,&valueString[i][3]) == 0)) { - return (ArgType) i; - } - } - return ArgNone; -} - -CK_RV -ArrayVariable(const char *bp, const char *typeName, CK_ULONG count) -{ - ArgType type; - Value *value; /* new Value */ - - type = FindTypeByName(typeName); - if (type == ArgNone) { - fprintf(stderr,"Invalid type (%s)\n", typeName); - return CKR_FUNCTION_FAILED; - } - value = NewValue(type, count); - (void) AddVariable(bp, &value); - return CKR_OK; -} - -#define MAX_TEMPLATE 25 - -CK_RV -ArrayTemplate(const char *bp, char *attributes) -{ - char aname[512]; - CK_ULONG attributeTypes[MAX_TEMPLATE]; - CK_ATTRIBUTE *template; - Value *value; /* new Value */ - char *ap; - int i, count = 0; - - memcpy(aname,attributes,strlen(attributes)+1); - - for (ap = aname, count = 0; ap && *ap && count < MAX_TEMPLATE; count++) { - char *cur = ap; - ConstType type; - - ap = strchr(ap,','); - if (ap) { - *ap++ = 0; - } - - (void)constLookup(cur, &attributeTypes[count], &type); - if ((type != ConstAttribute) && (type != ConstNone)) { - fprintf(stderr, "Unknown Attribute %s\n", cur); - return CKR_FUNCTION_FAILED; - } - } - - value = NewValue(ArgAttribute, count); - - template = (CK_ATTRIBUTE *)value->data; - for (i=0; i < count ; i++) { - template[i].type = attributeTypes[i]; - } - (void) AddVariable(bp, &value); - return CKR_OK; -} - -CK_RV -BuildTemplate(Value *vp) -{ - CK_ATTRIBUTE *template = (CK_ATTRIBUTE *)vp->data; - int i; - - for (i=0; i < vp->arraySize; i++) { - if (((signed long)template[i].ulValueLen) > 0) { - if (template[i].pValue) free(template[i].pValue); - template[i].pValue = malloc(template[i].ulValueLen); - } - } - return CKR_OK; -} - -CK_RV -SetTemplate(Value *vp, CK_ULONG index, CK_ULONG value) -{ - CK_ATTRIBUTE *template = (CK_ATTRIBUTE *)vp->data; - int isbool = 0; - CK_ULONG len; - ConstType attrType; - - if (index >= (CK_ULONG) vp->arraySize) { - fprintf(stderr,"index (%lu) greater than array (%d)\n", - index, vp->arraySize); - return CKR_ARGUMENTS_BAD; - } - attrType = getConstFromAttribute(template[index].type); - - if (attrType == ConstNone) { - fprintf(stderr,"can't set index (%lu) because ", index); - printConst(template[index].type,ConstAttribute, 0); - fprintf(stderr, " is not a CK_BBOOL or CK_ULONG\n"); - return CKR_ARGUMENTS_BAD; - } - isbool = (attrType == ConstBool); - len = isbool ? sizeof (CK_BBOOL) : sizeof(CK_ULONG); - if ((template[index].ulValueLen != len) || (template[index].pValue)) { - free(template[index].pValue); - template[index].pValue = malloc(len); - template[index].ulValueLen = len; - } - if (isbool) { - *(CK_BBOOL *)template[index].pValue = (CK_BBOOL) value; - } else { - *(CK_ULONG *)template[index].pValue = (CK_ULONG) value; - } - return CKR_OK; - -} - -CK_RV -NewMechanism(const char *bp, CK_ULONG mechType) -{ - Value *value; /* new Value */ - CK_MECHANISM *mechanism; - - value = NewValue(ArgMechanism, 1); - mechanism = (CK_MECHANISM *)value->data; - mechanism->mechanism = mechType; - mechanism->pParameter = NULL; - mechanism->ulParameterLen = 0; - (void) AddVariable(bp, &value); - return CKR_OK; -} - -CK_RV -NewInitializeArgs(const char *bp, CK_ULONG flags, const char *param) -{ - Value *value; /* new Value */ - CK_C_INITIALIZE_ARGS *init; - - value = NewValue(ArgInitializeArgs, 1); - init = (CK_C_INITIALIZE_ARGS *)value->data; - init->flags = flags; - if (strcmp(param, "null") != 0) { - init->LibraryParameters = (CK_CHAR_PTR *)strdup(param); - } - (void) AddVariable(bp, &value); - return CKR_OK; -} - -/* - * add a new variable to the chain - */ -CK_RV -DeleteVariable(const char *bp) -{ - char vname[512]; - Variable **current; - - bp = readChars(bp,vname,sizeof(vname)); - - for (current = &varHead; *current; current = &(*current)->next) { - if (PL_strcasecmp((*current)->vname,vname) == 0) { - argFree((*current)->value); - *current = (*current)->next; - break; - } - } - return CKR_OK; -} - -/* - * convert an octal value to integer - */ -CK_ULONG -otoi(const char *o) -{ - CK_ULONG value = 0; - - while (*o) { - if ((*o >= '0') && (*o <= '7')) { - value = (value << 3) | (unsigned)(*o - '0'); - } else { - break; - } - } - return value; -} - -/* - * convert a hex value to integer - */ -CK_ULONG -htoi(const char *x) -{ - CK_ULONG value = 0; - - while (*x) { - if ((*x >= '0') && (*x <= '9')) { - value = (value << 4) | (unsigned)(*x - '0'); - } else if ((*x >= 'a') && (*x <= 'f')) { - value = (value << 4) | (unsigned)(*x - 'a'); - } else if ((*x >= 'A') && (*x <= 'F')) { - value = (value << 4) | (unsigned)(*x - 'A'); - } else { - break; - } - } - return value; -} - - -/* - * look up or decode a constant value - */ -const char * -constLookup(const char *bp, CK_ULONG *value, ConstType *type) -{ - char vname[512]; - int i; - - bp = readChars(bp,vname,sizeof(vname)); - - for (i=0; i < constCount; i++) { - if ((PL_strcasecmp(consts[i].name,vname) == 0) || - PL_strcasecmp(consts[i].name+5,vname) == 0) { - *value = consts[i].value; - *type = consts[i].type; - return bp; - } - } - - *type = ConstNone; - if (vname[0] == '0' && vname[1] == 'X') { - *value = htoi(&vname[2]); - } else if (vname[0] == '0') { - *value = otoi(&vname[1]); - } else { - *value = atoi(vname); - } - return bp; -} - -int -ArgSize(ArgType type) -{ - int size=0; - type &= ArgMask; - - switch (type) { - case ArgNone: - size = 0; - break; - case ArgULong: - size = sizeof(CK_ULONG); - break; - case ArgVar: - size = 1; /* get's changed later */ - break; - case ArgChar: - case ArgUTF8: - size = 1; - break; - case ArgInfo: - size = sizeof(CK_INFO); - break; - case ArgSlotInfo: - size = sizeof(CK_SLOT_INFO); - break; - case ArgTokenInfo: - size = sizeof(CK_TOKEN_INFO); - break; - case ArgSessionInfo: - size = sizeof(CK_SESSION_INFO); - break; - case ArgAttribute: - size = sizeof(CK_ATTRIBUTE); - break; - case ArgMechanism: - size = sizeof(CK_MECHANISM); - break; - case ArgMechanismInfo: - size = sizeof(CK_MECHANISM_INFO); - break; - case ArgInitializeArgs: - size = sizeof(CK_C_INITIALIZE_ARGS); - break; - case ArgFunctionList: - size = sizeof(CK_FUNCTION_LIST); - break; - default: - break; - } - - return (size); -} - -CK_RV -restore(const char *filename,Value *ptr) -{ - int fd,size; - - fd = open(filename,O_RDONLY|O_BINARY); - if (fd < 0) { - perror(filename); - return CKR_FUNCTION_FAILED; - } - - size = read(fd,ptr->data,ptr->size); - if (systemFlags & FLAG_VerifyFile) { - printDump(ptr->data,ptr->size); - } - if (size < 0) { - perror(filename); - return CKR_FUNCTION_FAILED; - } else if (size != ptr->size) { - fprintf(stderr,"%s: only read %d bytes, needed to read %d bytes\n", - filename,size,ptr->size); - return CKR_FUNCTION_FAILED; - } - close(fd); - return CKR_OK; -} - -CK_RV -save(const char *filename,Value *ptr) -{ - int fd,size; - - fd = open(filename,O_WRONLY|O_BINARY|O_CREAT,0666); - if (fd < 0) { - perror(filename); - return CKR_FUNCTION_FAILED; - } - - size = write(fd,ptr->data,ptr->size); - if (size < 0) { - perror(filename); - return CKR_FUNCTION_FAILED; - } else if (size != ptr->size) { - fprintf(stderr,"%s: only wrote %d bytes, need to write %d bytes\n", - filename,size,ptr->size); - return CKR_FUNCTION_FAILED; - } - close(fd); - return CKR_OK; -} - -static CK_RV -increment(Value *ptr, CK_ULONG value) -{ - if ((ptr->type & ArgMask) != ArgULong) { - return CKR_ARGUMENTS_BAD; - } - *(CK_ULONG *)ptr->data += value; - return CKR_OK; -} - -static CK_RV -decrement(Value *ptr, CK_ULONG value) -{ - if ((ptr->type & ArgMask) != ArgULong) { - return CKR_ARGUMENTS_BAD; - } - *(CK_ULONG *)ptr->data -= value; - return CKR_OK; -} - -CK_RV -printArg(Value *ptr,int arg_number) -{ - ArgType type = ptr->type & ArgMask; - CK_INFO *info; - CK_SLOT_INFO *slotInfo; - CK_TOKEN_INFO *tokenInfo; - CK_SESSION_INFO *sessionInfo; - CK_ATTRIBUTE *attribute; - CK_MECHANISM *mechanism; - CK_MECHANISM_INFO *mechanismInfo; - CK_C_INITIALIZE_ARGS *initArgs; - CK_FUNCTION_LIST *functionList; - CK_RV ckrv = CKR_OK; - ConstType constType; - - if (arg_number) { - printf("Arg %d: \n",arg_number); - } - if (ptr->arraySize > 1) { - Value element; - int i; - int elementSize = ptr->size/ptr->arraySize; - char *dp = (char *)ptr->data; - - /* build a temporary Value to hold a single element */ - element.type = type; - element.constType = ptr->constType; - element.size = elementSize; - element.filename = ptr->filename; - element.reference = 1; - element.arraySize = 1; - for (i=0; i < ptr->arraySize; i++) { - printf(" -----[ %d ] -----\n", i); - element.data = (void *) &dp[i*elementSize]; - (void) printArg(&element, 0); - } - return ckrv; - } - if (ptr->data == NULL) { - printf(" NULL ptr to a %s\n", valueString[type]); - return ckrv; - } - switch (type) { - case ArgNone: - printf(" None\n"); - break; - case ArgULong: - printf(" %lu (0x%lx)\n", *((CK_ULONG *)ptr->data), - *((CK_ULONG *)ptr->data)); - if (ptr->constType != ConstNone) { - printf(" "); - printConst(*(CK_ULONG *)ptr->data,ptr->constType,1); - } - break; - case ArgVar: - printf(" %s\n",(char *)ptr->data); - break; - case ArgUTF8: - printf(" %s\n",(char *)ptr->data); - break; - case ArgChar: - printDump(ptr->data,ptr->size); - break; - case ArgInfo: -#define VERSION(x) (x).major, (x).minor - info = (CK_INFO *)ptr->data; - printf(" Cryptoki Version: %d.%02d\n", - VERSION(info->cryptokiVersion)); - printf(" Manufacturer ID: "); - printChars(info->manufacturerID,sizeof(info->manufacturerID)); - printFlags(" Flags: ", info->flags, ConstInfoFlags); - printf(" Library Description: "); - printChars(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)); - printf(" Manufacturer ID: "); - printChars(slotInfo->manufacturerID,sizeof(slotInfo->manufacturerID)); - printFlags(" Flags: ", slotInfo->flags, ConstSlotFlags); - printf(" Hardware Version: %d.%02d\n", - VERSION(slotInfo->hardwareVersion)); - printf(" Firmware Version: %d.%02d\n", - VERSION(slotInfo->firmwareVersion)); - break; - case ArgTokenInfo: - tokenInfo = (CK_TOKEN_INFO *)ptr->data; - printf(" Label: "); - printChars(tokenInfo->label,sizeof(tokenInfo->label)); - printf(" Manufacturer ID: "); - printChars(tokenInfo->manufacturerID,sizeof(tokenInfo->manufacturerID)); - printf(" Model: "); - printChars(tokenInfo->model,sizeof(tokenInfo->model)); - printf(" Serial Number: "); - printChars(tokenInfo->serialNumber,sizeof(tokenInfo->serialNumber)); - printFlags(" Flags: ", tokenInfo->flags, ConstTokenFlags); - printf(" Max Session Count: "); - printConst(tokenInfo->ulMaxSessionCount, ConstAvailableSizes, 1); - printf(" Session Count: "); - printConst(tokenInfo->ulSessionCount, ConstCurrentSize, 1); - printf(" RW Session Count: "); - printConst(tokenInfo->ulMaxRwSessionCount, ConstAvailableSizes, 1); - printf(" Max Pin Length : "); - printConst(tokenInfo->ulMaxPinLen, ConstCurrentSize, 1); - printf(" Min Pin Length : "); - printConst(tokenInfo->ulMinPinLen, ConstCurrentSize, 1); - printf(" Total Public Memory: "); - printConst(tokenInfo->ulTotalPublicMemory, ConstAvailableSizes, 1); - printf(" Free Public Memory: "); - printConst(tokenInfo->ulFreePublicMemory, ConstCurrentSize, 1); - printf(" Total Private Memory: "); - printConst(tokenInfo->ulTotalPrivateMemory, ConstAvailableSizes, 1); - printf(" Free Private Memory: "); - printConst(tokenInfo->ulFreePrivateMemory, ConstCurrentSize, 1); - printf(" Hardware Version: %d.%02d\n", - VERSION(tokenInfo->hardwareVersion)); - printf(" Firmware Version: %d.%02d\n", - VERSION(tokenInfo->firmwareVersion)); - printf(" UTC Time: "); - printChars(tokenInfo->utcTime,sizeof(tokenInfo->utcTime)); - break; - case ArgSessionInfo: - sessionInfo = (CK_SESSION_INFO *)ptr->data; - printf(" SlotID: 0x%08lx\n", sessionInfo->slotID); - printf(" State: "); - printConst(sessionInfo->state, ConstSessionState, 1); - printFlags(" Flags: ", sessionInfo->flags, ConstSessionFlags); - printf(" Device error: %lu 0x%08lx\n",sessionInfo->ulDeviceError, - sessionInfo->ulDeviceError); - break; - case ArgAttribute: - attribute = (CK_ATTRIBUTE *)ptr->data; - printf(" Attribute Type: "); - printConst(attribute->type, ConstAttribute, 1); - printf(" Attribute Data: "); - if (attribute->pValue == NULL) { - printf("NULL\n"); - printf("Attribute Len: %lu\n",attribute->ulValueLen); - } else { - constType = getConstFromAttribute(attribute->type); - if (constType != ConstNone) { - CK_ULONG value = (constType == ConstBool) ? - *(CK_BBOOL *)attribute->pValue : - *(CK_ULONG *)attribute->pValue; - printConst(value, constType, 1); - } else { - printf("\n"); - printDump(attribute->pValue, attribute->ulValueLen); - } - } - break; - case ArgMechanism: - mechanism = (CK_MECHANISM *)ptr->data; - printf(" Mechanism Type: "); - printConst(mechanism->mechanism, ConstMechanism, 1); - printf(" Mechanism Data:\n"); - printDump(mechanism->pParameter, mechanism->ulParameterLen); - break; - case ArgMechanismInfo: - mechanismInfo = (CK_MECHANISM_INFO *)ptr->data; - printf(" Minimum Key Size: %ld\n",mechanismInfo->ulMinKeySize); - printf(" Maximum Key Size: %ld\n",mechanismInfo->ulMaxKeySize); - printFlags(" Flags: ", mechanismInfo->flags, ConstMechanismFlags); - break; - case ArgInitializeArgs: - initArgs = (CK_C_INITIALIZE_ARGS *)ptr->data; - printFlags(" Flags: ", initArgs->flags, ConstInitializeFlags); - if (initArgs->LibraryParameters) { - printf("Params: %s\n",initArgs->LibraryParameters); - } - case ArgFunctionList: - functionList = (CK_FUNCTION_LIST *)ptr->data; - printf(" Version: %d.%02d\n", VERSION(functionList->version)); -#ifdef notdef -#undef CK_NEED_ARG_LIST -#define CK_PKCS11_FUNCTION_INFO(func) \ - printf(" %s: 0x%08lx\n", #func, (unsigned long) functionList->func ); -#include "pkcs11f.h" -#undef CK_NEED_ARG_LIST -#undef CK_PKCS11_FUNCTION_INFO -#endif - default: - ckrv = CKR_ARGUMENTS_BAD; - break; - } - - return ckrv; -} - - -/* - * Feeling ambitious? turn this whole thing into lexx yacc parser - * with full expressions. - */ -Value ** -parseArgs(int index, const char * bp) -{ - const Commands *cp = &commands[index]; - int size = strlen(cp->fname); - int i; - CK_ULONG value; - char vname[512]; - Value **argList,*possible; - ConstType constType; - - /* - * skip pass the command - */ - if ((cp->fname[0] == 'C') && (cp->fname[1] == '_') && (bp[1] != '_')) { - size -= 2; - } - bp += size; - - /* - * Initialize our argument list - */ - argList = (Value **)malloc(sizeof(Value*)*MAX_ARGS); - for (i=0; i < MAX_ARGS; i++) { argList[i] = NULL; } - - /* - * Walk the argument list parsing it... - */ - for (i=0 ;i < MAX_ARGS; i++) { - ArgType type = cp->args[i] & ArgMask; - int error; - - /* strip blanks */ - bp = strip(bp); - - /* if we hit ArgNone, we've nabbed all the arguments we need */ - if (type == ArgNone) { - break; - } - - /* if we run out of space in the line, we weren't given enough - * arguments... */ - if (*bp == '\0') { - /* we're into optional arguments, ok to quit now */ - if (cp->args[i] & ArgOpt) { - break; - } - fprintf(stderr,"%s: only %d args found,\n",cp->fname,i); - parseFree(argList); - return NULL; - } - - /* collect all the rest of the command line and send - * it as a single argument */ - if (cp->args[i] & ArgFull) { - int size = strlen(bp)+1; - argList[i] = NewValue(type, size); - memcpy(argList[i]->data, bp, size); - break; - } - - /* - * look up the argument in our variable list first... only - * exception is the new argument type for set... - */ - error = 0; - if ((cp->args[i] != (ArgVar|ArgNew)) && - (possible = varLookup(bp,vname,sizeof(vname),&error))) { - /* ints are only compatible with other ints... all other types - * are interchangeable... */ - if (type != ArgVar) { /* ArgVar's match anyone */ - if ((type == ArgULong) ^ - ((possible->type & ArgMask) == ArgULong)) { - fprintf(stderr,"%s: Arg %d incompatible type with <%s>\n", - cp->fname,i+1,vname); - argFree(possible); - parseFree(argList); - return NULL; - } - /* - * ... that is as long as they are big enough... - */ - if (ArgSize(type) > possible->size) { - fprintf(stderr, - "%s: Arg %d %s is too small (%d bytes needs to be %d bytes)\n", - cp->fname,i+1,vname,possible->size,ArgSize(type)); - argFree(possible); - parseFree(argList); - return NULL; - } - } - - /* everything looks kosher here, use it */ - argList[i] = possible; - - bp = readChars(bp,vname,sizeof(vname)); - if (cp->args[i] & ArgOut) { - possible->type |= ArgOut; - } - continue; - } - - if (error == 1) { - parseFree(argList); - return NULL; - } - - /* create space for our argument */ - argList[i] = NewValue(type, 1); - - if ((PL_strncasecmp(bp, "null", 4) == 0) && ((bp[4] == 0) - || (bp[4] == ' ') || (bp[4] =='\t') || (bp[4] =='\n'))) { - if (cp->args[i] == ArgULong) { - fprintf(stderr, "%s: Arg %d CK_ULONG can't be NULL\n", - cp->fname,i+1); - parseFree(argList); - return NULL; - } - argFreeData(argList[i]); - argList[i]->data = NULL; - argList[i]->size = 0; - bp += 4; - if (*bp) bp++; - continue; - } - - /* if we're an output variable, we need to add it */ - if (cp->args[i] & ArgOut) { - if (PL_strncasecmp(bp,"file(",5) == 0 /* ) */ ) { - char filename[512]; - bp = readChars(bp+5,filename,sizeof(filename)); - size = PL_strlen(filename); - if ((size > 0) && (/* ( */filename[size-1] == ')')) { - filename[size-1] = 0; - } - filename[size] = 0; - argList[i]->filename = (char *)malloc(size+1); - - PL_strcpy(argList[i]->filename,filename); - - argList[i]->type |= ArgOut|ArgFile; - break; - } - bp = AddVariable(bp,&argList[i]); - argList[i]->type |= ArgOut; - continue; - } - - if (PL_strncasecmp(bp, "file(", 5) == 0 /* ) */ ) { - char filename[512]; - - bp = readChars(bp+5,filename,sizeof(filename)); - size = PL_strlen(filename); - if ((size > 0) && ( /* ( */ filename[size-1] == ')')) { - filename[size-1] = 0; - } - - if (restore(filename,argList[i]) != CKR_OK) { - parseFree(argList); - return NULL; - } - continue; - } - - switch (type) { - case ArgULong: - bp = constLookup(bp, &value, &constType); - *(int *)argList[i]->data = value; - argList[i]->constType = constType; - break; - case ArgVar: - argFreeData(argList[i]); - size = getEnd(bp)+1; - argList[i]->data = (void *)malloc(size); - argList[i]->size = size; - /* fall through */ - case ArgInfo: - case ArgSlotInfo: - case ArgTokenInfo: - case ArgSessionInfo: - case ArgAttribute: - case ArgMechanism: - case ArgMechanismInfo: - case ArgInitializeArgs: - case ArgUTF8: - case ArgChar: - bp = readChars(bp,(char *)argList[i]->data,argList[i]->size); - case ArgNone: - default: - break; - } - } - - return argList; -} - -/* lookup the command in the array */ -int -lookup(const char *buf) -{ - int size,i; - int buflen; - - buflen = PL_strlen(buf); - - for ( i = 0; i < commandCount; i++) { - size = PL_strlen(commands[i].fname); - - if (size <= buflen) { - if (PL_strncasecmp(buf,commands[i].fname,size) == 0) { - return i; - } - } - if (size-2 <= buflen) { - if (commands[i].fname[0] == 'C' && commands[i].fname[1] == '_' && - (PL_strncasecmp(buf,&commands[i].fname[2],size-2) == 0)) { - return i; - } - } - } - fprintf(stderr,"Can't find command %s\n",buf); - return -1; -} - -void -putOutput(Value **ptr) -{ - int i; - - for (i=0; i < MAX_ARGS; i++) { - ArgType type; - - if (ptr[i] == NULL) break; - - type = ptr[i]->type; - - ptr[i]->type &= ~ArgOut; - if (type == ArgNone) { - break; - } - if (type & ArgOut) { - (void) printArg(ptr[i],i+1); - } - if (type & ArgFile) { - save(ptr[i]->filename,ptr[i]); - free(ptr[i]->filename); - ptr[i]->filename= NULL; /* paranoia */ - } - } -} - -CK_RV -unloadModule(Module *module) -{ - - if (module->library) { - PR_UnloadLibrary(module->library); - } - - module->library = NULL; - module->functionList = NULL; - - return CKR_OK; -} - -CK_RV -loadModule(Module *module, char *library) -{ - PRLibrary *newLibrary; - CK_C_GetFunctionList getFunctionList; - CK_FUNCTION_LIST *functionList; - CK_RV ckrv; - - newLibrary = PR_LoadLibrary(library); - if (!newLibrary) { - fprintf(stderr,"Couldn't load library %s\n",library); - return CKR_FUNCTION_FAILED; - } - getFunctionList = (CK_C_GetFunctionList) - PR_FindSymbol(newLibrary,"C_GetFunctionList"); - if (!getFunctionList) { - fprintf(stderr,"Couldn't find \"C_GetFunctionList\" in %s\n",library); - return CKR_FUNCTION_FAILED; - } - - ckrv = (*getFunctionList)(&functionList); - if (ckrv != CKR_OK) { - return ckrv; - } - - if (module->library) { - PR_UnloadLibrary(module->library); - } - - module->library = newLibrary; - module->functionList = functionList; - - return CKR_OK; -} - -static void -printHelp(int index, int full) -{ - int j; - printf(" %s", commands[index].fname); - for (j=0; j < MAX_ARGS; j++) { - ArgType type = commands[index].args[j] & ArgMask; - if (type == ArgNone) { - break; - } - printf(" %s", valueString[type]); - } - printf("\n"); - printf(" %s\n",commands[index].helpString); -} - -/* add Topical help here ! */ -static CK_RV -printTopicHelp(char *topic) -{ - int size,i; - int topicLen; - - topicLen = PL_strlen(topic); - - for ( i = 0; i < topicCount; i++) { - size = PL_strlen(topics[i].name); - - if (size <= topicLen) { - if (PL_strncasecmp(topic,topics[i].name,size) == 0) { - break; - } - } - } - - if (i == topicCount) { - fprintf(stderr,"Can't find topic '%s'\n", topic); - return CKR_DATA_INVALID; - } - - printf(" %s", topic); - printf("\n"); - printf(" %s\n",topics[i].helpString); - return CKR_OK; -} - -static CK_RV -printGeneralHelp(void) -{ - int i; - printf(" To get help on commands, select from the list below:"); - for ( i = 0; i < commandCount; i++) { - if (i % 5 == 0) printf("\n"); - printf("%s,", commands[i].fname); - } - printf("\n"); - /* print help topics */ - printf(" To get help on a topic, select from the list below:"); - for ( i = 0; i < topicCount; i++) { - if (i % 5 == 0) printf("\n"); - printf("%s,", topics[i].name); - } - printf("\n"); - return CKR_OK; -} - -static CK_RV -quitIf(CK_ULONG a, const char *cmp, CK_ULONG b) -{ - if (strcmp(cmp, "<") == 0) { - return (a < b) ? CKR_QUIT : CKR_OK; - } else if (strcmp(cmp, ">") == 0) { - return (a > b) ? CKR_QUIT : CKR_OK; - } else if (strcmp(cmp, "<=") == 0) { - return (a <= b) ? CKR_QUIT : CKR_OK; - } else if (strcmp(cmp, ">=") == 0) { - return (a >= b) ? CKR_QUIT : CKR_OK; - } else if (strcmp(cmp, "=") == 0) { - return (a == b) ? CKR_QUIT : CKR_OK; - } else if (strcmp(cmp, "!=") == 0) { - return (a != b) ? CKR_QUIT : CKR_OK; - } - printf("Unkown integer comparator: '%s'\n", cmp); - return CKR_ARGUMENTS_BAD; -} - -static CK_RV -quitIfString(const char *a, const char *cmp, const char *b) -{ - - if (strcmp(cmp, "=") == 0) { - return (strcmp(a,b) == 0) ? CKR_QUIT : CKR_OK; - } else if (strcmp(cmp, "!=") == 0) { - return (strcmp(a,b) != 0) ? CKR_QUIT : CKR_OK; - } - printf("Unkown string comparator: '%s'\n", cmp); - return CKR_ARGUMENTS_BAD; -} - -CK_RV run(const char *); -CK_RV timeCommand(const char *); -CK_RV loop(const char *filename, const char *var, - CK_ULONG start, CK_ULONG end, CK_ULONG step) ; - -/* - * Actually dispatch the function... Bad things happen - * if these don't match the commands array. - */ -CK_RV -do_func(int index, Value **a) -{ - int value, helpIndex; - static Module module = { NULL, NULL} ; - CK_FUNCTION_LIST *func = module.functionList; - - switch (commands[index].fType) { - case F_C_Initialize: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_Initialize((void *)a[0]->data); - case F_C_Finalize: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_Finalize((void *)a[0]->data); - case F_C_GetInfo: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GetInfo((CK_INFO *)a[0]->data); - case F_C_GetFunctionList: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GetFunctionList((CK_FUNCTION_LIST **)a[0]->data); - case F_C_GetSlotList: - 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); - case F_C_GetSlotInfo: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GetSlotInfo(*(CK_ULONG *)a[0]->data, - (CK_SLOT_INFO *)a[1]->data); - case F_C_GetTokenInfo: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GetTokenInfo(*(CK_ULONG *)a[0]->data, - (CK_TOKEN_INFO *)a[1]->data); - case F_C_GetMechanismList: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - if (a[1]->data) { - a[1]->constType = ConstMechanism; - } - return func->C_GetMechanismList(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM_TYPE*)a[1]->data, - (CK_ULONG *)a[2]->data); - case F_C_GetMechanismInfo: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GetMechanismInfo(*(CK_ULONG *)a[0]->data, - *(CK_ULONG *)a[1]->data, - (CK_MECHANISM_INFO *)a[2]->data); - case F_C_InitToken: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_InitToken(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data); - case F_C_InitPIN: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_InitPIN(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_SetPIN: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_SetPIN(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - *(CK_ULONG *)a[4]->data); - case F_C_OpenSession: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_OpenSession(*(CK_ULONG *)a[0]->data, - *(CK_ULONG *)a[1]->data, - (void *)NULL, - (CK_NOTIFY) NULL, - (CK_ULONG *)a[2]->data); - case F_C_CloseSession: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_CloseSession(*(CK_ULONG *)a[0]->data); - case F_C_CloseAllSessions: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_CloseAllSessions(*(CK_ULONG *)a[0]->data); - case F_C_GetSessionInfo: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GetSessionInfo(*(CK_ULONG *)a[0]->data, - (CK_SESSION_INFO *)a[1]->data); - case F_C_GetOperationState: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GetOperationState(*(CK_ULONG *)a[0]->data, - (CK_BYTE *)a[1]->data, - (CK_ULONG *)a[2]->data); - case F_C_SetOperationState: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_SetOperationState(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - *(CK_ULONG *)a[3]->data, - *(CK_ULONG *)a[4]->data); - case F_C_Login: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_Login(*(CK_ULONG *)a[0]->data, - *(CK_ULONG *)a[1]->data, - (CK_CHAR *)a[2]->data, - *(CK_ULONG *)a[3]->data); - case F_C_Logout: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_Logout(*(CK_ULONG *)a[0]->data); - case F_C_CreateObject: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_CreateObject(*(CK_ULONG *)a[0]->data, - (CK_ATTRIBUTE *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_ULONG *)a[3]->data); - case F_C_CopyObject: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_CopyObject(*(CK_ULONG *)a[0]->data, - *(CK_ULONG *)a[0]->data, - (CK_ATTRIBUTE *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_ULONG *)a[3]->data); - case F_C_DestroyObject: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DestroyObject(*(CK_ULONG *)a[0]->data, - *(CK_ULONG *)a[1]->data); - case F_C_GetObjectSize: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GetObjectSize(*(CK_ULONG *)a[0]->data, - *(CK_ULONG *)a[1]->data, - (CK_ULONG *)a[2]->data); - case F_C_GetAttributeValue: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GetAttributeValue(*(CK_ULONG *)a[0]->data, - *(CK_ULONG *)a[1]->data, - (CK_ATTRIBUTE *)a[2]->data, - *(CK_ULONG *)a[3]->data); - case F_C_SetAttributeValue: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_SetAttributeValue(*(CK_ULONG *)a[0]->data, - *(CK_ULONG *)a[1]->data, - (CK_ATTRIBUTE *)a[2]->data, - *(CK_ULONG *)a[3]->data); - case F_C_FindObjectsInit: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_FindObjectsInit(*(CK_ULONG *)a[0]->data, - (CK_ATTRIBUTE *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_FindObjects: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_FindObjects(*(CK_ULONG *)a[0]->data, - (CK_ULONG *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_ULONG *)a[3]->data); - case F_C_FindObjectsFinal: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_FindObjectsFinal(*(CK_ULONG *)a[0]->data); - case F_C_EncryptInit: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_EncryptInit(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_Encrypt: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_Encrypt(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_EncryptUpdate: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_EncryptUpdate(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_EncryptFinal: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_EncryptFinal(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - (CK_ULONG *)a[2]->data); - case F_C_DecryptInit: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DecryptInit(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_Decrypt: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_Decrypt(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_DecryptUpdate: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DecryptUpdate(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_DecryptFinal: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DecryptFinal(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - (CK_ULONG *)a[2]->data); - case F_C_DigestInit: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DigestInit(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data); - case F_C_Digest: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_Digest(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_DigestUpdate: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DigestUpdate(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_DigestKey: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DigestKey(*(CK_ULONG *)a[0]->data, - *(CK_ULONG *)a[1]->data); - case F_C_DigestFinal: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DigestFinal(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - (CK_ULONG *)a[2]->data); - case F_C_SignInit: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_SignInit(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_Sign: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_Sign(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_SignUpdate: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_SignUpdate(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_SignFinal: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_SignFinal(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - (CK_ULONG *)a[2]->data); - - case F_C_SignRecoverInit: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_SignRecoverInit(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_SignRecover: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_SignRecover(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_VerifyInit: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_VerifyInit(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_Verify: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_Verify(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - *(CK_ULONG *)a[4]->data); - case F_C_VerifyUpdate: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_VerifyUpdate(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_VerifyFinal: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_VerifyFinal(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data); - - case F_C_VerifyRecoverInit: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_VerifyRecoverInit(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_VerifyRecover: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_VerifyRecover(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_DigestEncryptUpdate: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DigestEncryptUpdate(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_DecryptDigestUpdate: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DecryptDigestUpdate(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_SignEncryptUpdate: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_SignEncryptUpdate(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_DecryptVerifyUpdate: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DecryptVerifyUpdate(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_GenerateKey: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GenerateKey(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - (CK_ATTRIBUTE *)a[2]->data, - *(CK_ULONG *)a[3]->data, - (CK_ULONG *)a[4]->data); - case F_C_GenerateKeyPair: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GenerateKeyPair(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - (CK_ATTRIBUTE *)a[2]->data, - *(CK_ULONG *)a[3]->data, - (CK_ATTRIBUTE *)a[4]->data, - *(CK_ULONG *)a[5]->data, - (CK_ULONG *)a[6]->data, - (CK_ULONG *)a[7]->data); - case F_C_WrapKey: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_WrapKey(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - *(CK_ULONG *)a[2]->data, - *(CK_ULONG *)a[3]->data, - (CK_CHAR *)a[5]->data, - (CK_ULONG *)a[6]->data); - case F_C_UnwrapKey: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_UnwrapKey(*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_CHAR *)a[3]->data, - *(CK_ULONG *)a[4]->data, - (CK_ATTRIBUTE *)a[5]->data, - *(CK_ULONG *)a[6]->data, - (CK_ULONG *)a[7]->data); - case F_C_DeriveKey: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_DeriveKey (*(CK_ULONG *)a[0]->data, - (CK_MECHANISM *)a[1]->data, - *(CK_ULONG *)a[2]->data, - (CK_ATTRIBUTE *)a[3]->data, - *(CK_ULONG *)a[4]->data, - (CK_ULONG *)a[5]->data); - case F_C_SeedRandom: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_SeedRandom(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_GenerateRandom: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GenerateRandom(*(CK_ULONG *)a[0]->data, - (CK_CHAR *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_C_GetFunctionStatus: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_GetFunctionStatus(*(CK_ULONG *)a[0]->data); - case F_C_CancelFunction: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_CancelFunction(*(CK_ULONG *)a[0]->data); - case F_C_WaitForSlotEvent: - if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED; - return func->C_WaitForSlotEvent(*(CK_ULONG *)a[0]->data, - (CK_ULONG *)a[1]->data, - (void *)a[2]->data); - /* set a variable */ - case F_SetVar: - case F_SetStringVar: - (void) DeleteVariable(a[0]->data); - (void) AddVariable(a[0]->data,&a[1]); - return CKR_OK; - /* print a value */ - case F_Print: - return printArg(a[0],0); - case F_SaveVar: - return save(a[0]->data,a[1]); - case F_RestoreVar: - return restore(a[0]->data,a[1]); - case F_Delete: - return DeleteVariable(a[0]->data); - case F_Increment: - return increment(a[0], *(CK_ULONG *)a[1]->data); - case F_Decrement: - return decrement(a[0], *(CK_ULONG *)a[1]->data); - case F_List: - return list(); - case F_Run: - return run(a[0]->data); - case F_Time: - return timeCommand(a[0]->data); - case F_Load: - return loadModule(&module,a[0]->data); - case F_Unload: - return unloadModule(&module); - case F_NewArray: - (void) DeleteVariable(a[0]->data); - return ArrayVariable(a[0]->data,a[1]->data,*(CK_ULONG *)a[2]->data); - case F_NewTemplate: - (void) DeleteVariable(a[0]->data); - return ArrayTemplate(a[0]->data,a[1]->data); - case F_BuildTemplate: - return BuildTemplate(a[0]); - case F_SetTemplate: - return SetTemplate(a[0], - *(CK_ULONG *)a[1]->data, - *(CK_ULONG *)a[2]->data); - case F_NewMechanism: - (void) DeleteVariable(a[0]->data); - return NewMechanism(a[0]->data,*(CK_ULONG *)a[1]->data); - case F_NewInitializeArgs: - (void) DeleteVariable(a[0]->data); - return NewInitializeArgs(a[0]->data,*(CK_ULONG *)a[1]->data,a[2]->data); - case F_System: - value = *(int *)a[0]->data; - if (value & 0x80000000) { - systemFlags &= ~value; - } else { - systemFlags |= value; - } - return CKR_OK; - case F_Loop: - return loop(a[0]->data,a[1]->data,*(CK_ULONG *)a[2]->data, - *(CK_ULONG *)a[3]->data,*(CK_ULONG *)a[4]->data); - case F_Help: - if (a[0]) { - helpIndex = lookup(a[0]->data); - if (helpIndex < 0) { - return printTopicHelp(a[0]->data); - } - printHelp(helpIndex, 1); - return CKR_OK; - } - return printGeneralHelp(); - case F_QuitIfString: - return quitIfString(a[0]->data,a[1]->data,a[2]->data); - case F_QuitIf: - return quitIf(*(CK_ULONG *)a[0]->data,a[1]->data,*(CK_ULONG *)a[2]->data); - case F_Quit: - return CKR_QUIT; - default: - fprintf(stderr, - "Function %s not yet supported\n",commands[index].fname ); - return CKR_OK; - } - /* Not Reached */ - return CKR_OK; -} - -CK_RV -processCommand(const char * buf) -{ - CK_RV error = CKR_OK; - int index; - const char *bp; - Value **arglist; - - bp = strip(buf); - /* allow comments and blank lines in scripts */ - if ((*bp == '#') || (*bp == 0) || (*bp == '\n')){ - return CKR_OK; - } - - index = lookup(bp); - - if (index < 0) { - return CKR_OK; - } - - arglist = parseArgs(index,bp); - if (arglist == NULL) { - return CKR_OK; - } - - error = do_func(index,arglist); - if (error == CKR_OK) { - putOutput(arglist); - } else if (error != CKR_QUIT) { - printf(">> Error : "); - printConst(error, ConstResult, 1); - } - - parseFree(arglist); - return error; -} - -CK_RV -timeCommand(const char *command) -{ - CK_RV ckrv; - PRIntervalTime startTime = PR_IntervalNow(); - PRIntervalTime endTime; - PRIntervalTime elapsedTime; - - ckrv = processCommand(command); - - endTime = PR_IntervalNow(); - elapsedTime = endTime - startTime; - printf("Time -- %d msec \n", - PR_IntervalToMilliseconds(elapsedTime)); - - return ckrv; -} - - - -CK_RV -process(FILE *inFile,int user) -{ - char buf[2048]; - CK_RV error; - CK_RV ckrv = CKR_OK; - - if (user) { printf("pkcs11> "); fflush(stdout); } - - while (fgets(buf,2048,inFile) != NULL) { - - if (!user) printf("* %s",buf); - error = processCommand(buf); - if (error == CKR_QUIT) { - break; - } else if (error != CKR_OK) { - ckrv = error; - } - if (user) { - printf("pkcs11> "); fflush(stdout); - } - } - return ckrv; -} - -CK_RV -run(const char *filename) -{ - FILE *infile; - CK_RV ckrv; - - infile = fopen(filename,"r"); - - if (infile == NULL) { - perror(filename); - return CKR_FUNCTION_FAILED; - } - - ckrv = process(infile, 0); - - fclose(infile); - return ckrv; -} - -CK_RV -loop(const char *filename, const char *var, - CK_ULONG start, CK_ULONG end, CK_ULONG step) -{ - CK_ULONG i = 0; - Value *value = 0; - CK_RV ckrv; - - for (i=start; i < end; i += step) - { - value = NewValue(ArgULong, 1); - *(CK_ULONG *)value->data = i; - DeleteVariable(var); - AddVariable(var, &value); - ckrv = run(filename); - argFree(value); - if (ckrv == CKR_QUIT) { - break; - } - } - return ckrv; -} - -int -main(int argc, char **argv) -{ - /* I suppose that some day we could parse some arguments */ - (void) process(stdin, 1); - return 0; -} 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 <pkcs11.h> -#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; - diff --git a/security/nss/cmd/pk11util/scripts/dosign b/security/nss/cmd/pk11util/scripts/dosign deleted file mode 100644 index 33e761f0b..000000000 --- a/security/nss/cmd/pk11util/scripts/dosign +++ /dev/null @@ -1,162 +0,0 @@ -Load nsscapi.dll -C_Initialize NULL -C_GetSlotList false NULL slotCount -NewArray slotList CK_ULONG slotCount -C_GetSlotList false slotList slotCount -#change the following to the appropriate slot id -set slotID 1 -#set slotID slotList[0] -C_GetSlotInfo slotID slotInfo -C_GetTokenInfo slotID tokenInfo -C_OpenSession slotID CKF_SERIAL_SESSION session -# -#uncomment the following line and include the correct password -#C_Login session CKU_USER 0000 4 -# -# build the search template -# -NewTemplate search CKA_CLASS -SetTemplate search 0 CKO_CERTIFICATE -NewArray certID CK_ULONG 10 -C_FindObjectsInit session search 1 -C_FindObjects session certID sizeA(certID) count -C_FindObjectsFinal session -# -# now read the cert out -# -#NewTemplate derCert CKA_VALUE -#NewTemplate certName CKA_LABEL,CKA_VALUE -#C_GetAttributeValue session certID[0] certName sizeA(certName) -#BuildTemplate certName -#C_GetAttributeValue session certID[0] certName sizeA(certName) -#print certName[0] -Set countm1 count -Decrement countm1 1 -LoopRun pLabel1 i 0 countm1 1 -Set i 1 -run pLabel1 -NewTemplate id CKA_CLASS,CKA_ID -C_GetAttributeValue session certID[i] id sizeA(id) -BuildTemplate id -C_GetAttributeValue session certID[i] id sizeA(id) -SetTemplate id 0 CKO_PRIVATE_KEY -NewArray keyID CK_ULONG 10 -C_FindObjectsInit session id sizeA(id) -C_FindObjects session keyID sizeA(keyID) count -C_FindObjectsFinal session - -NewMechanism rsaParams CKM_RSA_PKCS -NewArray sign data 256 -NewArray sdata data 36 -C_SignInit session rsaParams keyID[0] -print sdata -C_Sign session sdata sizeof(sdata) sign sizeof(sign) -save signature sign -save hash sdata -NewTemplate privValue CKA_MODULUS,CKA_PUBLIC_EXPONENT -C_GetAttributeValue session keyID[0] privValue sizeA(privValue) -BuildTemplate privValue -C_GetAttributeValue session keyID[0] privValue sizeA(privValue) -print privValue[0] -print privValue[1] - -# save the public key -SetTemplate id 0 CKO_PUBLIC_KEY -NewArray pubkeyID CK_ULONG 10 -C_FindObjectsInit session id sizeA(id) -C_FindObjects session pubkeyID sizeA(pubkeyID) count -C_FindObjectsFinal session -NewTemplate pubkeyValue CKA_MODULUS,CKA_PUBLIC_EXPONENT -C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) -BuildTemplate pubkeyValue -C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) -print pubkeyValue[0] -print pubkeyValue[1] - - -C_Finalize null -unload - -# -# Now do the same for using softoken -# -load softokn3.dll -NewInitArg init CKF_OS_LOCKING_OK configdir=./db -C_Initialize init -C_GetSlotList false NULL slotCount -NewArray slotList CK_ULONG slotCount -C_GetSlotList false slotList slotCount -#change the following to the appropriate slot id -set slotID slotList[1] -#set slotID slotList[0] -C_GetSlotInfo slotID slotInfo -C_GetTokenInfo slotID tokenInfo -C_OpenSession slotID CKF_SERIAL_SESSION session -NewTemplate search CKA_CLASS -SetTemplate search 0 CKO_CERTIFICATE -NewArray certID CK_ULONG 10 -C_FindObjectsInit session search 1 -C_FindObjects session certID sizeA(certID) count -C_FindObjectsFinal session -# -# now read the cert out -# -#NewTemplate derCert CKA_VALUE -#NewTemplate certName CKA_LABEL,CKA_VALUE -#C_GetAttributeValue session certID[0] certName sizeA(certName) -#BuildTemplate certName -#C_GetAttributeValue session certID[0] certName sizeA(certName) -#print certName[0] -#Set countm1 count -#Decrement countm1 1 -#LoopRun pLabel1 i 0 countm1 1 -Set i 0 -run pLabel1 -NewTemplate id CKA_CLASS,CKA_ID -C_GetAttributeValue session certID[i] id sizeA(id) -BuildTemplate id -C_GetAttributeValue session certID[i] id sizeA(id) -SetTemplate id 0 CKO_PRIVATE_KEY -NewArray keyID CK_ULONG 10 -C_FindObjectsInit session id sizeA(id) -C_FindObjects session keyID sizeA(keyID) count -C_FindObjectsFinal session - -NewMechanism rsaParams CKM_RSA_PKCS -NewArray sign data 256 -NewArray sdata data 36 -C_SignInit session rsaParams keyID[0] -C_Sign session sdata sizeof(sdata) sign sizeof(sign) -save signature2 sign -save hash2 sdata - -SetTemplate id 0 CKO_PUBLIC_KEY -NewArray pubkeyID CK_ULONG 10 -C_FindObjectsInit session id sizeA(id) -C_FindObjects session pubkeyID sizeA(pubkeyID) count -C_FindObjectsFinal session - -# -# OK now we use raw unwrap and see what we have... -# -NewMechanism rawRsaParams CKM_RSA_X_509 -NewArray vdata data 256 -C_VerifyRecoverInit session rawRsaParams pubkeyID[0] -C_VerifyRecover session sign sizeof(sign) vdata sizeof(vdata) -save verify2 vdata -restore signature sign -C_VerifyRecoverInit session rawRsaParams pubkeyID[0] -C_VerifyRecover session sign sizeof(sign) vdata sizeof(vdata) -save verify vdata - -NewTemplate pubkeyValue CKA_MODULUS,CKA_PUBLIC_EXPONENT -C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) -BuildTemplate pubkeyValue -C_GetAttributeValue session pubkeyID[0] pubkeyValue sizeA(pubkeyValue) -print pubkeyValue[0] -print pubkeyValue[1] - - -C_Finalize null - -unload diff --git a/security/nss/cmd/pk11util/scripts/hssign b/security/nss/cmd/pk11util/scripts/hssign deleted file mode 100644 index 9bcf365cc..000000000 --- a/security/nss/cmd/pk11util/scripts/hssign +++ /dev/null @@ -1,48 +0,0 @@ -Load aolkeypk11.dll -C_Initialize NULL -C_GetSlotList false NULL slotCount -NewArray slotList CK_ULONG slotCount -C_GetSlotList false slotList slotCount -#change the following to the appropriate slot id -#set slotID slotList[0] -set slotID 1 -C_GetSlotInfo slotID slotInfo -C_GetTokenInfo slotID tokenInfo -C_OpenSession slotID CK_SESSION_SERIAL session -# -#uncomment the following line and include the correct password -#for authenticated tokens -#C_Login session CKU_USER 0000 4 -# -# build the search template -# -#NewTemplate search CKA_CLASS -#SetTemplate search 0 CKO_CERTIFICATE -#NewArray certID CK_ULONG 1 -#C_FindObjectsInit session search 1 -#C_FindObjects session certID 1 count -#C_FindObjectsFinal session -# -# now read the cert out -# -#NewTemplate derCert CKA_VALUE -#C_GetAttributeValue session certID derCert 1 -#BuildTemplate derCert -#C_GetAttributeValue session certID derCert 1 -# -# Do a signature -# -NewTemplate search CKA_CLASS -SetTemplate search 0 CKO_PRIVATE_KEY -NewArray privateKey CK_ULONG 1 -C_FindObjectsInit session search 1 -C_FindObjects session privateKey 1 count -C_FindObjectsFinal session -# sign -NewMechanism rsaParams CKM_RSA_PKCS -NewArray sign data 128 -NewArray sdata data 20 -C_SignInit session rsaParams privateKey -C_Sign session sdata sizeof(sdata) sign sizeof(sign) -#C_Logout session - diff --git a/security/nss/cmd/pk11util/scripts/lcert b/security/nss/cmd/pk11util/scripts/lcert deleted file mode 100644 index 0f249c3b5..000000000 --- a/security/nss/cmd/pk11util/scripts/lcert +++ /dev/null @@ -1,35 +0,0 @@ -Load nsscapi.dll -C_Initialize NULL -C_GetSlotList false NULL slotCount -NewArray slotList CK_ULONG slotCount -C_GetSlotList false slotList slotCount -#change the following to the appropriate slot id -set slotID 1 -#set slotID slotList[0] -C_GetSlotInfo slotID slotInfo -C_GetTokenInfo slotID tokenInfo -C_OpenSession slotID CKF_SERIAL_SESSION session -# -#uncomment the following line and include the correct password -#C_Login session CKU_USER 0000 4 -# -# build the search template -# -NewTemplate search CKA_CLASS -SetTemplate search 0 CKO_CERTIFICATE -NewArray certID CK_ULONG 10 -C_FindObjectsInit session search 1 -C_FindObjects session certID sizeA(certID) count -C_FindObjectsFinal session -# -# now read the cert out -# -#NewTemplate derCert CKA_VALUE -#NewTemplate certName CKA_LABEL,CKA_VALUE -#C_GetAttributeValue session certID[0] certName sizeA(certName) -#BuildTemplate certName -#C_GetAttributeValue session certID[0] certName sizeA(certName) -#print certName[0] -Set countm1 count -Decrement countm1 1 -LoopRun pLabel1 i 0 countm1 1 diff --git a/security/nss/cmd/pk11util/scripts/mechanisms b/security/nss/cmd/pk11util/scripts/mechanisms deleted file mode 100644 index d103a9c4f..000000000 --- a/security/nss/cmd/pk11util/scripts/mechanisms +++ /dev/null @@ -1,11 +0,0 @@ -Load nsscapi.dll -C_Initialize NULL -C_GetSlotList false NULL slotCount -NewArray slotList CK_ULONG slotCount -C_GetSlotList false slotList slotCount - -LoopRun pMechanisms i 0 slotCount 1 - -#C_Finalize -#Unload - diff --git a/security/nss/cmd/pk11util/scripts/pLabel1 b/security/nss/cmd/pk11util/scripts/pLabel1 deleted file mode 100644 index 0be909bb4..000000000 --- a/security/nss/cmd/pk11util/scripts/pLabel1 +++ /dev/null @@ -1,6 +0,0 @@ -NewTemplate certName CKA_LABEL,CKA_VALUE -C_GetAttributeValue session certID[i] certName sizeA(certName) -BuildTemplate certName -C_GetAttributeValue session certID[i] certName sizeA(certName) -print i -print certName[0] diff --git a/security/nss/cmd/pk11util/scripts/pMechanisms b/security/nss/cmd/pk11util/scripts/pMechanisms deleted file mode 100644 index 82e860258..000000000 --- a/security/nss/cmd/pk11util/scripts/pMechanisms +++ /dev/null @@ -1,8 +0,0 @@ -# -# print the mechanism list for a given token -# -set slotID slotList[i] -C_GetMechanismList slotID NULL mechCount -NewArray mechanismList CK_ULONG mechcount -C_GetMechanismList slotID mechanismList mechCount -print mechanismList diff --git a/security/nss/cmd/pk11util/scripts/pcert b/security/nss/cmd/pk11util/scripts/pcert deleted file mode 100644 index c322a8bfe..000000000 --- a/security/nss/cmd/pk11util/scripts/pcert +++ /dev/null @@ -1,30 +0,0 @@ -Load aolkeypk11.dll -C_Initialize NULL -C_GetSlotList false NULL slotCount -NewArray slotList CK_ULONG slotCount -C_GetSlotList false slotList slotCount -#change the following to the appropriate slot id -set slotID 1 -#set slotID slotList[0] -C_GetSlotInfo slotID slotInfo -C_GetTokenInfo slotID tokenInfo -C_OpenSession slotID CK_SESSION_SERIAL session -# -#uncomment the following line and include the correct password -#C_Login session CKU_USER 0000 4 -# -# build the search template -# -NewTemplate search CKA_CLASS -SetTemplate search 0 CKO_CERTIFICATE -NewArray certID CK_ULONG 1 -C_FindObjectsInit session search 1 -C_FindObjects session certID 1 count -C_FindObjectsFinal session -# -# now read the cert out -# -NewTemplate derCert CKA_VALUE -C_GetAttributeValue session certID derCert 1 -BuildTemplate derCert -C_GetAttributeValue session certID derCert 1 diff --git a/security/nss/cmd/pk11util/scripts/pkey b/security/nss/cmd/pk11util/scripts/pkey Binary files differdeleted file mode 100644 index d254f284c..000000000 --- a/security/nss/cmd/pk11util/scripts/pkey +++ /dev/null |