summaryrefslogtreecommitdiff
path: root/security/nss/cmd/pk11util
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/cmd/pk11util')
-rw-r--r--security/nss/cmd/pk11util/Makefile80
-rw-r--r--security/nss/cmd/pk11util/manifest.mn55
-rw-r--r--security/nss/cmd/pk11util/pk11table.c1403
-rw-r--r--security/nss/cmd/pk11util/pk11util.c2182
-rw-r--r--security/nss/cmd/pk11util/pk11util.h165
-rw-r--r--security/nss/cmd/pk11util/scripts/dosign162
-rw-r--r--security/nss/cmd/pk11util/scripts/hssign48
-rw-r--r--security/nss/cmd/pk11util/scripts/lcert35
-rw-r--r--security/nss/cmd/pk11util/scripts/mechanisms11
-rw-r--r--security/nss/cmd/pk11util/scripts/pLabel16
-rw-r--r--security/nss/cmd/pk11util/scripts/pMechanisms8
-rw-r--r--security/nss/cmd/pk11util/scripts/pcert30
-rw-r--r--security/nss/cmd/pk11util/scripts/pkeybin1543 -> 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
deleted file mode 100644
index d254f284c..000000000
--- a/security/nss/cmd/pk11util/scripts/pkey
+++ /dev/null
Binary files differ