40 xmlChar* xml_text = NULL;
41 duration_type* duration = NULL;
42 int algorithm_length = 0;
44 int manual_rollover = 0;
55 if (!strcmp((
char*)key_node->name,
"KSK")) {
56 ods_log_deeebug(
"[policy_key_*_from_xml] KSK");
59 else if (!strcmp((
char*)key_node->name,
"ZSK")) {
60 ods_log_deeebug(
"[policy_key_*_from_xml] ZSK");
63 else if (!strcmp((
char*)key_node->name,
"CSK")) {
64 ods_log_deeebug(
"[policy_key_*_from_xml] CSK");
71 for (node = key_node->children; node; node = node->next) {
72 if (node->type != XML_ELEMENT_NODE) {
76 if (!strcmp((
char*)node->name,
"Algorithm")) {
77 if ((xml_text = xmlGetProp(node, (xmlChar*)
"length"))) {
79 ods_log_deeebug(
"[policy_key_*_from_xml] algorithm length %s", (
char*)xml_text);
91 if (!(xml_text = xmlNodeGetContent(node))) {
94 ods_log_deeebug(
"[policy_key_*_from_xml] algorithm %s", (
char*)xml_text);
106 else if (!strcmp((
char*)node->name,
"Lifetime")) {
107 if (!(xml_text = xmlNodeGetContent(node))) {
110 ods_log_deeebug(
"[policy_key_*_from_xml] lifetime %s", (
char*)xml_text);
111 if (!(duration = duration_create_from_string((
char*)xml_text))) {
122 duration_cleanup(duration);
125 duration_cleanup(duration);
128 else if (!strcmp((
char*)node->name,
"Repository")) {
129 if (!(xml_text = xmlNodeGetContent(node))) {
132 ods_log_deeebug(
"[policy_key_*_from_xml] repository %s", (
char*)xml_text);
144 else if (!strcmp((
char*)node->name,
"Standby")) {
146 if (!(xml_text = xmlNodeGetContent(node))) {
149 ods_log_deeebug(
"[policy_key_*_from_xml] standby %s", (
char*)xml_text);
161 else if (!strcmp((
char*)node->name,
"ManualRollover")) {
163 ods_log_deeebug(
"[policy_key_*_from_xml] manual rollover");
169 && !strcmp((
char*)node->name,
"KskRollType"))
172 if (!(xml_text = xmlNodeGetContent(node))) {
175 ods_log_deeebug(
"[policy_key_*_from_xml] KSK rolltype %s", (
char*)xml_text);
176 if (!strcmp((
char*)xml_text,
"KskDoubleRRset")) {
185 else if (!strcmp((
char*)xml_text,
"KskDoubleDS")) {
194 else if (!strcmp((
char*)xml_text,
"KskDoubleSignature")) {
211 && !strcmp((
char*)node->name,
"ZskRollType"))
214 if (!(xml_text = xmlNodeGetContent(node))) {
217 ods_log_deeebug(
"[policy_key_*_from_xml] ZSK rolltype %s", (
char*)xml_text);
218 if (!strcmp((
char*)xml_text,
"ZskDoubleSignature")) {
227 else if (!strcmp((
char*)xml_text,
"ZskPrePublication")) {
236 else if (!strcmp((
char*)xml_text,
"ZskDoubleRRsig")) {
253 && !strcmp((
char*)node->name,
"CskRollType"))
256 if (!(xml_text = xmlNodeGetContent(node))) {
259 ods_log_deeebug(
"[policy_key_*_from_xml] CSK rolltype %s", (
char*)xml_text);
260 if (!strcmp((
char*)xml_text,
"CskDoubleRRset")) {
269 else if (!strcmp((
char*)xml_text,
"CskSingleSignature")) {
278 else if (!strcmp((
char*)xml_text,
"CskDoubleDS")) {
287 else if (!strcmp((
char*)xml_text,
"CskDoubleSignature")) {
296 else if (!strcmp((
char*)xml_text,
"CskPrePublication")) {
314 && !strcmp((
char*)node->name,
"RFC5011"))
317 ods_log_deeebug(
"[policy_key_*_from_xml] rfc5011");
331 duration_cleanup(duration);
337 if (!algorithm_length) {
338 ods_log_deeebug(
"[policy_key_*_from_xml] - algorithm length");
344 ods_log_deeebug(
"[policy_key_*_from_xml] - standby");
349 if (!manual_rollover) {
350 ods_log_deeebug(
"[policy_key_*_from_xml] - manual rollover");
357 ods_log_deeebug(
"[policy_key_*_from_xml] - minimize default KskDoubleSignature");
363 ods_log_deeebug(
"[policy_key_*_from_xml] - minimize default ZskPrePublication");
369 ods_log_deeebug(
"[policy_key_*_from_xml] - minimize default CskPrePublication");
382 ods_log_deeebug(
"[policy_key_*_from_xml] - rfc5011");
int policy_key_set_minimize(policy_key_t *policy_key, unsigned int minimize)
#define POLICY_KEY_MINIMIZE_RRSIG
int policy_key_set_manual_rollover(policy_key_t *policy_key, unsigned int manual_rollover)
int policy_key_set_bits(policy_key_t *policy_key, unsigned int bits)
int policy_key_set_standby(policy_key_t *policy_key, unsigned int standby)
int policy_key_set_lifetime(policy_key_t *policy_key, unsigned int lifetime)
int policy_key_create_from_xml(policy_key_t *policy_key, xmlNodePtr key_node)
int policy_key_set_role(policy_key_t *policy_key, policy_key_role_t role)
#define POLICY_KEY_MINIMIZE_DS
int policy_key_set_repository(policy_key_t *policy_key, const char *repository_text)
#define POLICY_KEY_MINIMIZE_DS_AND_RRSIG
int policy_key_set_rfc5011(policy_key_t *policy_key, unsigned int rfc5011)
int policy_key_set_algorithm(policy_key_t *policy_key, unsigned int algorithm)
#define POLICY_KEY_MINIMIZE_NONE
#define POLICY_KEY_MINIMIZE_DNSKEY