summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/p11tool-args.c1306
-rw-r--r--src/p11tool-args.def7
-rw-r--r--src/p11tool-args.h144
-rw-r--r--src/p11tool.c2
-rw-r--r--src/p11tool.h2
-rw-r--r--src/pkcs11.c30
6 files changed, 481 insertions, 1010 deletions
diff --git a/src/p11tool-args.c b/src/p11tool-args.c
index d1a6ac8582..c2c9640349 100644
--- a/src/p11tool-args.c
+++ b/src/p11tool-args.c
@@ -1,12 +1,12 @@
/* -*- buffer-read-only: t -*- vi: set ro:
- *
+ *
* DO NOT EDIT THIS FILE (p11tool-args.c)
- *
- * It has been AutoGen-ed May 5, 2013 at 12:48:26 PM by AutoGen 5.17.3
+ *
+ * It has been AutoGen-ed October 26, 2013 at 11:03:33 AM by AutoGen 5.17
* From the definitions p11tool-args.def
* and the template file options
*
- * Generated from AutoOpts 38:0:13 templates.
+ * Generated from AutoOpts 37:0:12 templates.
*
* AutoOpts is a copyrighted work. This source file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
@@ -21,19 +21,20 @@
*
* Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
- * redistribution under the terms of the GNU General Public License,
- * version 3 or later <http://gnu.org/licenses/gpl.html>
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
*
* p11tool is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
- *
+ *
* p11tool is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@@ -52,24 +53,28 @@
extern "C" {
#endif
extern FILE * option_usage_fp;
+
+/* TRANSLATORS: choose the translation for option names wisely because you
+ cannot ever change your mind. */
#define zCopyright (p11tool_opt_strs+0)
-#define zLicenseDescrip (p11tool_opt_strs+274)
+#define zLicenseDescrip (p11tool_opt_strs+278)
#ifndef NULL
# define NULL 0
#endif
-/**
- * static const strings for p11tool options
+/*
+ * p11tool option static const strings
*/
-static char const p11tool_opt_strs[3135] =
+static char const p11tool_opt_strs[3208] =
/* 0 */ "p11tool @VERSION@\n"
"Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
- "redistribution under the terms of the GNU General Public License,\n"
- "version 3 or later <http://gnu.org/licenses/gpl.html>\n\0"
-/* 274 */ "p11tool is free software: you can redistribute it and/or modify it under\n"
+ "redistribution under the terms of the\n"
+ "GNU General Public License, version 3 or later\n"
+ " <http://gnu.org/licenses/gpl.html>\n\0"
+/* 278 */ "p11tool is free software: you can redistribute it and/or modify it under\n"
"the terms of the GNU General Public License as published by the Free\n"
"Software Foundation, either version 3 of the License, or (at your option)\n"
"any later version.\n\n"
@@ -79,526 +84,406 @@ static char const p11tool_opt_strs[3135] =
"details.\n\n"
"You should have received a copy of the GNU General Public License along\n"
"with this program. If not, see <http://www.gnu.org/licenses/>.\n\0"
-/* 877 */ "Enable debugging.\0"
-/* 895 */ "DEBUG\0"
-/* 901 */ "debug\0"
-/* 907 */ "Output file\0"
-/* 919 */ "OUTFILE\0"
-/* 927 */ "outfile\0"
-/* 935 */ "List all available tokens\0"
-/* 961 */ "LIST_TOKENS\0"
-/* 973 */ "list-tokens\0"
-/* 985 */ "Export the object specified by the URL\0"
-/* 1024 */ "EXPORT\0"
-/* 1031 */ "export\0"
-/* 1038 */ "List all available mechanisms in a token\0"
-/* 1079 */ "LIST_MECHANISMS\0"
-/* 1095 */ "list-mechanisms\0"
-/* 1111 */ "List all available objects in a token\0"
-/* 1149 */ "LIST_ALL\0"
-/* 1158 */ "list-all\0"
-/* 1167 */ "List all available certificates in a token\0"
-/* 1210 */ "LIST_ALL_CERTS\0"
-/* 1225 */ "list-all-certs\0"
-/* 1240 */ "List all certificates that have an associated private key\0"
-/* 1298 */ "LIST_CERTS\0"
-/* 1309 */ "list-certs\0"
-/* 1320 */ "List all available private keys in a token\0"
-/* 1363 */ "LIST_ALL_PRIVKEYS\0"
-/* 1381 */ "list-all-privkeys\0"
-/* 1399 */ "List all available certificates marked as trusted\0"
-/* 1449 */ "LIST_ALL_TRUSTED\0"
-/* 1466 */ "list-all-trusted\0"
-/* 1483 */ "Initializes a PKCS #11 token\0"
-/* 1512 */ "INITIALIZE\0"
-/* 1523 */ "initialize\0"
-/* 1534 */ "Writes the loaded objects to a PKCS #11 token\0"
-/* 1580 */ "WRITE\0"
-/* 1586 */ "write\0"
-/* 1592 */ "Deletes the objects matching the PKCS #11 URL\0"
-/* 1638 */ "DELETE\0"
-/* 1645 */ "delete\0"
-/* 1652 */ "Generate an RSA private-public key pair\0"
-/* 1692 */ "GENERATE_RSA\0"
-/* 1705 */ "generate-rsa\0"
-/* 1718 */ "GENERATE_DSA\0"
-/* 1731 */ "generate-dsa\0"
-/* 1744 */ "GENERATE_ECC\0"
-/* 1757 */ "generate-ecc\0"
-/* 1770 */ "Sets a label for the write operation\0"
-/* 1807 */ "LABEL\0"
-/* 1813 */ "label\0"
-/* 1819 */ "Marks the object to be written as trusted\0"
-/* 1861 */ "TRUSTED\0"
-/* 1869 */ "no-trusted\0"
-/* 1880 */ "no\0"
-/* 1883 */ "Marks the object to be written as private\0"
-/* 1925 */ "PRIVATE\0"
-/* 1933 */ "no-private\0"
-/* 1944 */ "Force login to token\0"
-/* 1965 */ "LOGIN\0"
-/* 1971 */ "no-login\0"
-/* 1980 */ "Print detailed URLs\0"
-/* 2000 */ "DETAILED_URL\0"
-/* 2013 */ "no-detailed-url\0"
-/* 2029 */ "Provide a hex encoded secret key\0"
-/* 2062 */ "SECRET_KEY\0"
-/* 2073 */ "secret-key\0"
-/* 2084 */ "Private key file to use\0"
-/* 2108 */ "LOAD_PRIVKEY\0"
-/* 2121 */ "load-privkey\0"
-/* 2134 */ "Public key file to use\0"
-/* 2157 */ "LOAD_PUBKEY\0"
-/* 2169 */ "load-pubkey\0"
-/* 2181 */ "Certificate file to use\0"
-/* 2205 */ "LOAD_CERTIFICATE\0"
-/* 2222 */ "load-certificate\0"
-/* 2239 */ "Use PKCS #8 format for private keys\0"
-/* 2275 */ "PKCS8\0"
-/* 2281 */ "pkcs8\0"
-/* 2287 */ "Specify the number of bits for key generate\0"
-/* 2331 */ "BITS\0"
-/* 2336 */ "bits\0"
-/* 2341 */ "Specify the security level\0"
-/* 2368 */ "SEC_PARAM\0"
-/* 2378 */ "sec-param\0"
-/* 2388 */ "Use DER/RAW format for input\0"
-/* 2417 */ "INDER\0"
-/* 2423 */ "no-inder\0"
-/* 2432 */ "an alias for the 'inder' option\0"
-/* 2464 */ "inraw\0"
-/* 2470 */ "Specify the PKCS #11 provider library\0"
-/* 2508 */ "PROVIDER\0"
-/* 2517 */ "provider\0"
-/* 2526 */ "display extended usage information and exit\0"
-/* 2570 */ "help\0"
-/* 2575 */ "extended usage information passed thru pager\0"
-/* 2620 */ "more-help\0"
-/* 2630 */ "output version information and exit\0"
-/* 2666 */ "version\0"
-/* 2674 */ "P11TOOL\0"
-/* 2682 */ "p11tool - GnuTLS PKCS #11 tool\n"
- "Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [url]\n\0"
-/* 2777 */ "bug-gnutls@gnu.org\0"
-/* 2796 */ "\n\0"
-/* 2798 */ "Program that allows handling data from PKCS #11 smart cards and security\n"
+/* 881 */ "Enable debugging.\0"
+/* 899 */ "DEBUG\0"
+/* 905 */ "debug\0"
+/* 911 */ "Output file\0"
+/* 923 */ "OUTFILE\0"
+/* 931 */ "outfile\0"
+/* 939 */ "List all available tokens\0"
+/* 965 */ "LIST_TOKENS\0"
+/* 977 */ "list-tokens\0"
+/* 989 */ "Export the object specified by the URL\0"
+/* 1028 */ "EXPORT\0"
+/* 1035 */ "export\0"
+/* 1042 */ "List all available mechanisms in a token\0"
+/* 1083 */ "LIST_MECHANISMS\0"
+/* 1099 */ "list-mechanisms\0"
+/* 1115 */ "List all available objects in a token\0"
+/* 1153 */ "LIST_ALL\0"
+/* 1162 */ "list-all\0"
+/* 1171 */ "List all available certificates in a token\0"
+/* 1214 */ "LIST_ALL_CERTS\0"
+/* 1229 */ "list-all-certs\0"
+/* 1244 */ "List all certificates that have an associated private key\0"
+/* 1302 */ "LIST_CERTS\0"
+/* 1313 */ "list-certs\0"
+/* 1324 */ "List all available private keys in a token\0"
+/* 1367 */ "LIST_ALL_PRIVKEYS\0"
+/* 1385 */ "list-all-privkeys\0"
+/* 1403 */ "List all available certificates marked as trusted\0"
+/* 1453 */ "LIST_ALL_TRUSTED\0"
+/* 1470 */ "list-all-trusted\0"
+/* 1487 */ "Initializes a PKCS #11 token\0"
+/* 1516 */ "INITIALIZE\0"
+/* 1527 */ "initialize\0"
+/* 1538 */ "Writes the loaded objects to a PKCS #11 token\0"
+/* 1584 */ "WRITE\0"
+/* 1590 */ "write\0"
+/* 1596 */ "Deletes the objects matching the PKCS #11 URL\0"
+/* 1642 */ "DELETE\0"
+/* 1649 */ "delete\0"
+/* 1656 */ "Generate random data\0"
+/* 1677 */ "GENERATE_RANDOM\0"
+/* 1693 */ "generate-random\0"
+/* 1709 */ "Generate an RSA private-public key pair\0"
+/* 1749 */ "GENERATE_RSA\0"
+/* 1762 */ "generate-rsa\0"
+/* 1775 */ "GENERATE_DSA\0"
+/* 1788 */ "generate-dsa\0"
+/* 1801 */ "GENERATE_ECC\0"
+/* 1814 */ "generate-ecc\0"
+/* 1827 */ "Sets a label for the write operation\0"
+/* 1864 */ "LABEL\0"
+/* 1870 */ "label\0"
+/* 1876 */ "Marks the object to be written as trusted\0"
+/* 1918 */ "TRUSTED\0"
+/* 1926 */ "no-trusted\0"
+/* 1937 */ "no\0"
+/* 1940 */ "Marks the object to be written as private\0"
+/* 1982 */ "PRIVATE\0"
+/* 1990 */ "no-private\0"
+/* 2001 */ "Force login to token\0"
+/* 2022 */ "LOGIN\0"
+/* 2028 */ "no-login\0"
+/* 2037 */ "Print detailed URLs\0"
+/* 2057 */ "DETAILED_URL\0"
+/* 2070 */ "no-detailed-url\0"
+/* 2086 */ "Provide a hex encoded secret key\0"
+/* 2119 */ "SECRET_KEY\0"
+/* 2130 */ "secret-key\0"
+/* 2141 */ "Private key file to use\0"
+/* 2165 */ "LOAD_PRIVKEY\0"
+/* 2178 */ "load-privkey\0"
+/* 2191 */ "Public key file to use\0"
+/* 2214 */ "LOAD_PUBKEY\0"
+/* 2226 */ "load-pubkey\0"
+/* 2238 */ "Certificate file to use\0"
+/* 2262 */ "LOAD_CERTIFICATE\0"
+/* 2279 */ "load-certificate\0"
+/* 2296 */ "Use PKCS #8 format for private keys\0"
+/* 2332 */ "PKCS8\0"
+/* 2338 */ "pkcs8\0"
+/* 2344 */ "Specify the number of bits for key generate\0"
+/* 2388 */ "BITS\0"
+/* 2393 */ "bits\0"
+/* 2398 */ "Specify the security level\0"
+/* 2425 */ "SEC_PARAM\0"
+/* 2435 */ "sec-param\0"
+/* 2445 */ "Use DER/RAW format for input\0"
+/* 2474 */ "INDER\0"
+/* 2480 */ "no-inder\0"
+/* 2489 */ "This is an alias for 'inder'\0"
+/* 2518 */ "inraw\0"
+/* 2524 */ "Specify the PKCS #11 provider library\0"
+/* 2562 */ "PROVIDER\0"
+/* 2571 */ "provider\0"
+/* 2580 */ "Display extended usage information and exit\0"
+/* 2624 */ "help\0"
+/* 2629 */ "Extended usage information passed thru pager\0"
+/* 2674 */ "more-help\0"
+/* 2684 */ "Output version information and exit\0"
+/* 2720 */ "version\0"
+/* 2728 */ "P11TOOL\0"
+/* 2736 */ "p11tool - GnuTLS PKCS #11 tool - Ver. @VERSION@\n"
+ "USAGE: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [url]\n\0"
+/* 2848 */ "bug-gnutls@gnu.org\0"
+/* 2867 */ "\n\n\0"
+/* 2870 */ "\n"
+ "Program that allows handling data from PKCS #11 smart cards and security\n"
"modules.\n\n"
"To use PKCS #11 tokens with gnutls the configuration file\n"
"/etc/gnutls/pkcs11.conf has to exist and contain a number of lines of the\n"
"form 'load=/usr/lib/opensc-pkcs11.so'.\n\0"
-/* 3053 */ "p11tool @VERSION@\0"
-/* 3071 */ "p11tool [options] [url]\n"
+/* 3126 */ "p11tool @VERSION@\0"
+/* 3144 */ "p11tool [options] [url]\n"
"p11tool --help for usage instructions.\n";
-/**
+/*
* debug option description:
*/
-/** Descriptive text for the debug option */
-#define DEBUG_DESC (p11tool_opt_strs+877)
-/** Upper-cased name for the debug option */
-#define DEBUG_NAME (p11tool_opt_strs+895)
-/** Name string for the debug option */
-#define DEBUG_name (p11tool_opt_strs+901)
-/** Compiled in flag settings for the debug option */
+#define DEBUG_DESC (p11tool_opt_strs+881)
+#define DEBUG_NAME (p11tool_opt_strs+899)
+#define DEBUG_name (p11tool_opt_strs+905)
#define DEBUG_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
-/**
+/*
* outfile option description:
*/
-/** Descriptive text for the outfile option */
-#define OUTFILE_DESC (p11tool_opt_strs+907)
-/** Upper-cased name for the outfile option */
-#define OUTFILE_NAME (p11tool_opt_strs+919)
-/** Name string for the outfile option */
-#define OUTFILE_name (p11tool_opt_strs+927)
-/** Compiled in flag settings for the outfile option */
+#define OUTFILE_DESC (p11tool_opt_strs+911)
+#define OUTFILE_NAME (p11tool_opt_strs+923)
+#define OUTFILE_name (p11tool_opt_strs+931)
#define OUTFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
-/**
+/*
* list-tokens option description:
*/
-/** Descriptive text for the list-tokens option */
-#define LIST_TOKENS_DESC (p11tool_opt_strs+935)
-/** Upper-cased name for the list-tokens option */
-#define LIST_TOKENS_NAME (p11tool_opt_strs+961)
-/** Name string for the list-tokens option */
-#define LIST_TOKENS_name (p11tool_opt_strs+973)
-/** Compiled in flag settings for the list-tokens option */
+#define LIST_TOKENS_DESC (p11tool_opt_strs+939)
+#define LIST_TOKENS_NAME (p11tool_opt_strs+965)
+#define LIST_TOKENS_name (p11tool_opt_strs+977)
#define LIST_TOKENS_FLAGS (OPTST_DISABLED)
-/**
+/*
* export option description:
*/
-/** Descriptive text for the export option */
-#define EXPORT_DESC (p11tool_opt_strs+985)
-/** Upper-cased name for the export option */
-#define EXPORT_NAME (p11tool_opt_strs+1024)
-/** Name string for the export option */
-#define EXPORT_name (p11tool_opt_strs+1031)
-/** Compiled in flag settings for the export option */
+#define EXPORT_DESC (p11tool_opt_strs+989)
+#define EXPORT_NAME (p11tool_opt_strs+1028)
+#define EXPORT_name (p11tool_opt_strs+1035)
#define EXPORT_FLAGS (OPTST_DISABLED)
-/**
+/*
* list-mechanisms option description:
*/
-/** Descriptive text for the list-mechanisms option */
-#define LIST_MECHANISMS_DESC (p11tool_opt_strs+1038)
-/** Upper-cased name for the list-mechanisms option */
-#define LIST_MECHANISMS_NAME (p11tool_opt_strs+1079)
-/** Name string for the list-mechanisms option */
-#define LIST_MECHANISMS_name (p11tool_opt_strs+1095)
-/** Compiled in flag settings for the list-mechanisms option */
+#define LIST_MECHANISMS_DESC (p11tool_opt_strs+1042)
+#define LIST_MECHANISMS_NAME (p11tool_opt_strs+1083)
+#define LIST_MECHANISMS_name (p11tool_opt_strs+1099)
#define LIST_MECHANISMS_FLAGS (OPTST_DISABLED)
-/**
+/*
* list-all option description:
*/
-/** Descriptive text for the list-all option */
-#define LIST_ALL_DESC (p11tool_opt_strs+1111)
-/** Upper-cased name for the list-all option */
-#define LIST_ALL_NAME (p11tool_opt_strs+1149)
-/** Name string for the list-all option */
-#define LIST_ALL_name (p11tool_opt_strs+1158)
-/** Compiled in flag settings for the list-all option */
+#define LIST_ALL_DESC (p11tool_opt_strs+1115)
+#define LIST_ALL_NAME (p11tool_opt_strs+1153)
+#define LIST_ALL_name (p11tool_opt_strs+1162)
#define LIST_ALL_FLAGS (OPTST_DISABLED)
-/**
+/*
* list-all-certs option description:
*/
-/** Descriptive text for the list-all-certs option */
-#define LIST_ALL_CERTS_DESC (p11tool_opt_strs+1167)
-/** Upper-cased name for the list-all-certs option */
-#define LIST_ALL_CERTS_NAME (p11tool_opt_strs+1210)
-/** Name string for the list-all-certs option */
-#define LIST_ALL_CERTS_name (p11tool_opt_strs+1225)
-/** Compiled in flag settings for the list-all-certs option */
+#define LIST_ALL_CERTS_DESC (p11tool_opt_strs+1171)
+#define LIST_ALL_CERTS_NAME (p11tool_opt_strs+1214)
+#define LIST_ALL_CERTS_name (p11tool_opt_strs+1229)
#define LIST_ALL_CERTS_FLAGS (OPTST_DISABLED)
-/**
+/*
* list-certs option description:
*/
-/** Descriptive text for the list-certs option */
-#define LIST_CERTS_DESC (p11tool_opt_strs+1240)
-/** Upper-cased name for the list-certs option */
-#define LIST_CERTS_NAME (p11tool_opt_strs+1298)
-/** Name string for the list-certs option */
-#define LIST_CERTS_name (p11tool_opt_strs+1309)
-/** Compiled in flag settings for the list-certs option */
+#define LIST_CERTS_DESC (p11tool_opt_strs+1244)
+#define LIST_CERTS_NAME (p11tool_opt_strs+1302)
+#define LIST_CERTS_name (p11tool_opt_strs+1313)
#define LIST_CERTS_FLAGS (OPTST_DISABLED)
-/**
+/*
* list-all-privkeys option description:
*/
-/** Descriptive text for the list-all-privkeys option */
-#define LIST_ALL_PRIVKEYS_DESC (p11tool_opt_strs+1320)
-/** Upper-cased name for the list-all-privkeys option */
-#define LIST_ALL_PRIVKEYS_NAME (p11tool_opt_strs+1363)
-/** Name string for the list-all-privkeys option */
-#define LIST_ALL_PRIVKEYS_name (p11tool_opt_strs+1381)
-/** Compiled in flag settings for the list-all-privkeys option */
+#define LIST_ALL_PRIVKEYS_DESC (p11tool_opt_strs+1324)
+#define LIST_ALL_PRIVKEYS_NAME (p11tool_opt_strs+1367)
+#define LIST_ALL_PRIVKEYS_name (p11tool_opt_strs+1385)
#define LIST_ALL_PRIVKEYS_FLAGS (OPTST_DISABLED)
-/**
+/*
* list-all-trusted option description:
*/
-/** Descriptive text for the list-all-trusted option */
-#define LIST_ALL_TRUSTED_DESC (p11tool_opt_strs+1399)
-/** Upper-cased name for the list-all-trusted option */
-#define LIST_ALL_TRUSTED_NAME (p11tool_opt_strs+1449)
-/** Name string for the list-all-trusted option */
-#define LIST_ALL_TRUSTED_name (p11tool_opt_strs+1466)
-/** Compiled in flag settings for the list-all-trusted option */
+#define LIST_ALL_TRUSTED_DESC (p11tool_opt_strs+1403)
+#define LIST_ALL_TRUSTED_NAME (p11tool_opt_strs+1453)
+#define LIST_ALL_TRUSTED_name (p11tool_opt_strs+1470)
#define LIST_ALL_TRUSTED_FLAGS (OPTST_DISABLED)
-/**
+/*
* initialize option description:
*/
-/** Descriptive text for the initialize option */
-#define INITIALIZE_DESC (p11tool_opt_strs+1483)
-/** Upper-cased name for the initialize option */
-#define INITIALIZE_NAME (p11tool_opt_strs+1512)
-/** Name string for the initialize option */
-#define INITIALIZE_name (p11tool_opt_strs+1523)
-/** Compiled in flag settings for the initialize option */
+#define INITIALIZE_DESC (p11tool_opt_strs+1487)
+#define INITIALIZE_NAME (p11tool_opt_strs+1516)
+#define INITIALIZE_name (p11tool_opt_strs+1527)
#define INITIALIZE_FLAGS (OPTST_DISABLED)
-/**
+/*
* write option description:
*/
-/** Descriptive text for the write option */
-#define WRITE_DESC (p11tool_opt_strs+1534)
-/** Upper-cased name for the write option */
-#define WRITE_NAME (p11tool_opt_strs+1580)
-/** Name string for the write option */
-#define WRITE_name (p11tool_opt_strs+1586)
-/** Compiled in flag settings for the write option */
+#define WRITE_DESC (p11tool_opt_strs+1538)
+#define WRITE_NAME (p11tool_opt_strs+1584)
+#define WRITE_name (p11tool_opt_strs+1590)
#define WRITE_FLAGS (OPTST_DISABLED)
-/**
+/*
* delete option description:
*/
-/** Descriptive text for the delete option */
-#define DELETE_DESC (p11tool_opt_strs+1592)
-/** Upper-cased name for the delete option */
-#define DELETE_NAME (p11tool_opt_strs+1638)
-/** Name string for the delete option */
-#define DELETE_name (p11tool_opt_strs+1645)
-/** Compiled in flag settings for the delete option */
+#define DELETE_DESC (p11tool_opt_strs+1596)
+#define DELETE_NAME (p11tool_opt_strs+1642)
+#define DELETE_name (p11tool_opt_strs+1649)
#define DELETE_FLAGS (OPTST_DISABLED)
-/**
+/*
+ * generate-random option description:
+ */
+#define GENERATE_RANDOM_DESC (p11tool_opt_strs+1656)
+#define GENERATE_RANDOM_NAME (p11tool_opt_strs+1677)
+#define GENERATE_RANDOM_name (p11tool_opt_strs+1693)
+#define GENERATE_RANDOM_FLAGS (OPTST_DISABLED \
+ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
+/*
* generate-rsa option description:
*/
-/** Descriptive text for the generate-rsa option */
-#define GENERATE_RSA_DESC (p11tool_opt_strs+1652)
-/** Upper-cased name for the generate-rsa option */
-#define GENERATE_RSA_NAME (p11tool_opt_strs+1692)
-/** Name string for the generate-rsa option */
-#define GENERATE_RSA_name (p11tool_opt_strs+1705)
-/** Compiled in flag settings for the generate-rsa option */
+#define GENERATE_RSA_DESC (p11tool_opt_strs+1709)
+#define GENERATE_RSA_NAME (p11tool_opt_strs+1749)
+#define GENERATE_RSA_name (p11tool_opt_strs+1762)
#define GENERATE_RSA_FLAGS (OPTST_DISABLED)
-/**
+/*
* generate-dsa option description:
*/
-/** Descriptive text for the generate-dsa option */
-#define GENERATE_DSA_DESC (p11tool_opt_strs+1652)
-/** Upper-cased name for the generate-dsa option */
-#define GENERATE_DSA_NAME (p11tool_opt_strs+1718)
-/** Name string for the generate-dsa option */
-#define GENERATE_DSA_name (p11tool_opt_strs+1731)
-/** Compiled in flag settings for the generate-dsa option */
+#define GENERATE_DSA_DESC (p11tool_opt_strs+1709)
+#define GENERATE_DSA_NAME (p11tool_opt_strs+1775)
+#define GENERATE_DSA_name (p11tool_opt_strs+1788)
#define GENERATE_DSA_FLAGS (OPTST_DISABLED)
-/**
+/*
* generate-ecc option description:
*/
-/** Descriptive text for the generate-ecc option */
-#define GENERATE_ECC_DESC (p11tool_opt_strs+1652)
-/** Upper-cased name for the generate-ecc option */
-#define GENERATE_ECC_NAME (p11tool_opt_strs+1744)
-/** Name string for the generate-ecc option */
-#define GENERATE_ECC_name (p11tool_opt_strs+1757)
-/** Compiled in flag settings for the generate-ecc option */
+#define GENERATE_ECC_DESC (p11tool_opt_strs+1709)
+#define GENERATE_ECC_NAME (p11tool_opt_strs+1801)
+#define GENERATE_ECC_name (p11tool_opt_strs+1814)
#define GENERATE_ECC_FLAGS (OPTST_DISABLED)
-/**
+/*
* label option description:
*/
-/** Descriptive text for the label option */
-#define LABEL_DESC (p11tool_opt_strs+1770)
-/** Upper-cased name for the label option */
-#define LABEL_NAME (p11tool_opt_strs+1807)
-/** Name string for the label option */
-#define LABEL_name (p11tool_opt_strs+1813)
-/** Compiled in flag settings for the label option */
+#define LABEL_DESC (p11tool_opt_strs+1827)
+#define LABEL_NAME (p11tool_opt_strs+1864)
+#define LABEL_name (p11tool_opt_strs+1870)
#define LABEL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
-/**
+/*
* trusted option description:
*/
-/** Descriptive text for the trusted option */
-#define TRUSTED_DESC (p11tool_opt_strs+1819)
-/** Upper-cased name for the trusted option */
-#define TRUSTED_NAME (p11tool_opt_strs+1861)
-/** disablement name for the trusted option */
-#define NOT_TRUSTED_name (p11tool_opt_strs+1869)
-/** disablement prefix for the trusted option */
-#define NOT_TRUSTED_PFX (p11tool_opt_strs+1880)
-/** Name string for the trusted option */
+#define TRUSTED_DESC (p11tool_opt_strs+1876)
+#define TRUSTED_NAME (p11tool_opt_strs+1918)
+#define NOT_TRUSTED_name (p11tool_opt_strs+1926)
+#define NOT_TRUSTED_PFX (p11tool_opt_strs+1937)
#define TRUSTED_name (NOT_TRUSTED_name + 3)
-/** Compiled in flag settings for the trusted option */
#define TRUSTED_FLAGS (OPTST_DISABLED)
-/**
+/*
* private option description:
*/
-/** Descriptive text for the private option */
-#define PRIVATE_DESC (p11tool_opt_strs+1883)
-/** Upper-cased name for the private option */
-#define PRIVATE_NAME (p11tool_opt_strs+1925)
-/** disablement name for the private option */
-#define NOT_PRIVATE_name (p11tool_opt_strs+1933)
-/** disablement prefix for the private option */
-#define NOT_PRIVATE_PFX (p11tool_opt_strs+1880)
-/** Name string for the private option */
+#define PRIVATE_DESC (p11tool_opt_strs+1940)
+#define PRIVATE_NAME (p11tool_opt_strs+1982)
+#define NOT_PRIVATE_name (p11tool_opt_strs+1990)
+#define NOT_PRIVATE_PFX (p11tool_opt_strs+1937)
#define PRIVATE_name (NOT_PRIVATE_name + 3)
-/** Compiled in flag settings for the private option */
#define PRIVATE_FLAGS (OPTST_INITENABLED)
-/**
+/*
* login option description:
*/
-/** Descriptive text for the login option */
-#define LOGIN_DESC (p11tool_opt_strs+1944)
-/** Upper-cased name for the login option */
-#define LOGIN_NAME (p11tool_opt_strs+1965)
-/** disablement name for the login option */
-#define NOT_LOGIN_name (p11tool_opt_strs+1971)
-/** disablement prefix for the login option */
-#define NOT_LOGIN_PFX (p11tool_opt_strs+1880)
-/** Name string for the login option */
+#define LOGIN_DESC (p11tool_opt_strs+2001)
+#define LOGIN_NAME (p11tool_opt_strs+2022)
+#define NOT_LOGIN_name (p11tool_opt_strs+2028)
+#define NOT_LOGIN_PFX (p11tool_opt_strs+1937)
#define LOGIN_name (NOT_LOGIN_name + 3)
-/** Compiled in flag settings for the login option */
#define LOGIN_FLAGS (OPTST_DISABLED)
-/**
+/*
* detailed-url option description:
*/
-/** Descriptive text for the detailed-url option */
-#define DETAILED_URL_DESC (p11tool_opt_strs+1980)
-/** Upper-cased name for the detailed-url option */
-#define DETAILED_URL_NAME (p11tool_opt_strs+2000)
-/** disablement name for the detailed-url option */
-#define NOT_DETAILED_URL_name (p11tool_opt_strs+2013)
-/** disablement prefix for the detailed-url option */
-#define NOT_DETAILED_URL_PFX (p11tool_opt_strs+1880)
-/** Name string for the detailed-url option */
+#define DETAILED_URL_DESC (p11tool_opt_strs+2037)
+#define DETAILED_URL_NAME (p11tool_opt_strs+2057)
+#define NOT_DETAILED_URL_name (p11tool_opt_strs+2070)
+#define NOT_DETAILED_URL_PFX (p11tool_opt_strs+1937)
#define DETAILED_URL_name (NOT_DETAILED_URL_name + 3)
-/** Compiled in flag settings for the detailed-url option */
#define DETAILED_URL_FLAGS (OPTST_DISABLED)
-/**
+/*
* secret-key option description:
*/
-/** Descriptive text for the secret-key option */
-#define SECRET_KEY_DESC (p11tool_opt_strs+2029)
-/** Upper-cased name for the secret-key option */
-#define SECRET_KEY_NAME (p11tool_opt_strs+2062)
-/** Name string for the secret-key option */
-#define SECRET_KEY_name (p11tool_opt_strs+2073)
-/** Compiled in flag settings for the secret-key option */
+#define SECRET_KEY_DESC (p11tool_opt_strs+2086)
+#define SECRET_KEY_NAME (p11tool_opt_strs+2119)
+#define SECRET_KEY_name (p11tool_opt_strs+2130)
#define SECRET_KEY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
-/**
+/*
* load-privkey option description:
*/
-/** Descriptive text for the load-privkey option */
-#define LOAD_PRIVKEY_DESC (p11tool_opt_strs+2084)
-/** Upper-cased name for the load-privkey option */
-#define LOAD_PRIVKEY_NAME (p11tool_opt_strs+2108)
-/** Name string for the load-privkey option */
-#define LOAD_PRIVKEY_name (p11tool_opt_strs+2121)
-/** Compiled in flag settings for the load-privkey option */
+#define LOAD_PRIVKEY_DESC (p11tool_opt_strs+2141)
+#define LOAD_PRIVKEY_NAME (p11tool_opt_strs+2165)
+#define LOAD_PRIVKEY_name (p11tool_opt_strs+2178)
#define LOAD_PRIVKEY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
-/**
+/*
* load-pubkey option description:
*/
-/** Descriptive text for the load-pubkey option */
-#define LOAD_PUBKEY_DESC (p11tool_opt_strs+2134)
-/** Upper-cased name for the load-pubkey option */
-#define LOAD_PUBKEY_NAME (p11tool_opt_strs+2157)
-/** Name string for the load-pubkey option */
-#define LOAD_PUBKEY_name (p11tool_opt_strs+2169)
-/** Compiled in flag settings for the load-pubkey option */
+#define LOAD_PUBKEY_DESC (p11tool_opt_strs+2191)
+#define LOAD_PUBKEY_NAME (p11tool_opt_strs+2214)
+#define LOAD_PUBKEY_name (p11tool_opt_strs+2226)
#define LOAD_PUBKEY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
-/**
+/*
* load-certificate option description:
*/
-/** Descriptive text for the load-certificate option */
-#define LOAD_CERTIFICATE_DESC (p11tool_opt_strs+2181)
-/** Upper-cased name for the load-certificate option */
-#define LOAD_CERTIFICATE_NAME (p11tool_opt_strs+2205)
-/** Name string for the load-certificate option */
-#define LOAD_CERTIFICATE_name (p11tool_opt_strs+2222)
-/** Compiled in flag settings for the load-certificate option */
+#define LOAD_CERTIFICATE_DESC (p11tool_opt_strs+2238)
+#define LOAD_CERTIFICATE_NAME (p11tool_opt_strs+2262)
+#define LOAD_CERTIFICATE_name (p11tool_opt_strs+2279)
#define LOAD_CERTIFICATE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
-/**
+/*
* pkcs8 option description:
*/
-/** Descriptive text for the pkcs8 option */
-#define PKCS8_DESC (p11tool_opt_strs+2239)
-/** Upper-cased name for the pkcs8 option */
-#define PKCS8_NAME (p11tool_opt_strs+2275)
-/** Name string for the pkcs8 option */
-#define PKCS8_name (p11tool_opt_strs+2281)
-/** Compiled in flag settings for the pkcs8 option */
+#define PKCS8_DESC (p11tool_opt_strs+2296)
+#define PKCS8_NAME (p11tool_opt_strs+2332)
+#define PKCS8_name (p11tool_opt_strs+2338)
#define PKCS8_FLAGS (OPTST_DISABLED)
-/**
+/*
* bits option description:
*/
-/** Descriptive text for the bits option */
-#define BITS_DESC (p11tool_opt_strs+2287)
-/** Upper-cased name for the bits option */
-#define BITS_NAME (p11tool_opt_strs+2331)
-/** Name string for the bits option */
-#define BITS_name (p11tool_opt_strs+2336)
-/** Compiled in flag settings for the bits option */
+#define BITS_DESC (p11tool_opt_strs+2344)
+#define BITS_NAME (p11tool_opt_strs+2388)
+#define BITS_name (p11tool_opt_strs+2393)
#define BITS_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
-/**
+/*
* sec-param option description:
*/
-/** Descriptive text for the sec-param option */
-#define SEC_PARAM_DESC (p11tool_opt_strs+2341)
-/** Upper-cased name for the sec-param option */
-#define SEC_PARAM_NAME (p11tool_opt_strs+2368)
-/** Name string for the sec-param option */
-#define SEC_PARAM_name (p11tool_opt_strs+2378)
-/** Compiled in flag settings for the sec-param option */
+#define SEC_PARAM_DESC (p11tool_opt_strs+2398)
+#define SEC_PARAM_NAME (p11tool_opt_strs+2425)
+#define SEC_PARAM_name (p11tool_opt_strs+2435)
#define SEC_PARAM_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
-/**
+/*
* inder option description:
*/
-/** Descriptive text for the inder option */
-#define INDER_DESC (p11tool_opt_strs+2388)
-/** Upper-cased name for the inder option */
-#define INDER_NAME (p11tool_opt_strs+2417)
-/** disablement name for the inder option */
-#define NOT_INDER_name (p11tool_opt_strs+2423)
-/** disablement prefix for the inder option */
-#define NOT_INDER_PFX (p11tool_opt_strs+1880)
-/** Name string for the inder option */
+#define INDER_DESC (p11tool_opt_strs+2445)
+#define INDER_NAME (p11tool_opt_strs+2474)
+#define NOT_INDER_name (p11tool_opt_strs+2480)
+#define NOT_INDER_PFX (p11tool_opt_strs+1937)
#define INDER_name (NOT_INDER_name + 3)
-/** Compiled in flag settings for the inder option */
#define INDER_FLAGS (OPTST_DISABLED)
-/**
+/*
* inraw option description:
*/
-/** Descriptive text for the inraw option */
-#define INRAW_DESC (p11tool_opt_strs+2432)
+#define INRAW_DESC (p11tool_opt_strs+2489)
#define INRAW_NAME NULL
-/** Unmodified name string for the inraw option */
-#define INRAW_name (p11tool_opt_strs+2464)
-/** Compiled in flag settings for the inraw option */
+#define INRAW_name (p11tool_opt_strs+2518)
#define INRAW_FLAGS (INDER_FLAGS | OPTST_ALIAS)
-/**
+/*
* provider option description:
*/
-/** Descriptive text for the provider option */
-#define PROVIDER_DESC (p11tool_opt_strs+2470)
-/** Upper-cased name for the provider option */
-#define PROVIDER_NAME (p11tool_opt_strs+2508)
-/** Name string for the provider option */
-#define PROVIDER_name (p11tool_opt_strs+2517)
-/** Compiled in flag settings for the provider option */
+#define PROVIDER_DESC (p11tool_opt_strs+2524)
+#define PROVIDER_NAME (p11tool_opt_strs+2562)
+#define PROVIDER_name (p11tool_opt_strs+2571)
#define PROVIDER_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
/*
* Help/More_Help/Version option descriptions:
*/
-#define HELP_DESC (p11tool_opt_strs+2526)
-#define HELP_name (p11tool_opt_strs+2570)
+#define HELP_DESC (p11tool_opt_strs+2580)
+#define HELP_name (p11tool_opt_strs+2624)
#ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC (p11tool_opt_strs+2575)
-#define MORE_HELP_name (p11tool_opt_strs+2620)
+#define MORE_HELP_DESC (p11tool_opt_strs+2629)
+#define MORE_HELP_name (p11tool_opt_strs+2674)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC NULL
@@ -611,9 +496,9 @@ static char const p11tool_opt_strs[3135] =
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
-#define VER_DESC (p11tool_opt_strs+2630)
-#define VER_name (p11tool_opt_strs+2666)
-/**
+#define VER_DESC (p11tool_opt_strs+2684)
+#define VER_name (p11tool_opt_strs+2720)
+/*
* Declare option callback procedures
*/
extern tOptProc
@@ -790,8 +675,20 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ DELETE_DESC, DELETE_NAME, DELETE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 13, VALUE_OPT_GENERATE_RSA,
- /* equiv idx, value */ 13, VALUE_OPT_GENERATE_RSA,
+ { /* entry idx, value */ 13, VALUE_OPT_GENERATE_RANDOM,
+ /* equiv idx, value */ 13, VALUE_OPT_GENERATE_RANDOM,
+ /* equivalenced to */ NO_EQUIVALENT,
+ /* min, max, act ct */ 0, 1, 0,
+ /* opt state flags */ GENERATE_RANDOM_FLAGS, 0,
+ /* last opt argumnt */ { NULL }, /* --generate-random */
+ /* arg list/cookie */ NULL,
+ /* must/cannot opts */ NULL, NULL,
+ /* option proc */ optionNumericVal,
+ /* desc, NAME, name */ GENERATE_RANDOM_DESC, GENERATE_RANDOM_NAME, GENERATE_RANDOM_name,
+ /* disablement strs */ NULL, NULL },
+
+ { /* entry idx, value */ 14, VALUE_OPT_GENERATE_RSA,
+ /* equiv idx, value */ 14, VALUE_OPT_GENERATE_RSA,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ GENERATE_RSA_FLAGS, 0,
@@ -802,8 +699,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ GENERATE_RSA_DESC, GENERATE_RSA_NAME, GENERATE_RSA_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 14, VALUE_OPT_GENERATE_DSA,
- /* equiv idx, value */ 14, VALUE_OPT_GENERATE_DSA,
+ { /* entry idx, value */ 15, VALUE_OPT_GENERATE_DSA,
+ /* equiv idx, value */ 15, VALUE_OPT_GENERATE_DSA,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ GENERATE_DSA_FLAGS, 0,
@@ -814,8 +711,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ GENERATE_DSA_DESC, GENERATE_DSA_NAME, GENERATE_DSA_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 15, VALUE_OPT_GENERATE_ECC,
- /* equiv idx, value */ 15, VALUE_OPT_GENERATE_ECC,
+ { /* entry idx, value */ 16, VALUE_OPT_GENERATE_ECC,
+ /* equiv idx, value */ 16, VALUE_OPT_GENERATE_ECC,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ GENERATE_ECC_FLAGS, 0,
@@ -826,8 +723,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ GENERATE_ECC_DESC, GENERATE_ECC_NAME, GENERATE_ECC_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 16, VALUE_OPT_LABEL,
- /* equiv idx, value */ 16, VALUE_OPT_LABEL,
+ { /* entry idx, value */ 17, VALUE_OPT_LABEL,
+ /* equiv idx, value */ 17, VALUE_OPT_LABEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LABEL_FLAGS, 0,
@@ -838,8 +735,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ LABEL_DESC, LABEL_NAME, LABEL_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 17, VALUE_OPT_TRUSTED,
- /* equiv idx, value */ 17, VALUE_OPT_TRUSTED,
+ { /* entry idx, value */ 18, VALUE_OPT_TRUSTED,
+ /* equiv idx, value */ 18, VALUE_OPT_TRUSTED,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ TRUSTED_FLAGS, 0,
@@ -850,8 +747,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ TRUSTED_DESC, TRUSTED_NAME, TRUSTED_name,
/* disablement strs */ NOT_TRUSTED_name, NOT_TRUSTED_PFX },
- { /* entry idx, value */ 18, VALUE_OPT_PRIVATE,
- /* equiv idx, value */ 18, VALUE_OPT_PRIVATE,
+ { /* entry idx, value */ 19, VALUE_OPT_PRIVATE,
+ /* equiv idx, value */ 19, VALUE_OPT_PRIVATE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PRIVATE_FLAGS, 0,
@@ -862,8 +759,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ PRIVATE_DESC, PRIVATE_NAME, PRIVATE_name,
/* disablement strs */ NOT_PRIVATE_name, NOT_PRIVATE_PFX },
- { /* entry idx, value */ 19, VALUE_OPT_LOGIN,
- /* equiv idx, value */ 19, VALUE_OPT_LOGIN,
+ { /* entry idx, value */ 20, VALUE_OPT_LOGIN,
+ /* equiv idx, value */ 20, VALUE_OPT_LOGIN,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LOGIN_FLAGS, 0,
@@ -874,8 +771,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ LOGIN_DESC, LOGIN_NAME, LOGIN_name,
/* disablement strs */ NOT_LOGIN_name, NOT_LOGIN_PFX },
- { /* entry idx, value */ 20, VALUE_OPT_DETAILED_URL,
- /* equiv idx, value */ 20, VALUE_OPT_DETAILED_URL,
+ { /* entry idx, value */ 21, VALUE_OPT_DETAILED_URL,
+ /* equiv idx, value */ 21, VALUE_OPT_DETAILED_URL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ DETAILED_URL_FLAGS, 0,
@@ -886,8 +783,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ DETAILED_URL_DESC, DETAILED_URL_NAME, DETAILED_URL_name,
/* disablement strs */ NOT_DETAILED_URL_name, NOT_DETAILED_URL_PFX },
- { /* entry idx, value */ 21, VALUE_OPT_SECRET_KEY,
- /* equiv idx, value */ 21, VALUE_OPT_SECRET_KEY,
+ { /* entry idx, value */ 22, VALUE_OPT_SECRET_KEY,
+ /* equiv idx, value */ 22, VALUE_OPT_SECRET_KEY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SECRET_KEY_FLAGS, 0,
@@ -898,8 +795,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SECRET_KEY_DESC, SECRET_KEY_NAME, SECRET_KEY_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 22, VALUE_OPT_LOAD_PRIVKEY,
- /* equiv idx, value */ 22, VALUE_OPT_LOAD_PRIVKEY,
+ { /* entry idx, value */ 23, VALUE_OPT_LOAD_PRIVKEY,
+ /* equiv idx, value */ 23, VALUE_OPT_LOAD_PRIVKEY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LOAD_PRIVKEY_FLAGS, 0,
@@ -910,8 +807,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ LOAD_PRIVKEY_DESC, LOAD_PRIVKEY_NAME, LOAD_PRIVKEY_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 23, VALUE_OPT_LOAD_PUBKEY,
- /* equiv idx, value */ 23, VALUE_OPT_LOAD_PUBKEY,
+ { /* entry idx, value */ 24, VALUE_OPT_LOAD_PUBKEY,
+ /* equiv idx, value */ 24, VALUE_OPT_LOAD_PUBKEY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LOAD_PUBKEY_FLAGS, 0,
@@ -922,8 +819,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ LOAD_PUBKEY_DESC, LOAD_PUBKEY_NAME, LOAD_PUBKEY_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 24, VALUE_OPT_LOAD_CERTIFICATE,
- /* equiv idx, value */ 24, VALUE_OPT_LOAD_CERTIFICATE,
+ { /* entry idx, value */ 25, VALUE_OPT_LOAD_CERTIFICATE,
+ /* equiv idx, value */ 25, VALUE_OPT_LOAD_CERTIFICATE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LOAD_CERTIFICATE_FLAGS, 0,
@@ -934,8 +831,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ LOAD_CERTIFICATE_DESC, LOAD_CERTIFICATE_NAME, LOAD_CERTIFICATE_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 25, VALUE_OPT_PKCS8,
- /* equiv idx, value */ 25, VALUE_OPT_PKCS8,
+ { /* entry idx, value */ 26, VALUE_OPT_PKCS8,
+ /* equiv idx, value */ 26, VALUE_OPT_PKCS8,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PKCS8_FLAGS, 0,
@@ -946,8 +843,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ PKCS8_DESC, PKCS8_NAME, PKCS8_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 26, VALUE_OPT_BITS,
- /* equiv idx, value */ 26, VALUE_OPT_BITS,
+ { /* entry idx, value */ 27, VALUE_OPT_BITS,
+ /* equiv idx, value */ 27, VALUE_OPT_BITS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ BITS_FLAGS, 0,
@@ -958,8 +855,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ BITS_DESC, BITS_NAME, BITS_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 27, VALUE_OPT_SEC_PARAM,
- /* equiv idx, value */ 27, VALUE_OPT_SEC_PARAM,
+ { /* entry idx, value */ 28, VALUE_OPT_SEC_PARAM,
+ /* equiv idx, value */ 28, VALUE_OPT_SEC_PARAM,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SEC_PARAM_FLAGS, 0,
@@ -970,8 +867,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ SEC_PARAM_DESC, SEC_PARAM_NAME, SEC_PARAM_name,
/* disablement strs */ NULL, NULL },
- { /* entry idx, value */ 28, VALUE_OPT_INDER,
- /* equiv idx, value */ 28, VALUE_OPT_INDER,
+ { /* entry idx, value */ 29, VALUE_OPT_INDER,
+ /* equiv idx, value */ 29, VALUE_OPT_INDER,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ INDER_FLAGS, 0,
@@ -982,8 +879,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ INDER_DESC, INDER_NAME, INDER_name,
/* disablement strs */ NOT_INDER_name, NOT_INDER_PFX },
- { /* entry idx, value */ 29, VALUE_OPT_INRAW,
- /* equiv idx, value */ 29, VALUE_OPT_INRAW,
+ { /* entry idx, value */ 30, VALUE_OPT_INRAW,
+ /* equiv idx, value */ 30, VALUE_OPT_INRAW,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ INRAW_FLAGS, 0,
@@ -994,8 +891,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/* desc, NAME, name */ INRAW_DESC, INRAW_NAME, INRAW_name,
/* disablement strs */ 0, 0 },
- { /* entry idx, value */ 30, VALUE_OPT_PROVIDER,
- /* equiv idx, value */ 30, VALUE_OPT_PROVIDER,
+ { /* entry idx, value */ 31, VALUE_OPT_PROVIDER,
+ /* equiv idx, value */ 31, VALUE_OPT_PROVIDER,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PROVIDER_FLAGS, 0,
@@ -1010,7 +907,7 @@ static tOptDesc optDesc[OPTION_CT] = {
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
- /* opt state flags */ VER_FLAGS, AOUSE_VERSION,
+ /* opt state flags */ VER_FLAGS, 0,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
@@ -1024,7 +921,7 @@ static tOptDesc optDesc[OPTION_CT] = {
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
- /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
+ /* opt state flags */ OPTST_IMM | OPTST_NO_INIT, 0,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
@@ -1036,7 +933,7 @@ static tOptDesc optDesc[OPTION_CT] = {
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
- /* opt state flags */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
+ /* opt state flags */ MORE_HELP_FLAGS, 0,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
@@ -1046,24 +943,19 @@ static tOptDesc optDesc[OPTION_CT] = {
};
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/** Reference to the upper cased version of p11tool. */
-#define zPROGNAME (p11tool_opt_strs+2674)
-/** Reference to the title line for p11tool usage. */
-#define zUsageTitle (p11tool_opt_strs+2682)
-/** There is no p11tool configuration file. */
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Define the p11tool Option Environment
+ */
+#define zPROGNAME (p11tool_opt_strs+2728)
+#define zUsageTitle (p11tool_opt_strs+2736)
#define zRcName NULL
-/** There are no directories to search for p11tool config files. */
#define apzHomeList NULL
-/** The p11tool program bug email address. */
-#define zBugsAddr (p11tool_opt_strs+2777)
-/** Clarification/explanation of what p11tool does. */
-#define zExplain (p11tool_opt_strs+2796)
-/** Extra detail explaining what p11tool does. */
-#define zDetail (p11tool_opt_strs+2798)
-/** The full version string for p11tool. */
-#define zFullVersion (p11tool_opt_strs+3053)
-/* extracted from optcode.tlib near line 371 */
+#define zBugsAddr (p11tool_opt_strs+2848)
+#define zExplain (p11tool_opt_strs+2867)
+#define zDetail (p11tool_opt_strs+2870)
+#define zFullVersion (p11tool_opt_strs+3126)
+/* extracted from optcode.tlib near line 353 */
#if defined(ENABLE_NLS)
# define OPTPROC_BASE OPTPROC_TRANSLATE | OPTPROC_NXLAT_OPT
@@ -1073,8 +965,10 @@ static tOptDesc optDesc[OPTION_CT] = {
# define translate_option_strings NULL
#endif /* ENABLE_NLS */
+
#define p11tool_full_usage (NULL)
-#define p11tool_short_usage (p11tool_opt_strs+3071)
+
+#define p11tool_short_usage (p11tool_opt_strs+3144)
#endif /* not defined __doxygen__ */
@@ -1084,8 +978,8 @@ static tOptDesc optDesc[OPTION_CT] = {
/**
* The callout function that invokes the optionUsage function.
*
- * @param[in] pOptions the AutoOpts option description structure
- * @param[in] pOptDesc the descriptor for the "help" (usage) option.
+ * @param pOptions the AutoOpts option description structure
+ * @param pOptDesc the descriptor for the "help" (usage) option.
* @noreturn
*/
static void
@@ -1100,9 +994,9 @@ doUsageOpt(tOptions * pOptions, tOptDesc * pOptDesc)
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the debug option.
- * Specifies the debug level.
- * @param[in] pOptions the p11tool options data structure
- * @param[in,out] pOptDesc the option descriptor for this option.
+ *
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
*/
static void
doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1136,8 +1030,8 @@ doOptDebug(tOptions* pOptions, tOptDesc* pOptDesc)
/**
* Code to handle the load-privkey option.
*
- * @param[in] pOptions the p11tool options data structure
- * @param[in,out] pOptDesc the option descriptor for this option.
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
*/
static void
doOptLoad_Privkey(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1160,8 +1054,8 @@ doOptLoad_Privkey(tOptions* pOptions, tOptDesc* pOptDesc)
/**
* Code to handle the load-pubkey option.
*
- * @param[in] pOptions the p11tool options data structure
- * @param[in,out] pOptDesc the option descriptor for this option.
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
*/
static void
doOptLoad_Pubkey(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1184,8 +1078,8 @@ doOptLoad_Pubkey(tOptions* pOptions, tOptDesc* pOptDesc)
/**
* Code to handle the load-certificate option.
*
- * @param[in] pOptions the p11tool options data structure
- * @param[in,out] pOptDesc the option descriptor for this option.
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
*/
static void
doOptLoad_Certificate(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1208,8 +1102,8 @@ doOptLoad_Certificate(tOptions* pOptions, tOptDesc* pOptDesc)
/**
* Code to handle the inraw option.
*
- * @param[in] pOptions the p11tool options data structure
- * @param[in,out] pOptDesc the option descriptor for this option.
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
*/
static void
doOptInraw(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1223,9 +1117,9 @@ doOptInraw(tOptions* pOptions, tOptDesc* pOptDesc)
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the provider option.
- * This will override the default options in /etc/gnutls/pkcs11.conf
- * @param[in] pOptions the p11tool options data structure
- * @param[in,out] pOptDesc the option descriptor for this option.
+ *
+ * @param pOptions the p11tool options data structure
+ * @param pOptDesc the option descriptor for this option.
*/
static void
doOptProvider(tOptions* pOptions, tOptDesc* pOptDesc)
@@ -1243,7 +1137,7 @@ doOptProvider(tOptions* pOptions, tOptDesc* pOptDesc)
*/
optionFileCheck(pOptions, pOptDesc, type, mode);
}
-/* extracted from optmain.tlib near line 1254 */
+/* extracted from optmain.tlib near line 1188 */
/**
* The directory containing the data associated with p11tool.
@@ -1259,7 +1153,6 @@ doOptProvider(tOptions* pOptions, tOptDesc* pOptDesc)
#ifndef WITH_PACKAGER
# define p11tool_packager_info NULL
#else
-/** Packager information for p11tool. */
static char const p11tool_packager_info[] =
"Packaged by " WITH_PACKAGER
@@ -1308,18 +1201,13 @@ tOptions p11toolOptions = {
NO_EQUIVALENT, /* '-#' option index */
NO_EQUIVALENT /* index of default opt */
},
- 34 /* full option count */, 31 /* user option count */,
+ 35 /* full option count */, 32 /* user option count */,
p11tool_full_usage, p11tool_short_usage,
NULL, NULL,
PKGDATADIR, p11tool_packager_info
};
#if ENABLE_NLS
-/**
- * This code is designed to translate translatable option text for the
- * p11tool program. These translations happen upon entry
- * to optionProcess().
- */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -1398,8 +1286,9 @@ translate_option_strings(void)
* Do the translations. The first pointer follows the field count
* field. The field count field is the size of a pointer.
*/
- char ** ppz = (char**)(void*)&(option_xlateable_txt);
- int ix = option_xlateable_txt.field_ct;
+ tOptDesc * od = opts->pOptDesc;
+ char ** ppz = (char**)(void*)&(option_xlateable_txt);
+ int ix = option_xlateable_txt.field_ct;
do {
ppz++; /* skip over field_ct */
@@ -1414,471 +1303,28 @@ translate_option_strings(void)
coerce_it((void*)&(opts->pzUsageTitle));
coerce_it((void*)&(opts->pzExplain));
coerce_it((void*)&(opts->pzDetail));
- {
- tOptDesc * od = opts->pOptDesc;
- for (ix = opts->optCt; ix > 0; ix--, od++)
- coerce_it((void*)&(od->pzText));
- }
- }
-}
-#endif /* ENABLE_NLS */
-
-#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
-/** I18N function strictly for xgettext. Do not compile. */
-static void bogus_function(void) {
- /* TRANSLATORS:
-
- The following dummy function was crated solely so that xgettext can extract
- the correct strings. These strings are actually referenced by a field name
- in the p11toolOptions structure noted in the comments below. The
- literal text is defined in p11tool_opt_strs.
-
- NOTE: the strings below are segmented with respect to the source string
- p11tool_opt_strs. The strings above are handed off for translation
- at run time a paragraph at a time. Consequently, they are presented here
- for translation a paragraph at a time.
-
- ALSO: often the description for an option will reference another option
- by name. These are set off with apostrophe quotes (I hope). Do not
- translate option names.
- */
- /* referenced via p11toolOptions.pzCopyright */
- puts(_("p11tool @VERSION@\n\
-Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n\
-This is free software. It is licensed for use, modification and\n\
-redistribution under the terms of the GNU General Public License,\n\
-version 3 or later <http://gnu.org/licenses/gpl.html>\n"));
-
- /* referenced via p11toolOptions.pzCopyNotice */
- puts(_("p11tool is free software: you can redistribute it and/or modify it under\n\
-the terms of the GNU General Public License as published by the Free\n\
-Software Foundation, either version 3 of the License, or (at your option)\n\
-any later version.\n\n"));
- puts(_("p11tool is distributed in the hope that it will be useful, but WITHOUT ANY\n\
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\n\
-FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\n\
-details.\n\n"));
- puts(_("You should have received a copy of the GNU General Public License along\n\
-with this program. If not, see <http://www.gnu.org/licenses/>.\n"));
+ coerce_it((void*)&(opts->pzPackager));
+ coerce_it((void*)&(opts->pzShortUsage));
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Enable debugging."));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Output file"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("List all available tokens"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Export the object specified by the URL"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("List all available mechanisms in a token"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("List all available objects in a token"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("List all available certificates in a token"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("List all certificates that have an associated private key"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("List all available private keys in a token"));
+ for (ix = opts->optCt; ix > 0; ix--, od++)
+ coerce_it((void*)&(od->pzText));
+ }
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("List all available certificates marked as trusted"));
+ if ((opts->fOptSet & OPTPROC_NXLAT_OPT_CFG) == 0) {
+ tOptDesc * od = opts->pOptDesc;
+ int ix;
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Initializes a PKCS #11 token"));
+ for (ix = opts->optCt; ix > 0; ix--, od++) {
+ coerce_it((void*)&(od->pz_Name));
+ coerce_it((void*)&(od->pz_DisableName));
+ coerce_it((void*)&(od->pz_DisablePfx));
+ }
+ p11toolOptions.fOptSet |= OPTPROC_NXLAT_OPT_CFG | OPTPROC_NXLAT_OPT;
+ }
+}
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Writes the loaded objects to a PKCS #11 token"));
+#endif /* ENABLE_NLS */
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Deletes the objects matching the PKCS #11 URL"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Generate an RSA private-public key pair"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Generate an RSA private-public key pair"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Generate an RSA private-public key pair"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Sets a label for the write operation"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Marks the object to be written as trusted"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Marks the object to be written as private"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Force login to token"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Print detailed URLs"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Provide a hex encoded secret key"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Private key file to use"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Public key file to use"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Certificate file to use"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Use PKCS #8 format for private keys"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Specify the number of bits for key generate"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Specify the security level"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Use DER/RAW format for input"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("an alias for the 'inder' option"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("Specify the PKCS #11 provider library"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("display extended usage information and exit"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("extended usage information passed thru pager"));
-
- /* referenced via p11toolOptions.pOptDesc->pzText */
- puts(_("output version information and exit"));
-
- /* referenced via p11toolOptions.pzUsageTitle */
- puts(_("p11tool - GnuTLS PKCS #11 tool\n\
-Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [url]\n"));
-
- /* referenced via p11toolOptions.pzExplain */
- puts(_("\n"));
-
- /* referenced via p11toolOptions.pzDetail */
- puts(_("Program that allows handling data from PKCS #11 smart cards and security\n\
-modules.\n\n\
-To use PKCS #11 tokens with gnutls the configuration file\n\
-/etc/gnutls/pkcs11.conf has to exist and contain a number of lines of the\n\
-form 'load=/usr/lib/opensc-pkcs11.so'.\n"));
-
- /* referenced via p11toolOptions.pzFullVersion */
- puts(_("p11tool @VERSION@"));
-
- /* referenced via p11toolOptions.pzFullUsage */
- puts(_("<<<NOT-FOUND>>>"));
-
- /* referenced via p11toolOptions.pzShortUsage */
- puts(_("p11tool [options] [url]\n\
-p11tool --help for usage instructions.\n"));
- /* LIBOPTS-MESSAGES: */
-#line 60 "../autoopts.c"
- puts(_("allocation of %d bytes failed\n"));
-#line 86 "../autoopts.c"
- puts(_("allocation of %d bytes failed\n"));
-#line 53 "../init.c"
- puts(_("AutoOpts function called without option descriptor\n"));
-#line 89 "../init.c"
- puts(_("\tThis exceeds the compiled library version: "));
-#line 87 "../init.c"
- puts(_("Automated Options Processing Error!\n"
- "\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
-#line 73 "../autoopts.c"
- puts(_("realloc of %d bytes at 0x%p failed\n"));
-#line 91 "../init.c"
- puts(_("\tThis is less than the minimum library version: "));
-#line 121 "../version.c"
- puts(_("Automated Options version %s\n"
- "\tCopyright (C) 1999-2013 by Bruce Korb - all rights reserved\n"));
-#line 310 "../usage.c"
- puts(_("(AutoOpts bug): %s.\n"));
-#line 90 "../reset.c"
- puts(_("optionResetOpt() called, but reset-option not configured"));
-#line 329 "../usage.c"
- puts(_("could not locate the 'help' option"));
-#line 351 "../autoopts.c"
- puts(_("optionProcess() was called with invalid data"));
-#line 783 "../usage.c"
- puts(_("invalid argument type specified"));
-#line 589 "../find.c"
- puts(_("defaulted to option with optional arg"));
-#line 76 "../alias.c"
- puts(_("aliasing option is out of range."));
-#line 229 "../enum.c"
- puts(_("%s error: the keyword '%s' is ambiguous for %s\n"));
-#line 108 "../find.c"
- puts(_(" The following options match:\n"));
-#line 290 "../find.c"
- puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
-#line 161 "../check.c"
- puts(_("%s: Command line arguments required\n"));
-#line 43 "../alias.c"
- puts(_("%d %s%s options allowed\n"));
-#line 81 "../makeshell.c"
- puts(_("%s error %d (%s) calling %s for '%s'\n"));
-#line 293 "../makeshell.c"
- puts(_("interprocess pipe"));
-#line 168 "../version.c"
- puts(_("error: version option argument '%c' invalid. Use:\n"
- "\t'v' - version only\n"
- "\t'c' - version and copyright\n"
- "\t'n' - version and full copyright notice\n"));
-#line 58 "../check.c"
- puts(_("%s error: the '%s' and '%s' options conflict\n"));
-#line 214 "../find.c"
- puts(_("%s: The '%s' option has been disabled."));
-#line 421 "../find.c"
- puts(_("%s: The '%s' option has been disabled."));
-#line 38 "../alias.c"
- puts(_("-equivalence"));
-#line 460 "../find.c"
- puts(_("%s: illegal option -- %c\n"));
-#line 110 "../reset.c"
- puts(_("%s: illegal option -- %c\n"));
-#line 268 "../find.c"
- puts(_("%s: illegal option -- %s\n"));
-#line 746 "../find.c"
- puts(_("%s: illegal option -- %s\n"));
-#line 118 "../reset.c"
- puts(_("%s: illegal option -- %s\n"));
-#line 332 "../find.c"
- puts(_("%s: unknown vendor extension option -- %s\n"));
-#line 154 "../enum.c"
- puts(_(" or an integer from %d through %d\n"));
-#line 164 "../enum.c"
- puts(_(" or an integer from %d through %d\n"));
-#line 782 "../usage.c"
- puts(_("%s error: invalid option descriptor for %s\n"));
-#line 1110 "../usage.c"
- puts(_("%s error: invalid option descriptor for %s\n"));
-#line 379 "../find.c"
- puts(_("%s: invalid option name: %s\n"));
-#line 518 "../find.c"
- puts(_("%s: The '%s' option requires an argument.\n"));
-#line 171 "../autoopts.c"
- puts(_("(AutoOpts bug): Equivalenced option '%s' was equivalenced to both\n"
- "\t'%s' and '%s'."));
-#line 94 "../check.c"
- puts(_("%s error: The %s option is required\n"));
-#line 623 "../find.c"
- puts(_("%s: The '%s' option cannot have an argument.\n"));
-#line 151 "../check.c"
- puts(_("%s: Command line arguments are not allowed.\n"));
-#line 531 "../save.c"
- puts(_("error %d (%s) creating %s\n"));
-#line 229 "../enum.c"
- puts(_("%s error: '%s' does not match any %s keywords.\n"));
-#line 93 "../reset.c"
- puts(_("%s error: The '%s' option requires an argument.\n"));
-#line 184 "../save.c"
- puts(_("error %d (%s) stat-ing %s\n"));
-#line 238 "../save.c"
- puts(_("error %d (%s) stat-ing %s\n"));
-#line 143 "../restore.c"
- puts(_("%s error: no saved option state\n"));
-#line 246 "../autoopts.c"
- puts(_("'%s' is not a command line option.\n"));
-#line 114 "../time.c"
- puts(_("%s error: '%s' is not a recognizable date/time.\n"));
-#line 132 "../save.c"
- puts(_("'%s' not defined\n"));
-#line 53 "../time.c"
- puts(_("%s error: '%s' is not a recognizable time duration.\n"));
-#line 92 "../check.c"
- puts(_("%s error: The %s option must appear %d times.\n"));
-#line 157 "../numeric.c"
- puts(_("%s error: '%s' is not a recognizable number.\n"));
-#line 195 "../enum.c"
- puts(_("%s error: %s exceeds %s keyword count\n"));
-#line 366 "../usage.c"
- puts(_("Try '%s %s' for more information.\n"));
-#line 45 "../alias.c"
- puts(_("one %s%s option allowed\n"));
-#line 195 "../makeshell.c"
- puts(_("standard output"));
-#line 930 "../makeshell.c"
- puts(_("standard output"));
-#line 304 "../usage.c"
- puts(_("standard output"));
-#line 451 "../usage.c"
- puts(_("standard output"));
-#line 660 "../usage.c"
- puts(_("standard output"));
-#line 175 "../version.c"
- puts(_("standard output"));
-#line 304 "../usage.c"
- puts(_("standard error"));
-#line 451 "../usage.c"
- puts(_("standard error"));
-#line 660 "../usage.c"
- puts(_("standard error"));
-#line 175 "../version.c"
- puts(_("standard error"));
-#line 195 "../makeshell.c"
- puts(_("write"));
-#line 930 "../makeshell.c"
- puts(_("write"));
-#line 303 "../usage.c"
- puts(_("write"));
-#line 450 "../usage.c"
- puts(_("write"));
-#line 659 "../usage.c"
- puts(_("write"));
-#line 174 "../version.c"
- puts(_("write"));
-#line 60 "../numeric.c"
- puts(_("%s error: %s option value %ld is out of range.\n"));
-#line 44 "../check.c"
- puts(_("%s error: %s option requires the %s option\n"));
-#line 131 "../save.c"
- puts(_("%s warning: cannot save options - %s not regular file\n"));
-#line 183 "../save.c"
- puts(_("%s warning: cannot save options - %s not regular file\n"));
-#line 237 "../save.c"
- puts(_("%s warning: cannot save options - %s not regular file\n"));
-#line 256 "../save.c"
- puts(_("%s warning: cannot save options - %s not regular file\n"));
-#line 530 "../save.c"
- puts(_("%s warning: cannot save options - %s not regular file\n"));
- /* END-LIBOPTS-MESSAGES */
-
- /* USAGE-TEXT: */
-#line 908 "../usage.c"
- puts(_("\t\t\t\t- an alternate for '%s'\n"));
-#line 1177 "../usage.c"
- puts(_("Version, usage and configuration options:"));
-#line 959 "../usage.c"
- puts(_("\t\t\t\t- default option for unnamed options\n"));
-#line 872 "../usage.c"
- puts(_("\t\t\t\t- disabled as '--%s'\n"));
-#line 1146 "../usage.c"
- puts(_(" --- %-14s %s\n"));
-#line 1144 "../usage.c"
- puts(_("This option has been disabled"));
-#line 899 "../usage.c"
- puts(_("\t\t\t\t- enabled by default\n"));
-#line 40 "../alias.c"
- puts(_("%s error: only "));
-#line 1221 "../usage.c"
- puts(_(" - examining environment variables named %s_*\n"));
-#line 168 "../file.c"
- puts(_("\t\t\t\t- file must not pre-exist\n"));
-#line 172 "../file.c"
- puts(_("\t\t\t\t- file must pre-exist\n"));
-#line 416 "../usage.c"
- puts(_("Options are specified by doubled hyphens and their name or by a single\n"
- "hyphen and the flag character.\n"));
-#line 908 "../makeshell.c"
- puts(_("\n"
- "= = = = = = = =\n\n"
- "This incarnation of genshell will produce\n"
- "a shell script to parse the options for %s:\n\n"));
-#line 161 "../enum.c"
- puts(_(" or an integer mask with any of the lower %d bits set\n"));
-#line 932 "../usage.c"
- puts(_("\t\t\t\t- is a set membership option\n"));
-#line 953 "../usage.c"
- puts(_("\t\t\t\t- must appear between %d and %d times\n"));
-#line 418 "../usage.c"
- puts(_("Options are specified by single or double hyphens and their name.\n"));
-#line 939 "../usage.c"
- puts(_("\t\t\t\t- may appear multiple times\n"));
-#line 926 "../usage.c"
- puts(_("\t\t\t\t- may not be preset\n"));
-#line 1336 "../usage.c"
- puts(_(" Arg Option-Name Description\n"));
-#line 1272 "../usage.c"
- puts(_(" Flg Arg Option-Name Description\n"));
-#line 1330 "../usage.c"
- puts(_(" Flg Arg Option-Name Description\n"));
-#line 1331 "../usage.c"
- puts(_(" %3s %s"));
-#line 1337 "../usage.c"
- puts(_(" %3s %s"));
-#line 423 "../usage.c"
- puts(_("The '-#<number>' option may omit the hash char\n"));
-#line 419 "../usage.c"
- puts(_("All arguments are named options.\n"));
-#line 1006 "../usage.c"
- puts(_(" - reading file %s"));
-#line 445 "../usage.c"
- puts(_("\n"
- "Please send bug reports to: <%s>\n"));
-#line 100 "../version.c"
- puts(_("\n"
- "Please send bug reports to: <%s>\n"));
-#line 129 "../version.c"
- puts(_("\n"
- "Please send bug reports to: <%s>\n"));
-#line 938 "../usage.c"
- puts(_("\t\t\t\t- may NOT appear - preset only\n"));
-#line 978 "../usage.c"
- puts(_("\n"
- "The following option preset mechanisms are supported:\n"));
-#line 1219 "../usage.c"
- puts(_("\n"
- "The following option preset mechanisms are supported:\n"));
-#line 717 "../usage.c"
- puts(_("prohibits these options:\n"));
-#line 712 "../usage.c"
- puts(_("prohibits the option '%s'\n"));
-#line 81 "../numeric.c"
- puts(_("%s%ld to %ld"));
-#line 79 "../numeric.c"
- puts(_("%sgreater than or equal to %ld"));
-#line 75 "../numeric.c"
- puts(_("%s%ld exactly"));
-#line 68 "../numeric.c"
- puts(_("%sit must lie in one of the ranges:\n"));
-#line 68 "../numeric.c"
- puts(_("%sit must be in the range:\n"));
-#line 88 "../numeric.c"
- puts(_(", or\n"));
-#line 66 "../numeric.c"
- puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
-#line 77 "../numeric.c"
- puts(_("%sless than or equal to %ld"));
-#line 426 "../usage.c"
- puts(_("Operands and options may be intermixed. They will be reordered.\n"));
-#line 687 "../usage.c"
- puts(_("requires the option '%s'\n"));
-#line 690 "../usage.c"
- puts(_("requires these options:\n"));
-#line 1348 "../usage.c"
- puts(_(" Arg Option-Name Req? Description\n"));
-#line 1342 "../usage.c"
- puts(_(" Flg Arg Option-Name Req? Description\n"));
-#line 162 "../enum.c"
- puts(_("or you may use a numeric representation. Preceding these with a '!'\n"
- "will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
- "will set them all. Multiple entries may be passed as an option\n"
- "argument list.\n"));
-#line 945 "../usage.c"
- puts(_("\t\t\t\t- may appear up to %d times\n"));
-#line 72 "../enum.c"
- puts(_("The valid \"%s\" option keywords are:\n"));
-#line 1181 "../usage.c"
- puts(_("The next option supports vendor supported extra options:"));
-#line 808 "../usage.c"
- puts(_("These additional options are:"));
- /* END-USAGE-TEXT */
-}
-#endif /* uncompilable code */
#ifdef __cplusplus
}
#endif
diff --git a/src/p11tool-args.def b/src/p11tool-args.def
index 6902dbee4b..de296ade00 100644
--- a/src/p11tool-args.def
+++ b/src/p11tool-args.def
@@ -84,6 +84,13 @@ flag = {
};
flag = {
+ name = generate-random;
+ descrip = "Generate random data";
+ arg-type = number;
+ doc = "Asks the token to generate a number of bytes of random bytes.";
+};
+
+flag = {
name = generate-rsa;
descrip = "Generate an RSA private-public key pair";
doc = "Generates an RSA private-public key pair on the specified token.";
diff --git a/src/p11tool-args.h b/src/p11tool-args.h
index 592371d20c..2cec37a20f 100644
--- a/src/p11tool-args.h
+++ b/src/p11tool-args.h
@@ -1,12 +1,12 @@
/* -*- buffer-read-only: t -*- vi: set ro:
- *
+ *
* DO NOT EDIT THIS FILE (p11tool-args.h)
- *
- * It has been AutoGen-ed May 5, 2013 at 12:48:26 PM by AutoGen 5.17.3
+ *
+ * It has been AutoGen-ed October 26, 2013 at 11:03:33 AM by AutoGen 5.17
* From the definitions p11tool-args.def
* and the template file options
*
- * Generated from AutoOpts 38:0:13 templates.
+ * Generated from AutoOpts 37:0:12 templates.
*
* AutoOpts is a copyrighted work. This header file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
@@ -21,23 +21,24 @@
*
* Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
- * redistribution under the terms of the GNU General Public License,
- * version 3 or later <http://gnu.org/licenses/gpl.html>
+ * redistribution under the terms of the
+ * GNU General Public License, version 3 or later
+ * <http://gnu.org/licenses/gpl.html>
*
* p11tool is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
- *
+ *
* p11tool is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/**
+/*
* This file contains the programmatic interface to the Automated
* Options generated for the p11tool program.
* These macros are documented in the AutoGen info file in the
@@ -48,22 +49,22 @@
#include "config.h"
#include <autoopts/options.h>
-/**
+/*
* Ensure that the library used for compiling this generated header is at
* least as new as the version current when the header template was released
* (not counting patch version increments). Also ensure that the oldest
* tolerable version is at least as old as what was current when the header
* template was released.
*/
-#define AO_TEMPLATE_VERSION 155648
+#define AO_TEMPLATE_VERSION 151552
#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
|| (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
# error option template version mismatches autoopts/options.h header
Choke Me.
#endif
-/**
- * Enumeration of each option type for p11tool
+/*
+ * Enumeration of each option:
*/
typedef enum {
INDEX_OPT_DEBUG = 0,
@@ -79,73 +80,57 @@ typedef enum {
INDEX_OPT_INITIALIZE = 10,
INDEX_OPT_WRITE = 11,
INDEX_OPT_DELETE = 12,
- INDEX_OPT_GENERATE_RSA = 13,
- INDEX_OPT_GENERATE_DSA = 14,
- INDEX_OPT_GENERATE_ECC = 15,
- INDEX_OPT_LABEL = 16,
- INDEX_OPT_TRUSTED = 17,
- INDEX_OPT_PRIVATE = 18,
- INDEX_OPT_LOGIN = 19,
- INDEX_OPT_DETAILED_URL = 20,
- INDEX_OPT_SECRET_KEY = 21,
- INDEX_OPT_LOAD_PRIVKEY = 22,
- INDEX_OPT_LOAD_PUBKEY = 23,
- INDEX_OPT_LOAD_CERTIFICATE = 24,
- INDEX_OPT_PKCS8 = 25,
- INDEX_OPT_BITS = 26,
- INDEX_OPT_SEC_PARAM = 27,
- INDEX_OPT_INDER = 28,
- INDEX_OPT_INRAW = 29,
- INDEX_OPT_PROVIDER = 30,
- INDEX_OPT_VERSION = 31,
- INDEX_OPT_HELP = 32,
- INDEX_OPT_MORE_HELP = 33
+ INDEX_OPT_GENERATE_RANDOM = 13,
+ INDEX_OPT_GENERATE_RSA = 14,
+ INDEX_OPT_GENERATE_DSA = 15,
+ INDEX_OPT_GENERATE_ECC = 16,
+ INDEX_OPT_LABEL = 17,
+ INDEX_OPT_TRUSTED = 18,
+ INDEX_OPT_PRIVATE = 19,
+ INDEX_OPT_LOGIN = 20,
+ INDEX_OPT_DETAILED_URL = 21,
+ INDEX_OPT_SECRET_KEY = 22,
+ INDEX_OPT_LOAD_PRIVKEY = 23,
+ INDEX_OPT_LOAD_PUBKEY = 24,
+ INDEX_OPT_LOAD_CERTIFICATE = 25,
+ INDEX_OPT_PKCS8 = 26,
+ INDEX_OPT_BITS = 27,
+ INDEX_OPT_SEC_PARAM = 28,
+ INDEX_OPT_INDER = 29,
+ INDEX_OPT_INRAW = 30,
+ INDEX_OPT_PROVIDER = 31,
+ INDEX_OPT_VERSION = 32,
+ INDEX_OPT_HELP = 33,
+ INDEX_OPT_MORE_HELP = 34
} teOptIndex;
-/** count of all options for p11tool */
-#define OPTION_CT 34
-/** p11tool version */
+
+#define OPTION_CT 35
#define P11TOOL_VERSION "@VERSION@"
-/** Full p11tool version text */
#define P11TOOL_FULL_VERSION "p11tool @VERSION@"
-/**
+/*
* Interface defines for all options. Replace "n" with the UPPER_CASED
* option name (as in the teOptIndex enumeration above).
* e.g. HAVE_OPT(DEBUG)
*/
#define DESC(n) (p11toolOptions.pOptDesc[INDEX_OPT_## n])
-/** 'true' if an option has been specified in any way */
#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
-/** The string argument to an option. The argument type must be "string". */
#define OPT_ARG(n) (DESC(n).optArg.argString)
-/** Mask the option state revealing how an option was specified.
- * It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
- * \a OPTST_DEFINED, \a OPTST_RESET or zero.
- */
#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
-/** Count of option's occurrances *on the command line*. */
#define COUNT_OPT(n) (DESC(n).optOccCt)
-/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
-/** 'true' if \a HAVE_OPT would yield 'false'. */
#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
-/** 'true' if OPTST_DISABLED bit not set. */
#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
-/** number of stacked option arguments.
- * Valid only for stacked option arguments. */
#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
-/** stacked argument vector.
- * Valid only for stacked option arguments. */
#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
-/** Reset an option. */
#define CLEAR_OPT(n) STMTS( \
DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
DESC(n).fOptState |= OPTST_DISABLED; \
DESC(n).optCookie = NULL )
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/**
+/* * * * * *
+ *
* Enumeration of p11tool exit codes
*/
typedef enum {
@@ -154,10 +139,9 @@ typedef enum {
P11TOOL_EXIT_USAGE_ERROR = 64,
P11TOOL_EXIT_LIBOPTS_FAILURE = 70
} p11tool_exit_code_t;
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/**
+/* * * * * *
+ *
* Interface defines for specific options.
- * @{
*/
#define VALUE_OPT_DEBUG 'd'
@@ -174,31 +158,31 @@ typedef enum {
#define VALUE_OPT_INITIALIZE 10
#define VALUE_OPT_WRITE 11
#define VALUE_OPT_DELETE 12
-#define VALUE_OPT_GENERATE_RSA 13
-#define VALUE_OPT_GENERATE_DSA 14
-#define VALUE_OPT_GENERATE_ECC 15
-#define VALUE_OPT_LABEL 16
-#define VALUE_OPT_TRUSTED 17
-#define VALUE_OPT_PRIVATE 18
-#define VALUE_OPT_LOGIN 19
-#define VALUE_OPT_DETAILED_URL 20
-#define VALUE_OPT_SECRET_KEY 21
-#define VALUE_OPT_LOAD_PRIVKEY 22
-#define VALUE_OPT_LOAD_PUBKEY 23
-#define VALUE_OPT_LOAD_CERTIFICATE 24
+#define VALUE_OPT_GENERATE_RANDOM 13
+
+#define OPT_VALUE_GENERATE_RANDOM (DESC(GENERATE_RANDOM).optArg.argInt)
+#define VALUE_OPT_GENERATE_RSA 14
+#define VALUE_OPT_GENERATE_DSA 15
+#define VALUE_OPT_GENERATE_ECC 16
+#define VALUE_OPT_LABEL 17
+#define VALUE_OPT_TRUSTED 18
+#define VALUE_OPT_PRIVATE 19
+#define VALUE_OPT_LOGIN 20
+#define VALUE_OPT_DETAILED_URL 21
+#define VALUE_OPT_SECRET_KEY 22
+#define VALUE_OPT_LOAD_PRIVKEY 23
+#define VALUE_OPT_LOAD_PUBKEY 24
+#define VALUE_OPT_LOAD_CERTIFICATE 25
#define VALUE_OPT_PKCS8 '8'
-#define VALUE_OPT_BITS 26
+#define VALUE_OPT_BITS 27
#define OPT_VALUE_BITS (DESC(BITS).optArg.argInt)
-#define VALUE_OPT_SEC_PARAM 27
-#define VALUE_OPT_INDER 28
-#define VALUE_OPT_INRAW 29
-#define VALUE_OPT_PROVIDER 30
-/** option flag (value) for " (get "val-name") " option */
+#define VALUE_OPT_SEC_PARAM 28
+#define VALUE_OPT_INDER 29
+#define VALUE_OPT_INRAW 30
+#define VALUE_OPT_PROVIDER 31
#define VALUE_OPT_HELP 'h'
-/** option flag (value) for " (get "val-name") " option */
#define VALUE_OPT_MORE_HELP '!'
-/** option flag (value) for " (get "val-name") " option */
#define VALUE_OPT_VERSION 'v'
/*
* Interface defines not associated with particular options
@@ -210,7 +194,7 @@ typedef enum {
p11toolOptions.pzCurOpt = NULL)
#define START_OPT RESTART_OPT(1)
#define USAGE(c) (*p11toolOptions.pUsageProc)(&p11toolOptions, c)
-/* extracted from opthead.tlib near line 538 */
+/* extracted from opthead.tlib near line 497 */
#ifdef __cplusplus
extern "C" {
diff --git a/src/p11tool.c b/src/p11tool.c
index 19ca1fdd22..10988829d2 100644
--- a/src/p11tool.c
+++ b/src/p11tool.c
@@ -195,6 +195,8 @@ cmd_parser (int argc, char **argv)
else if (HAVE_OPT(LIST_MECHANISMS))
pkcs11_mechanism_list (outfile, url, login,
&cinfo);
+ else if (HAVE_OPT(GENERATE_RANDOM))
+ pkcs11_get_random (outfile, url, OPT_VALUE_GENERATE_RANDOM, &cinfo);
else if (HAVE_OPT(LIST_ALL))
{
pkcs11_type = PKCS11_TYPE_ALL;
diff --git a/src/p11tool.h b/src/p11tool.h
index 4c5658e428..f7ea73bfdb 100644
--- a/src/p11tool.h
+++ b/src/p11tool.h
@@ -30,6 +30,8 @@ void pkcs11_list (FILE * outfile, const char *url, int type,
common_info_st *);
void pkcs11_mechanism_list (FILE * outfile, const char *url,
unsigned int login, common_info_st *);
+void pkcs11_get_random (FILE * outfile, const char *url,
+ unsigned bytes, common_info_st *);
void pkcs11_export (FILE * outfile, const char *pkcs11_url,
unsigned int login, common_info_st *);
void pkcs11_token_list (FILE * outfile, unsigned int detailed,
diff --git a/src/pkcs11.c b/src/pkcs11.c
index 5290f63833..5b206ac1f5 100644
--- a/src/pkcs11.c
+++ b/src/pkcs11.c
@@ -812,3 +812,33 @@ pkcs11_mechanism_list (FILE * outfile, const char *url, unsigned int login,
return;
}
+
+void
+pkcs11_get_random (FILE * outfile, const char *url, unsigned bytes, common_info_st * info)
+{
+ int ret;
+ uint8_t* output;
+
+ pkcs11_common ();
+
+ if (url == NULL)
+ url = "pkcs11:";
+
+ output = malloc(bytes);
+ if (output == NULL)
+ {
+ fprintf(stderr, "Memory error\n");
+ exit(1);
+ }
+
+ ret = gnutls_pkcs11_token_get_random (url, output, bytes);
+ if (ret < 0)
+ {
+ fprintf(stderr, "gnutls_pkcs11_token_get_random: %s\n", gnutls_strerror(ret));
+ exit(1);
+ }
+
+ fwrite(output, 1, bytes, outfile);
+
+ return;
+}