49 fprintf(stderr,
"%s (%s) version %s\n",
50 progname, PACKAGE_NAME, PACKAGE_VERSION);
57 "usage: %s [-c config] [-vV] command [options]\n",
60 fprintf(stderr,
" login\n");
61 fprintf(stderr,
" logout\n");
62 fprintf(stderr,
" list [repository]\n");
63 fprintf(stderr,
" generate <repository> rsa <keysize>\n");
64 fprintf(stderr,
" remove <id>\n");
65 fprintf(stderr,
" purge <repository>\n");
66 fprintf(stderr,
" dnskey <id> <name>\n");
67 fprintf(stderr,
" test <repository>\n");
68 fprintf(stderr,
" info\n");
70 fprintf(stderr,
" debug\n");
77 printf(
"The tokens are now logged in.\n");
86 printf(
"Failed to erase the credentials.\n");
91 printf(
"The credentials has been erased.\n");
100 char *repository = NULL;
102 size_t key_count = 0;
103 size_t key_count_valid = 0;
107 const char *key_info_format =
"%-20s %-32s %-10s\n";
111 repository = strdup(argv[0]);
121 fprintf(stdout,
"\nListing keys in repository: %s\n", repository);
124 fprintf(stdout,
"\nListing keys in all repositories.\n");
128 fprintf(stdout,
"%u %s found.\n\n", (
unsigned int) key_count,
129 (key_count > 1 || key_count == 0 ?
"keys" :
"key"));
136 fprintf(stdout, key_info_format,
"Repository",
"ID",
"Type");
137 fprintf(stdout, key_info_format,
"----------",
"--",
"----");
139 for (i = 0; i < key_count; i++) {
156 snprintf(key_type,
sizeof(key_type),
"%s/%lu",
158 key_id = key_info->
id;
160 snprintf(key_type,
sizeof(key_type),
"UNKNOWN");
164 printf(key_info_format, key->
module->
name, key_id, key_type);
170 if (key_count != key_count_valid) {
172 invalid_keys = key_count - key_count_valid;
174 fprintf(stderr,
"Warning: %u %s not usable by OpenDNSSEC was found.\n",
175 (
unsigned int) invalid_keys, invalid_keys > 1 ?
"keys" :
"key");
184 char *repository = NULL;
186 unsigned int keysize = 1024;
196 repository = strdup(argv[0]);
205 algorithm = strdup(argv[1]);
206 keysize = atoi(argv[2]);
208 if (!strcasecmp(algorithm,
"rsa")) {
209 printf(
"Generating %d bit RSA key in repository: %s\n",
210 keysize, repository);
218 printf(
"Key generation successful: %s\n",
219 key_info ? key_info->
id :
"NULL");
224 printf(
"Key generation failed.\n");
229 printf(
"Unknown algorithm: %s\n", algorithm);
249 id = strdup(argv[0]);
254 printf(
"Key not found: %s\n",
id);
261 printf(
"Key remove successful.\n");
263 printf(
"Key remove failed.\n");
275 int final_result = 0;
279 char *repository = NULL;
282 size_t key_count = 0;
291 repository = strdup(argv[0]);
301 printf(
"Purging all keys from repository: %s\n", repository);
304 printf(
"%u %s found.\n\n", (
unsigned int) key_count,
305 (key_count > 1 || key_count == 0 ?
"keys" :
"key"));
311 if (key_count == 0) {
315 printf(
"Are you sure you want to remove ALL keys from repository %s ? (YES/NO) ", repository);
316 fresult = fgets(confirm,
sizeof(confirm) - 1, stdin);
317 if (fresult == NULL || strncasecmp(confirm,
"yes", 3) != 0) {
318 printf(
"\nPurge cancelled.\n");
322 printf(
"\nStarting purge...\n");
325 for (i = 0; i < key_count; i++) {
333 printf(
"Key remove successful: %s\n",
334 key_info ? key_info->
id :
"NULL");
336 printf(
"Key remove failed: %s\n",
337 key_info ? key_info->
id :
"NULL");
345 printf(
"Purge done.\n");
365 id = strdup(argv[0]);
366 name = strdup(argv[1]);
371 printf(
"Key not found: %s\n",
id);
379 sign_params->
owner = ldns_rdf_new_frm_str(LDNS_RDF_TYPE_DNAME, name);
381 sign_params->
keytag = ldns_calc_keytag(dnskey_rr);
383 ldns_rr_print(stdout, dnskey_rr);
386 ldns_rr_free(dnskey_rr);
397 char *repository = NULL;
400 repository = strdup(argv[0]);
404 printf(
"Testing repository: %s\n\n", repository);
439 while ((ch = getopt(argc, argv,
"c:vVh")) != -1) {
469 if (!strcasecmp(argv[0],
"logout")) {
470 if (config) free(config);
480 openlog(
"hsmutil", LOG_PID, LOG_USER);
482 if (!strcasecmp(argv[0],
"login")) {
486 }
else if (!strcasecmp(argv[0],
"list")) {
490 }
else if (!strcasecmp(argv[0],
"generate")) {
494 }
else if (!strcasecmp(argv[0],
"remove")) {
498 }
else if (!strcasecmp(argv[0],
"purge")) {
502 }
else if (!strcasecmp(argv[0],
"dnskey")) {
506 }
else if (!strcasecmp(argv[0],
"test")) {
510 }
else if (!strcasecmp(argv[0],
"info")) {
514 }
else if (!strcasecmp(argv[0],
"debug")) {
524 if (config) free(config);