lib/reticulum/src/conformance/link.zig

daab053ee43316e1809a84551d573ddd1e5bf3d2

   1 //! Generated by `lib/reticulum/build/generate` with `rns==1.5.0`.
   2 //! The upstream source is Reticulum commit `e32d4df754a7b87b1bf1bb0d08675d12ff505ae6`.
   3 //! Hand edits are lost.
   4 //!
   5 //! The link requests use Reticulum@1.5.0 RNS/Link.py:304-322,335-346.
   6 //! The generator's interfaces set neither `AUTOCONFIGURE_MTU` nor `FIXED_MTU`.
   7 //! An interface is the stand-in network interface object the generator hands
   8 //! the reference, named by an index, which the port calls a carrier.
   9 //! The signalling of the 500-byte MTU uses RNS/Transport.py:3101-3107 and
  10 //! RNS/Link.py:307-310.
  11 //! The responders use RNS/Link.py:186-227,348-375 and
  12 //! RNS/Transport.py:2456-2487.
  13 //! The responder of the `link-request-stripped` step hears the request without
  14 //! its signalling bytes.
  15 //! A step of the two-node session is one record in this file's `vectors` table,
  16 //! holding which end acted, the second it acted at, the frame it heard, any
  17 //! bytes handed to it in place of random ones, and the frame it sent back.
  18 //! Relays strip the signalling bytes at RNS/Transport.py:1982-1985 before an
  19 //! interface that sets neither flag.
  20 //! The validation of the proof and the round-trip time use
  21 //! RNS/Link.py:391-438,516-538.
  22 //! Link data and its proofs use RNS/Link.py:378-389,948-962.
  23 //! The keepalives use RNS/Link.py:744-760,795-802,1130-1135.
  24 //! The keepalive step runs at the first whole second at or after the deadline
  25 //! of RNS/Link.py:749.
  26 //! The generator also runs the watchdog one second earlier and records no frame
  27 //! there.
  28 //! The teardown uses RNS/Link.py:657-683.
  29 //! The link keys use RNS/Link.py:348-361 and RNS/Cryptography/HKDF.py:35.
  30 //! The initiator's keys use RNS/Cryptography/X25519.py:127 and Ed25519.py:41.
  31 //! The initialization vectors of application data use
  32 //! RNS/Cryptography/Token.py:89.
  33 //! The responder key and the initialization vector of the round-trip report
  34 //! come from the port's own convention, HKDF over step entropy with the link id
  35 //! as salt, and the reference draws random bytes for both.
  36 //! Step entropy is the 32 bytes the caller draws fresh for each carrier frame
  37 //! and each timer event, which the step expands with HKDF-SHA256 whenever it
  38 //! needs a key or an initialization vector.
  39 //! The responder keys use the HKDF context `reticulum-link-responder-key`.
  40 //! The initialization vectors of the round-trip report use the HKDF context
  41 //! `reticulum-link-rtt-iv`.
  42 //! The generator hands those derived bytes to the reference in place of the
  43 //! random bytes it would draw.
  44 //! Every step of the two-node session uses interface 0.
  45 //! The four relay steps and the three-node session, which cross one transport
  46 //! node, use RNS/Transport.py:1968-2077,2569-2590.
  47 //! A three-node session is a link recorded across three reference nodes, the
  48 //! middle one a transport node, with every frame on every hop kept.
  49 
  50 pub const SessionVector = struct {
  51     name: []const u8,
  52     announce_clock: u64,
  53     announce_raw: []const u8,
  54     destination_hash: []const u8,
  55     destination_private_key: []const u8,
  56 };
  57 
  58 pub const Vector = struct {
  59     name: []const u8,
  60     node: []const u8,
  61     clock: u64,
  62     input_raw: []const u8,
  63     entropy: []const u8,
  64     encryption_private_key: []const u8,
  65     signing_private_key: []const u8,
  66     iv: []const u8,
  67     plaintext: []const u8,
  68     output_raw: []const u8,
  69     link_id: []const u8,
  70     packet_hash: []const u8,
  71 };
  72 
  73 pub const KeyVector = struct {
  74     name: []const u8,
  75     initiator_encryption_private_key: []const u8,
  76     responder_encryption_private_key: []const u8,
  77     link_id: []const u8,
  78     shared_key: []const u8,
  79     derived_key: []const u8,
  80 };
  81 
  82 pub const RelayVector = struct {
  83     name: []const u8,
  84     identity_hash: []const u8,
  85     interfaces: u8,
  86     announce_raw: []const u8,
  87     announce_interface: u8,
  88     announce_clock: u64,
  89     request_raw: []const u8,
  90     request_interface: u8,
  91     request_clock: u64,
  92     proof_raw: []const u8,
  93     proof_interface: u8,
  94     proof_clock: u64,
  95     input_raw: []const u8,
  96     input_interface: u8,
  97     input_clock: u64,
  98     entropy: []const u8,
  99     encryption_private_key: []const u8,
 100     signing_private_key: []const u8,
 101     output_interface: u8,
 102     output_raw: []const u8,
 103     link_id: []const u8,
 104     transport_id: []const u8,
 105     hops: u8,
 106     context: u8,
 107     context_flag: u1,
 108     packet_hash: []const u8,
 109 };
 110 
 111 pub const ThreeNodeVector = struct {
 112     name: []const u8,
 113     start_clock: u64,
 114     announce_raw: []const u8,
 115     destination_hash: []const u8,
 116     destination_private_key: []const u8,
 117     destination_name_hash: []const u8,
 118     destination_app_data: []const u8,
 119     announce_random_hash: []const u8,
 120     initiator_identity_hash: []const u8,
 121     transport_identity_hash: []const u8,
 122     responder_identity_hash: []const u8,
 123     rebroadcast_clock: u64,
 124     rebroadcast_raw: []const u8,
 125     retry_clock: u64,
 126     retry_raw: []const u8,
 127     request_clock: u64,
 128     link_id: []const u8,
 129     initiator_encryption_private_key: []const u8,
 130     initiator_signing_private_key: []const u8,
 131     request_raw: []const u8,
 132     stripped_raw: []const u8,
 133     responder_entropy: []const u8,
 134     responder_encryption_private_key: []const u8,
 135     proof_raw: []const u8,
 136     relayed_proof_raw: []const u8,
 137     proof_clock: u64,
 138     rtt_entropy: []const u8,
 139     rtt_iv: []const u8,
 140     rtt_plaintext: []const u8,
 141     rtt_raw: []const u8,
 142     relayed_rtt_raw: []const u8,
 143     data_clock: u64,
 144     data_iv: []const u8,
 145     data_plaintext: []const u8,
 146     data_raw: []const u8,
 147     relayed_data_raw: []const u8,
 148     data_proof_raw: []const u8,
 149     relayed_data_proof_raw: []const u8,
 150     answer_clock: u64,
 151     answer_iv: []const u8,
 152     answer_plaintext: []const u8,
 153     answer_raw: []const u8,
 154     relayed_answer_raw: []const u8,
 155     answer_proof_raw: []const u8,
 156     relayed_answer_proof_raw: []const u8,
 157     keepalive_clock: u64,
 158     keepalive_raw: []const u8,
 159     relayed_keepalive_raw: []const u8,
 160     keepalive_answer_raw: []const u8,
 161     relayed_keepalive_answer_raw: []const u8,
 162     close_clock: u64,
 163     close_iv: []const u8,
 164     close_raw: []const u8,
 165     relayed_close_raw: []const u8,
 166 };
 167 
 168 pub const session_vectors: []const SessionVector = &.{
 169     .{
 170         .name = "link-session",
 171         .announce_clock = 1700000300,
 172         .announce_raw = &.{
 173             0x01, 0x00, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e,
 174             0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x3c, 0x16, 0xa4, 0x7b, 0xc3,
 175             0xcd, 0x38, 0x94, 0xbf, 0xe9, 0xa6, 0x7a, 0xb5, 0xe7, 0x2c, 0xb9, 0x96,
 176             0x4a, 0x9d, 0x6b, 0x71, 0x6c, 0x74, 0x3a, 0x4a, 0x20, 0xb1, 0x2a, 0x7f,
 177             0x9f, 0xe5, 0x12, 0x61, 0xb9, 0xf0, 0xd6, 0xdd, 0x9e, 0xa1, 0x35, 0xf4,
 178             0x71, 0xf8, 0x32, 0xae, 0x69, 0xe1, 0x67, 0xe7, 0x8a, 0x20, 0x46, 0xa0,
 179             0x23, 0x8a, 0x2a, 0x6a, 0x90, 0x98, 0x89, 0xc9, 0x57, 0x9a, 0x04, 0xd6,
 180             0x1e, 0x4a, 0x0a, 0x55, 0x70, 0xf8, 0x77, 0x1e, 0x66, 0x02, 0x7f, 0x7a,
 181             0x3f, 0x92, 0x00, 0x65, 0x53, 0xf1, 0x00, 0x0c, 0xd8, 0xa7, 0xb0, 0xee,
 182             0x50, 0x27, 0xdf, 0x23, 0x06, 0x18, 0x66, 0xfd, 0xad, 0x0d, 0xc8, 0xd1,
 183             0x9b, 0x9f, 0x60, 0xd1, 0xeb, 0x6d, 0x56, 0xd1, 0x5d, 0x3f, 0xcc, 0x7b,
 184             0xc8, 0x2a, 0xd4, 0xe2, 0x9c, 0x62, 0x9f, 0x5f, 0xae, 0x98, 0x3d, 0x74,
 185             0x57, 0x29, 0x3e, 0xe6, 0xcb, 0x07, 0x40, 0xc2, 0x38, 0x3d, 0xb1, 0x2a,
 186             0xcf, 0x1d, 0x7c, 0xc6, 0x33, 0xe5, 0x7d, 0xfa, 0xcb, 0x06, 0x0f,
 187         },
 188         .destination_hash = &.{
 189             0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e, 0x02, 0xd8,
 190             0x49, 0xc0, 0xe3, 0x16,
 191         },
 192         .destination_private_key = &.{
 193             0x08, 0x72, 0xe9, 0xdf, 0xd8, 0x6b, 0x82, 0xfc, 0xc5, 0x2d, 0x1a, 0x61,
 194             0xf8, 0x7d, 0x72, 0x6e, 0x5a, 0x19, 0x3c, 0xfc, 0xc6, 0xab, 0x3b, 0x26,
 195             0x25, 0xa6, 0x8c, 0xe2, 0xe9, 0x15, 0x15, 0x48, 0x54, 0x0a, 0xc4, 0xa5,
 196             0x8a, 0xc0, 0x1c, 0x61, 0x8e, 0xed, 0x0a, 0x8a, 0xe3, 0xe3, 0xf7, 0x1a,
 197             0xa5, 0xfb, 0xf0, 0x0e, 0xb1, 0x17, 0x19, 0x25, 0x7c, 0x4f, 0xe7, 0x0c,
 198             0xf3, 0xdc, 0xaf, 0xcd,
 199         },
 200     },
 201 };
 202 
 203 pub const vectors: []const Vector = &.{
 204     .{
 205         .name = "link-request",
 206         .node = "initiator",
 207         .clock = 1700000301,
 208         .input_raw = &.{},
 209         .entropy = &.{},
 210         .encryption_private_key = &.{
 211             0x0a, 0x88, 0x04, 0x4a, 0x3e, 0x94, 0x83, 0x75, 0x71, 0x76, 0x14, 0x22,
 212             0x4f, 0x74, 0x3f, 0xcc, 0x2f, 0x04, 0x12, 0x7b, 0x03, 0xc2, 0x08, 0xab,
 213             0xf2, 0x06, 0xdb, 0x08, 0xf4, 0x4a, 0x65, 0xf6,
 214         },
 215         .signing_private_key = &.{
 216             0xcd, 0x7a, 0xd4, 0xaa, 0x70, 0x91, 0xe3, 0x03, 0xdb, 0xa3, 0xf1, 0x61,
 217             0x03, 0xc0, 0x3c, 0x67, 0x8f, 0x6a, 0xd6, 0xb8, 0x32, 0xb1, 0xd6, 0x1b,
 218             0x0b, 0x27, 0x30, 0xac, 0xf0, 0x20, 0xd5, 0x79,
 219         },
 220         .iv = &.{},
 221         .plaintext = &.{
 222             0x10, 0xf3, 0x8c, 0xc9, 0xdd, 0x40, 0xce, 0xe4, 0x6c, 0x2a, 0x4b, 0x1f,
 223             0x78, 0x2c, 0x58, 0x90, 0xe1, 0x0b, 0xa3, 0x46, 0x99, 0xee, 0xc9, 0x53,
 224             0xac, 0xd6, 0xde, 0x44, 0xc0, 0x26, 0x99, 0x7b, 0x46, 0xca, 0x63, 0xd4,
 225             0xe7, 0xaf, 0xfc, 0x90, 0x8b, 0xce, 0x14, 0xa3, 0x45, 0x71, 0x37, 0xef,
 226             0xf0, 0x71, 0xce, 0x7c, 0x2b, 0x8a, 0x78, 0xe1, 0x0f, 0xcc, 0xf6, 0x16,
 227             0x84, 0x48, 0x7d, 0xfa, 0x20, 0x01, 0xf4,
 228         },
 229         .output_raw = &.{
 230             0x02, 0x00, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e,
 231             0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x10, 0xf3, 0x8c, 0xc9, 0xdd,
 232             0x40, 0xce, 0xe4, 0x6c, 0x2a, 0x4b, 0x1f, 0x78, 0x2c, 0x58, 0x90, 0xe1,
 233             0x0b, 0xa3, 0x46, 0x99, 0xee, 0xc9, 0x53, 0xac, 0xd6, 0xde, 0x44, 0xc0,
 234             0x26, 0x99, 0x7b, 0x46, 0xca, 0x63, 0xd4, 0xe7, 0xaf, 0xfc, 0x90, 0x8b,
 235             0xce, 0x14, 0xa3, 0x45, 0x71, 0x37, 0xef, 0xf0, 0x71, 0xce, 0x7c, 0x2b,
 236             0x8a, 0x78, 0xe1, 0x0f, 0xcc, 0xf6, 0x16, 0x84, 0x48, 0x7d, 0xfa, 0x20,
 237             0x01, 0xf4,
 238         },
 239         .link_id = &.{
 240             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 241             0x58, 0xcb, 0x4c, 0x9d,
 242         },
 243         .packet_hash = &.{
 244             0x1b, 0x9d, 0x4a, 0x28, 0x02, 0x82, 0x5c, 0x3a, 0x92, 0xce, 0x00, 0xa8,
 245             0x44, 0xc5, 0x9e, 0x67, 0x5f, 0x99, 0xda, 0x82, 0x70, 0x1f, 0xc6, 0xd3,
 246             0xea, 0x69, 0xe6, 0xd9, 0x84, 0xdd, 0x7b, 0xc1,
 247         },
 248     },
 249     .{
 250         .name = "link-proof",
 251         .node = "responder",
 252         .clock = 1700000301,
 253         .input_raw = &.{
 254             0x02, 0x00, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e,
 255             0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x10, 0xf3, 0x8c, 0xc9, 0xdd,
 256             0x40, 0xce, 0xe4, 0x6c, 0x2a, 0x4b, 0x1f, 0x78, 0x2c, 0x58, 0x90, 0xe1,
 257             0x0b, 0xa3, 0x46, 0x99, 0xee, 0xc9, 0x53, 0xac, 0xd6, 0xde, 0x44, 0xc0,
 258             0x26, 0x99, 0x7b, 0x46, 0xca, 0x63, 0xd4, 0xe7, 0xaf, 0xfc, 0x90, 0x8b,
 259             0xce, 0x14, 0xa3, 0x45, 0x71, 0x37, 0xef, 0xf0, 0x71, 0xce, 0x7c, 0x2b,
 260             0x8a, 0x78, 0xe1, 0x0f, 0xcc, 0xf6, 0x16, 0x84, 0x48, 0x7d, 0xfa, 0x20,
 261             0x01, 0xf4,
 262         },
 263         .entropy = &.{
 264             0xeb, 0xbc, 0x1b, 0xea, 0xc0, 0xb6, 0x73, 0x72, 0x7b, 0x50, 0x33, 0xa6,
 265             0x41, 0x96, 0xdf, 0x38, 0x17, 0x3e, 0xc0, 0xe4, 0x72, 0xa9, 0x41, 0x16,
 266             0x16, 0xe2, 0x3b, 0xac, 0x49, 0xa0, 0x0e, 0x3c,
 267         },
 268         .encryption_private_key = &.{
 269             0x05, 0x19, 0x34, 0x20, 0x96, 0x6b, 0xab, 0x7e, 0x23, 0x14, 0x9a, 0xf3,
 270             0x8e, 0xad, 0x67, 0x4f, 0x73, 0x38, 0x75, 0xd8, 0x88, 0xe8, 0x2b, 0x79,
 271             0xba, 0xb2, 0xe9, 0x52, 0x83, 0xdc, 0xae, 0xb7,
 272         },
 273         .signing_private_key = &.{},
 274         .iv = &.{},
 275         .plaintext = &.{
 276             0x0f, 0xcc, 0x6d, 0x3d, 0xb9, 0x31, 0xa6, 0xe3, 0xfd, 0x8d, 0xfd, 0xea,
 277             0x07, 0x91, 0x78, 0xcd, 0xba, 0xc0, 0x9d, 0x2b, 0x85, 0x63, 0xb3, 0xb9,
 278             0xbf, 0xf6, 0x39, 0xfd, 0xf6, 0x64, 0x0d, 0xd6, 0xe0, 0x39, 0x31, 0x7c,
 279             0x0e, 0x98, 0xaa, 0x4e, 0x28, 0xa5, 0x55, 0x8b, 0x82, 0xf8, 0x7c, 0xb6,
 280             0x88, 0x4d, 0xf8, 0x39, 0x17, 0xd7, 0xa0, 0xdb, 0xf0, 0xf3, 0x34, 0xce,
 281             0x80, 0xe0, 0x75, 0x06, 0x95, 0x25, 0xbd, 0xb8, 0x3d, 0x64, 0x56, 0xd1,
 282             0x1a, 0x11, 0x3e, 0x4b, 0x00, 0xe6, 0xea, 0x52, 0x71, 0x8c, 0x73, 0x9b,
 283             0x48, 0xc8, 0x22, 0xb6, 0x1d, 0x8a, 0x9b, 0x73, 0xd1, 0xa3, 0xf6, 0x63,
 284             0x20, 0x01, 0xf4,
 285         },
 286         .output_raw = &.{
 287             0x0f, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 288             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0xff, 0x0f, 0xcc, 0x6d, 0x3d, 0xb9,
 289             0x31, 0xa6, 0xe3, 0xfd, 0x8d, 0xfd, 0xea, 0x07, 0x91, 0x78, 0xcd, 0xba,
 290             0xc0, 0x9d, 0x2b, 0x85, 0x63, 0xb3, 0xb9, 0xbf, 0xf6, 0x39, 0xfd, 0xf6,
 291             0x64, 0x0d, 0xd6, 0xe0, 0x39, 0x31, 0x7c, 0x0e, 0x98, 0xaa, 0x4e, 0x28,
 292             0xa5, 0x55, 0x8b, 0x82, 0xf8, 0x7c, 0xb6, 0x88, 0x4d, 0xf8, 0x39, 0x17,
 293             0xd7, 0xa0, 0xdb, 0xf0, 0xf3, 0x34, 0xce, 0x80, 0xe0, 0x75, 0x06, 0x95,
 294             0x25, 0xbd, 0xb8, 0x3d, 0x64, 0x56, 0xd1, 0x1a, 0x11, 0x3e, 0x4b, 0x00,
 295             0xe6, 0xea, 0x52, 0x71, 0x8c, 0x73, 0x9b, 0x48, 0xc8, 0x22, 0xb6, 0x1d,
 296             0x8a, 0x9b, 0x73, 0xd1, 0xa3, 0xf6, 0x63, 0x20, 0x01, 0xf4,
 297         },
 298         .link_id = &.{
 299             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 300             0x58, 0xcb, 0x4c, 0x9d,
 301         },
 302         .packet_hash = &.{
 303             0xcb, 0x8c, 0x5c, 0xf7, 0x1f, 0x56, 0x34, 0xd4, 0x0b, 0xe8, 0x96, 0x56,
 304             0x6e, 0xce, 0x95, 0x88, 0x20, 0xcb, 0x3e, 0x8f, 0xcb, 0xed, 0x1c, 0x6f,
 305             0x7d, 0x31, 0xf5, 0xc1, 0x01, 0xb1, 0x59, 0x5c,
 306         },
 307     },
 308     .{
 309         .name = "link-rtt",
 310         .node = "initiator",
 311         .clock = 1700000302,
 312         .input_raw = &.{
 313             0x0f, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 314             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0xff, 0x0f, 0xcc, 0x6d, 0x3d, 0xb9,
 315             0x31, 0xa6, 0xe3, 0xfd, 0x8d, 0xfd, 0xea, 0x07, 0x91, 0x78, 0xcd, 0xba,
 316             0xc0, 0x9d, 0x2b, 0x85, 0x63, 0xb3, 0xb9, 0xbf, 0xf6, 0x39, 0xfd, 0xf6,
 317             0x64, 0x0d, 0xd6, 0xe0, 0x39, 0x31, 0x7c, 0x0e, 0x98, 0xaa, 0x4e, 0x28,
 318             0xa5, 0x55, 0x8b, 0x82, 0xf8, 0x7c, 0xb6, 0x88, 0x4d, 0xf8, 0x39, 0x17,
 319             0xd7, 0xa0, 0xdb, 0xf0, 0xf3, 0x34, 0xce, 0x80, 0xe0, 0x75, 0x06, 0x95,
 320             0x25, 0xbd, 0xb8, 0x3d, 0x64, 0x56, 0xd1, 0x1a, 0x11, 0x3e, 0x4b, 0x00,
 321             0xe6, 0xea, 0x52, 0x71, 0x8c, 0x73, 0x9b, 0x48, 0xc8, 0x22, 0xb6, 0x1d,
 322             0x8a, 0x9b, 0x73, 0xd1, 0xa3, 0xf6, 0x63, 0x20, 0x01, 0xf4,
 323         },
 324         .entropy = &.{
 325             0x74, 0x1b, 0xa0, 0x51, 0x03, 0x64, 0xb7, 0xbf, 0x70, 0x76, 0x32, 0x0b,
 326             0xb2, 0x0a, 0xb8, 0xef, 0xea, 0x29, 0x1c, 0xbe, 0x31, 0x76, 0xd8, 0xf7,
 327             0x83, 0xed, 0x2c, 0x37, 0x67, 0xef, 0x5a, 0x8d,
 328         },
 329         .encryption_private_key = &.{},
 330         .signing_private_key = &.{},
 331         .iv = &.{
 332             0x43, 0x38, 0xf0, 0xb8, 0xe9, 0xd7, 0x30, 0x0a, 0x9c, 0x64, 0x54, 0x00,
 333             0xc5, 0xeb, 0xb3, 0xbd,
 334         },
 335         .plaintext = &.{
 336             0xcb, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 337         },
 338         .output_raw = &.{
 339             0x0c, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 340             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0xfe, 0x43, 0x38, 0xf0, 0xb8, 0xe9,
 341             0xd7, 0x30, 0x0a, 0x9c, 0x64, 0x54, 0x00, 0xc5, 0xeb, 0xb3, 0xbd, 0x39,
 342             0xb5, 0x0d, 0x0f, 0x9e, 0x64, 0x88, 0xe0, 0x04, 0xff, 0x2f, 0xff, 0x19,
 343             0x68, 0x8b, 0x7c, 0x03, 0xd4, 0xdc, 0xf3, 0xe4, 0x2a, 0xad, 0x15, 0xd0,
 344             0x89, 0x51, 0x9f, 0xd4, 0xce, 0xae, 0x8a, 0x4e, 0x17, 0xb7, 0x8a, 0xa3,
 345             0xa0, 0x58, 0x7f, 0x8b, 0x4c, 0x8b, 0xb0, 0xf4, 0x59, 0x00, 0xa5,
 346         },
 347         .link_id = &.{
 348             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 349             0x58, 0xcb, 0x4c, 0x9d,
 350         },
 351         .packet_hash = &.{
 352             0x73, 0xc9, 0x64, 0x23, 0xa7, 0xcb, 0x7a, 0x8e, 0xbe, 0xd1, 0xa3, 0xe9,
 353             0x48, 0xbb, 0x82, 0x09, 0x38, 0xe5, 0x42, 0x39, 0x8c, 0x7e, 0x6e, 0x6a,
 354             0x3c, 0xb3, 0x5b, 0x8c, 0x1e, 0x5c, 0xd2, 0x0c,
 355         },
 356     },
 357     .{
 358         .name = "link-data",
 359         .node = "initiator",
 360         .clock = 1700000303,
 361         .input_raw = &.{},
 362         .entropy = &.{},
 363         .encryption_private_key = &.{},
 364         .signing_private_key = &.{},
 365         .iv = &.{
 366             0x29, 0x80, 0x9b, 0x2a, 0x8c, 0xbf, 0x14, 0xbd, 0xf4, 0x75, 0xd8, 0x0f,
 367             0xeb, 0x6b, 0xab, 0x17,
 368         },
 369         .plaintext = &.{
 370             0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x64, 0x61, 0x74, 0x61,
 371         },
 372         .output_raw = &.{
 373             0x0c, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 374             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0x00, 0x29, 0x80, 0x9b, 0x2a, 0x8c,
 375             0xbf, 0x14, 0xbd, 0xf4, 0x75, 0xd8, 0x0f, 0xeb, 0x6b, 0xab, 0x17, 0x77,
 376             0x34, 0xb3, 0x17, 0xa6, 0x71, 0x77, 0xcf, 0x10, 0x69, 0xd0, 0xef, 0xe8,
 377             0xd2, 0x57, 0xc2, 0x56, 0x50, 0x1c, 0x8c, 0x1d, 0xb4, 0x84, 0x71, 0xaf,
 378             0xde, 0x45, 0x71, 0x99, 0xd4, 0xe6, 0x9d, 0x03, 0x6a, 0x90, 0x0b, 0x27,
 379             0xc5, 0xce, 0x68, 0xad, 0x14, 0x01, 0x37, 0x7c, 0x62, 0xf6, 0x18,
 380         },
 381         .link_id = &.{
 382             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 383             0x58, 0xcb, 0x4c, 0x9d,
 384         },
 385         .packet_hash = &.{
 386             0xe4, 0x95, 0x10, 0x12, 0x36, 0xcc, 0x60, 0x75, 0x97, 0x0c, 0x55, 0x42,
 387             0x95, 0x31, 0xe4, 0x86, 0x71, 0x59, 0x0b, 0x67, 0x11, 0xe7, 0xdf, 0x31,
 388             0x0d, 0xc8, 0x27, 0xf4, 0x91, 0x01, 0xb5, 0x21,
 389         },
 390     },
 391     .{
 392         .name = "link-data-proof",
 393         .node = "responder",
 394         .clock = 1700000303,
 395         .input_raw = &.{
 396             0x0c, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 397             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0x00, 0x29, 0x80, 0x9b, 0x2a, 0x8c,
 398             0xbf, 0x14, 0xbd, 0xf4, 0x75, 0xd8, 0x0f, 0xeb, 0x6b, 0xab, 0x17, 0x77,
 399             0x34, 0xb3, 0x17, 0xa6, 0x71, 0x77, 0xcf, 0x10, 0x69, 0xd0, 0xef, 0xe8,
 400             0xd2, 0x57, 0xc2, 0x56, 0x50, 0x1c, 0x8c, 0x1d, 0xb4, 0x84, 0x71, 0xaf,
 401             0xde, 0x45, 0x71, 0x99, 0xd4, 0xe6, 0x9d, 0x03, 0x6a, 0x90, 0x0b, 0x27,
 402             0xc5, 0xce, 0x68, 0xad, 0x14, 0x01, 0x37, 0x7c, 0x62, 0xf6, 0x18,
 403         },
 404         .entropy = &.{},
 405         .encryption_private_key = &.{},
 406         .signing_private_key = &.{},
 407         .iv = &.{},
 408         .plaintext = &.{
 409             0xe4, 0x95, 0x10, 0x12, 0x36, 0xcc, 0x60, 0x75, 0x97, 0x0c, 0x55, 0x42,
 410             0x95, 0x31, 0xe4, 0x86, 0x71, 0x59, 0x0b, 0x67, 0x11, 0xe7, 0xdf, 0x31,
 411             0x0d, 0xc8, 0x27, 0xf4, 0x91, 0x01, 0xb5, 0x21, 0xd8, 0x03, 0xbb, 0x4a,
 412             0x94, 0x3d, 0xc7, 0xe9, 0xf3, 0x28, 0x56, 0x64, 0xe5, 0xfd, 0x9f, 0x03,
 413             0xe4, 0xd3, 0x0d, 0x86, 0xa3, 0x93, 0xbc, 0xa8, 0xc7, 0x92, 0x5f, 0x4f,
 414             0x9a, 0xa2, 0x91, 0xba, 0x23, 0x2a, 0xc6, 0x7a, 0xd9, 0x8a, 0xca, 0x1e,
 415             0xd1, 0x22, 0xdf, 0x2a, 0xfb, 0x80, 0x38, 0x76, 0xc1, 0xdf, 0x86, 0xa2,
 416             0xe1, 0xe8, 0xa1, 0xc8, 0x7a, 0xa3, 0x3f, 0xf9, 0x1a, 0x98, 0x59, 0x0a,
 417         },
 418         .output_raw = &.{
 419             0x0f, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 420             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0x00, 0xe4, 0x95, 0x10, 0x12, 0x36,
 421             0xcc, 0x60, 0x75, 0x97, 0x0c, 0x55, 0x42, 0x95, 0x31, 0xe4, 0x86, 0x71,
 422             0x59, 0x0b, 0x67, 0x11, 0xe7, 0xdf, 0x31, 0x0d, 0xc8, 0x27, 0xf4, 0x91,
 423             0x01, 0xb5, 0x21, 0xd8, 0x03, 0xbb, 0x4a, 0x94, 0x3d, 0xc7, 0xe9, 0xf3,
 424             0x28, 0x56, 0x64, 0xe5, 0xfd, 0x9f, 0x03, 0xe4, 0xd3, 0x0d, 0x86, 0xa3,
 425             0x93, 0xbc, 0xa8, 0xc7, 0x92, 0x5f, 0x4f, 0x9a, 0xa2, 0x91, 0xba, 0x23,
 426             0x2a, 0xc6, 0x7a, 0xd9, 0x8a, 0xca, 0x1e, 0xd1, 0x22, 0xdf, 0x2a, 0xfb,
 427             0x80, 0x38, 0x76, 0xc1, 0xdf, 0x86, 0xa2, 0xe1, 0xe8, 0xa1, 0xc8, 0x7a,
 428             0xa3, 0x3f, 0xf9, 0x1a, 0x98, 0x59, 0x0a,
 429         },
 430         .link_id = &.{
 431             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 432             0x58, 0xcb, 0x4c, 0x9d,
 433         },
 434         .packet_hash = &.{
 435             0x9e, 0xcc, 0x80, 0x3a, 0x19, 0x17, 0xd1, 0xe5, 0x07, 0x62, 0x50, 0x9a,
 436             0xfe, 0xf3, 0xbd, 0x5a, 0x6b, 0x95, 0xd6, 0xa6, 0xcb, 0x7b, 0x69, 0xc8,
 437             0x81, 0x09, 0x7a, 0xf4, 0x45, 0x6b, 0x62, 0x88,
 438         },
 439     },
 440     .{
 441         .name = "link-keepalive",
 442         .node = "initiator",
 443         .clock = 1700000509,
 444         .input_raw = &.{},
 445         .entropy = &.{},
 446         .encryption_private_key = &.{},
 447         .signing_private_key = &.{},
 448         .iv = &.{},
 449         .plaintext = &.{0xff},
 450         .output_raw = &.{
 451             0x0c, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 452             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0xfa, 0xff,
 453         },
 454         .link_id = &.{
 455             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 456             0x58, 0xcb, 0x4c, 0x9d,
 457         },
 458         .packet_hash = &.{
 459             0xfb, 0x75, 0xf1, 0x89, 0x3f, 0xbe, 0x06, 0xc2, 0xe0, 0x0a, 0xbd, 0xac,
 460             0x55, 0x74, 0xa6, 0x56, 0x79, 0x7a, 0x41, 0x0b, 0x11, 0xc7, 0xab, 0xbd,
 461             0xfb, 0xad, 0xf4, 0x7b, 0x91, 0xb8, 0x9c, 0x6a,
 462         },
 463     },
 464     .{
 465         .name = "link-keepalive-answer",
 466         .node = "responder",
 467         .clock = 1700000509,
 468         .input_raw = &.{
 469             0x0c, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 470             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0xfa, 0xff,
 471         },
 472         .entropy = &.{},
 473         .encryption_private_key = &.{},
 474         .signing_private_key = &.{},
 475         .iv = &.{},
 476         .plaintext = &.{0xfe},
 477         .output_raw = &.{
 478             0x0c, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 479             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0xfa, 0xfe,
 480         },
 481         .link_id = &.{
 482             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 483             0x58, 0xcb, 0x4c, 0x9d,
 484         },
 485         .packet_hash = &.{
 486             0x52, 0x73, 0x92, 0xf0, 0x51, 0xe6, 0xad, 0xca, 0x8f, 0x95, 0xd2, 0x68,
 487             0x58, 0x84, 0x8a, 0xf0, 0xd5, 0x96, 0x90, 0xea, 0x30, 0x20, 0x6e, 0x10,
 488             0xbb, 0x82, 0xea, 0x4c, 0xda, 0xc0, 0xcf, 0xa8,
 489         },
 490     },
 491     .{
 492         .name = "link-close",
 493         .node = "initiator",
 494         .clock = 1700000510,
 495         .input_raw = &.{},
 496         .entropy = &.{},
 497         .encryption_private_key = &.{},
 498         .signing_private_key = &.{},
 499         .iv = &.{
 500             0x46, 0x5e, 0xab, 0x88, 0x5e, 0xd0, 0x0e, 0x76, 0xb6, 0x14, 0x73, 0x4e,
 501             0xd6, 0x20, 0xc2, 0x52,
 502         },
 503         .plaintext = &.{
 504             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 505             0x58, 0xcb, 0x4c, 0x9d,
 506         },
 507         .output_raw = &.{
 508             0x0c, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 509             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0xfc, 0x46, 0x5e, 0xab, 0x88, 0x5e,
 510             0xd0, 0x0e, 0x76, 0xb6, 0x14, 0x73, 0x4e, 0xd6, 0x20, 0xc2, 0x52, 0x34,
 511             0x7d, 0x34, 0x71, 0x6b, 0x1d, 0x90, 0xa9, 0x01, 0x62, 0xdf, 0xbe, 0xeb,
 512             0x43, 0x4e, 0x0c, 0x29, 0xa5, 0x30, 0x28, 0xed, 0x20, 0xea, 0x89, 0xe5,
 513             0x03, 0xe8, 0x67, 0x08, 0x83, 0x4a, 0xd6, 0x19, 0x1b, 0x97, 0xe7, 0xa6,
 514             0xef, 0x5a, 0x6d, 0xe4, 0x44, 0x64, 0x58, 0xd5, 0x5d, 0x4b, 0x76, 0xab,
 515             0x40, 0x41, 0xc4, 0x73, 0xd0, 0xe9, 0x16, 0x1d, 0x26, 0x6b, 0xe3, 0xf9,
 516             0x73, 0x9a, 0xda,
 517         },
 518         .link_id = &.{
 519             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 520             0x58, 0xcb, 0x4c, 0x9d,
 521         },
 522         .packet_hash = &.{
 523             0xe6, 0x08, 0x36, 0xec, 0xeb, 0x77, 0xa7, 0x9e, 0x78, 0x11, 0x16, 0x0f,
 524             0xc3, 0xf1, 0x62, 0x6f, 0xe3, 0x67, 0xfa, 0x9b, 0xba, 0x31, 0x00, 0x73,
 525             0x5b, 0xc9, 0xc6, 0xe4, 0x68, 0x8d, 0x10, 0x0a,
 526         },
 527     },
 528     .{
 529         .name = "link-request-stripped",
 530         .node = "responder",
 531         .clock = 1700000301,
 532         .input_raw = &.{
 533             0x02, 0x00, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e,
 534             0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x10, 0xf3, 0x8c, 0xc9, 0xdd,
 535             0x40, 0xce, 0xe4, 0x6c, 0x2a, 0x4b, 0x1f, 0x78, 0x2c, 0x58, 0x90, 0xe1,
 536             0x0b, 0xa3, 0x46, 0x99, 0xee, 0xc9, 0x53, 0xac, 0xd6, 0xde, 0x44, 0xc0,
 537             0x26, 0x99, 0x7b, 0x46, 0xca, 0x63, 0xd4, 0xe7, 0xaf, 0xfc, 0x90, 0x8b,
 538             0xce, 0x14, 0xa3, 0x45, 0x71, 0x37, 0xef, 0xf0, 0x71, 0xce, 0x7c, 0x2b,
 539             0x8a, 0x78, 0xe1, 0x0f, 0xcc, 0xf6, 0x16, 0x84, 0x48, 0x7d, 0xfa,
 540         },
 541         .entropy = &.{
 542             0x4e, 0x22, 0x21, 0x45, 0x73, 0x71, 0x58, 0xdc, 0x56, 0x75, 0xf3, 0xc5,
 543             0xdd, 0x90, 0x0e, 0x46, 0x31, 0x72, 0x64, 0x28, 0x8d, 0x9b, 0x78, 0x54,
 544             0xaa, 0xd9, 0xd4, 0x3f, 0x25, 0x00, 0x45, 0xcd,
 545         },
 546         .encryption_private_key = &.{
 547             0xf8, 0xbd, 0x93, 0xd8, 0xd0, 0x8c, 0xc9, 0x84, 0xa7, 0x79, 0x44, 0x9b,
 548             0x7d, 0x12, 0x74, 0x1d, 0x13, 0xd3, 0x7d, 0xef, 0x79, 0x74, 0xb4, 0x34,
 549             0x1c, 0xcb, 0x73, 0x66, 0xef, 0xdb, 0x4a, 0x82,
 550         },
 551         .signing_private_key = &.{},
 552         .iv = &.{},
 553         .plaintext = &.{
 554             0xf9, 0xba, 0x05, 0x68, 0x3a, 0x96, 0x99, 0x8d, 0x3d, 0xd2, 0x0d, 0x13,
 555             0x8c, 0xaf, 0x02, 0x4a, 0xab, 0x4d, 0x0b, 0xf8, 0x93, 0x58, 0x0e, 0x29,
 556             0xf5, 0x45, 0x92, 0x31, 0x6b, 0x3b, 0xec, 0x05, 0x58, 0xce, 0x5c, 0x5d,
 557             0xd6, 0x1c, 0x03, 0xa3, 0xcb, 0x3c, 0x90, 0x54, 0x99, 0xfc, 0x3f, 0x29,
 558             0x2e, 0x01, 0x9d, 0x2a, 0x7d, 0x1f, 0xef, 0xd4, 0xaa, 0x2e, 0xa2, 0xb5,
 559             0x9c, 0x74, 0x45, 0x0f, 0x51, 0xfc, 0xfb, 0x0d, 0xfd, 0x34, 0x00, 0x2f,
 560             0xf5, 0x47, 0xcd, 0xa2, 0xd6, 0x50, 0xc5, 0x42, 0xec, 0xcf, 0xa4, 0xc0,
 561             0xc7, 0x72, 0x68, 0x29, 0xfb, 0x66, 0x4d, 0x47, 0xf0, 0x2d, 0x7e, 0x3c,
 562             0x20, 0x01, 0xf4,
 563         },
 564         .output_raw = &.{
 565             0x0f, 0x00, 0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36,
 566             0x11, 0xf4, 0x58, 0xcb, 0x4c, 0x9d, 0xff, 0xf9, 0xba, 0x05, 0x68, 0x3a,
 567             0x96, 0x99, 0x8d, 0x3d, 0xd2, 0x0d, 0x13, 0x8c, 0xaf, 0x02, 0x4a, 0xab,
 568             0x4d, 0x0b, 0xf8, 0x93, 0x58, 0x0e, 0x29, 0xf5, 0x45, 0x92, 0x31, 0x6b,
 569             0x3b, 0xec, 0x05, 0x58, 0xce, 0x5c, 0x5d, 0xd6, 0x1c, 0x03, 0xa3, 0xcb,
 570             0x3c, 0x90, 0x54, 0x99, 0xfc, 0x3f, 0x29, 0x2e, 0x01, 0x9d, 0x2a, 0x7d,
 571             0x1f, 0xef, 0xd4, 0xaa, 0x2e, 0xa2, 0xb5, 0x9c, 0x74, 0x45, 0x0f, 0x51,
 572             0xfc, 0xfb, 0x0d, 0xfd, 0x34, 0x00, 0x2f, 0xf5, 0x47, 0xcd, 0xa2, 0xd6,
 573             0x50, 0xc5, 0x42, 0xec, 0xcf, 0xa4, 0xc0, 0xc7, 0x72, 0x68, 0x29, 0xfb,
 574             0x66, 0x4d, 0x47, 0xf0, 0x2d, 0x7e, 0x3c, 0x20, 0x01, 0xf4,
 575         },
 576         .link_id = &.{
 577             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 578             0x58, 0xcb, 0x4c, 0x9d,
 579         },
 580         .packet_hash = &.{
 581             0x5b, 0xdf, 0xf7, 0x57, 0x49, 0x4e, 0x64, 0x20, 0x93, 0x4f, 0xaf, 0x09,
 582             0x93, 0x69, 0xe9, 0xfb, 0x67, 0x2d, 0x2e, 0x2c, 0x37, 0x72, 0xf6, 0x50,
 583             0x15, 0x57, 0x9b, 0x09, 0xc5, 0xb0, 0x03, 0xf0,
 584         },
 585     },
 586 };
 587 
 588 pub const key_vectors: []const KeyVector = &.{
 589     .{
 590         .name = "link-key",
 591         .initiator_encryption_private_key = &.{
 592             0x0a, 0x88, 0x04, 0x4a, 0x3e, 0x94, 0x83, 0x75, 0x71, 0x76, 0x14, 0x22,
 593             0x4f, 0x74, 0x3f, 0xcc, 0x2f, 0x04, 0x12, 0x7b, 0x03, 0xc2, 0x08, 0xab,
 594             0xf2, 0x06, 0xdb, 0x08, 0xf4, 0x4a, 0x65, 0xf6,
 595         },
 596         .responder_encryption_private_key = &.{
 597             0x05, 0x19, 0x34, 0x20, 0x96, 0x6b, 0xab, 0x7e, 0x23, 0x14, 0x9a, 0xf3,
 598             0x8e, 0xad, 0x67, 0x4f, 0x73, 0x38, 0x75, 0xd8, 0x88, 0xe8, 0x2b, 0x79,
 599             0xba, 0xb2, 0xe9, 0x52, 0x83, 0xdc, 0xae, 0xb7,
 600         },
 601         .link_id = &.{
 602             0x12, 0xbf, 0x81, 0x44, 0xbb, 0xce, 0x7d, 0x18, 0x1b, 0x36, 0x11, 0xf4,
 603             0x58, 0xcb, 0x4c, 0x9d,
 604         },
 605         .shared_key = &.{
 606             0x5b, 0xc9, 0x41, 0x8e, 0x08, 0x78, 0xe7, 0xed, 0x7e, 0x40, 0xd4, 0x7c,
 607             0x12, 0xea, 0xe0, 0xf6, 0xda, 0xd4, 0x3f, 0x30, 0xb4, 0x31, 0xd7, 0x0a,
 608             0x0f, 0x95, 0x4f, 0x40, 0xfb, 0x55, 0x73, 0x5c,
 609         },
 610         .derived_key = &.{
 611             0x84, 0x7b, 0x69, 0x78, 0xd3, 0x85, 0xc7, 0xf7, 0x9e, 0xef, 0x23, 0xd5,
 612             0x46, 0x5e, 0x1f, 0x98, 0x87, 0xce, 0x84, 0x3f, 0x9d, 0xd3, 0xf6, 0x40,
 613             0xbe, 0xae, 0x0a, 0x16, 0x55, 0x25, 0x99, 0xc4, 0x8c, 0xa5, 0x02, 0x0f,
 614             0xdd, 0xaa, 0x62, 0xe0, 0xea, 0x2f, 0xd8, 0x81, 0x4e, 0x14, 0xf7, 0x7a,
 615             0x8e, 0x43, 0x14, 0xb0, 0x77, 0x84, 0xbb, 0x08, 0x78, 0x46, 0x84, 0x21,
 616             0xda, 0x6e, 0xc7, 0x82,
 617         },
 618     },
 619 };
 620 
 621 pub const relay_vectors: []const RelayVector = &.{
 622     .{
 623         .name = "transport-link-request-insert",
 624         .identity_hash = &.{
 625             0x1c, 0x1d, 0x4c, 0xee, 0xca, 0xba, 0x5e, 0xcd, 0x83, 0x3e, 0x99, 0xab,
 626             0xe6, 0x93, 0x37, 0x0a,
 627         },
 628         .interfaces = 2,
 629         .announce_raw = &.{
 630             0x51, 0x01, 0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78,
 631             0xb0, 0x93, 0xe6, 0x08, 0x9c, 0x3e, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10,
 632             0x0a, 0x6b, 0x11, 0x9e, 0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x3c,
 633             0x16, 0xa4, 0x7b, 0xc3, 0xcd, 0x38, 0x94, 0xbf, 0xe9, 0xa6, 0x7a, 0xb5,
 634             0xe7, 0x2c, 0xb9, 0x96, 0x4a, 0x9d, 0x6b, 0x71, 0x6c, 0x74, 0x3a, 0x4a,
 635             0x20, 0xb1, 0x2a, 0x7f, 0x9f, 0xe5, 0x12, 0x61, 0xb9, 0xf0, 0xd6, 0xdd,
 636             0x9e, 0xa1, 0x35, 0xf4, 0x71, 0xf8, 0x32, 0xae, 0x69, 0xe1, 0x67, 0xe7,
 637             0x8a, 0x20, 0x46, 0xa0, 0x23, 0x8a, 0x2a, 0x6a, 0x90, 0x98, 0x89, 0xc9,
 638             0x57, 0x9a, 0x04, 0xd6, 0x1e, 0x4a, 0x0a, 0x55, 0x70, 0xf8, 0x77, 0x1e,
 639             0x66, 0x02, 0x7f, 0x7a, 0x3f, 0x92, 0x00, 0x65, 0x53, 0xf1, 0x00, 0x0c,
 640             0xd8, 0xa7, 0xb0, 0xee, 0x50, 0x27, 0xdf, 0x23, 0x06, 0x18, 0x66, 0xfd,
 641             0xad, 0x0d, 0xc8, 0xd1, 0x9b, 0x9f, 0x60, 0xd1, 0xeb, 0x6d, 0x56, 0xd1,
 642             0x5d, 0x3f, 0xcc, 0x7b, 0xc8, 0x2a, 0xd4, 0xe2, 0x9c, 0x62, 0x9f, 0x5f,
 643             0xae, 0x98, 0x3d, 0x74, 0x57, 0x29, 0x3e, 0xe6, 0xcb, 0x07, 0x40, 0xc2,
 644             0x38, 0x3d, 0xb1, 0x2a, 0xcf, 0x1d, 0x7c, 0xc6, 0x33, 0xe5, 0x7d, 0xfa,
 645             0xcb, 0x06, 0x0f,
 646         },
 647         .announce_interface = 0,
 648         .announce_clock = 1700000001,
 649         .request_raw = &.{},
 650         .request_interface = 0,
 651         .request_clock = 0,
 652         .proof_raw = &.{},
 653         .proof_interface = 0,
 654         .proof_clock = 0,
 655         .input_raw = &.{},
 656         .input_interface = 0,
 657         .input_clock = 1700000020,
 658         .entropy = &.{},
 659         .encryption_private_key = &.{
 660             0x9d, 0x11, 0x48, 0x0a, 0x52, 0xa6, 0x0b, 0x08, 0x24, 0xaa, 0x00, 0xfa,
 661             0x63, 0x0c, 0x23, 0x94, 0x17, 0x75, 0xaa, 0x23, 0xec, 0xc5, 0x88, 0xa7,
 662             0xe7, 0xd4, 0x59, 0x6b, 0x35, 0xf9, 0xd5, 0x85,
 663         },
 664         .signing_private_key = &.{
 665             0x4a, 0x9a, 0xea, 0x3c, 0x71, 0x20, 0xde, 0x0c, 0x5f, 0xb7, 0x5a, 0x86,
 666             0x30, 0x92, 0x6a, 0x45, 0xef, 0x9f, 0xef, 0xce, 0xf2, 0x44, 0x07, 0x13,
 667             0x0e, 0x68, 0x16, 0x13, 0x2f, 0x35, 0x1f, 0xec,
 668         },
 669         .output_interface = 0,
 670         .output_raw = &.{
 671             0x52, 0x00, 0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78,
 672             0xb0, 0x93, 0xe6, 0x08, 0x9c, 0x3e, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10,
 673             0x0a, 0x6b, 0x11, 0x9e, 0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x67,
 674             0x91, 0xfa, 0xa6, 0x25, 0x13, 0x90, 0x1c, 0xc6, 0xdc, 0x37, 0xff, 0x5e,
 675             0x0d, 0xac, 0x65, 0x94, 0x87, 0x03, 0xc2, 0x20, 0x2f, 0x9e, 0x4f, 0x34,
 676             0x51, 0x52, 0x20, 0x00, 0x89, 0x88, 0x2c, 0x97, 0x3d, 0xf0, 0x7e, 0x19,
 677             0x59, 0x7f, 0x8f, 0x1a, 0x7e, 0x8b, 0xc1, 0x68, 0xf9, 0xc4, 0x31, 0x6e,
 678             0x28, 0xd7, 0x83, 0x9c, 0x39, 0xd3, 0xca, 0xa6, 0xc7, 0xea, 0x68, 0xba,
 679             0xff, 0x3f, 0xac, 0x20, 0x01, 0xf4,
 680         },
 681         .link_id = &.{
 682             0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78, 0x65, 0x4a,
 683             0x15, 0x78, 0x2f, 0x38,
 684         },
 685         .transport_id = &.{
 686             0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78, 0xb0, 0x93,
 687             0xe6, 0x08, 0x9c, 0x3e,
 688         },
 689         .hops = 0,
 690         .context = 0,
 691         .context_flag = 0,
 692         .packet_hash = &.{
 693             0xd7, 0x92, 0xe0, 0xdb, 0x24, 0x52, 0x8b, 0x3e, 0x71, 0x6e, 0x41, 0x28,
 694             0x25, 0x25, 0x91, 0xd9, 0x90, 0x8c, 0xed, 0x5d, 0x0c, 0x56, 0xe6, 0x04,
 695             0xd8, 0xfa, 0xd5, 0xee, 0x6a, 0x28, 0x57, 0x41,
 696         },
 697     },
 698     .{
 699         .name = "transport-link-request-strip",
 700         .identity_hash = &.{
 701             0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78, 0xb0, 0x93,
 702             0xe6, 0x08, 0x9c, 0x3e,
 703         },
 704         .interfaces = 2,
 705         .announce_raw = &.{
 706             0x01, 0x00, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e,
 707             0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x3c, 0x16, 0xa4, 0x7b, 0xc3,
 708             0xcd, 0x38, 0x94, 0xbf, 0xe9, 0xa6, 0x7a, 0xb5, 0xe7, 0x2c, 0xb9, 0x96,
 709             0x4a, 0x9d, 0x6b, 0x71, 0x6c, 0x74, 0x3a, 0x4a, 0x20, 0xb1, 0x2a, 0x7f,
 710             0x9f, 0xe5, 0x12, 0x61, 0xb9, 0xf0, 0xd6, 0xdd, 0x9e, 0xa1, 0x35, 0xf4,
 711             0x71, 0xf8, 0x32, 0xae, 0x69, 0xe1, 0x67, 0xe7, 0x8a, 0x20, 0x46, 0xa0,
 712             0x23, 0x8a, 0x2a, 0x6a, 0x90, 0x98, 0x89, 0xc9, 0x57, 0x9a, 0x04, 0xd6,
 713             0x1e, 0x4a, 0x0a, 0x55, 0x70, 0xf8, 0x77, 0x1e, 0x66, 0x02, 0x7f, 0x7a,
 714             0x3f, 0x92, 0x00, 0x65, 0x53, 0xf1, 0x00, 0x0c, 0xd8, 0xa7, 0xb0, 0xee,
 715             0x50, 0x27, 0xdf, 0x23, 0x06, 0x18, 0x66, 0xfd, 0xad, 0x0d, 0xc8, 0xd1,
 716             0x9b, 0x9f, 0x60, 0xd1, 0xeb, 0x6d, 0x56, 0xd1, 0x5d, 0x3f, 0xcc, 0x7b,
 717             0xc8, 0x2a, 0xd4, 0xe2, 0x9c, 0x62, 0x9f, 0x5f, 0xae, 0x98, 0x3d, 0x74,
 718             0x57, 0x29, 0x3e, 0xe6, 0xcb, 0x07, 0x40, 0xc2, 0x38, 0x3d, 0xb1, 0x2a,
 719             0xcf, 0x1d, 0x7c, 0xc6, 0x33, 0xe5, 0x7d, 0xfa, 0xcb, 0x06, 0x0f,
 720         },
 721         .announce_interface = 1,
 722         .announce_clock = 1700000000,
 723         .request_raw = &.{},
 724         .request_interface = 0,
 725         .request_clock = 0,
 726         .proof_raw = &.{},
 727         .proof_interface = 0,
 728         .proof_clock = 0,
 729         .input_raw = &.{
 730             0x52, 0x00, 0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78,
 731             0xb0, 0x93, 0xe6, 0x08, 0x9c, 0x3e, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10,
 732             0x0a, 0x6b, 0x11, 0x9e, 0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x67,
 733             0x91, 0xfa, 0xa6, 0x25, 0x13, 0x90, 0x1c, 0xc6, 0xdc, 0x37, 0xff, 0x5e,
 734             0x0d, 0xac, 0x65, 0x94, 0x87, 0x03, 0xc2, 0x20, 0x2f, 0x9e, 0x4f, 0x34,
 735             0x51, 0x52, 0x20, 0x00, 0x89, 0x88, 0x2c, 0x97, 0x3d, 0xf0, 0x7e, 0x19,
 736             0x59, 0x7f, 0x8f, 0x1a, 0x7e, 0x8b, 0xc1, 0x68, 0xf9, 0xc4, 0x31, 0x6e,
 737             0x28, 0xd7, 0x83, 0x9c, 0x39, 0xd3, 0xca, 0xa6, 0xc7, 0xea, 0x68, 0xba,
 738             0xff, 0x3f, 0xac, 0x20, 0x01, 0xf4,
 739         },
 740         .input_interface = 0,
 741         .input_clock = 1700000020,
 742         .entropy = &.{},
 743         .encryption_private_key = &.{},
 744         .signing_private_key = &.{},
 745         .output_interface = 1,
 746         .output_raw = &.{
 747             0x02, 0x01, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e,
 748             0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x67, 0x91, 0xfa, 0xa6, 0x25,
 749             0x13, 0x90, 0x1c, 0xc6, 0xdc, 0x37, 0xff, 0x5e, 0x0d, 0xac, 0x65, 0x94,
 750             0x87, 0x03, 0xc2, 0x20, 0x2f, 0x9e, 0x4f, 0x34, 0x51, 0x52, 0x20, 0x00,
 751             0x89, 0x88, 0x2c, 0x97, 0x3d, 0xf0, 0x7e, 0x19, 0x59, 0x7f, 0x8f, 0x1a,
 752             0x7e, 0x8b, 0xc1, 0x68, 0xf9, 0xc4, 0x31, 0x6e, 0x28, 0xd7, 0x83, 0x9c,
 753             0x39, 0xd3, 0xca, 0xa6, 0xc7, 0xea, 0x68, 0xba, 0xff, 0x3f, 0xac,
 754         },
 755         .link_id = &.{
 756             0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78, 0x65, 0x4a,
 757             0x15, 0x78, 0x2f, 0x38,
 758         },
 759         .transport_id = &.{},
 760         .hops = 1,
 761         .context = 0,
 762         .context_flag = 0,
 763         .packet_hash = &.{
 764             0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78, 0x65, 0x4a,
 765             0x15, 0x78, 0x2f, 0x38, 0x66, 0x79, 0x2f, 0x39, 0xf4, 0x3c, 0xcd, 0x90,
 766             0x80, 0x08, 0xbc, 0xa8, 0xf4, 0x2d, 0x87, 0xa1,
 767         },
 768     },
 769     .{
 770         .name = "transport-link-proof-relay",
 771         .identity_hash = &.{
 772             0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78, 0xb0, 0x93,
 773             0xe6, 0x08, 0x9c, 0x3e,
 774         },
 775         .interfaces = 2,
 776         .announce_raw = &.{
 777             0x01, 0x00, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e,
 778             0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x3c, 0x16, 0xa4, 0x7b, 0xc3,
 779             0xcd, 0x38, 0x94, 0xbf, 0xe9, 0xa6, 0x7a, 0xb5, 0xe7, 0x2c, 0xb9, 0x96,
 780             0x4a, 0x9d, 0x6b, 0x71, 0x6c, 0x74, 0x3a, 0x4a, 0x20, 0xb1, 0x2a, 0x7f,
 781             0x9f, 0xe5, 0x12, 0x61, 0xb9, 0xf0, 0xd6, 0xdd, 0x9e, 0xa1, 0x35, 0xf4,
 782             0x71, 0xf8, 0x32, 0xae, 0x69, 0xe1, 0x67, 0xe7, 0x8a, 0x20, 0x46, 0xa0,
 783             0x23, 0x8a, 0x2a, 0x6a, 0x90, 0x98, 0x89, 0xc9, 0x57, 0x9a, 0x04, 0xd6,
 784             0x1e, 0x4a, 0x0a, 0x55, 0x70, 0xf8, 0x77, 0x1e, 0x66, 0x02, 0x7f, 0x7a,
 785             0x3f, 0x92, 0x00, 0x65, 0x53, 0xf1, 0x00, 0x0c, 0xd8, 0xa7, 0xb0, 0xee,
 786             0x50, 0x27, 0xdf, 0x23, 0x06, 0x18, 0x66, 0xfd, 0xad, 0x0d, 0xc8, 0xd1,
 787             0x9b, 0x9f, 0x60, 0xd1, 0xeb, 0x6d, 0x56, 0xd1, 0x5d, 0x3f, 0xcc, 0x7b,
 788             0xc8, 0x2a, 0xd4, 0xe2, 0x9c, 0x62, 0x9f, 0x5f, 0xae, 0x98, 0x3d, 0x74,
 789             0x57, 0x29, 0x3e, 0xe6, 0xcb, 0x07, 0x40, 0xc2, 0x38, 0x3d, 0xb1, 0x2a,
 790             0xcf, 0x1d, 0x7c, 0xc6, 0x33, 0xe5, 0x7d, 0xfa, 0xcb, 0x06, 0x0f,
 791         },
 792         .announce_interface = 1,
 793         .announce_clock = 1700000000,
 794         .request_raw = &.{
 795             0x52, 0x00, 0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78,
 796             0xb0, 0x93, 0xe6, 0x08, 0x9c, 0x3e, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10,
 797             0x0a, 0x6b, 0x11, 0x9e, 0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x67,
 798             0x91, 0xfa, 0xa6, 0x25, 0x13, 0x90, 0x1c, 0xc6, 0xdc, 0x37, 0xff, 0x5e,
 799             0x0d, 0xac, 0x65, 0x94, 0x87, 0x03, 0xc2, 0x20, 0x2f, 0x9e, 0x4f, 0x34,
 800             0x51, 0x52, 0x20, 0x00, 0x89, 0x88, 0x2c, 0x97, 0x3d, 0xf0, 0x7e, 0x19,
 801             0x59, 0x7f, 0x8f, 0x1a, 0x7e, 0x8b, 0xc1, 0x68, 0xf9, 0xc4, 0x31, 0x6e,
 802             0x28, 0xd7, 0x83, 0x9c, 0x39, 0xd3, 0xca, 0xa6, 0xc7, 0xea, 0x68, 0xba,
 803             0xff, 0x3f, 0xac, 0x20, 0x01, 0xf4,
 804         },
 805         .request_interface = 0,
 806         .request_clock = 1700000020,
 807         .proof_raw = &.{},
 808         .proof_interface = 0,
 809         .proof_clock = 0,
 810         .input_raw = &.{
 811             0x0f, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
 812             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xff, 0x08, 0x5c, 0x15, 0x4c, 0x75,
 813             0xe1, 0x17, 0x2e, 0xe6, 0x29, 0xa5, 0xe1, 0xfb, 0x44, 0x1c, 0x21, 0x85,
 814             0x90, 0x23, 0x35, 0x32, 0x90, 0xb0, 0x17, 0xbb, 0x9e, 0xe2, 0xaa, 0xd2,
 815             0xdd, 0xb8, 0x1d, 0xbb, 0x8c, 0x12, 0xb3, 0x33, 0x08, 0x8a, 0x27, 0xb7,
 816             0xda, 0xde, 0x2e, 0x0d, 0xe0, 0x90, 0x80, 0x00, 0x7c, 0x9d, 0x8e, 0xc1,
 817             0x2f, 0xa3, 0x30, 0xbd, 0xa0, 0x5b, 0x2c, 0xe5, 0x09, 0xc7, 0x0d, 0x24,
 818             0x68, 0xd8, 0x8b, 0x0e, 0x4a, 0x63, 0xd1, 0x9e, 0x97, 0x53, 0x05, 0xd7,
 819             0x34, 0xdf, 0xb5, 0x9e, 0x76, 0xc7, 0xd0, 0x55, 0xa0, 0xfd, 0xc0, 0xbe,
 820             0xe8, 0x49, 0xd3, 0x05, 0x19, 0xbf, 0x76, 0x20, 0x01, 0xf4,
 821         },
 822         .input_interface = 1,
 823         .input_clock = 1700000020,
 824         .entropy = &.{},
 825         .encryption_private_key = &.{},
 826         .signing_private_key = &.{},
 827         .output_interface = 0,
 828         .output_raw = &.{
 829             0x0f, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
 830             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xff, 0x08, 0x5c, 0x15, 0x4c, 0x75,
 831             0xe1, 0x17, 0x2e, 0xe6, 0x29, 0xa5, 0xe1, 0xfb, 0x44, 0x1c, 0x21, 0x85,
 832             0x90, 0x23, 0x35, 0x32, 0x90, 0xb0, 0x17, 0xbb, 0x9e, 0xe2, 0xaa, 0xd2,
 833             0xdd, 0xb8, 0x1d, 0xbb, 0x8c, 0x12, 0xb3, 0x33, 0x08, 0x8a, 0x27, 0xb7,
 834             0xda, 0xde, 0x2e, 0x0d, 0xe0, 0x90, 0x80, 0x00, 0x7c, 0x9d, 0x8e, 0xc1,
 835             0x2f, 0xa3, 0x30, 0xbd, 0xa0, 0x5b, 0x2c, 0xe5, 0x09, 0xc7, 0x0d, 0x24,
 836             0x68, 0xd8, 0x8b, 0x0e, 0x4a, 0x63, 0xd1, 0x9e, 0x97, 0x53, 0x05, 0xd7,
 837             0x34, 0xdf, 0xb5, 0x9e, 0x76, 0xc7, 0xd0, 0x55, 0xa0, 0xfd, 0xc0, 0xbe,
 838             0xe8, 0x49, 0xd3, 0x05, 0x19, 0xbf, 0x76, 0x20, 0x01, 0xf4,
 839         },
 840         .link_id = &.{
 841             0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78, 0x65, 0x4a,
 842             0x15, 0x78, 0x2f, 0x38,
 843         },
 844         .transport_id = &.{},
 845         .hops = 1,
 846         .context = 255,
 847         .context_flag = 0,
 848         .packet_hash = &.{
 849             0x99, 0xfe, 0xfd, 0x19, 0x4b, 0x62, 0x16, 0x6a, 0x91, 0x44, 0x6a, 0xed,
 850             0x3c, 0x26, 0xbc, 0xde, 0x61, 0xa8, 0xf1, 0x59, 0x22, 0x6c, 0xc6, 0x1f,
 851             0x5a, 0xe2, 0x8c, 0x32, 0x67, 0xb0, 0x3f, 0xe5,
 852         },
 853     },
 854     .{
 855         .name = "transport-link-data-relay",
 856         .identity_hash = &.{
 857             0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78, 0xb0, 0x93,
 858             0xe6, 0x08, 0x9c, 0x3e,
 859         },
 860         .interfaces = 2,
 861         .announce_raw = &.{
 862             0x01, 0x00, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e,
 863             0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x3c, 0x16, 0xa4, 0x7b, 0xc3,
 864             0xcd, 0x38, 0x94, 0xbf, 0xe9, 0xa6, 0x7a, 0xb5, 0xe7, 0x2c, 0xb9, 0x96,
 865             0x4a, 0x9d, 0x6b, 0x71, 0x6c, 0x74, 0x3a, 0x4a, 0x20, 0xb1, 0x2a, 0x7f,
 866             0x9f, 0xe5, 0x12, 0x61, 0xb9, 0xf0, 0xd6, 0xdd, 0x9e, 0xa1, 0x35, 0xf4,
 867             0x71, 0xf8, 0x32, 0xae, 0x69, 0xe1, 0x67, 0xe7, 0x8a, 0x20, 0x46, 0xa0,
 868             0x23, 0x8a, 0x2a, 0x6a, 0x90, 0x98, 0x89, 0xc9, 0x57, 0x9a, 0x04, 0xd6,
 869             0x1e, 0x4a, 0x0a, 0x55, 0x70, 0xf8, 0x77, 0x1e, 0x66, 0x02, 0x7f, 0x7a,
 870             0x3f, 0x92, 0x00, 0x65, 0x53, 0xf1, 0x00, 0x0c, 0xd8, 0xa7, 0xb0, 0xee,
 871             0x50, 0x27, 0xdf, 0x23, 0x06, 0x18, 0x66, 0xfd, 0xad, 0x0d, 0xc8, 0xd1,
 872             0x9b, 0x9f, 0x60, 0xd1, 0xeb, 0x6d, 0x56, 0xd1, 0x5d, 0x3f, 0xcc, 0x7b,
 873             0xc8, 0x2a, 0xd4, 0xe2, 0x9c, 0x62, 0x9f, 0x5f, 0xae, 0x98, 0x3d, 0x74,
 874             0x57, 0x29, 0x3e, 0xe6, 0xcb, 0x07, 0x40, 0xc2, 0x38, 0x3d, 0xb1, 0x2a,
 875             0xcf, 0x1d, 0x7c, 0xc6, 0x33, 0xe5, 0x7d, 0xfa, 0xcb, 0x06, 0x0f,
 876         },
 877         .announce_interface = 1,
 878         .announce_clock = 1700000000,
 879         .request_raw = &.{
 880             0x52, 0x00, 0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78,
 881             0xb0, 0x93, 0xe6, 0x08, 0x9c, 0x3e, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10,
 882             0x0a, 0x6b, 0x11, 0x9e, 0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x67,
 883             0x91, 0xfa, 0xa6, 0x25, 0x13, 0x90, 0x1c, 0xc6, 0xdc, 0x37, 0xff, 0x5e,
 884             0x0d, 0xac, 0x65, 0x94, 0x87, 0x03, 0xc2, 0x20, 0x2f, 0x9e, 0x4f, 0x34,
 885             0x51, 0x52, 0x20, 0x00, 0x89, 0x88, 0x2c, 0x97, 0x3d, 0xf0, 0x7e, 0x19,
 886             0x59, 0x7f, 0x8f, 0x1a, 0x7e, 0x8b, 0xc1, 0x68, 0xf9, 0xc4, 0x31, 0x6e,
 887             0x28, 0xd7, 0x83, 0x9c, 0x39, 0xd3, 0xca, 0xa6, 0xc7, 0xea, 0x68, 0xba,
 888             0xff, 0x3f, 0xac, 0x20, 0x01, 0xf4,
 889         },
 890         .request_interface = 0,
 891         .request_clock = 1700000020,
 892         .proof_raw = &.{
 893             0x0f, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
 894             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xff, 0x08, 0x5c, 0x15, 0x4c, 0x75,
 895             0xe1, 0x17, 0x2e, 0xe6, 0x29, 0xa5, 0xe1, 0xfb, 0x44, 0x1c, 0x21, 0x85,
 896             0x90, 0x23, 0x35, 0x32, 0x90, 0xb0, 0x17, 0xbb, 0x9e, 0xe2, 0xaa, 0xd2,
 897             0xdd, 0xb8, 0x1d, 0xbb, 0x8c, 0x12, 0xb3, 0x33, 0x08, 0x8a, 0x27, 0xb7,
 898             0xda, 0xde, 0x2e, 0x0d, 0xe0, 0x90, 0x80, 0x00, 0x7c, 0x9d, 0x8e, 0xc1,
 899             0x2f, 0xa3, 0x30, 0xbd, 0xa0, 0x5b, 0x2c, 0xe5, 0x09, 0xc7, 0x0d, 0x24,
 900             0x68, 0xd8, 0x8b, 0x0e, 0x4a, 0x63, 0xd1, 0x9e, 0x97, 0x53, 0x05, 0xd7,
 901             0x34, 0xdf, 0xb5, 0x9e, 0x76, 0xc7, 0xd0, 0x55, 0xa0, 0xfd, 0xc0, 0xbe,
 902             0xe8, 0x49, 0xd3, 0x05, 0x19, 0xbf, 0x76, 0x20, 0x01, 0xf4,
 903         },
 904         .proof_interface = 1,
 905         .proof_clock = 1700000020,
 906         .input_raw = &.{
 907             0x0c, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
 908             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0x00, 0xdc, 0x32, 0x77, 0xd9, 0xa9,
 909             0xa2, 0x2b, 0x4d, 0x58, 0x77, 0x9c, 0xa6, 0xfa, 0x23, 0xba, 0xe9, 0x30,
 910             0xf1, 0xdd, 0x64, 0x73, 0x50, 0x1f, 0x95, 0x1e, 0x7b, 0x47, 0x1f, 0x39,
 911             0x5d, 0x4f, 0x8d, 0x03, 0x6e, 0x03, 0x37, 0x61, 0x10, 0x29, 0x22, 0x98,
 912             0xc3, 0x82, 0xb9, 0x2c, 0x9b, 0x72, 0x53, 0x3e, 0x4f, 0xf2, 0x12, 0x71,
 913             0x15, 0xa0, 0x56, 0x49, 0x15, 0xa0, 0x11, 0x8b, 0xdb, 0xdf, 0xc8,
 914         },
 915         .input_interface = 0,
 916         .input_clock = 1700000022,
 917         .entropy = &.{},
 918         .encryption_private_key = &.{},
 919         .signing_private_key = &.{},
 920         .output_interface = 1,
 921         .output_raw = &.{
 922             0x0c, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
 923             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0x00, 0xdc, 0x32, 0x77, 0xd9, 0xa9,
 924             0xa2, 0x2b, 0x4d, 0x58, 0x77, 0x9c, 0xa6, 0xfa, 0x23, 0xba, 0xe9, 0x30,
 925             0xf1, 0xdd, 0x64, 0x73, 0x50, 0x1f, 0x95, 0x1e, 0x7b, 0x47, 0x1f, 0x39,
 926             0x5d, 0x4f, 0x8d, 0x03, 0x6e, 0x03, 0x37, 0x61, 0x10, 0x29, 0x22, 0x98,
 927             0xc3, 0x82, 0xb9, 0x2c, 0x9b, 0x72, 0x53, 0x3e, 0x4f, 0xf2, 0x12, 0x71,
 928             0x15, 0xa0, 0x56, 0x49, 0x15, 0xa0, 0x11, 0x8b, 0xdb, 0xdf, 0xc8,
 929         },
 930         .link_id = &.{
 931             0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78, 0x65, 0x4a,
 932             0x15, 0x78, 0x2f, 0x38,
 933         },
 934         .transport_id = &.{},
 935         .hops = 1,
 936         .context = 0,
 937         .context_flag = 0,
 938         .packet_hash = &.{
 939             0xea, 0x3f, 0x88, 0x00, 0xb4, 0x27, 0x4c, 0xa5, 0x68, 0x7e, 0x28, 0xc7,
 940             0x38, 0x57, 0x0d, 0xa8, 0xf3, 0xc4, 0x99, 0x22, 0x72, 0x9d, 0xe3, 0xa2,
 941             0xca, 0x9b, 0xef, 0xc4, 0x2c, 0x79, 0xc7, 0x43,
 942         },
 943     },
 944 };
 945 
 946 pub const three_node_vectors: []const ThreeNodeVector = &.{
 947     .{
 948         .name = "transport-three-node-link",
 949         .start_clock = 1700000000,
 950         .announce_raw = &.{
 951             0x01, 0x00, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e,
 952             0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x3c, 0x16, 0xa4, 0x7b, 0xc3,
 953             0xcd, 0x38, 0x94, 0xbf, 0xe9, 0xa6, 0x7a, 0xb5, 0xe7, 0x2c, 0xb9, 0x96,
 954             0x4a, 0x9d, 0x6b, 0x71, 0x6c, 0x74, 0x3a, 0x4a, 0x20, 0xb1, 0x2a, 0x7f,
 955             0x9f, 0xe5, 0x12, 0x61, 0xb9, 0xf0, 0xd6, 0xdd, 0x9e, 0xa1, 0x35, 0xf4,
 956             0x71, 0xf8, 0x32, 0xae, 0x69, 0xe1, 0x67, 0xe7, 0x8a, 0x20, 0x46, 0xa0,
 957             0x23, 0x8a, 0x2a, 0x6a, 0x90, 0x98, 0x89, 0xc9, 0x57, 0x9a, 0x04, 0xd6,
 958             0x1e, 0x4a, 0x0a, 0x55, 0x70, 0xf8, 0x77, 0x1e, 0x66, 0x02, 0x7f, 0x7a,
 959             0x3f, 0x92, 0x00, 0x65, 0x53, 0xf1, 0x00, 0x0c, 0xd8, 0xa7, 0xb0, 0xee,
 960             0x50, 0x27, 0xdf, 0x23, 0x06, 0x18, 0x66, 0xfd, 0xad, 0x0d, 0xc8, 0xd1,
 961             0x9b, 0x9f, 0x60, 0xd1, 0xeb, 0x6d, 0x56, 0xd1, 0x5d, 0x3f, 0xcc, 0x7b,
 962             0xc8, 0x2a, 0xd4, 0xe2, 0x9c, 0x62, 0x9f, 0x5f, 0xae, 0x98, 0x3d, 0x74,
 963             0x57, 0x29, 0x3e, 0xe6, 0xcb, 0x07, 0x40, 0xc2, 0x38, 0x3d, 0xb1, 0x2a,
 964             0xcf, 0x1d, 0x7c, 0xc6, 0x33, 0xe5, 0x7d, 0xfa, 0xcb, 0x06, 0x0f,
 965         },
 966         .destination_hash = &.{
 967             0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e, 0x02, 0xd8,
 968             0x49, 0xc0, 0xe3, 0x16,
 969         },
 970         .destination_private_key = &.{
 971             0x08, 0x72, 0xe9, 0xdf, 0xd8, 0x6b, 0x82, 0xfc, 0xc5, 0x2d, 0x1a, 0x61,
 972             0xf8, 0x7d, 0x72, 0x6e, 0x5a, 0x19, 0x3c, 0xfc, 0xc6, 0xab, 0x3b, 0x26,
 973             0x25, 0xa6, 0x8c, 0xe2, 0xe9, 0x15, 0x15, 0x48, 0x54, 0x0a, 0xc4, 0xa5,
 974             0x8a, 0xc0, 0x1c, 0x61, 0x8e, 0xed, 0x0a, 0x8a, 0xe3, 0xe3, 0xf7, 0x1a,
 975             0xa5, 0xfb, 0xf0, 0x0e, 0xb1, 0x17, 0x19, 0x25, 0x7c, 0x4f, 0xe7, 0x0c,
 976             0xf3, 0xdc, 0xaf, 0xcd,
 977         },
 978         .destination_name_hash = &.{
 979             0xd6, 0x1e, 0x4a, 0x0a, 0x55, 0x70, 0xf8, 0x77, 0x1e, 0x66,
 980         },
 981         .destination_app_data = &.{},
 982         .announce_random_hash = &.{
 983             0x02, 0x7f, 0x7a, 0x3f, 0x92, 0x00, 0x65, 0x53, 0xf1, 0x00,
 984         },
 985         .initiator_identity_hash = &.{
 986             0x1c, 0x1d, 0x4c, 0xee, 0xca, 0xba, 0x5e, 0xcd, 0x83, 0x3e, 0x99, 0xab,
 987             0xe6, 0x93, 0x37, 0x0a,
 988         },
 989         .transport_identity_hash = &.{
 990             0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78, 0xb0, 0x93,
 991             0xe6, 0x08, 0x9c, 0x3e,
 992         },
 993         .responder_identity_hash = &.{
 994             0x24, 0x68, 0x47, 0x44, 0x49, 0x0e, 0xe7, 0x6f, 0x39, 0x1a, 0x17, 0x06,
 995             0xe3, 0xb5, 0x6d, 0x1a,
 996         },
 997         .rebroadcast_clock = 1700000001,
 998         .rebroadcast_raw = &.{
 999             0x51, 0x01, 0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78,
1000             0xb0, 0x93, 0xe6, 0x08, 0x9c, 0x3e, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10,
1001             0x0a, 0x6b, 0x11, 0x9e, 0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x3c,
1002             0x16, 0xa4, 0x7b, 0xc3, 0xcd, 0x38, 0x94, 0xbf, 0xe9, 0xa6, 0x7a, 0xb5,
1003             0xe7, 0x2c, 0xb9, 0x96, 0x4a, 0x9d, 0x6b, 0x71, 0x6c, 0x74, 0x3a, 0x4a,
1004             0x20, 0xb1, 0x2a, 0x7f, 0x9f, 0xe5, 0x12, 0x61, 0xb9, 0xf0, 0xd6, 0xdd,
1005             0x9e, 0xa1, 0x35, 0xf4, 0x71, 0xf8, 0x32, 0xae, 0x69, 0xe1, 0x67, 0xe7,
1006             0x8a, 0x20, 0x46, 0xa0, 0x23, 0x8a, 0x2a, 0x6a, 0x90, 0x98, 0x89, 0xc9,
1007             0x57, 0x9a, 0x04, 0xd6, 0x1e, 0x4a, 0x0a, 0x55, 0x70, 0xf8, 0x77, 0x1e,
1008             0x66, 0x02, 0x7f, 0x7a, 0x3f, 0x92, 0x00, 0x65, 0x53, 0xf1, 0x00, 0x0c,
1009             0xd8, 0xa7, 0xb0, 0xee, 0x50, 0x27, 0xdf, 0x23, 0x06, 0x18, 0x66, 0xfd,
1010             0xad, 0x0d, 0xc8, 0xd1, 0x9b, 0x9f, 0x60, 0xd1, 0xeb, 0x6d, 0x56, 0xd1,
1011             0x5d, 0x3f, 0xcc, 0x7b, 0xc8, 0x2a, 0xd4, 0xe2, 0x9c, 0x62, 0x9f, 0x5f,
1012             0xae, 0x98, 0x3d, 0x74, 0x57, 0x29, 0x3e, 0xe6, 0xcb, 0x07, 0x40, 0xc2,
1013             0x38, 0x3d, 0xb1, 0x2a, 0xcf, 0x1d, 0x7c, 0xc6, 0x33, 0xe5, 0x7d, 0xfa,
1014             0xcb, 0x06, 0x0f,
1015         },
1016         .retry_clock = 1700000007,
1017         .retry_raw = &.{
1018             0x51, 0x01, 0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78,
1019             0xb0, 0x93, 0xe6, 0x08, 0x9c, 0x3e, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10,
1020             0x0a, 0x6b, 0x11, 0x9e, 0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x3c,
1021             0x16, 0xa4, 0x7b, 0xc3, 0xcd, 0x38, 0x94, 0xbf, 0xe9, 0xa6, 0x7a, 0xb5,
1022             0xe7, 0x2c, 0xb9, 0x96, 0x4a, 0x9d, 0x6b, 0x71, 0x6c, 0x74, 0x3a, 0x4a,
1023             0x20, 0xb1, 0x2a, 0x7f, 0x9f, 0xe5, 0x12, 0x61, 0xb9, 0xf0, 0xd6, 0xdd,
1024             0x9e, 0xa1, 0x35, 0xf4, 0x71, 0xf8, 0x32, 0xae, 0x69, 0xe1, 0x67, 0xe7,
1025             0x8a, 0x20, 0x46, 0xa0, 0x23, 0x8a, 0x2a, 0x6a, 0x90, 0x98, 0x89, 0xc9,
1026             0x57, 0x9a, 0x04, 0xd6, 0x1e, 0x4a, 0x0a, 0x55, 0x70, 0xf8, 0x77, 0x1e,
1027             0x66, 0x02, 0x7f, 0x7a, 0x3f, 0x92, 0x00, 0x65, 0x53, 0xf1, 0x00, 0x0c,
1028             0xd8, 0xa7, 0xb0, 0xee, 0x50, 0x27, 0xdf, 0x23, 0x06, 0x18, 0x66, 0xfd,
1029             0xad, 0x0d, 0xc8, 0xd1, 0x9b, 0x9f, 0x60, 0xd1, 0xeb, 0x6d, 0x56, 0xd1,
1030             0x5d, 0x3f, 0xcc, 0x7b, 0xc8, 0x2a, 0xd4, 0xe2, 0x9c, 0x62, 0x9f, 0x5f,
1031             0xae, 0x98, 0x3d, 0x74, 0x57, 0x29, 0x3e, 0xe6, 0xcb, 0x07, 0x40, 0xc2,
1032             0x38, 0x3d, 0xb1, 0x2a, 0xcf, 0x1d, 0x7c, 0xc6, 0x33, 0xe5, 0x7d, 0xfa,
1033             0xcb, 0x06, 0x0f,
1034         },
1035         .request_clock = 1700000020,
1036         .link_id = &.{
1037             0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78, 0x65, 0x4a,
1038             0x15, 0x78, 0x2f, 0x38,
1039         },
1040         .initiator_encryption_private_key = &.{
1041             0x9d, 0x11, 0x48, 0x0a, 0x52, 0xa6, 0x0b, 0x08, 0x24, 0xaa, 0x00, 0xfa,
1042             0x63, 0x0c, 0x23, 0x94, 0x17, 0x75, 0xaa, 0x23, 0xec, 0xc5, 0x88, 0xa7,
1043             0xe7, 0xd4, 0x59, 0x6b, 0x35, 0xf9, 0xd5, 0x85,
1044         },
1045         .initiator_signing_private_key = &.{
1046             0x4a, 0x9a, 0xea, 0x3c, 0x71, 0x20, 0xde, 0x0c, 0x5f, 0xb7, 0x5a, 0x86,
1047             0x30, 0x92, 0x6a, 0x45, 0xef, 0x9f, 0xef, 0xce, 0xf2, 0x44, 0x07, 0x13,
1048             0x0e, 0x68, 0x16, 0x13, 0x2f, 0x35, 0x1f, 0xec,
1049         },
1050         .request_raw = &.{
1051             0x52, 0x00, 0xf8, 0x58, 0x2f, 0x60, 0xf4, 0xc7, 0xd1, 0x6f, 0x6c, 0x78,
1052             0xb0, 0x93, 0xe6, 0x08, 0x9c, 0x3e, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10,
1053             0x0a, 0x6b, 0x11, 0x9e, 0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x67,
1054             0x91, 0xfa, 0xa6, 0x25, 0x13, 0x90, 0x1c, 0xc6, 0xdc, 0x37, 0xff, 0x5e,
1055             0x0d, 0xac, 0x65, 0x94, 0x87, 0x03, 0xc2, 0x20, 0x2f, 0x9e, 0x4f, 0x34,
1056             0x51, 0x52, 0x20, 0x00, 0x89, 0x88, 0x2c, 0x97, 0x3d, 0xf0, 0x7e, 0x19,
1057             0x59, 0x7f, 0x8f, 0x1a, 0x7e, 0x8b, 0xc1, 0x68, 0xf9, 0xc4, 0x31, 0x6e,
1058             0x28, 0xd7, 0x83, 0x9c, 0x39, 0xd3, 0xca, 0xa6, 0xc7, 0xea, 0x68, 0xba,
1059             0xff, 0x3f, 0xac, 0x20, 0x01, 0xf4,
1060         },
1061         .stripped_raw = &.{
1062             0x02, 0x01, 0xbc, 0xdf, 0x15, 0x62, 0x79, 0x10, 0x0a, 0x6b, 0x11, 0x9e,
1063             0x02, 0xd8, 0x49, 0xc0, 0xe3, 0x16, 0x00, 0x67, 0x91, 0xfa, 0xa6, 0x25,
1064             0x13, 0x90, 0x1c, 0xc6, 0xdc, 0x37, 0xff, 0x5e, 0x0d, 0xac, 0x65, 0x94,
1065             0x87, 0x03, 0xc2, 0x20, 0x2f, 0x9e, 0x4f, 0x34, 0x51, 0x52, 0x20, 0x00,
1066             0x89, 0x88, 0x2c, 0x97, 0x3d, 0xf0, 0x7e, 0x19, 0x59, 0x7f, 0x8f, 0x1a,
1067             0x7e, 0x8b, 0xc1, 0x68, 0xf9, 0xc4, 0x31, 0x6e, 0x28, 0xd7, 0x83, 0x9c,
1068             0x39, 0xd3, 0xca, 0xa6, 0xc7, 0xea, 0x68, 0xba, 0xff, 0x3f, 0xac,
1069         },
1070         .responder_entropy = &.{
1071             0xc0, 0xdc, 0xe3, 0x29, 0x7c, 0x32, 0xe5, 0x04, 0x16, 0x67, 0xbf, 0x74,
1072             0xe0, 0xf1, 0x94, 0x62, 0xc0, 0xdb, 0xbb, 0x13, 0xcd, 0x57, 0x01, 0x92,
1073             0x72, 0x54, 0x92, 0x97, 0x49, 0x47, 0x18, 0xb6,
1074         },
1075         .responder_encryption_private_key = &.{
1076             0xb2, 0x7f, 0x47, 0x0f, 0x62, 0x75, 0x92, 0xb2, 0xe1, 0x95, 0x9b, 0x95,
1077             0xd7, 0x81, 0xac, 0xe5, 0x17, 0x0b, 0xa5, 0xb0, 0xc3, 0x5a, 0x25, 0xe4,
1078             0xd8, 0xb3, 0xd9, 0xf7, 0x2e, 0x08, 0x9e, 0x99,
1079         },
1080         .proof_raw = &.{
1081             0x0f, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1082             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xff, 0x08, 0x5c, 0x15, 0x4c, 0x75,
1083             0xe1, 0x17, 0x2e, 0xe6, 0x29, 0xa5, 0xe1, 0xfb, 0x44, 0x1c, 0x21, 0x85,
1084             0x90, 0x23, 0x35, 0x32, 0x90, 0xb0, 0x17, 0xbb, 0x9e, 0xe2, 0xaa, 0xd2,
1085             0xdd, 0xb8, 0x1d, 0xbb, 0x8c, 0x12, 0xb3, 0x33, 0x08, 0x8a, 0x27, 0xb7,
1086             0xda, 0xde, 0x2e, 0x0d, 0xe0, 0x90, 0x80, 0x00, 0x7c, 0x9d, 0x8e, 0xc1,
1087             0x2f, 0xa3, 0x30, 0xbd, 0xa0, 0x5b, 0x2c, 0xe5, 0x09, 0xc7, 0x0d, 0x24,
1088             0x68, 0xd8, 0x8b, 0x0e, 0x4a, 0x63, 0xd1, 0x9e, 0x97, 0x53, 0x05, 0xd7,
1089             0x34, 0xdf, 0xb5, 0x9e, 0x76, 0xc7, 0xd0, 0x55, 0xa0, 0xfd, 0xc0, 0xbe,
1090             0xe8, 0x49, 0xd3, 0x05, 0x19, 0xbf, 0x76, 0x20, 0x01, 0xf4,
1091         },
1092         .relayed_proof_raw = &.{
1093             0x0f, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1094             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xff, 0x08, 0x5c, 0x15, 0x4c, 0x75,
1095             0xe1, 0x17, 0x2e, 0xe6, 0x29, 0xa5, 0xe1, 0xfb, 0x44, 0x1c, 0x21, 0x85,
1096             0x90, 0x23, 0x35, 0x32, 0x90, 0xb0, 0x17, 0xbb, 0x9e, 0xe2, 0xaa, 0xd2,
1097             0xdd, 0xb8, 0x1d, 0xbb, 0x8c, 0x12, 0xb3, 0x33, 0x08, 0x8a, 0x27, 0xb7,
1098             0xda, 0xde, 0x2e, 0x0d, 0xe0, 0x90, 0x80, 0x00, 0x7c, 0x9d, 0x8e, 0xc1,
1099             0x2f, 0xa3, 0x30, 0xbd, 0xa0, 0x5b, 0x2c, 0xe5, 0x09, 0xc7, 0x0d, 0x24,
1100             0x68, 0xd8, 0x8b, 0x0e, 0x4a, 0x63, 0xd1, 0x9e, 0x97, 0x53, 0x05, 0xd7,
1101             0x34, 0xdf, 0xb5, 0x9e, 0x76, 0xc7, 0xd0, 0x55, 0xa0, 0xfd, 0xc0, 0xbe,
1102             0xe8, 0x49, 0xd3, 0x05, 0x19, 0xbf, 0x76, 0x20, 0x01, 0xf4,
1103         },
1104         .proof_clock = 1700000021,
1105         .rtt_entropy = &.{
1106             0x89, 0x8a, 0x14, 0xcc, 0xde, 0xc1, 0xb7, 0x72, 0xf1, 0x28, 0x65, 0xb0,
1107             0xae, 0x6e, 0xff, 0xfb, 0xb8, 0xf7, 0x0c, 0x92, 0xbc, 0x7f, 0xc2, 0x9d,
1108             0xbe, 0x44, 0xf9, 0xed, 0xad, 0x34, 0x56, 0x6c,
1109         },
1110         .rtt_iv = &.{
1111             0x27, 0x6c, 0x44, 0xc7, 0x93, 0xb0, 0xf2, 0x13, 0x69, 0x27, 0x53, 0xf5,
1112             0x5b, 0x41, 0xc0, 0xea,
1113         },
1114         .rtt_plaintext = &.{
1115             0xcb, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1116         },
1117         .rtt_raw = &.{
1118             0x0c, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1119             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xfe, 0x27, 0x6c, 0x44, 0xc7, 0x93,
1120             0xb0, 0xf2, 0x13, 0x69, 0x27, 0x53, 0xf5, 0x5b, 0x41, 0xc0, 0xea, 0x42,
1121             0x35, 0x05, 0x82, 0x42, 0x45, 0x84, 0xb2, 0x34, 0x9c, 0x53, 0xe6, 0xeb,
1122             0xf8, 0x71, 0xc2, 0x0b, 0x82, 0x49, 0xc3, 0xf4, 0x85, 0xae, 0xf2, 0xc4,
1123             0xbc, 0x63, 0xd4, 0x0e, 0x82, 0x0f, 0x46, 0x8c, 0xe9, 0xf9, 0xfa, 0x72,
1124             0x31, 0xfd, 0xee, 0xe3, 0xe7, 0x1d, 0x40, 0x93, 0x44, 0x0b, 0x23,
1125         },
1126         .relayed_rtt_raw = &.{
1127             0x0c, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1128             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xfe, 0x27, 0x6c, 0x44, 0xc7, 0x93,
1129             0xb0, 0xf2, 0x13, 0x69, 0x27, 0x53, 0xf5, 0x5b, 0x41, 0xc0, 0xea, 0x42,
1130             0x35, 0x05, 0x82, 0x42, 0x45, 0x84, 0xb2, 0x34, 0x9c, 0x53, 0xe6, 0xeb,
1131             0xf8, 0x71, 0xc2, 0x0b, 0x82, 0x49, 0xc3, 0xf4, 0x85, 0xae, 0xf2, 0xc4,
1132             0xbc, 0x63, 0xd4, 0x0e, 0x82, 0x0f, 0x46, 0x8c, 0xe9, 0xf9, 0xfa, 0x72,
1133             0x31, 0xfd, 0xee, 0xe3, 0xe7, 0x1d, 0x40, 0x93, 0x44, 0x0b, 0x23,
1134         },
1135         .data_clock = 1700000022,
1136         .data_iv = &.{
1137             0xdc, 0x32, 0x77, 0xd9, 0xa9, 0xa2, 0x2b, 0x4d, 0x58, 0x77, 0x9c, 0xa6,
1138             0xfa, 0x23, 0xba, 0xe9,
1139         },
1140         .data_plaintext = &.{
1141             0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x64, 0x61, 0x74, 0x61,
1142         },
1143         .data_raw = &.{
1144             0x0c, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1145             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0x00, 0xdc, 0x32, 0x77, 0xd9, 0xa9,
1146             0xa2, 0x2b, 0x4d, 0x58, 0x77, 0x9c, 0xa6, 0xfa, 0x23, 0xba, 0xe9, 0x30,
1147             0xf1, 0xdd, 0x64, 0x73, 0x50, 0x1f, 0x95, 0x1e, 0x7b, 0x47, 0x1f, 0x39,
1148             0x5d, 0x4f, 0x8d, 0x03, 0x6e, 0x03, 0x37, 0x61, 0x10, 0x29, 0x22, 0x98,
1149             0xc3, 0x82, 0xb9, 0x2c, 0x9b, 0x72, 0x53, 0x3e, 0x4f, 0xf2, 0x12, 0x71,
1150             0x15, 0xa0, 0x56, 0x49, 0x15, 0xa0, 0x11, 0x8b, 0xdb, 0xdf, 0xc8,
1151         },
1152         .relayed_data_raw = &.{
1153             0x0c, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1154             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0x00, 0xdc, 0x32, 0x77, 0xd9, 0xa9,
1155             0xa2, 0x2b, 0x4d, 0x58, 0x77, 0x9c, 0xa6, 0xfa, 0x23, 0xba, 0xe9, 0x30,
1156             0xf1, 0xdd, 0x64, 0x73, 0x50, 0x1f, 0x95, 0x1e, 0x7b, 0x47, 0x1f, 0x39,
1157             0x5d, 0x4f, 0x8d, 0x03, 0x6e, 0x03, 0x37, 0x61, 0x10, 0x29, 0x22, 0x98,
1158             0xc3, 0x82, 0xb9, 0x2c, 0x9b, 0x72, 0x53, 0x3e, 0x4f, 0xf2, 0x12, 0x71,
1159             0x15, 0xa0, 0x56, 0x49, 0x15, 0xa0, 0x11, 0x8b, 0xdb, 0xdf, 0xc8,
1160         },
1161         .data_proof_raw = &.{
1162             0x0f, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1163             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0x00, 0xea, 0x3f, 0x88, 0x00, 0xb4,
1164             0x27, 0x4c, 0xa5, 0x68, 0x7e, 0x28, 0xc7, 0x38, 0x57, 0x0d, 0xa8, 0xf3,
1165             0xc4, 0x99, 0x22, 0x72, 0x9d, 0xe3, 0xa2, 0xca, 0x9b, 0xef, 0xc4, 0x2c,
1166             0x79, 0xc7, 0x43, 0x9b, 0x62, 0xc5, 0x14, 0x1b, 0xf9, 0x4c, 0xd3, 0xa1,
1167             0x63, 0x81, 0x34, 0x29, 0xe2, 0x47, 0xe7, 0xde, 0xa9, 0x63, 0x20, 0xca,
1168             0x7d, 0x8d, 0xea, 0x73, 0x8c, 0x0a, 0x94, 0x5e, 0xea, 0x1d, 0x2d, 0x06,
1169             0x5b, 0x1f, 0x28, 0x49, 0xa3, 0x8f, 0x0d, 0x87, 0x35, 0x6b, 0xce, 0xc5,
1170             0xea, 0xec, 0xdc, 0xa0, 0xdf, 0x60, 0xa0, 0xc3, 0xca, 0xa2, 0xf8, 0xf4,
1171             0xe3, 0xf2, 0x63, 0xf4, 0x33, 0xf2, 0x03,
1172         },
1173         .relayed_data_proof_raw = &.{
1174             0x0f, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1175             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0x00, 0xea, 0x3f, 0x88, 0x00, 0xb4,
1176             0x27, 0x4c, 0xa5, 0x68, 0x7e, 0x28, 0xc7, 0x38, 0x57, 0x0d, 0xa8, 0xf3,
1177             0xc4, 0x99, 0x22, 0x72, 0x9d, 0xe3, 0xa2, 0xca, 0x9b, 0xef, 0xc4, 0x2c,
1178             0x79, 0xc7, 0x43, 0x9b, 0x62, 0xc5, 0x14, 0x1b, 0xf9, 0x4c, 0xd3, 0xa1,
1179             0x63, 0x81, 0x34, 0x29, 0xe2, 0x47, 0xe7, 0xde, 0xa9, 0x63, 0x20, 0xca,
1180             0x7d, 0x8d, 0xea, 0x73, 0x8c, 0x0a, 0x94, 0x5e, 0xea, 0x1d, 0x2d, 0x06,
1181             0x5b, 0x1f, 0x28, 0x49, 0xa3, 0x8f, 0x0d, 0x87, 0x35, 0x6b, 0xce, 0xc5,
1182             0xea, 0xec, 0xdc, 0xa0, 0xdf, 0x60, 0xa0, 0xc3, 0xca, 0xa2, 0xf8, 0xf4,
1183             0xe3, 0xf2, 0x63, 0xf4, 0x33, 0xf2, 0x03,
1184         },
1185         .answer_clock = 1700000023,
1186         .answer_iv = &.{
1187             0xf8, 0x46, 0xc7, 0x9a, 0xb6, 0x09, 0x88, 0x31, 0x79, 0x07, 0xca, 0x1f,
1188             0xff, 0xdf, 0xda, 0x36,
1189         },
1190         .answer_plaintext = &.{
1191             0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72,
1192         },
1193         .answer_raw = &.{
1194             0x0c, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1195             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0x00, 0xf8, 0x46, 0xc7, 0x9a, 0xb6,
1196             0x09, 0x88, 0x31, 0x79, 0x07, 0xca, 0x1f, 0xff, 0xdf, 0xda, 0x36, 0xa8,
1197             0x28, 0x46, 0xf1, 0x64, 0x14, 0x5f, 0x0e, 0xcd, 0x7f, 0x7e, 0xda, 0xa1,
1198             0x28, 0x83, 0x67, 0x67, 0x01, 0x76, 0x5f, 0x53, 0x61, 0xaa, 0x85, 0x00,
1199             0x10, 0xe6, 0xd5, 0xec, 0x04, 0xa2, 0x4e, 0x0e, 0xa0, 0xfb, 0x48, 0x3e,
1200             0xa7, 0x25, 0xe0, 0xe8, 0x75, 0xc9, 0x0e, 0xa3, 0x67, 0x80, 0x26,
1201         },
1202         .relayed_answer_raw = &.{
1203             0x0c, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1204             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0x00, 0xf8, 0x46, 0xc7, 0x9a, 0xb6,
1205             0x09, 0x88, 0x31, 0x79, 0x07, 0xca, 0x1f, 0xff, 0xdf, 0xda, 0x36, 0xa8,
1206             0x28, 0x46, 0xf1, 0x64, 0x14, 0x5f, 0x0e, 0xcd, 0x7f, 0x7e, 0xda, 0xa1,
1207             0x28, 0x83, 0x67, 0x67, 0x01, 0x76, 0x5f, 0x53, 0x61, 0xaa, 0x85, 0x00,
1208             0x10, 0xe6, 0xd5, 0xec, 0x04, 0xa2, 0x4e, 0x0e, 0xa0, 0xfb, 0x48, 0x3e,
1209             0xa7, 0x25, 0xe0, 0xe8, 0x75, 0xc9, 0x0e, 0xa3, 0x67, 0x80, 0x26,
1210         },
1211         .answer_proof_raw = &.{
1212             0x0f, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1213             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0x00, 0x16, 0x5a, 0x63, 0xac, 0xdc,
1214             0x94, 0xb7, 0x3a, 0xb6, 0x95, 0xa6, 0xab, 0xb7, 0x05, 0xf7, 0x9b, 0x3b,
1215             0x78, 0xe5, 0x7f, 0x40, 0xb8, 0xec, 0xaa, 0x7a, 0x8a, 0xb1, 0xed, 0x06,
1216             0x21, 0x47, 0x03, 0x71, 0xa1, 0x0b, 0xa9, 0x64, 0x7d, 0x35, 0x75, 0x91,
1217             0xc0, 0xb3, 0x5b, 0x36, 0xef, 0x41, 0x17, 0x71, 0xfb, 0x7b, 0x3f, 0xdf,
1218             0x4f, 0x36, 0x29, 0xd0, 0x53, 0xce, 0xd2, 0x22, 0x5c, 0xc9, 0xfb, 0xb6,
1219             0x74, 0xb9, 0x13, 0x54, 0x62, 0x15, 0x85, 0xc9, 0x47, 0x56, 0x3b, 0x7f,
1220             0x62, 0x74, 0x2d, 0xa5, 0x06, 0x53, 0xc0, 0x89, 0x10, 0xac, 0x40, 0xb6,
1221             0x85, 0xfc, 0x37, 0x23, 0x4f, 0xa5, 0x0c,
1222         },
1223         .relayed_answer_proof_raw = &.{
1224             0x0f, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1225             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0x00, 0x16, 0x5a, 0x63, 0xac, 0xdc,
1226             0x94, 0xb7, 0x3a, 0xb6, 0x95, 0xa6, 0xab, 0xb7, 0x05, 0xf7, 0x9b, 0x3b,
1227             0x78, 0xe5, 0x7f, 0x40, 0xb8, 0xec, 0xaa, 0x7a, 0x8a, 0xb1, 0xed, 0x06,
1228             0x21, 0x47, 0x03, 0x71, 0xa1, 0x0b, 0xa9, 0x64, 0x7d, 0x35, 0x75, 0x91,
1229             0xc0, 0xb3, 0x5b, 0x36, 0xef, 0x41, 0x17, 0x71, 0xfb, 0x7b, 0x3f, 0xdf,
1230             0x4f, 0x36, 0x29, 0xd0, 0x53, 0xce, 0xd2, 0x22, 0x5c, 0xc9, 0xfb, 0xb6,
1231             0x74, 0xb9, 0x13, 0x54, 0x62, 0x15, 0x85, 0xc9, 0x47, 0x56, 0x3b, 0x7f,
1232             0x62, 0x74, 0x2d, 0xa5, 0x06, 0x53, 0xc0, 0x89, 0x10, 0xac, 0x40, 0xb6,
1233             0x85, 0xfc, 0x37, 0x23, 0x4f, 0xa5, 0x0c,
1234         },
1235         .keepalive_clock = 1700000229,
1236         .keepalive_raw = &.{
1237             0x0c, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1238             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xfa, 0xff,
1239         },
1240         .relayed_keepalive_raw = &.{
1241             0x0c, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1242             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xfa, 0xff,
1243         },
1244         .keepalive_answer_raw = &.{
1245             0x0c, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1246             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xfa, 0xfe,
1247         },
1248         .relayed_keepalive_answer_raw = &.{
1249             0x0c, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1250             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xfa, 0xfe,
1251         },
1252         .close_clock = 1700000230,
1253         .close_iv = &.{
1254             0x4c, 0x58, 0x2e, 0xa2, 0x08, 0xe5, 0xf1, 0xd5, 0xa9, 0x83, 0x6b, 0x31,
1255             0x4f, 0xa3, 0xaf, 0x01,
1256         },
1257         .close_raw = &.{
1258             0x0c, 0x00, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1259             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xfc, 0x4c, 0x58, 0x2e, 0xa2, 0x08,
1260             0xe5, 0xf1, 0xd5, 0xa9, 0x83, 0x6b, 0x31, 0x4f, 0xa3, 0xaf, 0x01, 0x1d,
1261             0x5b, 0xcd, 0xa3, 0xe8, 0xe8, 0xb7, 0x5e, 0x5d, 0x70, 0x99, 0x38, 0x1c,
1262             0x71, 0x1b, 0xff, 0xed, 0x8b, 0x49, 0xf7, 0xc3, 0x44, 0xfc, 0x0c, 0x4e,
1263             0x96, 0x7f, 0x86, 0x37, 0x8a, 0x41, 0xf5, 0x64, 0x5f, 0x92, 0xea, 0xaf,
1264             0xc5, 0x2a, 0x45, 0xe8, 0xa1, 0x8c, 0xd3, 0x76, 0x23, 0xcd, 0x17, 0xdf,
1265             0x47, 0xda, 0x0a, 0xce, 0x99, 0xe2, 0xe3, 0x83, 0x8a, 0xf7, 0x34, 0x71,
1266             0x35, 0x1e, 0xf0,
1267         },
1268         .relayed_close_raw = &.{
1269             0x0c, 0x01, 0xec, 0x81, 0xd4, 0x5c, 0xc2, 0x89, 0xcd, 0xba, 0xc3, 0x78,
1270             0x65, 0x4a, 0x15, 0x78, 0x2f, 0x38, 0xfc, 0x4c, 0x58, 0x2e, 0xa2, 0x08,
1271             0xe5, 0xf1, 0xd5, 0xa9, 0x83, 0x6b, 0x31, 0x4f, 0xa3, 0xaf, 0x01, 0x1d,
1272             0x5b, 0xcd, 0xa3, 0xe8, 0xe8, 0xb7, 0x5e, 0x5d, 0x70, 0x99, 0x38, 0x1c,
1273             0x71, 0x1b, 0xff, 0xed, 0x8b, 0x49, 0xf7, 0xc3, 0x44, 0xfc, 0x0c, 0x4e,
1274             0x96, 0x7f, 0x86, 0x37, 0x8a, 0x41, 0xf5, 0x64, 0x5f, 0x92, 0xea, 0xaf,
1275             0xc5, 0x2a, 0x45, 0xe8, 0xa1, 0x8c, 0xd3, 0x76, 0x23, 0xcd, 0x17, 0xdf,
1276             0x47, 0xda, 0x0a, 0xce, 0x99, 0xe2, 0xe3, 0x83, 0x8a, 0xf7, 0x34, 0x71,
1277             0x35, 0x1e, 0xf0,
1278         },
1279     },
1280 };