OpenDNSSEC-enforcer  2.0.3
policy.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 Jerry Lundström <lundstrom.jerry@gmail.com>
3  * Copyright (c) 2014 .SE (The Internet Infrastructure Foundation).
4  * Copyright (c) 2014 OpenDNSSEC AB (svb)
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
22  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
24  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  */
29 
30 #ifndef __policy_h
31 #define __policy_h
32 
33 #include "db_object.h"
34 
35 struct policy;
36 struct policy_list;
37 typedef struct policy policy_t;
38 typedef struct policy_list policy_list_t;
39 
40 typedef enum policy_denial_type {
46 
47 typedef enum policy_zone_soa_serial {
54 
55 #include "policy_ext.h"
56 
60 struct policy {
64  char* name;
65  /* if passthrough set, no modifications to the zonefile should
66  * be made. I.e. No signatures added or removed */
67  unsigned int passthrough;
68  char* description;
69  unsigned int signatures_resign;
70  unsigned int signatures_refresh;
71  unsigned int signatures_jitter;
78  unsigned int denial_optout;
79  unsigned int denial_ttl;
80  unsigned int denial_resalt;
81  unsigned int denial_algorithm;
82  unsigned int denial_iterations;
83  unsigned int denial_salt_length;
84  char* denial_salt;
86  unsigned int keys_ttl;
87  unsigned int keys_retire_safety;
88  unsigned int keys_publish_safety;
89  unsigned int keys_shared;
90  unsigned int keys_purge_after;
91  unsigned int zone_propagation_delay;
92  unsigned int zone_soa_ttl;
93  unsigned int zone_soa_minimum;
97  unsigned int parent_ds_ttl;
98  unsigned int parent_soa_ttl;
99  unsigned int parent_soa_minimum;
103 };
104 
110 policy_t* policy_new(const db_connection_t* connection);
111 
118 
124 
132 
139 int policy_from_result(policy_t* policy, const db_result_t* result);
140 
146 const db_value_t* policy_id(const policy_t* policy);
147 
153 const char* policy_name(const policy_t* policy);
154 
160 unsigned int policy_passthrough(const policy_t* policy);
161 
167 const char* policy_description(const policy_t* policy);
168 
174 unsigned int policy_signatures_resign(const policy_t* policy);
175 
181 unsigned int policy_signatures_refresh(const policy_t* policy);
182 
188 unsigned int policy_signatures_jitter(const policy_t* policy);
189 
196 
203 
210 
217 
223 unsigned int policy_signatures_max_zone_ttl(const policy_t* policy);
224 
231 
237 unsigned int policy_denial_optout(const policy_t* policy);
238 
244 unsigned int policy_denial_ttl(const policy_t* policy);
245 
251 unsigned int policy_denial_resalt(const policy_t* policy);
252 
258 unsigned int policy_denial_algorithm(const policy_t* policy);
259 
265 unsigned int policy_denial_iterations(const policy_t* policy);
266 
272 unsigned int policy_denial_salt_length(const policy_t* policy);
273 
279 const char* policy_denial_salt(const policy_t* policy);
280 
286 unsigned int policy_denial_salt_last_change(const policy_t* policy);
287 
293 unsigned int policy_keys_ttl(const policy_t* policy);
294 
300 unsigned int policy_keys_retire_safety(const policy_t* policy);
301 
307 unsigned int policy_keys_publish_safety(const policy_t* policy);
308 
314 unsigned int policy_keys_shared(const policy_t* policy);
315 
321 unsigned int policy_keys_purge_after(const policy_t* policy);
322 
328 unsigned int policy_zone_propagation_delay(const policy_t* policy);
329 
335 unsigned int policy_zone_soa_ttl(const policy_t* policy);
336 
342 unsigned int policy_zone_soa_minimum(const policy_t* policy);
343 
349 const char* policy_zone_soa_serial_text(const policy_t* policy);
350 
357 
363 unsigned int policy_parent_propagation_delay(const policy_t* policy);
364 
370 unsigned int policy_parent_ds_ttl(const policy_t* policy);
371 
377 unsigned int policy_parent_soa_ttl(const policy_t* policy);
378 
384 unsigned int policy_parent_soa_minimum(const policy_t* policy);
385 
392 
401 
408 int policy_set_name(policy_t* policy, const char* name_text);
409 
417 
424 int policy_set_description(policy_t* policy, const char* description_text);
425 
433 
441 
449 
457 
465 
473 
481 
489 
497 
505 
512 int policy_set_denial_ttl(policy_t* policy, unsigned int denial_ttl);
513 
521 
529 
537 
545 
552 int policy_set_denial_salt(policy_t* policy, const char* denial_salt_text);
553 
561 
568 int policy_set_keys_ttl(policy_t* policy, unsigned int keys_ttl);
569 
577 
585 
593 
601 
609 
617 
625 
633 
641 
649 
657 
665 
673 
684 
691 
698 int policy_get_by_id(policy_t* policy, const db_value_t* id);
699 
706 int policy_get_by_name(policy_t* policy, const char* name);
707 
714 policy_t* policy_new_get_by_name(const db_connection_t* connection, const char* name);
715 
722 
729 
733 struct policy_list {
744 };
745 
751 policy_list_t* policy_list_new(const db_connection_t* connection);
752 
759 
767 
773 
780 int policy_list_copy(policy_list_t* policy_list, const policy_list_t* from_policy_list);
781 
788 
795 
803 
810 policy_list_t* policy_list_new_get_by_clauses(const db_connection_t* connection, const db_clause_list_t* clause_list);
811 
820 
830 
840 
841 #endif
enum policy_zone_soa_serial policy_zone_soa_serial_t
int policy_set_parent_registration_delay(policy_t *policy, unsigned int parent_registration_delay)
Definition: policy.c:1480
policy_zone_soa_serial_t zone_soa_serial
Definition: policy.h:94
unsigned int policy_signatures_validity_default(const policy_t *policy)
Definition: policy.c:861
unsigned int keys_ttl
Definition: policy.h:86
int policy_set_parent_soa_minimum(policy_t *policy, unsigned int parent_soa_minimum)
Definition: policy.c:1520
const db_value_t * policy_id(const policy_t *policy)
Definition: policy.c:805
int policy_set_parent_propagation_delay(policy_t *policy, unsigned int parent_propagation_delay)
Definition: policy.c:1490
const char * policy_description(const policy_t *policy)
Definition: policy.c:821
const policy_t * policy_list_next(policy_list_t *policy_list)
Definition: policy.c:3211
unsigned int policy_denial_resalt(const policy_t *policy)
Definition: policy.c:917
unsigned int policy_zone_soa_ttl(const policy_t *policy)
Definition: policy.c:1013
unsigned int parent_registration_delay
Definition: policy.h:95
policy_list_t * policy_list_new(const db_connection_t *connection)
Definition: policy.c:2621
int policy_set_denial_optout(policy_t *policy, unsigned int denial_optout)
Definition: policy.c:1279
int policy_set_keys_publish_safety(policy_t *policy, unsigned int keys_publish_safety)
Definition: policy.c:1403
int policy_set_signatures_validity_denial(policy_t *policy, unsigned int signatures_validity_denial)
Definition: policy.c:1236
unsigned int policy_keys_publish_safety(const policy_t *policy)
Definition: policy.c:981
policy_list_t * policy_list_new_get_by_clauses(const db_connection_t *connection, const db_clause_list_t *clause_list)
Definition: policy.c:3135
int policy_delete(policy_t *policy)
Definition: policy.c:2571
int policy_set_denial_salt(policy_t *policy, const char *denial_salt_text)
Definition: policy.c:1351
db_object_t * dbo
Definition: policy.h:734
unsigned int keys_retire_safety
Definition: policy.h:87
policy_t * policy_new_copy(const policy_t *policy)
Definition: policy.c:499
unsigned int signatures_resign
Definition: policy.h:69
unsigned int policy_parent_soa_minimum(const policy_t *policy)
Definition: policy.c:1077
unsigned int policy_zone_soa_minimum(const policy_t *policy)
Definition: policy.c:1021
int policy_list_get(policy_list_t *policy_list)
Definition: policy.c:3037
unsigned int policy_denial_optout(const policy_t *policy)
Definition: policy.c:901
char * denial_salt
Definition: policy.h:84
db_value_t id
Definition: policy.h:62
char * name
Definition: policy.h:64
int policy_set_parent_ds_ttl(policy_t *policy, unsigned int parent_ds_ttl)
Definition: policy.c:1500
unsigned int keys_purge_after
Definition: policy.h:90
unsigned int zone_soa_ttl
Definition: policy.h:92
int policy_set_zone_soa_minimum(policy_t *policy, unsigned int zone_soa_minimum)
Definition: policy.c:1453
void policy_list_free(policy_list_t *policy_list)
Definition: policy.c:2664
int policy_set_denial_type(policy_t *policy, policy_denial_type_t denial_type)
Definition: policy.c:1266
zone_list_t * zone_list
Definition: policy.h:101
policy_t * policy
Definition: policy.h:737
unsigned int policy_keys_shared(const policy_t *policy)
Definition: policy.c:989
unsigned int policy_signatures_jitter(const policy_t *policy)
Definition: policy.c:845
unsigned int denial_resalt
Definition: policy.h:80
unsigned int policy_parent_ds_ttl(const policy_t *policy)
Definition: policy.c:1061
unsigned int policy_denial_ttl(const policy_t *policy)
Definition: policy.c:909
unsigned int keys_shared
Definition: policy.h:89
int policy_get_by_name(policy_t *policy, const char *name)
Definition: policy.c:2040
unsigned int policy_parent_propagation_delay(const policy_t *policy)
Definition: policy.c:1053
unsigned int policy_signatures_inception_offset(const policy_t *policy)
Definition: policy.c:853
policy_list_t * policy_list_new_copy(const policy_list_t *policy_copy)
Definition: policy.c:2635
unsigned int zone_propagation_delay
Definition: policy.h:91
zone_list_t * policy_zone_list(policy_t *policy)
Definition: policy.c:1093
const char * policy_denial_salt(const policy_t *policy)
Definition: policy.c:949
policy_denial_type
Definition: policy.h:40
int policy_get_by_id(policy_t *policy, const db_value_t *id)
Definition: policy.c:1987
enum policy_denial_type policy_denial_type_t
unsigned int denial_iterations
Definition: policy.h:82
unsigned int policy_passthrough(const policy_t *policy)
Definition: policy.c:1085
unsigned int policy_keys_ttl(const policy_t *policy)
Definition: policy.c:965
int policy_set_parent_soa_ttl(policy_t *policy, unsigned int parent_soa_ttl)
Definition: policy.c:1510
unsigned int policy_denial_salt_length(const policy_t *policy)
Definition: policy.c:941
unsigned int denial_salt_last_change
Definition: policy.h:85
int policy_list_copy(policy_list_t *policy_list, const policy_list_t *from_policy_list)
Definition: policy.c:2689
int policy_list_get_by_clauses(policy_list_t *policy_list, const db_clause_list_t *clause_list)
Definition: policy.c:3093
int policy_set_passthrough(policy_t *policy, unsigned int passthrough)
Definition: policy.c:1530
void policy_free(policy_t *policy)
Definition: policy.c:518
policy_zone_soa_serial
Definition: policy.h:47
unsigned int denial_salt_length
Definition: policy.h:83
policy_t * policy_list_get_next(policy_list_t *policy_list)
Definition: policy.c:3277
unsigned int parent_ds_ttl
Definition: policy.h:97
unsigned int policy_signatures_refresh(const policy_t *policy)
Definition: policy.c:837
const db_result_t * result
Definition: policy.h:736
int associated_fetch
Definition: policy.h:743
int policy_set_zone_soa_serial_text(policy_t *policy, const char *zone_soa_serial)
Definition: policy.c:1463
db_value_t rev
Definition: policy.h:63
policy_t * policy_new_get_by_name(const db_connection_t *connection, const char *name)
Definition: policy.c:2090
int policy_set_denial_salt_length(policy_t *policy, unsigned int denial_salt_length)
Definition: policy.c:1337
int object_store
Definition: policy.h:738
unsigned int signatures_validity_default
Definition: policy.h:73
int policy_create(policy_t *policy)
Definition: policy.c:1561
unsigned int policy_signatures_validity_denial(const policy_t *policy)
Definition: policy.c:869
int policy_set_signatures_jitter(policy_t *policy, unsigned int signatures_jitter)
Definition: policy.c:1206
const char * policy_zone_soa_serial_text(const policy_t *policy)
Definition: policy.c:1029
int policy_set_description(policy_t *policy, const char *description_text)
Definition: policy.c:1164
unsigned int policy_signatures_resign(const policy_t *policy)
Definition: policy.c:829
unsigned int policy_signatures_max_zone_ttl(const policy_t *policy)
Definition: policy.c:885
int policy_set_denial_algorithm(policy_t *policy, unsigned int denial_algorithm)
Definition: policy.c:1309
policy_t * policy_new(const db_connection_t *connection)
Definition: policy.c:479
policy_key_list_t * policy_key_list
Definition: policy.h:100
unsigned int policy_signatures_validity_keyset(const policy_t *policy)
Definition: policy.c:877
unsigned int policy_keys_purge_after(const policy_t *policy)
Definition: policy.c:997
unsigned int denial_ttl
Definition: policy.h:79
policy_list_t * policy_list_new_get(const db_connection_t *connection)
Definition: policy.c:3076
int policy_set_keys_ttl(policy_t *policy, unsigned int keys_ttl)
Definition: policy.c:1383
int policy_set_keys_purge_after(policy_t *policy, unsigned int keys_purge_after)
Definition: policy.c:1423
size_t object_list_position
Definition: policy.h:741
int policy_set_zone_propagation_delay(policy_t *policy, unsigned int zone_propagation_delay)
Definition: policy.c:1433
int policy_set_signatures_max_zone_ttl(policy_t *policy, unsigned int signatures_max_zone_ttl)
Definition: policy.c:1256
unsigned int zone_soa_minimum
Definition: policy.h:93
int policy_set_denial_resalt(policy_t *policy, unsigned int denial_resalt)
Definition: policy.c:1299
policy_t ** object_list
Definition: policy.h:739
int policy_set_signatures_refresh(policy_t *policy, unsigned int signatures_refresh)
Definition: policy.c:1196
unsigned int signatures_max_zone_ttl
Definition: policy.h:76
int policy_retrieve_zone_list(policy_t *policy)
Definition: policy.c:1111
db_result_list_t * result_list
Definition: policy.h:735
db_object_t * dbo
Definition: policy.h:61
unsigned int denial_algorithm
Definition: policy.h:81
unsigned int policy_denial_algorithm(const policy_t *policy)
Definition: policy.c:925
db_clause_t * policy_denial_type_clause(db_clause_list_t *clause_list, policy_denial_type_t denial_type)
Definition: policy.c:1540
unsigned int signatures_refresh
Definition: policy.h:70
int policy_set_name(policy_t *policy, const char *name_text)
Definition: policy.c:1142
unsigned int parent_soa_minimum
Definition: policy.h:99
int policy_from_result(policy_t *policy, const db_result_t *result)
Definition: policy.c:707
unsigned int policy_parent_soa_ttl(const policy_t *policy)
Definition: policy.c:1069
unsigned int parent_soa_ttl
Definition: policy.h:98
int policy_set_signatures_validity_default(policy_t *policy, unsigned int signatures_validity_default)
Definition: policy.c:1226
hsm_key_list_t * hsm_key_list
Definition: policy.h:102
unsigned int policy_denial_salt_last_change(const policy_t *policy)
Definition: policy.c:957
Definition: policy.h:60
const char * policy_name(const policy_t *policy)
Definition: policy.c:813
int policy_set_signatures_resign(policy_t *policy, unsigned int signatures_resign)
Definition: policy.c:1186
unsigned int signatures_validity_keyset
Definition: policy.h:75
int policy_set_keys_retire_safety(policy_t *policy, unsigned int keys_retire_safety)
Definition: policy.c:1393
int policy_copy(policy_t *policy, const policy_t *policy_copy)
Definition: policy.c:547
unsigned int signatures_validity_denial
Definition: policy.h:74
unsigned int parent_propagation_delay
Definition: policy.h:96
unsigned int policy_parent_registration_delay(const policy_t *policy)
Definition: policy.c:1045
unsigned int policy_keys_retire_safety(const policy_t *policy)
Definition: policy.c:973
const db_enum_t policy_enum_set_denial_type[]
Definition: policy.c:36
unsigned int policy_zone_propagation_delay(const policy_t *policy)
Definition: policy.c:1005
int policy_set_signatures_inception_offset(policy_t *policy, unsigned int signatures_inception_offset)
Definition: policy.c:1216
unsigned int passthrough
Definition: policy.h:67
int policy_list_object_store(policy_list_t *policy_list)
Definition: policy.c:2654
int policy_set_signatures_validity_keyset(policy_t *policy, unsigned int signatures_validity_keyset)
Definition: policy.c:1246
unsigned int policy_denial_iterations(const policy_t *policy)
Definition: policy.c:933
unsigned int keys_publish_safety
Definition: policy.h:88
unsigned int signatures_inception_offset
Definition: policy.h:72
size_t object_list_size
Definition: policy.h:740
int policy_set_denial_iterations(policy_t *policy, unsigned int denial_iterations)
Definition: policy.c:1323
unsigned int denial_optout
Definition: policy.h:78
int policy_set_denial_ttl(policy_t *policy, unsigned int denial_ttl)
Definition: policy.c:1289
int policy_set_denial_salt_last_change(policy_t *policy, unsigned int denial_salt_last_change)
Definition: policy.c:1373
int object_list_first
Definition: policy.h:742
unsigned int signatures_jitter
Definition: policy.h:71
char * description
Definition: policy.h:68
const policy_t * policy_list_begin(policy_list_t *policy_list)
Definition: policy.c:3155
int policy_update(policy_t *policy)
Definition: policy.c:2110
int policy_set_keys_shared(policy_t *policy, unsigned int keys_shared)
Definition: policy.c:1413
int policy_set_zone_soa_ttl(policy_t *policy, unsigned int zone_soa_ttl)
Definition: policy.c:1443
policy_denial_type_t denial_type
Definition: policy.h:77