OpenDNSSEC-enforcer  2.0.3
hsm_key_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 "hsm_key.h"
31 #include "db_error.h"
32 
34 {
35  hsm_key_list_t* hkey_list = NULL;
36  db_clause_list_t* clause_list;
37  db_clause_t* clause;
38 
39  if (!pkey || !pkey->dbo || !(clause_list = db_clause_list_new()))
40  return NULL;
41 
42  if (!(clause = db_clause_new())
43  || db_clause_set_field(clause, "policyId")
46  || db_clause_list_add(clause_list, clause)
47 
48  || !(clause = db_clause_new())
49  || db_clause_set_field(clause, "algorithm")
52  || db_clause_list_add(clause_list, clause)
53 
54  || !(clause = db_clause_new())
55  || db_clause_set_field(clause, "bits")
58  || db_clause_list_add(clause_list, clause)
59 
60  || !(clause = db_clause_new())
61  || db_clause_set_field(clause, "repository")
64  || db_clause_list_add(clause_list, clause))
65  {
66  db_clause_free(clause);
67  db_clause_list_free(clause_list);
68  return NULL;
69  }
70 
72  db_object_connection(pkey->dbo), clause_list);
73  db_clause_list_free(clause_list);
74  return hkey_list;
75 }
int db_value_from_uint32(db_value_t *value, db_type_uint32_t from_uint32)
Definition: db_value.c:492
int db_value_copy(db_value_t *value, const db_value_t *from_value)
Definition: db_value.c:77
db_clause_list_t * db_clause_list_new(void)
Definition: db_clause.c:202
db_clause_t * db_clause_new(void)
Definition: db_clause.c:43
int db_clause_set_type(db_clause_t *clause, db_clause_type_t type)
Definition: db_clause.c:130
int db_value_from_text(db_value_t *value, const char *from_text)
Definition: db_value.c:531
const db_connection_t * db_object_connection(const db_object_t *object)
Definition: db_object.c:320
int db_clause_set_field(db_clause_t *clause, const char *field)
Definition: db_clause.c:109
void db_clause_list_free(db_clause_list_t *clause_list)
Definition: db_clause.c:209
int db_clause_list_add(db_clause_list_t *clause_list, db_clause_t *clause)
Definition: db_clause.c:226
const char * policy_key_repository(const policy_key_t *policy_key)
Definition: policy_key.c:534
void db_clause_free(db_clause_t *clause)
Definition: db_clause.c:56
hsm_key_list_t * hsm_key_list_new_get_by_policy_key(const policy_key_t *pkey)
Definition: hsm_key_ext.c:33
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_object_t * dbo
Definition: policy_key.h:55
unsigned int policy_key_algorithm(const policy_key_t *policy_key)
Definition: policy_key.c:510
unsigned int policy_key_bits(const policy_key_t *policy_key)
Definition: policy_key.c:518
const db_value_t * policy_key_policy_id(const policy_key_t *policy_key)
Definition: policy_key.c:478
db_value_t * db_clause_get_value(db_clause_t *clause)
Definition: db_clause.c:187