// This proto file is used to define the key state data that needs // to be persisted for the enforcer package ods.keystate; import "xmlext.proto"; message KeyStateDocument { repeated EnforcerZone zones = 1; } message KeyStateExport { optional EnforcerZone zone = 1 [(xml).path="Zone"]; } message EnforcerZone { required string name = 1 [(xml).path="@name"]; required string policy = 2 [(xml).path="@policy"]; repeated KeyData keys = 3 [(xml).path="Key"]; required bool signconf_needs_writing = 4; required string signconf_path = 5 [(xml).path="SignConfPath"]; optional uint32 next_change = 6; // don't write determine when importing optional uint32 ttl_end_ds = 7 [(xml).path="ttlEndDs"]; // after this date no old ttl is rumoured optional uint32 ttl_end_dk = 8 [(xml).path="ttlEndDk"]; // after this date no old ttl is rumoured optional uint32 ttl_end_rs = 9 [(xml).path="ttlEndRs"]; // after this date no old ttl is rumoured optional bool roll_ksk_now = 10 [default = false, (xml).path="rollKskNow"]; // ignored if ManualRollover not in Policy optional bool roll_zsk_now = 11 [default = false, (xml).path="rollZskNow"]; // ignored if ManualRollover not in Policy optional bool roll_csk_now = 12 [default = false, (xml).path="rollCskNow"]; // ignored if ManualRollover not in Policy } message KeyData { required string locator = 1 [(xml).path="Locator"]; required uint32 algorithm = 2 [(xml).path="Algorithm"]; required uint32 inception = 3 [(xml).path="Inception"]; // Should be UTC Zulu time ? required KeyState ds = 4 [(xml).path="DS"]; required KeyState rrsig = 5 [(xml).path="RRSIG"]; required KeyState dnskey = 6 [(xml).path="DNSKEY"]; required keyrole role = 7 [(xml).path="Role"]; // optional bool ds_seen = 8 [default = false, (xml).path="DSSeen"]; // parent says DS has been seen // optional bool submit_to_parent = 9 [default = false, (xml).path="DSSubmit"]; // submit DS to parent optional bool introducing = 10 [default=true, (xml).path="Introducing"]; optional bool revoke = 11 [default = false, (xml).path="Revoke"]; optional bool standby = 12 [default = false, (xml).path="Standby"]; optional bool active_zsk = 13 [default = false, (xml).path="ActiveZSK"]; optional bool publish = 14 [default = false, (xml).path="Publish"]; required KeyState rrsigdnskey = 15 [(xml).path="RRSIGDNSKEY"]; optional bool active_ksk = 16 [default = false, (xml).path="ActiveKSK"]; optional dsatparent ds_at_parent = 17 [default = unsubmitted, (xml).path="DSAtParent"]; optional uint32 keytag = 18 [default = 0, (xml).path="Keytag"]; } message KeyState { optional rrstate state = 1 [default = hidden, (xml).path="State"]; optional uint32 last_change = 2 [(xml).path="LastChange"]; // Encode as UTC Zulu time ? optional bool minimize = 3 [default = false, (xml).path="Minimize"]; optional uint32 ttl = 4 [(xml).path="ttl"]; } enum keyrole { KSK = 1; ZSK = 2; CSK = 3; } enum rrstate { hidden = 0; rumoured = 1; omnipresent = 2; unretentive = 3; NA = 4; } enum dsatparent { unsubmitted = 0; submit = 1; submitted = 2; seen = 3; retract = 4; retracted = 5; }