diff options
-rw-r--r-- | src/p11tool-args.c | 1306 | ||||
-rw-r--r-- | src/p11tool-args.def | 7 | ||||
-rw-r--r-- | src/p11tool-args.h | 144 | ||||
-rw-r--r-- | src/p11tool.c | 2 | ||||
-rw-r--r-- | src/p11tool.h | 2 | ||||
-rw-r--r-- | src/pkcs11.c | 30 |
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; +} |