Go to the documentation of this file.
46 fprintf(stderr,
"usage: %s [-c config] [-gsdr]\n",
progname);
50 main (
int argc,
char *argv[])
60 ldns_rr *rr, *sig, *dnskey_rr;
74 const char *repository =
"default";
80 while ((ch = getopt(argc, argv,
"hgsdrc:")) != -1) {
115 fprintf(stdout,
"Starting HSM lib test\n");
120 fprintf(stderr,
"%s\n", error);
124 fprintf(stdout,
"hsm_open result: %d\n", result);
139 printf(
"\nCreated key!\n");
143 printf(
"Error creating key, bad token name?\n");
147 }
else if (do_sign || do_delete) {
149 printf(
"Found %u keys\n", (
unsigned int) key_count);
152 for (i = 0; i < key_count && !key; i++) {
153 printf(
"\nFound key!\n");
159 printf(
"Using key ID: %s\n",
id);
162 printf(
"ptr: 0x%p\n", (
void *) key);
165 printf(
"Got no key ID (broken key?), skipped...\n");
173 printf(
"Failed to find useful key\n");
182 printf(
"\nSigning with:\n");
186 rrset = ldns_rr_list_new();
188 status = ldns_rr_new_frm_str(&rr,
"regress.opendnssec.se. IN A 123.123.123.123", 0, NULL, NULL);
189 if (status == LDNS_STATUS_OK) ldns_rr_list_push_rr(rrset, rr);
190 status = ldns_rr_new_frm_str(&rr,
"regress.opendnssec.se. IN A 124.124.124.124", 0, NULL, NULL);
191 if (status == LDNS_STATUS_OK) ldns_rr_list_push_rr(rrset, rr);
195 sign_params->
owner = ldns_rdf_new_frm_str(LDNS_RDF_TYPE_DNAME,
"opendnssec.se.");
197 sign_params->
keytag = ldns_calc_keytag(dnskey_rr);
201 ldns_rr_list_print(stdout, rrset);
202 ldns_rr_print(stdout, sig);
203 ldns_rr_print(stdout, dnskey_rr);
211 ldns_rr_list_deep_free(rrset);
213 ldns_rr_free(dnskey_rr);
220 printf(
"\nDelete key:\n");
224 printf(
"Deleted key. Result: %d\n", res);
235 printf(
"random 32: %u\n", r32);
237 printf(
"random 64: %llu\n", (
long long unsigned int)r64);
249 fprintf(stdout,
"all done! hsm_close result: %d\n", 0);
251 if (config) free(config);
hsm_ctx_t * hsm_create_context()
hsm_sign_params_t * hsm_sign_params_new()
uint64_t hsm_random64(hsm_ctx_t *ctx)
ldns_rr * hsm_sign_rrset(hsm_ctx_t *ctx, const ldns_rr_list *rrset, const libhsm_key_t *key, const hsm_sign_params_t *sign_params)
int main(int argc, char *argv[])
void hsm_sign_params_free(hsm_sign_params_t *params)
char * hsm_prompt_pin(unsigned int id, const char *repository, unsigned int mode)
libhsm_key_t ** hsm_list_keys(hsm_ctx_t *ctx, size_t *count)
libhsm_key_t * hsm_generate_rsa_key(hsm_ctx_t *ctx, const char *repository, unsigned long keysize)
int hsm_remove_key(hsm_ctx_t *ctx, libhsm_key_t *key)
void libhsm_key_free(libhsm_key_t *key)
void hsm_print_key(hsm_ctx_t *ctx, libhsm_key_t *key)
hsm_repository_t * parse_conf_repositories(const char *cfgfile)
void hsm_print_ctx(hsm_ctx_t *ctx)
char * hsm_get_key_id(hsm_ctx_t *ctx, const libhsm_key_t *key)
libhsm_key_t * hsm_find_key_by_id(hsm_ctx_t *ctx, const char *id)
ldns_rr * hsm_get_dnskey(hsm_ctx_t *ctx, const libhsm_key_t *key, const hsm_sign_params_t *sign_params)
int hsm_open2(hsm_repository_t *rlist, char *(pin_callback)(unsigned int, const char *, unsigned int))
uint32_t hsm_random32(hsm_ctx_t *ctx)
void hsm_print_error(hsm_ctx_t *gctx)
void hsm_destroy_context(hsm_ctx_t *ctx)
char * hsm_get_error(hsm_ctx_t *gctx)