OpenDNSSEC-enforcer  1.4.6
ksm.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008-2009 Nominet UK. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
17  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
19  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
21  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
22  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
23  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  *
25  */
26 
27 #ifndef KSM_KSM_H
28 #define KSM_KSM_H
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 /*+
35  * ksm.h - KSM Definitions
36  *
37  * Description:
38  * Holds definitions and prototypes for the KSM library.
39 -*/
40 
41 #include <time.h>
42 #include <ksm/database.h>
43 #include <ksm/database_statement.h>
44 
45 
46 /* General */
47 
48 typedef int KSM_ID; /* Identifies a KSM entity */
49 
50 #define KSM_NULL_ID ((KSM_ID) -1) /* General invalid ID */
51 
52 /* ksm_common */
53 
54 int KsmInit(void);
55 int KsmRundown(void);
56 
57 #define KSM_NAME_LENGTH 256 /* Includes trailing NULL */
58 #define KSM_MSG_LENGTH 512 /* Includes trailing NULL */
59 #define KSM_PATH_LENGTH 4096 /* Includes trailing NULL */
60 #define KSM_POLICY_DESC_LENGTH 256 /* Includes trailing NULL */
61 #define KSM_TIME_LENGTH 32 /* Includes trailing NULL */
62 
63 #define KSM_SQL_SIZE 1024 /* Max size of SQL statement */
64 #define KSM_INT_STR_SIZE 32 /* Max size of int as string */
65 #define KSM_SALT_LENGTH 512 /* Includes trailing NULL */
66 #define KSM_ZONE_NAME_LENGTH 256 /* Includes trailing NULL */
67 #define KSM_ADAPTER_NAME_LENGTH 512 /* Includes trailing NULL */
68 /* ksm_key */
69 
70 /* Key time flag states */
71 
72 #define KEYDATA_M_ID 0x0001
73 #define KEYDATA_M_STATE 0x0002
74 #define KEYDATA_M_KEYTYPE 0x0004
75 #define KEYDATA_M_ALGORITHM 0x0008
76 #define KEYDATA_M_SIGLIFETIME 0x0010
77 #define KEYDATA_M_ACTIVE 0x0020
78 #define KEYDATA_M_DEAD 0x0040
79 #define KEYDATA_M_GENERATE 0x0080
80 #define KEYDATA_M_PUBLISH 0x0100
81 #define KEYDATA_M_READY 0x0200
82 #define KEYDATA_M_RETIRE 0x0400
83 #define KEYDATA_M_LOCATION 0x0800
84 #define KEYDATA_M_SIZE 0x1000
85 #define KEYDATA_M_SMID 0x2000
86 
87 #define KEYDATA_M_TIMES (KEYDATA_M_ACTIVE | KEYDATA_M_DEAD | \
88  KEYDATA_M_GENERATE | KEYDATA_M_PUBLISH | KEYDATA_M_READY | KEYDATA_M_RETIRE)
89 
90 /*
91  * Structure for key information. Note that on the date fields, the
92  * "struct tm" fields are used to insert data into the database, and the
93  * "char*" fields used to retrieve data. In the latter case, a NULL field
94  * will be represented by an empty string.
95  */
96 
97 typedef struct {
99  int state;
100  int keytype;
103  char active[KSM_TIME_LENGTH];
104  char dead[KSM_TIME_LENGTH];
105  char generate[KSM_TIME_LENGTH];
106  char publish[KSM_TIME_LENGTH];
107  char ready[KSM_TIME_LENGTH];
108  char retire[KSM_TIME_LENGTH];
109  char location[KSM_NAME_LENGTH];
111  int size;
113  char HSMKey_id[KSM_NAME_LENGTH]; /* TODO is this long enough ? */
115  int zone_id;
117 
118  /*
119  * The remaining fields are used for data manipulation and are not part of
120  * the KEYDATA table.
121  */
122 
123  int flags; /* States which fields are valid */
124  int roll_scheme; /* Which rollover scheme the key is under */
125 } KSM_KEYDATA;
126 
127 int KsmKeyPairCreate(int policy_id, const char* HSMKeyID, int smID, int size, int alg, const char* generate, DB_ID* id);
128 int KsmDnssecKeyCreate(int zone_id, int keypair_id, int keytype, int state, const char* time, const char* retTime, DB_ID* id);
129 /*int KsmDnssecKeyCreateOnPolicy(int policy_id, int keypair_id, int keytype);*/
130 int KsmKeyInitSql(DB_RESULT* result, const char* sql);
131 int KsmKeyInit(DB_RESULT* result, DQS_QUERY_CONDITION* condition);
132 int KsmKeyInitId(DB_RESULT* result, DB_ID id);
133 int KsmKey(DB_RESULT result, KSM_KEYDATA* data);
134 void KsmKeyEnd(DB_RESULT result);
135 int KsmKeyQuery(const char* sql, DB_RESULT* result);
136 int KsmKeyData(DB_ID id, KSM_KEYDATA* data);
137 int KsmKeyPredict(int policy_id, int keytype, int shared_keys, int interval, int *count, int rollover_scheme, int zone_count);
138 int KsmKeyCountQueue(int keytype, int* count, int zone_id);
139 int KsmKeyCountStillGood(int policy_id, int sm, int bits, int algorithm, int interval, const char* datetime, int *count, int keytype);
140 int KsmKeyGetUnallocated(int policy_id, int sm, int bits, int algorithm, int zone_id, int share_keys, int *keypair_id);
141 int KsmMarkKeysAsDead(int zone_id);
142 int KsmKillKey(int keypair_id, int zone_id);
143 
144 /* delete */
145 
146 int KsmDeleteKeyRange(int minid, int maxid);
147 int KsmDeleteKeyRanges(int limit[], int size);
148 
149 /* KsmParameter */
150 
151 typedef struct {
152  char name[KSM_NAME_LENGTH];
153  char category[KSM_NAME_LENGTH];
154  int value;
156 } KSM_PARAMETER;
157 
158 int KsmParameterInit(DB_RESULT* result, const char* name, const char* category, int policy_id);
159 int KsmParameterExist(DB_RESULT* result, const char* name, const char* category, int* parameter_id);
160 int KsmParameter(DB_RESULT result, KSM_PARAMETER* data);
161 void KsmParameterEnd(DB_RESULT result);
162 int KsmParameterValue(const char* name, const char* category, int* value, int policy_id, int* parameter_id);
163 int KsmParameterSet(const char* name, const char* category, int value, int policy_id);
164 int KsmParameterShow(const char* name, const char* category, int policy_id);
165 
166 /* ksmPolicy */
167 typedef struct {
168  int refresh;
169  int jitter;
171  int soamin;
172  int soattl;
173  int serial;
175 
176 typedef struct {
178  int resign;
182 
183 typedef struct {
184  int version;
185  int resalt;
188  int optout;
189  int ttl;
191  char salt[KSM_SALT_LENGTH];
192  char salt_stamp[KSM_TIME_LENGTH];
194 
195 typedef struct {
196  int ttl;
200  int purge;
202 
203 typedef struct {
205  int bits;
206  int lifetime;
207  int sm;
208  char sm_name[KSM_NAME_LENGTH];
209  unsigned long sm_capacity;
211  int overlap;
212  int ttl;
213  int rfc5011;
214  int type;
219 
220 typedef struct {
225 
226 typedef struct {
228  int soa_ttl;
229  int soa_min;
230  int serial;
232 
233 typedef struct {
235  int ds_ttl;
236  int soa_ttl;
237  int soa_min;
239 
240 typedef struct {
241  int id;
242  char name[KSM_NAME_LENGTH];
243  char* description;
254 } KSM_POLICY;
255 
256 typedef struct {
257  char name[KSM_NAME_LENGTH];
258  char category[KSM_NAME_LENGTH];
259  int value;
261 
262 int KsmPolicyInit(DB_RESULT* handle, const char* name);
263 int KsmPolicyExists(const char* name);
264 int KsmPolicyParametersInit(DB_RESULT* handle, const char* name);
265 int KsmPolicyRead(KSM_POLICY* policy);
266 int KsmPolicy(DB_RESULT handle, KSM_POLICY* data);
268 int KsmPolicyReadFromId(KSM_POLICY* policy);
269 int KsmPolicyNameFromId(KSM_POLICY* policy);
270 int KsmPolicyUpdateSalt(KSM_POLICY* policy);
271 int KsmPolicyNullSaltStamp(int policy_id);
274 int KsmPolicyIdFromZoneId(int zone_id, int* policy_id);
275 int KsmPolicyUpdateDesc(int policy_id, const char* policy_description);
276 
278 void KsmPolicyFree(KSM_POLICY *policy);
279 
280 /* ksmZone */
281 typedef struct {
282  int id;
285  char signconf[KSM_PATH_LENGTH];
286  char input[KSM_PATH_LENGTH];
287  char output[KSM_PATH_LENGTH];
288  char policy_name[KSM_NAME_LENGTH];
289  char in_type[KSM_ADAPTER_NAME_LENGTH];
290  char out_type[KSM_ADAPTER_NAME_LENGTH];
291 } KSM_ZONE;
292 
293 int KsmZoneInit(DB_RESULT* handle, int policy_id);
294 int KsmZone(DB_RESULT handle, KSM_ZONE *data);
295 int KsmZoneCount(DB_RESULT handle, int* count);
296 int KsmZoneCountInit(DB_RESULT* handle, int id);
297 int KsmZoneIdFromName(const char* zone_name, int* zone_id);
298 int KsmZoneIdAndPolicyFromName(const char* zone_name, int* policy_id, int* zone_id);
299 int KsmDeleteZone(int zone_id);
300 int KsmZoneNameFromId(int zone_id, char** zone_name);
301 
302 #define UNSIGNED 0
303 #define SIGNED 1
304 
305 int KsmDNSSECKeysInSMCountInit(DB_RESULT* handle, int policy_id);
306 int KsmDNSSECKeysInSMCount(DB_RESULT handle, int* count);
307 int KsmDNSSECKeysStateCountInit(DB_RESULT* result, int policy_id, KSM_KEY_POLICY *key_policy, int state);
308 
309 /* Purge */
310 
311 void KsmPurge(void);
312 
313 /*
314  * Constants in the database tables. These are used in the
315  * ksm_keyword module.
316  *
317  * THESE MUST BE KEPT IN STEP WITH THE DATABASE CREATION SCRIPT
318  */
319 
320 /*
321  * The following names and constants are in the SIG(0) Algorithm Numbers
322  * page at IANA - http://www.iana.org/assignments/sig-alg-numbers.
323  */
324 
325 #define KSM_ALGORITHM_RSAMD5 1
326 #define KSM_ALGORITHM_RSAMD5_STRING "rsamd5"
327 #define KSM_ALGORITHM_DH 2
328 #define KSM_ALGORITHM_DH_STRING "dh"
329 #define KSM_ALGORITHM_DSASHA1 3
330 #define KSM_ALGORITHM_DSASHA1_STRING "dsa"
331 #define KSM_ALGORITHM_RSASHA1 5
332 #define KSM_ALGORITHM_RSASHA1_STRING "rsasha1"
333 #define KSM_ALGORITHM_DSA_NSEC3_SHA1 6
334 #define KSM_ALGORITHM_DSA_NSEC3_SHA1_STRING "dsa-nsec3-sha1"
335 #define KSM_ALGORITHM_RSASHA1_NSEC3_SHA1 7
336 #define KSM_ALGORITHM_RSASHA1_NSEC3_SHA1_STRING "rsasha1-nsec3-sha1"
337 #define KSM_ALGORITHM_RSASHA256 8
338 #define KSM_ALGORITHM_RSASHA256_STRING "rsasha256"
339 #define KSM_ALGORITHM_RSASHA512 10
340 #define KSM_ALGORITHM_RSASHA512_STRING "rsasha512"
341 #define KSM_ALGORITHM_INDIRECT 252
342 #define KSM_ALGORITHM_INDIRECT_STRING "indirect"
343 #define KSM_ALGORITHM_PRIVDOM 253
344 #define KSM_ALGORITHM_PRIVDOM_STRING "domain"
345 #define KSM_ALGORITHM_PRIVOID 254
346 #define KSM_ALGORITHM_PRIVOID_STRING "oid"
347 
348 #define KSM_FORMAT_FILE 1
349 #define KSM_FORMAT_FILE_STRING "file"
350 #define KSM_FORMAT_HSM 2
351 #define KSM_FORMAT_HSM_STRING "hsm"
352 #define KSM_FORMAT_URI 3
353 #define KSM_FORMAT_URI_STRING "uri"
354 
355 #define KSM_TYPE_KSK 257
356 #define KSM_TYPE_KSK_STRING "ksk"
357 #define KSM_TYPE_ZSK 256
358 #define KSM_TYPE_ZSK_STRING "zsk"
359 
360 #define KSM_STATE_GENERATE 1
361 #define KSM_STATE_GENERATE_STRING "generate"
362 #define KSM_STATE_PUBLISH 2
363 #define KSM_STATE_PUBLISH_STRING "publish"
364 #define KSM_STATE_READY 3
365 #define KSM_STATE_READY_STRING "ready"
366 #define KSM_STATE_ACTIVE 4
367 #define KSM_STATE_ACTIVE_STRING "active"
368 #define KSM_STATE_RETIRE 5
369 #define KSM_STATE_RETIRE_STRING "retire"
370 #define KSM_STATE_DEAD 6
371 #define KSM_STATE_DEAD_STRING "dead"
372 #define KSM_STATE_DSSUB 7
373 #define KSM_STATE_DSSUB_STRING "dssub"
374 #define KSM_STATE_DSPUBLISH 8
375 #define KSM_STATE_DSPUBLISH_STRING "dspublish"
376 #define KSM_STATE_DSREADY 9
377 #define KSM_STATE_DSREADY_STRING "dsready"
378 #define KSM_STATE_KEYPUBLISH 10
379 #define KSM_STATE_KEYPUBLISH_STRING "keypublish"
380 
381 #define KSM_SERIAL_UNIX_STRING "unixtime"
382 #define KSM_SERIAL_UNIX 1
383 #define KSM_SERIAL_COUNTER_STRING "counter"
384 #define KSM_SERIAL_COUNTER 2
385 #define KSM_SERIAL_DATE_STRING "datecounter"
386 #define KSM_SERIAL_DATE 3
387 #define KSM_SERIAL_KEEP_STRING "keep"
388 #define KSM_SERIAL_KEEP 4
389 
390 #define KSM_KEYS_NOT_SHARED 0
391 #define KSM_KEYS_SHARED 1
392 
393 #define KSM_ROLL_DEFAULT 1 /* DoubleDNSKEY */
394 #define KSM_ROLL_DNSKEY_STRING "DoubleDNSKey"
395 #define KSM_ROLL_DNSKEY 1
396 #define KSM_ROLL_DS_STRING "DoubleDS"
397 #define KSM_ROLL_DS 2
398 #define KSM_ROLL_RRSET_STRING "DoubleRRSet"
399 #define KSM_ROLL_RRSET 3
400 
401 /* Reserved parameters and default values (in seconds) */
402 /* TODO redefine this properly:
403  * have _CAT defines separate
404  * rename to match the new list
405  * add new items ? */
406 #define KSM_PAR_CLOCKSKEW 3600 /* 1 hour */
407 #define KSM_PAR_CLOCKSKEW_STRING "clockskew"
408 #define KSM_PAR_CLOCKSKEW_CAT "signature"
409 #define KSM_PAR_KSKLIFE 63072000 /* 2 years */
410 #define KSM_PAR_KSKLIFE_STRING "lifetime"
411 #define KSM_PAR_KSKLIFE_CAT "ksk"
412 #define KSM_PAR_PROPDELAY 3600 /* 1 hour */
413 #define KSM_PAR_PROPDELAY_STRING "propagationdelay"
414 #define KSM_PAR_PROPDELAY_CAT "zone"
415 #define KSM_PAR_STANDBYKSKS 1
416 #define KSM_PAR_STANDBYKSKS_STRING "standby"
417 #define KSM_PAR_STANDBYKSKS_CAT "ksk"
418 #define KSM_PAR_STANDBYZSKS 1
419 #define KSM_PAR_STANDBYZSKS_STRING "standby"
420 #define KSM_PAR_STANDBYZSKS_CAT "zsk"
421 #define KSM_PAR_SIGNINT 7200 /* 2 hours */
422 #define KSM_PAR_SIGNINT_STRING "resign"
423 #define KSM_PAR_SIGNINT_CAT "signature"
424 #define KSM_PAR_SOAMIN 7200 /* 2 hours */
425 #define KSM_PAR_SOAMIN_STRING "min"
426 #define KSM_PAR_SOAMIN_CAT "zone"
427 #define KSM_PAR_SOATTL 172800 /* 2 days */
428 #define KSM_PAR_SOATTL_STRING "ttl"
429 #define KSM_PAR_SOATTL_CAT "zone"
430 #define KSM_PAR_ZSKSIGLIFE 432000 /* 5 days */
431 #define KSM_PAR_ZSKSIGLIFE_STRING "valdefault"
432 #define KSM_PAR_ZSKSIGLIFE_CAT "signature"
433 #define KSM_PAR_ZSKLIFE 2592000 /* 30 days */
434 #define KSM_PAR_ZSKLIFE_STRING "lifetime"
435 #define KSM_PAR_ZSKLIFE_CAT "zsk"
436 #define KSM_PAR_ZSKTTL 172800 /* 2 days */
437 #define KSM_PAR_ZSKTTL_STRING "ttl"
438 #define KSM_PAR_ZSKTTL_CAT "keys"
439 #define KSM_PAR_KSKTTL 172800 /* 2 days */
440 #define KSM_PAR_KSKTTL_STRING "ttl"
441 #define KSM_PAR_KSKTTL_CAT "keys"
442 #define KSM_PAR_KSKPROPDELAY 3600 /* 1 hour */
443 #define KSM_PAR_KSKPROPDELAY_STRING "propagationdelay"
444 #define KSM_PAR_KSKPROPDELAY_CAT "parent"
445 #define KSM_PAR_REGDELAY 0 /* TODO sort this out */
446 #define KSM_PAR_REGDELAY_STRING "registrationdelay" /* TODO sort this out */
447 #define KSM_PAR_REGDELAY_CAT "parent" /* TODO sort this out */
448 #define KSM_PAR_PUBSAFETY 172800 /* 2 days */
449 #define KSM_PAR_PUBSAFETY_STRING "publishsafety"
450 #define KSM_PAR_PUBSAFETY_CAT "keys"
451 #define KSM_PAR_RETSAFETY 172800 /* 2 days */
452 #define KSM_PAR_RETSAFETY_STRING "retiresafety"
453 #define KSM_PAR_RETSAFETY_CAT "keys"
454 #define KSM_PAR_KSK_MAN_ROLL 0 /* false (i.e. automatic roll) */
455 #define KSM_PAR_KSK_MAN_ROLL_STRING "manual_rollover"
456 #define KSM_PAR_KSK_MAN_ROLL_CAT "ksk"
457 #define KSM_PAR_ZSK_MAN_ROLL 0 /* false (i.e. automatic roll) */
458 #define KSM_PAR_ZSK_MAN_ROLL_STRING "manual_rollover"
459 #define KSM_PAR_ZSK_MAN_ROLL_CAT "zsk"
460 #define KSM_PAR_DSTTL 3600
461 #define KSM_PAR_DSTTL_STRING "ttlds"
462 #define KSM_PAR_DSTTL_CAT "parent"
463 #define KSM_PAR_KSK_ROLL 0
464 #define KSM_PAR_KSK_ROLL_STRING "rollover_scheme"
465 #define KSM_PAR_KSK_ROLL_CAT "ksk"
466 
467 typedef struct { /* Holds collection of parameters */
468  int clockskew; /* Clock skew */
469  int ksklife; /* Lifetime of a KSK */
470  int standbyksks; /* Number of Standby Key Signing keys */
471  int standbyzsks; /* Number of Standby Zone signing keys */
472  int propdelay; /* Propagation delay */
473  int signint; /* Signing interval - how long signing the zone takes */
474  int soamin; /* "Minimum" value from SOA record */
475  int soattl; /* TTL of the SOA record */
476  int zsksiglife; /* Length of signatures signed by this ZSK */
477  int zsklife; /* How long key is used for */
478  int zskttl; /* TTL of ZSK DNSKEY record */
479  int kskttl; /* TTL of KSK DNSKEY record */
480  int kskpropdelay; /* KSK Propagation delay */
481  int regdelay; /* KSK Registration delay */
482  int pub_safety; /* Publish safety margin */
483  int ret_safety; /* Retire safety margin */
484  int kskmanroll; /* Do we only roll the KSK manually? */
485  int zskmanroll; /* Do we only roll the ZSK manually? */
486  int dsttl; /* TTL of the DS record */
487  int kskroll; /* Rollover Scheme for the KSK */
488 } KSM_PARCOLL;
489 
490 int KsmCollectionInit(KSM_PARCOLL* data);
491 int KsmParameterClockskew(KSM_PARCOLL* collection);
492 int KsmParameterKskLifetime(KSM_PARCOLL* collection);
493 int KsmParameterStandbyKSKeys(KSM_PARCOLL* collection);
494 int KsmParameterStandbyZSKeys(KSM_PARCOLL* collection);
497 int KsmParameterSoaMin(KSM_PARCOLL* collection);
498 int KsmParameterSoaTtl(KSM_PARCOLL* collection);
499 int KsmParameterZskLifetime(KSM_PARCOLL* collection);
500 int KsmParameterZskTtl(KSM_PARCOLL* collection);
501 int KsmParameterKskTtl(KSM_PARCOLL* collection);
504 int KsmParameterPubSafety(KSM_PARCOLL* collection);
505 int KsmParameterRetSafety(KSM_PARCOLL* collection);
507 int KsmParameterCollection(KSM_PARCOLL* data, int policy_id);
508 void KsmParameterCollectionCache(int enable);
509 
510 /* ksm_keyword */
511 
512 int KsmKeywordAlgorithmNameToValue(const char* name);
513 int KsmKeywordFormatNameToValue(const char* name);
514 int KsmKeywordParameterNameToValue(const char* name);
515 int KsmKeywordStateNameToValue(const char* name);
516 int KsmKeywordTypeNameToValue(const char* name);
517 int KsmKeywordRollNameToValue(const char* name);
518 
519 const char* KsmKeywordAlgorithmValueToName(int value);
520 const char* KsmKeywordFormatValueToName(int value);
521 const char* KsmKeywordStateValueToName(int value);
522 const char* KsmKeywordTypeValueToName(int value);
523 const char* KsmKeywordSerialValueToName(int value);
524 const char* KsmKeywordRollValueToName(int value);
525 
526 int KsmKeywordParameterExists(const char* name);
527 
528 /* ksm_update */
529 
530 int KsmUpdate(int policy_id, int zone_id);
531 void KsmUpdateKey(KSM_KEYDATA* data, KSM_PARCOLL* collection, int zone_id);
533 void KsmUpdatePublishKeyTime(KSM_KEYDATA* data, KSM_PARCOLL* collection, int zone_id);
535 void KsmUpdateActiveKeyTime(KSM_KEYDATA* data, KSM_PARCOLL* collection, int zone_id);
536 void KsmUpdateRetireKeyTime(KSM_KEYDATA* data, KSM_PARCOLL* collection, int zone_id);
538 void KsmUpdateDSPublishKeyTime(KSM_KEYDATA* data, KSM_PARCOLL* collection, int zone_id);
539 void KsmUpdateKEYPublishKeyTime(KSM_KEYDATA* data, KSM_PARCOLL* collection, int zone_id);
540 int KsmUpdateKeyTime(const KSM_KEYDATA* data, const char* source,
541  const char* destination, int interval, int zone_id);
542 
543 /* ksm_request */
544 
545 typedef int (*KSM_REQUEST_CALLBACK)(void* context, KSM_KEYDATA* key);
546 
547 int KsmRequestKeys(int keytype, int rollover, const char* datetime,
548  KSM_REQUEST_CALLBACK callback, void* context, int policy_id, int zone_id,
549  int run_interval, int* NewDS);
550 int KsmRequestKeysByType(int keytype, int rollover, const char* datetime,
551  KSM_REQUEST_CALLBACK callback, void* context, int policy_id, int zone_id,
552  int run_interval, int* NewDS);
553 int KsmRequestSetActiveExpectedRetire(int keytype, const char* datetime, int zone_id);
554 int KsmRequestChangeStateActiveRetire(int keytype, const char* datetime, int zone_id, int policy_id);
555 int KsmRequestChangeStateRetireDead(int keytype, const char* datetime, int zone_id, int policy_id, int rollover_scheme, int* NewDS);
556 int KsmRequestChangeStatePublishReady(int keytype, const char* datetime, int zone_id, int policy_id, int* NewDS);
557 int KsmRequestChangeStateDSPublishDSReady(int keytype, const char* datetime, int zone_id, int policy_id);
558 int KsmRequestChangeState(int keytype, const char* datetime, int src_state,
559  int dst_state, int zone_id, int policy_id, int rollover_scheme, int* NewDS);
560 int KsmRequestChangeStateGeneratePublish(int keytype, const char* datetime,
561  int count, int zone_id);
562 int KsmRequestChangeStateGenerateDSSub(int keytype, const char* datetime,
563  int count, int zone_id);
564 int KsmRequestChangeStateDSReadyKeyPublish(const char* datetime, int zone_id, int policy_id);
565 int KsmRequestChangeStateKeyPublishActive(const char* datetime, int zone_id, int policy_id, int* NewDS);
566 int KsmRequestChangeStateReadyActive(int keytype, const char* datetime,
567  int count, int zone_id);
568 int KsmRequestChangeStateN(int keytype, const char* datetime,
569  int count, int src_state, int dst_state, int zone_id);
571  const char* datetime, KSM_PARCOLL* collection, int zone_id, int* NewDS);
573  const char* datetime, KSM_PARCOLL* collection, int zone_id,
574  int run_interval);
575 int KsmRequestPendingRetireCount(int keytype, const char* datetime,
576  KSM_PARCOLL* parameters, int* count, int zone_id, int interval);
577 int KsmRequestAvailableCount(int keytype, const char* datetime,
578  KSM_PARCOLL* parameters, int* count, int zone_id);
579 int KsmRequestGenerateCount(int keytype, int* count, int zone_id);
580 int KsmRequestStandbyKSKCount(int* count, int zone_id);
581 int KsmRequestCheckActiveKey(int keytype, const char* datetime, int* count, int zone_id);
582 int KsmRequestCountReadyKey(int keytype, const char* datetime, int* count, int zone_id);
583 int KsmRequestCheckFirstPass(int keytype, int* first_pass_flag, int zone_id);
584 int KsmRequestCheckCompromisedFlag(int keytype, int zone_id, int* comp_flag);
585 int KsmRequestIssueKeys(int keytype, KSM_REQUEST_CALLBACK callback,
586  void* context, int zone_id);
587 
588 int KsmRequestPrintKey(void* context, KSM_KEYDATA* data);
589 
590 int KsmRequestDNSSECKeys(const char* datetime, KSM_POLICY* policy);
591 int KsmRequestDNSSECKeysChangeStateRetireDead(KSM_KEY_POLICY *policy, const char* datetime, int verify);
592 int KsmRequestDNSSECKeysChangeState(KSM_KEY_POLICY *policy, const char* datetime, int src_state, int dst_state, int verify);
593 int KsmRequestDNSSECKeysChangeStatePublishReady(KSM_KEY_POLICY *policy, const char* datetime, int verify);
594 int KsmRequestDNSSECKeysChangeStateGeneratePublishConditional(KSM_POLICY *policy, KSM_KEY_POLICY *key_policy, const char* datetime, int verify);
595 int KsmRequestDNSSECKeysSetActiveExpectedRetire(int keytype, const char* datetime, int verify);
596 int KsmRequestDNSSECKeysPendingRetireCount(KSM_KEY_POLICY, const char* datetime, int* count);
597 
602 int KsmPolicySigningInterval(KSM_PARCOLL* collection);
605 int KsmPolicyZskTtl(KSM_PARCOLL* collection);
607 
608 /* KsmImport */
609 int KsmImportRepository(const char* repo_name, const char* repo_capacity, int require_backup);
610 int KsmImportPolicy(const char* policy_name, const char* policy_description);
611 int KsmImportZone(const char* zone_name, int policy_id, int fail_if_exists, int *new_zone, const char* signconf, const char* input, const char* output, const char* input_type, const char* output_type);
612 int KsmImportKeyPair(int policy_id, const char* HSMKeyID, int smID, int size, int alg, int state, const char* time, int fixDate, DB_ID* id);
613 int KsmSmIdFromName(const char* name, int *id);
614 int KsmSerialIdFromName(const char* name, int *id);
615 int KsmPolicyIdFromName(const char* name, int *id);
616 int KsmMarkPreBackup(int repo_id, const char* datetime);
617 int KsmRollbackMarkPreBackup(int repo_id);
618 int KsmMarkBackup(int repo_id, const char* datetime);
619 int KsmCheckHSMkeyID(int repo_id, const char* cka_id, int *exists);
620 
621 /* KsmList */
622 int KsmListBackups(int repo_id, int verbose_flag);
623 int KsmListRepos();
624 int KsmListPolicies();
625 int KsmListRollovers(int zone_id, int* ds_count);
626 int KsmCheckNextRollover(int keytype, int zone_id, char** datetime);
627 
628 #ifdef __cplusplus
629 };
630 #endif
631 
632 #endif /* KSM_KSM_H */
int KsmCheckHSMkeyID(int repo_id, const char *cka_id, int *exists)
Definition: ksm_import.c:723
int KsmPolicyInit(DB_RESULT *handle, const char *name)
Definition: ksm_policy.c:69
unsigned long sm_capacity
Definition: ksm.h:209
int zone_id
Definition: ksm.h:115
int siglifetime
Definition: ksm.h:102
int KsmZoneIdAndPolicyFromName(const char *zone_name, int *policy_id, int *zone_id)
Definition: ksm_zone.c:310
int KsmRequestChangeStateN(int keytype, const char *datetime, int count, int src_state, int dst_state, int zone_id)
Definition: ksm_request.c:1039
int KsmRequestCheckFirstPass(int keytype, int *first_pass_flag, int zone_id)
Definition: ksm_request.c:1928
int overlap
Definition: ksm.h:211
int rfc5011
Definition: ksm.h:213
int backup_interval
Definition: ksm.h:222
int KsmPolicy(DB_RESULT handle, KSM_POLICY *data)
Definition: ksm_policy.c:191
int serial
Definition: ksm.h:230
int KsmDeleteKeyRanges(int limit[], int size)
int KsmPolicyZskTtl(KSM_PARCOLL *collection)
int KsmKeywordParameterExists(const char *name)
Definition: ksm_keyword.c:286
int kskttl
Definition: ksm.h:479
int KsmKeywordTypeNameToValue(const char *name)
Definition: ksm_keyword.c:227
int KsmPolicySoaMin(KSM_SIGNER_POLICY *policy)
int KsmUpdate(int policy_id, int zone_id)
Definition: ksm_update.c:70
int(* KSM_REQUEST_CALLBACK)(void *context, KSM_KEYDATA *key)
Definition: ksm.h:545
int KsmPolicyPropagationDelay(KSM_SIGNER_POLICY *policy)
int soa_min
Definition: ksm.h:229
void KsmUpdateDeadKeyTime(KSM_KEYDATA *data)
Definition: ksm_update.c:426
int KsmRequestIssueKeys(int keytype, KSM_REQUEST_CALLBACK callback, void *context, int zone_id)
Definition: ksm_request.c:2046
int flags
Definition: ksm.h:123
int KsmMarkPreBackup(int repo_id, const char *datetime)
Definition: ksm_import.c:517
int KsmKeyCountQueue(int keytype, int *count, int zone_id)
Definition: ksm_key.c:653
int pub_safety
Definition: ksm.h:482
KSM_POLICY * KsmPolicyAlloc()
Definition: ksm_policy.c:959
int KsmParameterZskTtl(KSM_PARCOLL *collection)
int KsmParameter(DB_RESULT result, KSM_PARAMETER *data)
KSM_COMMON_KEY_POLICY * keys
Definition: ksm.h:247
int KsmZoneInit(DB_RESULT *handle, int policy_id)
Definition: ksm_zone.c:66
int KsmRequestChangeStateDSReadyKeyPublish(const char *datetime, int zone_id, int policy_id)
Definition: ksm_request.c:699
int state
Definition: ksm.h:99
int KsmParameterCollection(KSM_PARCOLL *data, int policy_id)
int soa_ttl
Definition: ksm.h:228
#define KSM_TIME_LENGTH
Definition: ksm.h:61
int KsmSerialIdFromName(const char *name, int *id)
Definition: ksm_import.c:427
KSM_KEY_POLICY * zsk
Definition: ksm.h:249
int KsmRequestDNSSECKeys(const char *datetime, KSM_POLICY *policy)
int KsmPolicyKeyLifetime(KSM_KEY_POLICY *policy)
#define KSM_ZONE_NAME_LENGTH
Definition: ksm.h:66
int bits
Definition: ksm.h:205
int KsmPolicySetIdFromName(KSM_POLICY *policy)
Definition: ksm_policy.c:817
int dsttl
Definition: ksm.h:486
int KsmParameterKskLifetime(KSM_PARCOLL *collection)
int zsksiglife
Definition: ksm.h:476
int KsmKeyPairCreate(int policy_id, const char *HSMKeyID, int smID, int size, int alg, const char *generate, DB_ID *id)
Definition: ksm_key.c:84
int KsmImportZone(const char *zone_name, int policy_id, int fail_if_exists, int *new_zone, const char *signconf, const char *input, const char *output, const char *input_type, const char *output_type)
Definition: ksm_import.c:218
int KsmZone(DB_RESULT handle, KSM_ZONE *data)
Definition: ksm_zone.c:150
int KsmKeywordRollNameToValue(const char *name)
Definition: ksm_keyword.c:257
int manual_rollover
Definition: ksm.h:216
int KsmZoneCount(DB_RESULT handle, int *count)
Definition: ksm_zone.c:206
int value
Definition: ksm.h:154
int KsmPolicyUpdateSalt(KSM_POLICY *policy)
Definition: ksm_policy.c:501
int KsmRollbackMarkPreBackup(int repo_id)
Definition: ksm_import.c:580
int shared_keys
Definition: ksm.h:253
int KsmListPolicies()
Definition: ksm_list.c:306
void KsmUpdateActiveKeyTime(KSM_KEYDATA *data, KSM_PARCOLL *collection, int zone_id)
Definition: ksm_update.c:323
int KsmPolicyRead(KSM_POLICY *policy)
Definition: ksm_policy.c:232
int KsmRequestStandbyKSKCount(int *count, int zone_id)
Definition: ksm_request.c:1733
int clockskew
Definition: ksm.h:468
int KsmParameterSoaMin(KSM_PARCOLL *collection)
int regdelay
Definition: ksm.h:481
int ret_safety
Definition: ksm.h:483
const char * KsmKeywordRollValueToName(int value)
Definition: ksm_keyword.c:262
int KsmRundown(void)
#define KSM_ADAPTER_NAME_LENGTH
Definition: ksm.h:67
int ksklife
Definition: ksm.h:469
int KsmRequestSetActiveExpectedRetire(int keytype, const char *datetime, int zone_id)
Definition: ksm_request.c:519
int algorithm
Definition: ksm.h:204
int KsmParameterKskTtl(KSM_PARCOLL *collection)
int KsmRequestChangeStatePublishReady(int keytype, const char *datetime, int zone_id, int policy_id, int *NewDS)
Definition: ksm_request.c:686
int KsmKeyQuery(const char *sql, DB_RESULT *result)
const char * KsmKeywordStateValueToName(int value)
Definition: ksm_keyword.c:242
void KsmUpdateKEYPublishKeyTime(KSM_KEYDATA *data, KSM_PARCOLL *collection, int zone_id)
Definition: ksm_update.c:491
int KsmCheckNextRollover(int keytype, int zone_id, char **datetime)
Definition: ksm_list.c:457
int KsmParameterZskLifetime(KSM_PARCOLL *collection)
int KsmPolicyIdFromName(const char *name, int *id)
Definition: ksm_import.c:470
int roll_scheme
Definition: ksm.h:124
#define KSM_NAME_LENGTH
Definition: ksm.h:57
int KsmKeyInitId(DB_RESULT *result, DB_ID id)
Definition: ksm_key.c:326
int KsmDNSSECKeysInSMCountInit(DB_RESULT *handle, int policy_id)
int KsmRequestCheckActiveKey(int keytype, const char *datetime, int *count, int zone_id)
Definition: ksm_request.c:1812
int KsmPolicyParameter(DB_RESULT handle, KSM_POLICY_PARAMETER *data)
Definition: ksm_policy.c:372
int KsmParameterKskPropagationDelay(KSM_PARCOLL *collection)
int KsmRequestDNSSECKeysChangeState(KSM_KEY_POLICY *policy, const char *datetime, int src_state, int dst_state, int verify)
int KsmSmIdFromName(const char *name, int *id)
Definition: ksm_import.c:398
int keygeninterval
Definition: ksm.h:223
int KsmPolicyReadFromId(KSM_POLICY *policy)
Definition: ksm_policy.c:420
int saltlength
Definition: ksm.h:190
int KsmRequestChangeStateReadyActive(int keytype, const char *datetime, int count, int zone_id)
Definition: ksm_request.c:998
int policy_id
Definition: ksm.h:283
int KsmPolicyIdFromZoneId(int zone_id, int *policy_id)
Definition: ksm_policy.c:866
int kskmanroll
Definition: ksm.h:484
int KsmParameterSoaTtl(KSM_PARCOLL *collection)
int KsmPolicyParametersInit(DB_RESULT *handle, const char *name)
Definition: ksm_policy.c:110
KSM_PARENT_POLICY * parent
Definition: ksm.h:252
int KsmPolicySoaTtl(KSM_SIGNER_POLICY *policy)
int KsmRequestDNSSECKeysChangeStatePublishReady(KSM_KEY_POLICY *policy, const char *datetime, int verify)
KSM_DENIAL_POLICY * denial
Definition: ksm.h:246
int KsmParameterStandbyZSKeys(KSM_PARCOLL *collection)
int KsmZoneIdFromName(const char *zone_name, int *zone_id)
Definition: ksm_zone.c:247
KSM_KEY_POLICY * ksk
Definition: ksm.h:248
void KsmUpdateGenerateKeyTime(KSM_KEYDATA *data)
Definition: ksm_update.c:221
int KsmInit(void)
int KsmListRollovers(int zone_id, int *ds_count)
Definition: ksm_list.c:369
unsigned long DB_ID
Definition: database.h:78
void KsmUpdatePublishKeyTime(KSM_KEYDATA *data, KSM_PARCOLL *collection, int zone_id)
Definition: ksm_update.c:239
KSM_ZONE_POLICY * zone
Definition: ksm.h:251
int KsmParameterValue(const char *name, const char *category, int *value, int policy_id, int *parameter_id)
int KsmKeywordStateNameToValue(const char *name)
Definition: ksm_keyword.c:222
int KsmListRepos()
Definition: ksm_list.c:242
int KsmParameterClockskew(KSM_PARCOLL *collection)
int KsmKeyInitSql(DB_RESULT *result, const char *sql)
Definition: ksm_key.c:217
int KsmRequestCountReadyKey(int keytype, const char *datetime, int *count, int zone_id)
Definition: ksm_request.c:1876
int propdelay
Definition: ksm.h:227
int KsmCollectionInit(KSM_PARCOLL *data)
int securitymodule_id
Definition: ksm.h:110
int KsmRequestChangeState(int keytype, const char *datetime, int src_state, int dst_state, int zone_id, int policy_id, int rollover_scheme, int *NewDS)
Definition: ksm_request.c:764
int KsmParameterRegistrationDelay(KSM_PARCOLL *collection)
int type
Definition: ksm.h:214
int KsmImportPolicy(const char *policy_name, const char *policy_description)
Definition: ksm_import.c:147
int propdelay
Definition: ksm.h:472
void KsmPolicyFree(KSM_POLICY *policy)
Definition: ksm_policy.c:997
#define KSM_PATH_LENGTH
Definition: ksm.h:59
int KsmKey(DB_RESULT result, KSM_KEYDATA *data)
Definition: ksm_key.c:366
KSM_SIGNER_POLICY * signer
Definition: ksm.h:244
int KsmParameterPropagationDelay(KSM_PARCOLL *collection)
int KsmParameterInitialPublicationInterval(KSM_PARCOLL *collection)
int size
Definition: ksm.h:111
int standby_keys
Definition: ksm.h:215
#define KSM_SALT_LENGTH
Definition: ksm.h:65
int KsmPolicyStandbyKeys(KSM_KEY_POLICY *policy)
int KsmRequestAvailableCount(int keytype, const char *datetime, KSM_PARCOLL *parameters, int *count, int zone_id)
Definition: ksm_request.c:1613
int KsmPolicyUpdateDesc(int policy_id, const char *policy_description)
Definition: ksm_policy.c:929
int KsmKeyPredict(int policy_id, int keytype, int shared_keys, int interval, int *count, int rollover_scheme, int zone_count)
Definition: ksm_key.c:562
int KsmMarkKeysAsDead(int zone_id)
Definition: ksm_key.c:946
const char * KsmKeywordSerialValueToName(int value)
Definition: ksm_keyword.c:252
int KsmDNSSECKeysStateCountInit(DB_RESULT *result, int policy_id, KSM_KEY_POLICY *key_policy, int state)
int KsmDnssecKeyCreate(int zone_id, int keypair_id, int keytype, int state, const char *time, const char *retTime, DB_ID *id)
Definition: ksm_key.c:141
int KsmRequestChangeStateDSPublishDSReady(int keytype, const char *datetime, int zone_id, int policy_id)
Definition: ksm_request.c:692
int KsmPolicyNullSaltStamp(int policy_id)
Definition: ksm_policy.c:683
DB_ID dnsseckey_id
Definition: ksm.h:114
int keytype
Definition: ksm.h:100
int KsmRequestGenerateCount(int keytype, int *count, int zone_id)
Definition: ksm_request.c:1683
int KsmRequestChangeStateRetireDead(int keytype, const char *datetime, int zone_id, int policy_id, int rollover_scheme, int *NewDS)
Definition: ksm_request.c:719
int KsmKeyInit(DB_RESULT *result, DQS_QUERY_CONDITION *condition)
Definition: ksm_key.c:249
int KsmRequestDNSSECKeysChangeStateRetireDead(KSM_KEY_POLICY *policy, const char *datetime, int verify)
int KsmRequestChangeStateGeneratePublish(int keytype, const char *datetime, int count, int zone_id)
Definition: ksm_request.c:984
int KsmRequestDNSSECKeysSetActiveExpectedRetire(int keytype, const char *datetime, int verify)
int propdelay
Definition: ksm.h:234
int fixedDate
Definition: ksm.h:116
char * description
Definition: ksm.h:243
int KsmParameterShow(const char *name, const char *category, int policy_id)
int algorithm
Definition: ksm.h:101
int propdelay
Definition: ksm.h:170
int KsmRequestChangeStateGenerateDSSubConditional(int keytype, const char *datetime, KSM_PARCOLL *collection, int zone_id, int *NewDS)
Definition: ksm_request.c:1258
int zskttl
Definition: ksm.h:478
int KsmDNSSECKeysInSMCount(DB_RESULT handle, int *count)
int KsmRequestKeysByType(int keytype, int rollover, const char *datetime, KSM_REQUEST_CALLBACK callback, void *context, int policy_id, int zone_id, int run_interval, int *NewDS)
Definition: ksm_request.c:210
int KsmRequestChangeStateGeneratePublishConditional(int keytype, const char *datetime, KSM_PARCOLL *collection, int zone_id, int run_interval)
Definition: ksm_request.c:1363
int KsmDeleteZone(int zone_id)
Definition: ksm_zone.c:372
void KsmParameterCollectionCache(int enable)
int KsmPolicySigningInterval(KSM_PARCOLL *collection)
int parameter_id
Definition: ksm.h:155
int KsmZoneNameFromId(int zone_id, char **zone_name)
Definition: ksm_zone.c:412
int KsmParameterSigningInterval(KSM_PARCOLL *collection)
int KsmPolicyPopulateSMFromIds(KSM_POLICY *policy)
Definition: ksm_policy.c:716
int KsmParameterPubSafety(KSM_PARCOLL *collection)
int standbyzsks
Definition: ksm.h:471
DB_ID keypair_id
Definition: ksm.h:98
int KsmParameterExist(DB_RESULT *result, const char *name, const char *category, int *parameter_id)
void KsmParameterEnd(DB_RESULT result)
int KsmImportKeyPair(int policy_id, const char *HSMKeyID, int smID, int size, int alg, int state, const char *time, int fixDate, DB_ID *id)
Definition: ksm_import.c:344
int sm
Definition: ksm.h:207
int KsmKeyGetUnallocated(int policy_id, int sm, int bits, int algorithm, int zone_id, int share_keys, int *keypair_id)
Definition: ksm_key.c:870
int KsmKeyData(DB_ID id, KSM_KEYDATA *data)
Definition: ksm_key.c:498
const char * KsmKeywordTypeValueToName(int value)
Definition: ksm_keyword.c:247
void KsmUpdateKey(KSM_KEYDATA *data, KSM_PARCOLL *collection, int zone_id)
Definition: ksm_update.c:150
int signint
Definition: ksm.h:473
void KsmUpdateReadyKeyTime(KSM_KEYDATA *data)
Definition: ksm_update.c:305
int KsmParameterInit(DB_RESULT *result, const char *name, const char *category, int policy_id)
Definition: ksm_parameter.c:83
void KsmUpdateDSPublishKeyTime(KSM_KEYDATA *data, KSM_PARCOLL *collection, int zone_id)
Definition: ksm_update.c:445
int kskpropdelay
Definition: ksm.h:480
int KsmPolicyExists(const char *name)
Definition: ksm_policy.c:151
int policy_id
Definition: ksm.h:112
int KsmRequestChangeStateKeyPublishActive(const char *datetime, int zone_id, int policy_id, int *NewDS)
Definition: ksm_request.c:706
int KsmRequestChangeStateActiveRetire(int keytype, const char *datetime, int zone_id, int policy_id)
Definition: ksm_request.c:712
int KsmParameterRetSafety(KSM_PARCOLL *collection)
int KsmRequestPrintKey(void *context, KSM_KEYDATA *data)
Definition: ksm_request.c:2125
int id
Definition: ksm.h:241
int KsmKeywordParameterNameToValue(const char *name)
Definition: ksm_keyword.c:217
const char * KsmKeywordFormatValueToName(int value)
Definition: ksm_keyword.c:237
int ttl
Definition: ksm.h:212
int require_backup
Definition: ksm.h:210
int KsmRequestPendingRetireCount(int keytype, const char *datetime, KSM_PARCOLL *parameters, int *count, int zone_id, int interval)
Definition: ksm_request.c:1480
int zsklife
Definition: ksm.h:477
int KsmZoneCountInit(DB_RESULT *handle, int id)
Definition: ksm_zone.c:107
int KsmKeywordFormatNameToValue(const char *name)
Definition: ksm_keyword.c:212
int KsmParameterSet(const char *name, const char *category, int value, int policy_id)
KSM_ENFORCER_POLICY * enforcer
Definition: ksm.h:250
int KsmImportRepository(const char *repo_name, const char *repo_capacity, int require_backup)
Definition: ksm_import.c:70
int KsmRequestCheckCompromisedFlag(int keytype, int zone_id, int *comp_flag)
Definition: ksm_request.c:1984
int KsmPolicyClockskew(KSM_SIGNATURE_POLICY *policy)
int KsmKeywordAlgorithmNameToValue(const char *name)
Definition: ksm_keyword.c:207
int KsmParameterStandbyKSKeys(KSM_PARCOLL *collection)
int KsmDeleteKeyRange(int minid, int maxid)
int algorithm
Definition: ksm.h:186
int KsmListBackups(int repo_id, int verbose_flag)
Definition: ksm_list.c:64
void KsmUpdateRetireKeyTime(KSM_KEYDATA *data, KSM_PARCOLL *collection, int zone_id)
Definition: ksm_update.c:373
int KSM_ID
Definition: ksm.h:48
int rollover_scheme
Definition: ksm.h:217
void KsmKeyEnd(DB_RESULT result)
Definition: ksm_key.c:469
int id
Definition: ksm.h:282
int standbyksks
Definition: ksm.h:470
int KsmPolicyNameFromId(KSM_POLICY *policy)
Definition: ksm_policy.c:433
int KsmRequestKeys(int keytype, int rollover, const char *datetime, KSM_REQUEST_CALLBACK callback, void *context, int policy_id, int zone_id, int run_interval, int *NewDS)
Definition: ksm_request.c:95
int lifetime
Definition: ksm.h:206
int KsmMarkBackup(int repo_id, const char *datetime)
Definition: ksm_import.c:650
int iteration
Definition: ksm.h:187
Definition: ksm.h:281
int soattl
Definition: ksm.h:475
int zskmanroll
Definition: ksm.h:485
int KsmKeyCountStillGood(int policy_id, int sm, int bits, int algorithm, int interval, const char *datetime, int *count, int keytype)
Definition: ksm_key.c:732
int KsmKillKey(int keypair_id, int zone_id)
Definition: ksm_key.c:1008
int KsmUpdateKeyTime(const KSM_KEYDATA *data, const char *source, const char *destination, int interval, int zone_id)
Definition: ksm_update.c:555
int KsmPolicyInitialPublicationInterval(KSM_POLICY *policy)
void KsmPurge(void)
Definition: ksm_purge.c:52
KSM_SIGNATURE_POLICY * signature
Definition: ksm.h:245
int KsmRequestChangeStateGenerateDSSub(int keytype, const char *datetime, int count, int zone_id)
Definition: ksm_request.c:991
int soamin
Definition: ksm.h:474
int KsmRequestDNSSECKeysPendingRetireCount(KSM_KEY_POLICY, const char *datetime, int *count)
int KsmRequestDNSSECKeysChangeStateGeneratePublishConditional(KSM_POLICY *policy, KSM_KEY_POLICY *key_policy, const char *datetime, int verify)
int kskroll
Definition: ksm.h:487
const char * KsmKeywordAlgorithmValueToName(int value)
Definition: ksm_keyword.c:232