72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * Copyright (C) 2009, 2014-2016 Internet Systems Consortium, Inc. ("ISC")
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * This Source Code Form is subject to the terms of the Mozilla Public
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * License, v. 2.0. If a copy of the MPL was not distributed with this
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * file, You can obtain one at http://mozilla.org/MPL/2.0/.
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * Portions copyright (c) 2008 Nominet UK. All rights reserved.
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * Redistribution and use in source and binary forms, with or without
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * modification, are permitted provided that the following conditions
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * 1. Redistributions of source code must retain the above copyright
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * notice, this list of conditions and the following disclaimer.
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * 2. Redistributions in binary form must reproduce the above copyright
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * notice, this list of conditions and the following disclaimer in the
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * documentation and/or other materials provided with the distribution.
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt/* $Id: pkcs11-list.c,v 1.7 2009/10/26 23:36:53 each Exp $ */
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt/* pkcs11-list [-P] [-m module] [-s slot] [-i $id | -l $label] [-p $pin] */
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt#if !(defined(HAVE_GETPASSPHRASE) || (defined (__SVR4) && defined (__sun)))
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt isc_boolean_t error = ISC_FALSE, logon = ISC_TRUE, all = ISC_FALSE;
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt while ((c = isc_commandline_parse(argc, argv, ":m:s:i:l:p:P")) != -1) {
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt switch (c) {
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt fprintf(stderr, "Option -%c requires an operand\n",
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt fprintf(stderr, "\tpkcs11-list [-P] [-m module] [-s slot] "
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt "[-i id | -l label] [-p pin]\n");
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt /* Initialize the CRYPTOKI library */
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt result = pk11_get_session(&pctx, OP_ANY, ISC_FALSE, ISC_FALSE,
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt fprintf(stderr, "Warning: %s\n", isc_result_totext(result));
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt fprintf(stderr, "This HSM will not work with BIND 9 "
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt "using native PKCS#11.\n");
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt fprintf(stderr, "Unrecoverable error initializing "
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt fprintf(stderr, "Unrecoverable error initializing "
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt rv = pkcs_C_FindObjectsInit(hSession, search_template, all ? 0 : 1);
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt fprintf(stderr, "C_FindObjectsInit: Error = 0x%.8lX\n", rv);
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt rv = pkcs_C_FindObjects(hSession, akey, 50, &ulObjectCount);
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt "C_FindObjects: Error = 0x%.8lX\n",
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt for (i = 0; i < ulObjectCount; i++) {
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt "C_GetAttributeValue[%u]: "
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt "rv = 0x%.8lX\n",
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt "%u too small: %lu %lu %lu\n",
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt "label[%lu] '%s' id[%lu] ",
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt for (j = 0; j < len; j++)
72c86c105a7cf315036d7131a4ef408bc6227639Evan Hunt fprintf(stderr, "C_FindObjectsFinal: Error = 0x%.8lX\n", rv);