Electroneum
Loading...
Searching...
No Matches
val_sigcrypt.h
Go to the documentation of this file.
1/*
2 * validator/val_sigcrypt.h - validator signature crypto functions.
3 *
4 * Copyright (c) 2007, NLnet Labs. All rights reserved.
5 *
6 * This software is open source.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * Redistributions of source code must retain the above copyright notice,
13 * this list of conditions and the following disclaimer.
14 *
15 * Redistributions in binary form must reproduce the above copyright notice,
16 * this list of conditions and the following disclaimer in the documentation
17 * and/or other materials provided with the distribution.
18 *
19 * Neither the name of the NLNET LABS nor the names of its contributors may
20 * be used to endorse or promote products derived from this software without
21 * specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
29 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 */
35
43
44#ifndef VALIDATOR_VAL_SIGCRYPT_H
45#define VALIDATOR_VAL_SIGCRYPT_H
47#include "sldns/pkthdr.h"
48struct val_env;
49struct module_env;
50struct module_qstate;
52struct rbtree_type;
53struct regional;
54struct sldns_buffer;
55
57#define ALGO_NEEDS_MAX 256
58
73
82 struct ub_packed_rrset_key* dnskey, uint8_t* sigalg);
83
89void algo_needs_init_list(struct algo_needs* n, uint8_t* sigalg);
90
100 int fav_ds_algo, uint8_t* sigalg);
101
109
117
124
133
141void algo_needs_reason(struct module_env* env, int alg, char** reason, char* s);
142
154 struct ub_packed_rrset_key* dnskey_rrset, size_t dnskey_idx,
155 struct ub_packed_rrset_key* ds_rrset, size_t ds_idx);
156
164 size_t dnskey_idx);
165
172uint16_t ds_get_keytag(struct ub_packed_rrset_key* ds_rrset, size_t ds_idx);
173
181 size_t dnskey_idx);
182
190 size_t ds_idx);
191
198int ds_get_digest_algo(struct ub_packed_rrset_key* ds_rrset, size_t ds_idx);
199
207 size_t ds_idx);
208
215int ds_get_key_algo(struct ub_packed_rrset_key* k, size_t idx);
216
223int dnskey_get_algo(struct ub_packed_rrset_key* k, size_t idx);
224
232
249 struct val_env* ve, struct ub_packed_rrset_key* rrset,
250 struct ub_packed_rrset_key* dnskey, uint8_t* sigalg, char** reason,
251 sldns_pkt_section section, struct module_qstate* qstate);
252
267 struct val_env* ve, struct ub_packed_rrset_key* rrset,
268 struct ub_packed_rrset_key* dnskey, size_t dnskey_idx, char** reason,
269 sldns_pkt_section section, struct module_qstate* qstate);
270
288 struct val_env* ve, time_t now, struct ub_packed_rrset_key* rrset,
289 struct ub_packed_rrset_key* dnskey, size_t sig_idx,
290 struct rbtree_type** sortree, char** reason, sldns_pkt_section section,
291 struct module_qstate* qstate);
292
315 struct sldns_buffer* buf, struct val_env* ve, time_t now,
316 struct ub_packed_rrset_key* rrset, struct ub_packed_rrset_key* dnskey,
317 size_t dnskey_idx, size_t sig_idx,
318 struct rbtree_type** sortree, int* buf_canon, char** reason,
319 sldns_pkt_section section, struct module_qstate* qstate);
320
324int canonical_tree_compare(const void* k1, const void* k2);
325
335 struct ub_packed_rrset_key* k1, struct ub_packed_rrset_key* k2);
336
337#endif /* VALIDATOR_VAL_SIGCRYPT_H */
sec_status
enum sldns_enum_pkt_section sldns_pkt_section
Definition pkthdr.h:126
const char * buf
unsigned short uint16_t
Definition stdint.h:125
unsigned char uint8_t
Definition stdint.h:124
uint8_t needs[ALGO_NEEDS_MAX]
int rrset_canonical_equal(struct regional *region, struct ub_packed_rrset_key *k1, struct ub_packed_rrset_key *k2)
int ds_get_key_algo(struct ub_packed_rrset_key *k, size_t idx)
void algo_needs_init_ds(struct algo_needs *n, struct ub_packed_rrset_key *ds, int fav_ds_algo, uint8_t *sigalg)
int ds_get_digest_algo(struct ub_packed_rrset_key *ds_rrset, size_t ds_idx)
int dnskey_algo_is_supported(struct ub_packed_rrset_key *dnskey_rrset, size_t dnskey_idx)
void algo_needs_init_dnskey_add(struct algo_needs *n, struct ub_packed_rrset_key *dnskey, uint8_t *sigalg)
void algo_needs_init_list(struct algo_needs *n, uint8_t *sigalg)
void algo_needs_reason(struct module_env *env, int alg, char **reason, char *s)
enum sec_status dnskeyset_verify_rrset_sig(struct module_env *env, struct val_env *ve, time_t now, struct ub_packed_rrset_key *rrset, struct ub_packed_rrset_key *dnskey, size_t sig_idx, struct rbtree_type **sortree, char **reason, sldns_pkt_section section, struct module_qstate *qstate)
enum sec_status dnskey_verify_rrset(struct module_env *env, struct val_env *ve, struct ub_packed_rrset_key *rrset, struct ub_packed_rrset_key *dnskey, size_t dnskey_idx, char **reason, sldns_pkt_section section, struct module_qstate *qstate)
int ds_key_algo_is_supported(struct ub_packed_rrset_key *ds_rrset, size_t ds_idx)
enum sec_status dnskey_verify_rrset_sig(struct regional *region, struct sldns_buffer *buf, struct val_env *ve, time_t now, struct ub_packed_rrset_key *rrset, struct ub_packed_rrset_key *dnskey, size_t dnskey_idx, size_t sig_idx, struct rbtree_type **sortree, int *buf_canon, char **reason, sldns_pkt_section section, struct module_qstate *qstate)
uint16_t ds_get_keytag(struct ub_packed_rrset_key *ds_rrset, size_t ds_idx)
int algo_needs_set_secure(struct algo_needs *n, uint8_t algo)
int algo_needs_missing(struct algo_needs *n)
#define ALGO_NEEDS_MAX
enum sec_status dnskeyset_verify_rrset(struct module_env *env, struct val_env *ve, struct ub_packed_rrset_key *rrset, struct ub_packed_rrset_key *dnskey, uint8_t *sigalg, char **reason, sldns_pkt_section section, struct module_qstate *qstate)
int canonical_tree_compare(const void *k1, const void *k2)
int ds_digest_algo_is_supported(struct ub_packed_rrset_key *ds_rrset, size_t ds_idx)
int ds_digest_match_dnskey(struct module_env *env, struct ub_packed_rrset_key *dnskey_rrset, size_t dnskey_idx, struct ub_packed_rrset_key *ds_rrset, size_t ds_idx)
size_t algo_needs_num_missing(struct algo_needs *n)
int dnskey_get_algo(struct ub_packed_rrset_key *k, size_t idx)
void algo_needs_set_bogus(struct algo_needs *n, uint8_t algo)
uint16_t dnskey_calc_keytag(struct ub_packed_rrset_key *dnskey_rrset, size_t dnskey_idx)
uint16_t dnskey_get_flags(struct ub_packed_rrset_key *k, size_t idx)