33 #include "clientpipe.h" 40 static const char *module_str =
"key_generate_cmd";
47 " --duration <duration> aka -d\n" 48 " --policy <policy> aka -p \n" 57 "Pre-generate keys for all or a given policy, the duration to pre-generate for\n" 58 "can be specified or otherwise its taken from the conf.xml.\n" 60 "duration duration to generate keys for\n" 61 "policy|all generate keys for a specified policy or for all of them \n\n");
65 handles(
const char *cmd, ssize_t n)
78 const char* duration_text = NULL;
79 time_t duration_time = 0;
87 if (!(buf = strdup(cmd))) {
88 client_printf_err(sockfd,
"memory error\n");
92 argc = ods_str_explode(buf, 6, argv);
94 client_printf_err(sockfd,
"too many arguments\n");
99 ods_find_arg_and_param(&argc, argv,
"duration",
"d", &duration_text);
100 ods_find_arg_and_param(&argc, argv,
"policy",
"p", &policy_name);
101 all = ods_find_arg(&argc, argv,
"all",
"a") > -1 ? 1 : 0;
104 client_printf_err(sockfd,
"unknown arguments\n");
110 if (!(duration = duration_create_from_string(duration_text))
111 || !(duration_time = duration2time(duration)))
113 client_printf_err(sockfd,
"Error parsing the specified duration!\n");
114 duration_cleanup(duration);
118 duration_cleanup(duration);
124 else if (policy_name) {
126 client_printf_err(sockfd,
"Unable to find policy %s!\n", policy_name);
134 client_printf_err(sockfd,
"Either --all or --policy needs to be given!\n");
139 client_printf(sockfd,
"Key generation task scheduled.\n");
void ods_log_debug(const char *format,...)
policy_t * policy_new_get_by_name(const db_connection_t *connection, const char *name)
const char * policy_name(const policy_t *policy)
int(* run)(int sockfd, struct engine_struct *engine, const char *cmd, ssize_t n, db_connection_t *dbconn)
void(* usage)(int sockfd)
struct cmd_func_block * key_generate_funcblock(void)
void policy_free(policy_t *policy)
int hsm_key_factory_schedule_generate_all(engine_type *engine, time_t duration)
int hsm_key_factory_schedule_generate_policy(engine_type *engine, const policy_t *policy_orig, time_t duration)
int(* handles)(const char *cmd, ssize_t n)