46 ldns_rr *rr, *sig, *dnskey_rr;
50 rrset = ldns_rr_list_new();
52 status = ldns_rr_new_frm_str(&rr,
"example.com. IN A 192.168.0.1", 0, NULL, NULL);
53 if (status == LDNS_STATUS_OK) ldns_rr_list_push_rr(rrset, rr);
55 status = ldns_rr_new_frm_str(&rr,
"example.com. IN A 192.168.0.2", 0, NULL, NULL);
56 if (status == LDNS_STATUS_OK) ldns_rr_list_push_rr(rrset, rr);
60 sign_params->
owner = ldns_rdf_new_frm_str(LDNS_RDF_TYPE_DNAME,
"example.com.");
62 sign_params->
keytag = ldns_calc_keytag(dnskey_rr);
72 ldns_rr_list_deep_free(rrset);
74 ldns_rr_free(dnskey_rr);
85 unsigned char rnd_buf[1024];
89 printf(
"Generating %lu bytes of random data... ",
90 (
unsigned long)
sizeof(rnd_buf));
93 printf(
"Failed, error: %d\n", result);
100 printf(
"Generating 32-bit random data... ");
104 printf(
"Generating 64-bit random data... ");
106 printf(
"%llu\n", (
long long unsigned int)r64);
115 const unsigned int rsa_keysizes[] = { 512, 768, 1024, 1536, 2048, 4096 };
116 const unsigned int dsa_keysizes[] = { 512, 768, 1024 };
117 unsigned int keysize;
134 for (i=0; i<(
sizeof(rsa_keysizes)/
sizeof(
unsigned int)); i++) {
135 keysize = rsa_keysizes[i];
137 printf(
"Generating %d-bit RSA key... ", keysize);
149 printf(
"Extracting key identifier... ");
157 printf(
"OK, %s\n",
id);
161 printf(
"Signing (RSA/SHA1) with key... ");
162 result = hsm_test_sign(ctx, key, LDNS_RSASHA1);
165 printf(
"Failed, error: %d\n", result);
171 printf(
"Signing (RSA/SHA256) with key... ");
172 result = hsm_test_sign(ctx, key, LDNS_RSASHA256);
175 printf(
"Failed, error: %d\n", result);
181 if ( keysize >= 1024) {
182 printf(
"Signing (RSA/SHA512) with key... ");
183 result = hsm_test_sign(ctx, key, LDNS_RSASHA512);
186 printf(
"Failed, error: %d\n", result);
193 printf(
"Deleting key... ");
197 printf(
"Failed: error: %d\n", result);
211 for (i=0; i<(
sizeof(dsa_keysizes)/
sizeof(
unsigned int)); i++) {
212 keysize = dsa_keysizes[i];
214 printf(
"Generating %d-bit DSA key... ", keysize);
226 printf(
"Extracting key identifier... ");
234 printf(
"OK, %s\n",
id);
238 printf(
"Signing (DSA/SHA1) with key... ");
239 result = hsm_test_sign(ctx, key, LDNS_DSA);
242 printf(
"Failed, error: %d\n", result);
248 printf(
"Deleting key... ");
252 printf(
"Failed: error: %d\n", result);
266 for (i=0; i<1; i++) {
267 printf(
"Generating 512-bit GOST key... ");
279 printf(
"Extracting key identifier... ");
287 printf(
"OK, %s\n",
id);
291 printf(
"Signing (GOST) with key... ");
292 result = hsm_test_sign(ctx, key, LDNS_ECC_GOST);
295 printf(
"Failed, error: %d\n", result);
301 printf(
"Deleting key... ");
305 printf(
"Failed: error: %d\n", result);
316 if (hsm_test_random()) {
char * hsm_get_key_id(hsm_ctx_t *ctx, const hsm_key_t *key)
void hsm_sign_params_free(hsm_sign_params_t *params)
uint32_t hsm_random32(hsm_ctx_t *ctx)
hsm_key_t * hsm_generate_dsa_key(hsm_ctx_t *ctx, const char *repository, unsigned long keysize)
ldns_rr * hsm_get_dnskey(hsm_ctx_t *ctx, const hsm_key_t *key, const hsm_sign_params_t *sign_params)
int hsm_token_attached(hsm_ctx_t *ctx, const char *repository)
hsm_sign_params_t * hsm_sign_params_new()
int hsm_test(const char *repository)
hsm_key_t * hsm_generate_gost_key(hsm_ctx_t *ctx, const char *repository)
uint64_t hsm_random64(hsm_ctx_t *ctx)
int hsm_remove_key(hsm_ctx_t *ctx, hsm_key_t *key)
int hsm_random_buffer(hsm_ctx_t *ctx, unsigned char *buffer, unsigned long length)
hsm_key_t * hsm_generate_rsa_key(hsm_ctx_t *ctx, const char *repository, unsigned long keysize)
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)