diff --git a/src/syndicate/protocols/noise.nim b/src/syndicate/protocols/noise.nim index ffbdbdf..230c180 100644 --- a/src/syndicate/protocols/noise.nim +++ b/src/syndicate/protocols/noise.nim @@ -48,6 +48,17 @@ type `absent`*: SecretKeyFieldAbsent + SessionItemKind* {.pure.} = enum + `Initiator`, `Packet` + `SessionItem`* {.preservesOr.} = object + case orKind*: SessionItemKind + of SessionItemKind.`Initiator`: + `initiator`* {.preservesEmbedded.}: Initiator + + of SessionItemKind.`Packet`: + `packet`*: Packet + + NoiseProtocolKind* {.pure.} = enum `present`, `invalid`, `absent` NoiseProtocolPresent* {.preservesDictionary.} = object @@ -83,6 +94,9 @@ type `service`*: ServiceSelector ServiceSelector* = Value + Initiator* {.preservesRecord: "initiator".} = object + `initiatorSession`* {.preservesEmbedded.}: EmbeddedRef + NoiseStepDetail* = ServiceSelector NoiseSpecKey* = seq[byte] NoiseSpecPreSharedKeys* = Option[Value] @@ -105,17 +119,21 @@ type proc `$`*(x: NoiseDescriptionDetail | NoisePreSharedKeys | SecretKeyField | + SessionItem | NoiseProtocol | NoisePathStepDetail | NoiseServiceSpec | + Initiator | NoiseSpec | Packet): string = `$`(toPreserves(x)) proc encode*(x: NoiseDescriptionDetail | NoisePreSharedKeys | SecretKeyField | + SessionItem | NoiseProtocol | NoisePathStepDetail | NoiseServiceSpec | + Initiator | NoiseSpec | Packet): seq[byte] = encode(toPreserves(x))