OpenDNSSEC-enforcer  2.0.3
hsm_key.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 __hsm_key_h
31 #define __hsm_key_h
32 
33 #include "db_object.h"
34 
35 struct hsm_key;
36 struct hsm_key_list;
37 typedef struct hsm_key hsm_key_t;
39 
40 typedef enum hsm_key_state {
47 extern const db_enum_t hsm_key_enum_set_state[];
48 
49 typedef enum hsm_key_role {
55 extern const db_enum_t hsm_key_enum_set_role[];
56 
57 typedef enum hsm_key_key_type {
61 
62 typedef enum hsm_key_backup {
69 extern const db_enum_t hsm_key_enum_set_backup[];
70 
71 #include "hsm_key_ext.h"
72 #include "policy.h"
73 
77 struct hsm_key {
84  char* locator;
86  unsigned int bits;
87  unsigned int algorithm;
89  unsigned int inception;
90  unsigned int is_revoked;
92  char* repository;
94 };
95 
101 hsm_key_t* hsm_key_new(const db_connection_t* connection);
102 
109 
115 
123 
130 int hsm_key_from_result(hsm_key_t* hsm_key, const db_result_t* result);
131 
137 const db_value_t* hsm_key_id(const hsm_key_t* hsm_key);
138 
145 
151 const char* hsm_key_locator(const hsm_key_t* hsm_key);
152 
159 
165 unsigned int hsm_key_bits(const hsm_key_t* hsm_key);
166 
172 unsigned int hsm_key_algorithm(const hsm_key_t* hsm_key);
173 
180 
186 unsigned int hsm_key_inception(const hsm_key_t* hsm_key);
187 
193 const char* hsm_key_repository(const hsm_key_t* hsm_key);
194 
201 
209 
216 int hsm_key_set_locator(hsm_key_t* hsm_key, const char* locator_text);
217 
225 
232 int hsm_key_set_bits(hsm_key_t* hsm_key, unsigned int bits);
233 
241 
249 
257 
265 
272 int hsm_key_set_repository(hsm_key_t* hsm_key, const char* repository_text);
273 
281 
292 
303 
313 db_clause_t* hsm_key_bits_clause(db_clause_list_t* clause_list, unsigned int bits);
314 
325 
336 
347 
358 
368 db_clause_t* hsm_key_repository_clause(db_clause_list_t* clause_list, const char* repository_text);
369 
380 
387 
395 
403 
410 hsm_key_t* hsm_key_new_get_by_locator(const db_connection_t* connection, const char* locator);
411 
418 
429 int hsm_key_count(hsm_key_t* hsm_key, db_clause_list_t* clause_list, size_t* count);
430 
434 struct hsm_key_list {
446 };
447 
454 
461 
469 
475 
486 int hsm_key_list_copy(hsm_key_list_t* hsm_key_list, const hsm_key_list_t* from_hsm_key_list);
487 
495 
503 
511 
519 
528 
538 
548 
558 
559 #endif
unsigned int bits
Definition: hsm_key.h:86
int hsm_key_set_algorithm(hsm_key_t *hsm_key, unsigned int algorithm)
Definition: hsm_key.c:648
const hsm_key_t * hsm_key_list_begin(hsm_key_list_t *hsm_key_list)
Definition: hsm_key.c:1832
int hsm_key_list_object_store(hsm_key_list_t *hsm_key_list)
Definition: hsm_key.c:1486
enum hsm_key_key_type hsm_key_key_type_t
hsm_key_list_t * hsm_key_list_new_get_by_policy_id(const db_connection_t *connection, const db_value_t *policy_id)
Definition: hsm_key.c:1809
int hsm_key_update(hsm_key_t *hsm_key)
Definition: hsm_key.c:1225
db_clause_t * hsm_key_key_type_clause(db_clause_list_t *clause_list, hsm_key_key_type_t key_type)
Definition: hsm_key.c:861
hsm_key_t * hsm_key_new_get_by_locator(const db_connection_t *connection, const char *locator)
Definition: hsm_key.c:1205
db_clause_t * hsm_key_repository_clause(db_clause_list_t *clause_list, const char *repository_text)
Definition: hsm_key.c:882
int hsm_key_count(hsm_key_t *hsm_key, db_clause_list_t *clause_list, size_t *count)
Definition: hsm_key.c:1435
db_clause_t * hsm_key_bits_clause(db_clause_list_t *clause_list, unsigned int bits)
Definition: hsm_key.c:777
hsm_key_backup_t backup
Definition: hsm_key.h:93
unsigned int hsm_key_inception(const hsm_key_t *hsm_key)
Definition: hsm_key.c:560
const db_result_t * result
Definition: hsm_key.h:437
db_value_t policy_id
Definition: hsm_key.h:81
const db_enum_t hsm_key_enum_set_role[]
Definition: hsm_key.c:44
unsigned int hsm_key_algorithm(const hsm_key_t *hsm_key)
Definition: hsm_key.c:544
hsm_key_key_type
Definition: hsm_key.h:57
hsm_key_list_t * hsm_key_list_new(const db_connection_t *connection)
Definition: hsm_key.c:1453
void hsm_key_free(hsm_key_t *hsm_key)
Definition: hsm_key.c:286
const char * hsm_key_locator(const hsm_key_t *hsm_key)
Definition: hsm_key.c:520
hsm_key_state
Definition: hsm_key.h:40
unsigned int algorithm
Definition: hsm_key.h:87
db_clause_t * hsm_key_state_clause(db_clause_list_t *clause_list, hsm_key_state_t state)
Definition: hsm_key.c:756
int hsm_key_get_by_id(hsm_key_t *hsm_key, const db_value_t *id)
Definition: hsm_key.c:1102
size_t object_list_size
Definition: hsm_key.h:441
enum hsm_key_state hsm_key_state_t
db_object_t * dbo
Definition: hsm_key.h:78
int hsm_key_set_state(hsm_key_t *hsm_key, hsm_key_state_t state)
Definition: hsm_key.c:625
db_clause_t * hsm_key_algorithm_clause(db_clause_list_t *clause_list, unsigned int algorithm)
Definition: hsm_key.c:798
hsm_key_t * hsm_key_list_get_next(hsm_key_list_t *hsm_key_list)
Definition: hsm_key.c:1990
int hsm_key_set_bits(hsm_key_t *hsm_key, unsigned int bits)
Definition: hsm_key.c:638
policy_list_t * policy_id_list
Definition: hsm_key.h:445
int hsm_key_set_inception(hsm_key_t *hsm_key, unsigned int inception)
Definition: hsm_key.c:671
int hsm_key_set_role(hsm_key_t *hsm_key, hsm_key_role_t role)
Definition: hsm_key.c:658
const db_value_t * hsm_key_id(const hsm_key_t *hsm_key)
Definition: hsm_key.c:504
size_t object_list_position
Definition: hsm_key.h:442
int hsm_key_set_backup(hsm_key_t *hsm_key, hsm_key_backup_t backup)
Definition: hsm_key.c:716
hsm_key_list_t * hsm_key_list_new_get_by_clauses(const db_connection_t *connection, const db_clause_list_t *clause_list)
Definition: hsm_key.c:1726
db_clause_t * hsm_key_role_clause(db_clause_list_t *clause_list, hsm_key_role_t role)
Definition: hsm_key.c:819
const db_enum_t hsm_key_enum_set_backup[]
Definition: hsm_key.c:56
hsm_key_t * hsm_key_new(const db_connection_t *connection)
Definition: hsm_key.c:244
int hsm_key_copy(hsm_key_t *hsm_key, const hsm_key_t *hsm_key_copy)
Definition: hsm_key.c:307
const policy_t * associated_policy_id
Definition: hsm_key.h:82
const db_enum_t hsm_key_enum_set_state[]
Definition: hsm_key.c:36
db_clause_t * hsm_key_is_revoked_clause(db_clause_list_t *clause_list, unsigned int is_revoked)
Definition: hsm_key.c:840
int hsm_key_list_copy(hsm_key_list_t *hsm_key_list, const hsm_key_list_t *from_hsm_key_list)
Definition: hsm_key.c:1524
hsm_key_t ** object_list
Definition: hsm_key.h:440
const db_value_t * hsm_key_policy_id(const hsm_key_t *hsm_key)
Definition: hsm_key.c:512
int object_store
Definition: hsm_key.h:439
policy_t * private_policy_id
Definition: hsm_key.h:83
void hsm_key_list_free(hsm_key_list_t *hsm_key_list)
Definition: hsm_key.c:1496
unsigned int hsm_key_bits(const hsm_key_t *hsm_key)
Definition: hsm_key.c:536
const hsm_key_t * hsm_key_list_next(hsm_key_list_t *hsm_key_list)
Definition: hsm_key.c:1924
int hsm_key_list_get_by_clauses(hsm_key_list_t *hsm_key_list, const db_clause_list_t *clause_list)
Definition: hsm_key.c:1684
int hsm_key_list_get_by_policy_id(hsm_key_list_t *hsm_key_list, const db_value_t *policy_id)
Definition: hsm_key.c:1746
int associated_fetch
Definition: hsm_key.h:444
int object_list_first
Definition: hsm_key.h:443
db_result_list_t * result_list
Definition: hsm_key.h:436
hsm_key_role
Definition: hsm_key.h:49
char * repository
Definition: hsm_key.h:92
const char * hsm_key_repository(const hsm_key_t *hsm_key)
Definition: hsm_key.c:568
hsm_key_backup
Definition: hsm_key.h:62
db_value_t rev
Definition: hsm_key.h:80
unsigned int inception
Definition: hsm_key.h:89
hsm_key_t * hsm_key_list_get_begin(hsm_key_list_t *hsm_key_list)
Definition: hsm_key.c:1888
db_clause_t * hsm_key_backup_clause(db_clause_list_t *clause_list, hsm_key_backup_t backup)
Definition: hsm_key.c:906
Definition: policy.h:60
hsm_key_role_t role
Definition: hsm_key.h:88
int hsm_key_from_result(hsm_key_t *hsm_key, const db_result_t *result)
Definition: hsm_key.c:405
int hsm_key_get_by_locator(hsm_key_t *hsm_key, const char *locator)
Definition: hsm_key.c:1155
int hsm_key_set_repository(hsm_key_t *hsm_key, const char *repository_text)
Definition: hsm_key.c:694
hsm_key_t * hsm_key
Definition: hsm_key.h:438
int hsm_key_set_locator(hsm_key_t *hsm_key, const char *locator_text)
Definition: hsm_key.c:603
db_clause_t * hsm_key_policy_id_clause(db_clause_list_t *clause_list, const db_value_t *policy_id)
Definition: hsm_key.c:729
db_value_t id
Definition: hsm_key.h:79
unsigned int is_revoked
Definition: hsm_key.h:90
enum hsm_key_backup hsm_key_backup_t
int hsm_key_create(hsm_key_t *hsm_key)
Definition: hsm_key.c:927
hsm_key_t * hsm_key_new_copy(const hsm_key_t *hsm_key)
Definition: hsm_key.c:267
int hsm_key_set_key_type(hsm_key_t *hsm_key, hsm_key_key_type_t key_type)
Definition: hsm_key.c:681
hsm_key_key_type_t key_type
Definition: hsm_key.h:91
hsm_key_state_t state
Definition: hsm_key.h:85
db_object_t * dbo
Definition: hsm_key.h:435
hsm_key_list_t * hsm_key_list_new_copy(const hsm_key_list_t *hsm_key_copy)
Definition: hsm_key.c:1467
char * locator
Definition: hsm_key.h:84
enum hsm_key_role hsm_key_role_t
int hsm_key_set_policy_id(hsm_key_t *hsm_key, const db_value_t *policy_id)
Definition: hsm_key.c:584