OpenDNSSEC-enforcer 2.1.13
key_data_ext.c
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#include "key_data.h"
31#include "db_error.h"
32
35}
36
37static const key_state_t* get_key_state(key_data_t* key_data, key_state_type_t type) {
38 key_state_list_t* state_list;
39 const key_state_t* state;
40
41 if (!key_data) {
42 return NULL;
43 }
44
45 if (!(state_list = key_data_key_state_list(key_data))) {
46 return NULL;
47 }
48
49 state = key_state_list_begin(state_list);
50 while (state) {
51 if (key_state_type(state) == type) {
52 break;
53 }
54 state = key_state_list_next(state_list);
55 }
56
57 return state;
58}
59
61 return get_key_state(key_data, KEY_STATE_TYPE_DS);
62}
63
65 return get_key_state(key_data, KEY_STATE_TYPE_RRSIG);
66}
67
69 return get_key_state(key_data, KEY_STATE_TYPE_DNSKEY);
70}
71
73 return get_key_state(key_data, KEY_STATE_TYPE_RRSIGDNSKEY);
74}
75
77 if (!key_data) {
78 return NULL;
79 }
80
81 return key_state_new_copy(get_key_state(key_data, KEY_STATE_TYPE_DS));
82}
83
85 if (!key_data) {
86 return NULL;
87 }
88
89 return key_state_new_copy(get_key_state(key_data, KEY_STATE_TYPE_RRSIG));
90}
91
93 if (!key_data) {
94 return NULL;
95 }
96
98}
99
101 if (!key_data) {
102 return NULL;
103 }
104
106}
107
110}
const hsm_key_t * key_data_hsm_key(const key_data_t *key_data)
Definition: key_data.c:638
int key_data_retrieve_key_state_list(key_data_t *key_data)
Definition: key_data.c:801
key_state_list_t * key_data_key_state_list(key_data_t *key_data)
Definition: key_data.c:783
key_state_t * key_data_get_cached_dnskey(key_data_t *key_data)
Definition: key_data_ext.c:92
const key_state_t * key_data_cached_rrsig(key_data_t *key_data)
Definition: key_data_ext.c:64
int key_data_cache_key_states(key_data_t *key_data)
Definition: key_data_ext.c:33
const key_state_t * key_data_cached_dnskey(key_data_t *key_data)
Definition: key_data_ext.c:68
key_state_t * key_data_get_cached_rrsig(key_data_t *key_data)
Definition: key_data_ext.c:84
key_state_t * key_data_get_cached_rrsigdnskey(key_data_t *key_data)
Definition: key_data_ext.c:100
const hsm_key_t * key_data_cached_hsm_key(const key_data_t *key_data)
Definition: key_data_ext.c:108
const key_state_t * key_data_cached_ds(key_data_t *key_data)
Definition: key_data_ext.c:60
key_state_t * key_data_get_cached_ds(key_data_t *key_data)
Definition: key_data_ext.c:76
const key_state_t * key_data_cached_rrsigdnskey(key_data_t *key_data)
Definition: key_data_ext.c:72
key_state_t * key_state_new_copy(const key_state_t *key_state)
Definition: key_state.c:195
const key_state_t * key_state_list_begin(key_state_list_t *key_state_list)
Definition: key_state.c:1240
const key_state_t * key_state_list_next(key_state_list_t *key_state_list)
Definition: key_state.c:1332
enum key_state_type key_state_type_t
key_state_type
Definition: key_state.h:40
@ KEY_STATE_TYPE_DNSKEY
Definition: key_state.h:44
@ KEY_STATE_TYPE_RRSIG
Definition: key_state.h:43
@ KEY_STATE_TYPE_DS
Definition: key_state.h:42
@ KEY_STATE_TYPE_RRSIGDNSKEY
Definition: key_state.h:45