44 fprintf(stderr,
"usage: %s [-c config] [-gsdr]\n",
progname);
48 main (
int argc,
char *argv[])
58 ldns_rr *rr, *sig, *dnskey_rr;
72 const char *repository =
"default";
78 while ((ch = getopt(argc, argv,
"hgsdrc:")) != -1) {
113 fprintf(stdout,
"Starting HSM lib test\n");
118 fprintf(stderr,
"%s\n", error);
122 fprintf(stdout,
"hsm_open result: %d\n", result);
137 printf(
"\nCreated key!\n");
141 printf(
"Error creating key, bad token name?\n");
145 }
else if (do_sign || do_delete) {
147 printf(
"I have found %u keys\n", (
unsigned int) key_count);
150 for (i = 0; i < key_count && !key; i++) {
151 printf(
"\nFound key!\n");
157 printf(
"Using key ID: %s\n",
id);
160 printf(
"ptr: 0x%p\n", (
void *) key);
163 printf(
"Got no key ID (broken key?), skipped...\n");
171 printf(
"Failed to find useful key\n");
180 printf(
"\nSigning with:\n");
184 rrset = ldns_rr_list_new();
186 status = ldns_rr_new_frm_str(&rr,
"regress.opendnssec.se. IN A 123.123.123.123", 0, NULL, NULL);
187 if (status == LDNS_STATUS_OK) ldns_rr_list_push_rr(rrset, rr);
188 status = ldns_rr_new_frm_str(&rr,
"regress.opendnssec.se. IN A 124.124.124.124", 0, NULL, NULL);
189 if (status == LDNS_STATUS_OK) ldns_rr_list_push_rr(rrset, rr);
193 sign_params->
owner = ldns_rdf_new_frm_str(LDNS_RDF_TYPE_DNAME,
"opendnssec.se.");
195 sign_params->
keytag = ldns_calc_keytag(dnskey_rr);
199 ldns_rr_list_print(stdout, rrset);
200 ldns_rr_print(stdout, sig);
201 ldns_rr_print(stdout, dnskey_rr);
209 ldns_rr_list_deep_free(rrset);
211 ldns_rr_free(dnskey_rr);
218 printf(
"\nDelete key:\n");
222 printf(
"Deleted key. Result: %d\n", res);
233 printf(
"random 32: %u\n", r32);
235 printf(
"random 64: %llu\n", (
long long unsigned int)r64);
249 fprintf(stdout,
"all done!\n");
251 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)
char * hsm_get_error(hsm_ctx_t *gctx)
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)
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)
int main(int argc, char *argv[])
hsm_sign_params_t * hsm_sign_params_new()
void hsm_print_key(hsm_ctx_t *ctx, hsm_key_t *key)
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()
void hsm_print_ctx(hsm_ctx_t *ctx)
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)