Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00034 #ifndef SIGNER_KEYS_H
00035 #define SIGNER_KEYS_H
00036
00037 #include "shared/allocator.h"
00038 #include "shared/status.h"
00039
00040 #ifdef HAVE_SYS_TYPES_H
00041 # include <sys/types.h>
00042 #endif
00043 #ifdef HAVE_UNISTD_H
00044 # include <unistd.h>
00045 #endif
00046 #include <ldns/ldns.h>
00047 #include <libhsm.h>
00048 #include <libhsmdns.h>
00049
00050
00055 typedef struct key_struct key_type;
00056 struct key_struct {
00057 allocator_type* allocator;
00058 const char* locator;
00059 ldns_rr* dnskey;
00060 hsm_key_t* hsmkey;
00061 hsm_sign_params_t* params;
00062 uint8_t algorithm;
00063 uint32_t flags;
00064 int publish;
00065 int ksk;
00066 int zsk;
00067 key_type* next;
00068 };
00069
00074 typedef struct keylist_struct keylist_type;
00075 struct keylist_struct {
00076 allocator_type* allocator;
00077 size_t count;
00078 key_type* first_key;
00079 };
00080
00093 key_type* key_create(allocator_type* allocator, const char* locator,
00094 uint8_t algorithm, uint32_t flags, int publish, int ksk, int zsk);
00095
00103 key_type* key_recover(FILE* fd, allocator_type* allocator);
00104
00111 keylist_type* keylist_create(allocator_type* allocator);
00112
00120 ods_status keylist_push(keylist_type* kl, key_type* key);
00121
00129 key_type* keylist_lookup(keylist_type* kl, const char* locator);
00130
00138 key_type* keylist_lookup_by_dnskey(keylist_type* kl, ldns_rr* dnskey);
00139
00145 void keylist_cleanup(keylist_type* kl);
00146
00153 void keylist_print(FILE* fd, keylist_type* kl);
00154
00161 void keylist_backup(FILE* fd, keylist_type* kl);
00162
00169 void keylist_log(keylist_type* kl, const char* name);
00170
00171 #endif