45 fprintf(stderr,
"usage: %s [-c config] [-gsdr]\n",
progname);
49 main (
int argc,
char *argv[])
59 ldns_rr *rr, *sig, *dnskey_rr;
73 const char *repository =
"default";
79 while ((ch = getopt(argc, argv,
"hgsdrc:")) != -1) {
114 fprintf(stdout,
"Starting HSM lib test\n");
116 fprintf(stdout,
"hsm_open result: %d\n", result);
134 printf(
"\nCreated key!\n");
138 printf(
"Error creating key, bad token name?\n");
142 }
else if (do_sign || do_delete) {
144 printf(
"I have found %u keys\n", (
unsigned int) key_count);
147 for (i = 0; i < key_count && !key; i++) {
148 printf(
"\nFound key!\n");
154 printf(
"Using key ID: %s\n",
id);
157 printf(
"ptr: 0x%p\n", (
void *) key);
160 printf(
"Got no key ID (broken key?), skipped...\n");
168 printf(
"Failed to find useful key\n");
177 printf(
"\nSigning with:\n");
181 rrset = ldns_rr_list_new();
183 status = ldns_rr_new_frm_str(&rr,
"regress.opendnssec.se. IN A 123.123.123.123", 0, NULL, NULL);
184 if (status == LDNS_STATUS_OK) ldns_rr_list_push_rr(rrset, rr);
185 status = ldns_rr_new_frm_str(&rr,
"regress.opendnssec.se. IN A 124.124.124.124", 0, NULL, NULL);
186 if (status == LDNS_STATUS_OK) ldns_rr_list_push_rr(rrset, rr);
190 sign_params->
owner = ldns_rdf_new_frm_str(LDNS_RDF_TYPE_DNAME,
"opendnssec.se.");
192 sign_params->
keytag = ldns_calc_keytag(dnskey_rr);
196 ldns_rr_list_print(stdout, rrset);
197 ldns_rr_print(stdout, sig);
198 ldns_rr_print(stdout, dnskey_rr);
206 ldns_rr_list_deep_free(rrset);
208 ldns_rr_free(dnskey_rr);
215 printf(
"\nDelete key:\n");
219 printf(
"Deleted key. Result: %d\n", res);
230 printf(
"random 32: %u\n", r32);
232 printf(
"random 64: %llu\n", (
long long unsigned int)r64);
246 fprintf(stdout,
"all done! hsm_close result: %d\n", result);
248 if (config) free(config);
char * hsm_get_key_id(hsm_ctx_t *ctx, const hsm_key_t *key)
void hsm_key_free(hsm_key_t *key)
hsm_key_t * hsm_find_key_by_id(hsm_ctx_t *ctx, const char *id)
void hsm_sign_params_free(hsm_sign_params_t *params)
uint32_t hsm_random32(hsm_ctx_t *ctx)
void hsm_print_ctx(hsm_ctx_t *gctx)
ldns_rr * hsm_get_dnskey(hsm_ctx_t *ctx, const hsm_key_t *key, const hsm_sign_params_t *sign_params)
void hsm_destroy_context(hsm_ctx_t *ctx)
int hsm_open(const char *config, char *(pin_callback)(unsigned int, const char *, unsigned int))
hsm_key_t ** hsm_list_keys(hsm_ctx_t *ctx, size_t *count)
void hsm_print_key(hsm_key_t *key)
int main(int argc, char *argv[])
hsm_sign_params_t * hsm_sign_params_new()
uint64_t hsm_random64(hsm_ctx_t *ctx)
int hsm_remove_key(hsm_ctx_t *ctx, hsm_key_t *key)
hsm_ctx_t * hsm_create_context()
hsm_key_t * hsm_generate_rsa_key(hsm_ctx_t *ctx, const char *repository, unsigned long keysize)
char * hsm_prompt_pin(unsigned int id, const char *repository, unsigned int mode)
void hsm_print_error(hsm_ctx_t *gctx)
ldns_rr * hsm_sign_rrset(hsm_ctx_t *ctx, const ldns_rr_list *rrset, const hsm_key_t *key, const hsm_sign_params_t *sign_params)