Skip to content
Snippets Groups Projects
Commit 54696c57 authored by Jan Včelák's avatar Jan Včelák :rocket:
Browse files

[dnssec] key id to string

parent 890aa392
Branches
Tags
1 merge request!332libdnssec
......@@ -8,6 +8,25 @@
#include "keytag.h"
#include "wire.h"
static const char BIN_TO_HEX[] = { '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
char *dnssec_key_id_to_string(const dnssec_key_id_t key_id)
{
char *str = malloc(DNSSEC_KEY_ID_STRING_SIZE + 1);
if (!str) {
return NULL;
}
for (int i = 0; i < DNSSEC_KEY_ID_SIZE; i++) {
str[2*i] = BIN_TO_HEX[key_id[i] >> 4];
str[2*i+1] = BIN_TO_HEX[key_id[i] & 0x0f];
}
str[DNSSEC_KEY_ID_STRING_SIZE] = '\0';
return str;
}
static bool key_is_valid(const dnssec_key_t *key)
{
/*
......
......@@ -26,6 +26,9 @@ typedef enum dnssec_key_digest {
typedef uint8_t dnssec_key_id_t[20];
#define DNSSEC_KEY_ID_SIZE sizeof(dnssec_key_id_t)
#define DNSSEC_KEY_ID_STRING_SIZE (2 * DNSSEC_KEY_ID_SIZE)
char *dnssec_key_id_to_string(const dnssec_key_id_t key_id);
// TODO: library internal API
struct dnssec_key {
......
......@@ -81,5 +81,15 @@ int main(void)
public_from_dnskey();
dnssec_key_id_t key_id = {
0x17, 0xda, 0x10, 0xb0, 0x18, 0xdf, 0xff, 0xb0, 0x8a, 0x25,
0x1e, 0x74, 0xaf, 0x39, 0x75, 0x2a, 0x54, 0x6e, 0x8c, 0x85
};
char *key_id_str = dnssec_key_id_to_string(key_id);
ok(strcmp(key_id_str, "17da10b018dfffb08a251e74af39752a546e8c85") == 0,
"dnssec_key_id_to_string()");
free(key_id_str);
return 0;
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment