OpenDNSSEC-enforcer 2.1.13
key_data.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 __key_data_h
31#define __key_data_h
32
33#include "db_object.h"
34
35struct key_data;
36struct key_data_list;
37typedef struct key_data key_data_t;
39
40typedef enum key_data_role {
47
48#define KEY_DATA_ROLE_SEP(role) ((role) == KEY_DATA_ROLE_KSK || (role) == KEY_DATA_ROLE_CSK)
49
60
61#include "key_data_ext.h"
62#include "zone_db.h"
63#include "hsm_key.h"
64
68struct key_data {
78 unsigned int algorithm;
79 unsigned int inception;
81 unsigned int introducing;
82 unsigned int should_revoke;
83 unsigned int standby;
84 unsigned int active_zsk;
85 unsigned int publish;
86 unsigned int active_ksk;
88 unsigned int keytag;
89 unsigned int minimize;
91};
92
98extern key_data_t* key_data_new(const db_connection_t* connection);
99
106
111extern void key_data_free(key_data_t* key_data);
112
120
130extern int key_data_cmp(const key_data_t* key_data_a, const key_data_t* key_data_b);
131
138extern int key_data_from_result(key_data_t* key_data, const db_result_t* result);
139
145extern const db_value_t* key_data_id(const key_data_t* key_data);
146
152extern const db_value_t* key_data_zone_id(const key_data_t* key_data);
153
161
168
175
181extern const hsm_key_t* key_data_hsm_key(const key_data_t* key_data);
182
190
196extern unsigned int key_data_algorithm(const key_data_t* key_data);
197
203extern unsigned int key_data_inception(const key_data_t* key_data);
204
211
217extern const char* key_data_role_text(const key_data_t* key_data);
218
224extern unsigned int key_data_introducing(const key_data_t* key_data);
225
231extern unsigned int key_data_active_zsk(const key_data_t* key_data);
232
238extern unsigned int key_data_publish(const key_data_t* key_data);
239
245extern unsigned int key_data_active_ksk(const key_data_t* key_data);
246
253
259extern unsigned int key_data_keytag(const key_data_t* key_data);
260
266extern unsigned int key_data_minimize(const key_data_t* key_data);
267
274
283
290extern int key_data_set_zone_id(key_data_t* key_data, const db_value_t* zone_id);
291
299
306extern int key_data_set_algorithm(key_data_t* key_data, unsigned int algorithm);
307
314extern int key_data_set_inception(key_data_t* key_data, unsigned int inception);
315
323
330extern int key_data_set_introducing(key_data_t* key_data, unsigned int introducing);
331
338extern int key_data_set_active_zsk(key_data_t* key_data, unsigned int active_zsk);
339
346extern int key_data_set_publish(key_data_t* key_data, unsigned int publish);
347
354extern int key_data_set_active_ksk(key_data_t* key_data, unsigned int active_ksk);
355
363
370extern int key_data_set_keytag(key_data_t* key_data, unsigned int keytag);
371
378extern int key_data_set_minimize(key_data_t* key_data, unsigned int minimize);
379
389extern db_clause_t* key_data_zone_id_clause(db_clause_list_t* clause_list, const db_value_t* zone_id);
390
401
412
423
433extern db_clause_t* key_data_keytag_clause(db_clause_list_t* clause_list, unsigned int keytag);
434
441
448extern int key_data_get_by_id(key_data_t* key_data, const db_value_t* id);
449
456
463
474extern int key_data_count(key_data_t* key_data, db_clause_list_t* clause_list, size_t* count);
475
492};
493
499extern key_data_list_t* key_data_list_new(const db_connection_t* connection);
500
507
515
521
528extern int key_data_list_copy(key_data_list_t* key_data_list, const key_data_list_t* from_key_data_list);
529
536
542extern key_data_list_t* key_data_list_new_get(const db_connection_t* connection);
543
551
558extern key_data_list_t* key_data_list_new_get_by_clauses(const db_connection_t* connection, const db_clause_list_t* clause_list);
559
567
574extern key_data_list_t* key_data_list_new_get_by_zone_id(const db_connection_t* connection, const db_value_t* zone_id);
575
584
594
604
614
622
624
626#endif
const db_value_t * hsm_key_id(const hsm_key_t *hsm_key)
Definition: hsm_key.c:504
int key_data_set_minimize(key_data_t *key_data, unsigned int minimize)
Definition: key_data.c:966
int key_data_cmp(const key_data_t *key_data_a, const key_data_t *key_data_b)
Definition: key_data.c:402
zone_db_t * key_data_get_zone(const key_data_t *key_data)
Definition: key_data.c:569
db_clause_t * key_data_keytag_clause(db_clause_list_t *clause_list, unsigned int keytag)
Definition: key_data.c:1072
unsigned int key_data_active_ksk(const key_data_t *key_data)
Definition: key_data.c:751
const db_value_t * key_data_id(const key_data_t *key_data)
Definition: key_data.c:553
const db_enum_t key_data_enum_set_ds_at_parent[]
Definition: key_data.c:43
size_t key_data_list_size(key_data_list_t *key_data_list)
Definition: key_data.c:2461
int key_data_get_by_id(key_data_t *key_data, const db_value_t *id)
Definition: key_data.c:1296
int key_data_update(key_data_t *key_data)
Definition: key_data.c:1349
int key_data_delete(key_data_t *key_data)
Definition: key_data.c:1587
void key_data_free(key_data_t *key_data)
Definition: key_data.c:304
const hsm_key_t * key_data_hsm_key(const key_data_t *key_data)
Definition: key_data.c:638
db_clause_t * key_data_hsm_key_id_clause(db_clause_list_t *clause_list, const db_value_t *hsm_key_id)
Definition: key_data.c:1003
int key_data_set_role(key_data_t *key_data, key_data_role_t role)
Definition: key_data.c:890
key_data_list_t * key_data_list_new_get(const db_connection_t *connection)
Definition: key_data.c:2102
hsm_key_t * key_data_get_hsm_key(const key_data_t *key_data)
Definition: key_data.c:649
key_data_list_t * key_data_list_new_get_by_clauses(const db_connection_t *connection, const db_clause_list_t *clause_list)
Definition: key_data.c:2161
int key_data_set_introducing(key_data_t *key_data, unsigned int introducing)
Definition: key_data.c:903
int key_data_list_get_by_clauses(key_data_list_t *key_data_list, const db_clause_list_t *clause_list)
Definition: key_data.c:2119
unsigned int key_data_keytag(const key_data_t *key_data)
Definition: key_data.c:767
int key_data_get_by_hsm_key_id(key_data_t *key_data, const db_value_t *hsm_key_id)
Definition: key_data.c:2479
key_data_t * key_data_new_get_by_hsm_key_id(const db_connection_t *connection, const db_value_t *hsm_key_id)
Definition: key_data.c:2530
int key_data_set_active_zsk(key_data_t *key_data, unsigned int active_zsk)
Definition: key_data.c:913
int key_data_set_publish(key_data_t *key_data, unsigned int publish)
Definition: key_data.c:923
int key_data_set_zone_id(key_data_t *key_data, const db_value_t *zone_id)
Definition: key_data.c:832
const char * key_data_role_text(const key_data_t *key_data)
Definition: key_data.c:711
int key_data_copy(key_data_t *key_data, const key_data_t *key_data_copy)
Definition: key_data.c:326
unsigned int key_data_publish(const key_data_t *key_data)
Definition: key_data.c:743
int key_data_set_algorithm(key_data_t *key_data, unsigned int algorithm)
Definition: key_data.c:870
void key_data_list_free(key_data_list_t *key_data_list)
Definition: key_data.c:1694
int key_data_set_inception(key_data_t *key_data, unsigned int inception)
Definition: key_data.c:880
key_data_list_t * key_data_list_new_get_by_zone_id(const db_connection_t *connection, const db_value_t *zone_id)
Definition: key_data.c:2244
unsigned int key_data_introducing(const key_data_t *key_data)
Definition: key_data.c:727
key_data_role
Definition: key_data.h:40
@ KEY_DATA_ROLE_ZSK
Definition: key_data.h:43
@ KEY_DATA_ROLE_INVALID
Definition: key_data.h:41
@ KEY_DATA_ROLE_KSK
Definition: key_data.h:42
@ KEY_DATA_ROLE_CSK
Definition: key_data.h:44
int key_data_set_hsm_key_id(key_data_t *key_data, const db_value_t *hsm_key_id)
Definition: key_data.c:851
const key_data_t * key_data_list_begin(key_data_list_t *key_data_list)
Definition: key_data.c:2267
unsigned int key_data_inception(const key_data_t *key_data)
Definition: key_data.c:695
unsigned int key_data_active_zsk(const key_data_t *key_data)
Definition: key_data.c:735
key_data_t * key_data_list_get_next(key_data_list_t *key_data_list)
Definition: key_data.c:2425
int key_data_list_object_store(key_data_list_t *key_data_list)
Definition: key_data.c:1684
int key_data_cache_hsm_key(key_data_t *key_data)
Definition: key_data.c:615
db_clause_t * key_data_ds_at_parent_clause(db_clause_list_t *clause_list, key_data_ds_at_parent_t ds_at_parent)
Definition: key_data.c:1051
const db_value_t * key_data_hsm_key_id(const key_data_t *key_data)
Definition: key_data.c:607
int key_data_set_keytag(key_data_t *key_data, unsigned int keytag)
Definition: key_data.c:956
int key_data_create(key_data_t *key_data)
Definition: key_data.c:1093
int key_data_list_get(key_data_list_t *key_data_list)
Definition: key_data.c:2063
const db_enum_t key_data_enum_set_role[]
Definition: key_data.c:36
key_data_list_t * key_data_list_new_copy(const key_data_list_t *key_data_copy)
Definition: key_data.c:1665
key_data_list_t * key_data_list_new(const db_connection_t *connection)
Definition: key_data.c:1651
db_clause_t * key_data_role_clause(db_clause_list_t *clause_list, key_data_role_t role)
Definition: key_data.c:1030
int key_data_set_ds_at_parent(key_data_t *key_data, key_data_ds_at_parent_t ds_at_parent)
Definition: key_data.c:943
int key_data_retrieve_key_state_list(key_data_t *key_data)
Definition: key_data.c:801
int key_data_list_get_by_zone_id(key_data_list_t *key_data_list, const db_value_t *zone_id)
Definition: key_data.c:2181
key_data_t * key_data_new(const db_connection_t *connection)
Definition: key_data.c:264
key_state_list_t * key_data_key_state_list(key_data_t *key_data)
Definition: key_data.c:783
int key_data_count(key_data_t *key_data, db_clause_list_t *clause_list, size_t *count)
Definition: key_data.c:1633
enum key_data_role key_data_role_t
enum key_data_ds_at_parent key_data_ds_at_parent_t
const key_data_t * key_data_list_next(key_data_list_t *key_data_list)
Definition: key_data.c:2359
int key_data_from_result(key_data_t *key_data, const db_result_t *result)
Definition: key_data.c:477
unsigned int key_data_algorithm(const key_data_t *key_data)
Definition: key_data.c:687
unsigned int key_data_minimize(const key_data_t *key_data)
Definition: key_data.c:775
key_data_ds_at_parent
Definition: key_data.h:50
@ KEY_DATA_DS_AT_PARENT_SUBMITTED
Definition: key_data.h:54
@ KEY_DATA_DS_AT_PARENT_RETRACT
Definition: key_data.h:56
@ KEY_DATA_DS_AT_PARENT_UNSUBMITTED
Definition: key_data.h:52
@ KEY_DATA_DS_AT_PARENT_SEEN
Definition: key_data.h:55
@ KEY_DATA_DS_AT_PARENT_INVALID
Definition: key_data.h:51
@ KEY_DATA_DS_AT_PARENT_SUBMIT
Definition: key_data.h:53
@ KEY_DATA_DS_AT_PARENT_RETRACTED
Definition: key_data.h:57
db_clause_t * key_data_zone_id_clause(db_clause_list_t *clause_list, const db_value_t *zone_id)
Definition: key_data.c:976
key_data_t * key_data_list_get_begin(key_data_list_t *key_data_list)
Definition: key_data.c:2323
int key_data_list_copy(key_data_list_t *key_data_list, const key_data_list_t *from_key_data_list)
Definition: key_data.c:1725
int key_data_set_active_ksk(key_data_t *key_data, unsigned int active_ksk)
Definition: key_data.c:933
const db_value_t * key_data_zone_id(const key_data_t *key_data)
Definition: key_data.c:561
key_data_t * key_data_new_copy(const key_data_t *key_data)
Definition: key_data.c:285
const int ds_at_parent[5]
const db_result_t * result
Definition: key_data.h:482
zone_list_db_t * zone_id_list
Definition: key_data.h:490
int associated_fetch
Definition: key_data.h:489
size_t object_list_position
Definition: key_data.h:487
db_result_list_t * result_list
Definition: key_data.h:481
size_t object_list_size
Definition: key_data.h:486
int object_list_first
Definition: key_data.h:488
hsm_key_list_t * hsm_key_id_list
Definition: key_data.h:491
key_data_t ** object_list
Definition: key_data.h:485
key_data_t * key_data
Definition: key_data.h:483
db_object_t * dbo
Definition: key_data.h:480
int object_store
Definition: key_data.h:484
zone_db_t * private_zone_id
Definition: key_data.h:74
const zone_db_t * associated_zone_id
Definition: key_data.h:73
unsigned int algorithm
Definition: key_data.h:78
key_state_list_t * key_state_list
Definition: key_data.h:90
hsm_key_t * private_hsm_key_id
Definition: key_data.h:77
const hsm_key_t * associated_hsm_key_id
Definition: key_data.h:76
db_value_t id
Definition: key_data.h:70
unsigned int should_revoke
Definition: key_data.h:82
unsigned int active_ksk
Definition: key_data.h:86
unsigned int publish
Definition: key_data.h:85
unsigned int minimize
Definition: key_data.h:89
unsigned int keytag
Definition: key_data.h:88
unsigned int active_zsk
Definition: key_data.h:84
db_value_t rev
Definition: key_data.h:71
db_object_t * dbo
Definition: key_data.h:69
unsigned int standby
Definition: key_data.h:83
key_data_ds_at_parent_t ds_at_parent
Definition: key_data.h:87
db_value_t hsm_key_id
Definition: key_data.h:75
unsigned int inception
Definition: key_data.h:79
key_data_role_t role
Definition: key_data.h:80
unsigned int introducing
Definition: key_data.h:81
db_value_t zone_id
Definition: key_data.h:72