lib/reticulum/src/conformance/destination.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 destination records hold one vector per destination name with the hashes
  6 //! the reference derived from it, and the vectors come from
  7 //! Reticulum@1.5.0 RNS/Destination.py:96,116,141.
  8 //! The layouts of the identity keys come from RNS/Identity.py:730,737.
  9 //! The random bytes behind each encryption key come from
 10 //! RNS/Cryptography/X25519.py:127.
 11 //! The random bytes behind each signing key come from
 12 //! RNS/Cryptography/Ed25519.py:41.
 13 
 14 pub const Vector = struct {
 15     name: []const u8,
 16     destination_type: u8,
 17     key_entropy: []const u8,
 18     private_key: []const u8,
 19     public_key: []const u8,
 20     identity_hash: []const u8,
 21     app_name: []const u8,
 22     aspects: []const []const u8,
 23     expanded_name: []const u8,
 24     name_hash: []const u8,
 25     destination_hash: []const u8,
 26 };
 27 
 28 pub const vectors: []const Vector = &.{
 29     .{
 30         .name = "single-no-aspects",
 31         .destination_type = 0,
 32         .key_entropy = &.{
 33             0x07, 0x93, 0x86, 0xf4, 0xb4, 0xa0, 0x71, 0x32, 0x24, 0x32, 0xeb, 0xe0,
 34             0xd4, 0x4c, 0xe2, 0x80, 0x4b, 0x26, 0x89, 0xac, 0xaa, 0xbb, 0x66, 0x5f,
 35             0xb2, 0xee, 0xcb, 0xb0, 0xfc, 0x80, 0x52, 0x1a, 0xb3, 0x75, 0x8d, 0xd0,
 36             0x28, 0x75, 0x04, 0x45, 0x22, 0x74, 0x19, 0xe2, 0xcc, 0xa6, 0x67, 0x90,
 37             0xc9, 0xca, 0xf1, 0x59, 0x01, 0x27, 0x8b, 0x2b, 0xf3, 0xda, 0x46, 0xdb,
 38             0x4c, 0x4d, 0x2b, 0x63,
 39         },
 40         .private_key = &.{
 41             0x00, 0x93, 0x86, 0xf4, 0xb4, 0xa0, 0x71, 0x32, 0x24, 0x32, 0xeb, 0xe0,
 42             0xd4, 0x4c, 0xe2, 0x80, 0x4b, 0x26, 0x89, 0xac, 0xaa, 0xbb, 0x66, 0x5f,
 43             0xb2, 0xee, 0xcb, 0xb0, 0xfc, 0x80, 0x52, 0x5a, 0xb3, 0x75, 0x8d, 0xd0,
 44             0x28, 0x75, 0x04, 0x45, 0x22, 0x74, 0x19, 0xe2, 0xcc, 0xa6, 0x67, 0x90,
 45             0xc9, 0xca, 0xf1, 0x59, 0x01, 0x27, 0x8b, 0x2b, 0xf3, 0xda, 0x46, 0xdb,
 46             0x4c, 0x4d, 0x2b, 0x63,
 47         },
 48         .public_key = &.{
 49             0x3f, 0x25, 0x78, 0x40, 0x8b, 0xe6, 0xb8, 0x5c, 0x95, 0xb6, 0xac, 0xaf,
 50             0xfd, 0x09, 0xd4, 0x5e, 0x0a, 0x14, 0x0e, 0xac, 0x3d, 0xa4, 0x6d, 0x2b,
 51             0x38, 0xcc, 0xb4, 0x9f, 0x90, 0xe3, 0xe9, 0x5a, 0xd3, 0xee, 0xe5, 0x38,
 52             0xf0, 0xa8, 0xf9, 0x67, 0x11, 0x45, 0x61, 0x35, 0xf0, 0xd6, 0xc5, 0x21,
 53             0x3d, 0x0b, 0xb3, 0xc9, 0x4b, 0x3c, 0x27, 0x5b, 0x43, 0x17, 0x20, 0x98,
 54             0xdb, 0x0c, 0xcb, 0xc6,
 55         },
 56         .identity_hash = &.{
 57             0xc9, 0xaa, 0xe7, 0x3e, 0x06, 0x12, 0xe4, 0x08, 0xab, 0x5c, 0x78, 0x99,
 58             0xb3, 0x9f, 0x10, 0xbc,
 59         },
 60         .app_name = &.{ 0x74, 0x69, 0x6e, 0x79 },
 61         .aspects = &.{},
 62         .expanded_name = &.{
 63             0x74, 0x69, 0x6e, 0x79, 0x2e, 0x63, 0x39, 0x61, 0x61, 0x65, 0x37, 0x33,
 64             0x65, 0x30, 0x36, 0x31, 0x32, 0x65, 0x34, 0x30, 0x38, 0x61, 0x62, 0x35,
 65             0x63, 0x37, 0x38, 0x39, 0x39, 0x62, 0x33, 0x39, 0x66, 0x31, 0x30, 0x62,
 66             0x63,
 67         },
 68         .name_hash = &.{
 69             0x89, 0x50, 0xab, 0xfd, 0xa7, 0xb7, 0x27, 0x63, 0x07, 0x60,
 70         },
 71         .destination_hash = &.{
 72             0x5e, 0x09, 0x5d, 0x53, 0x3f, 0x3d, 0x86, 0x0f, 0xfc, 0xdf, 0x7c, 0x53,
 73             0xce, 0x9b, 0x78, 0x43,
 74         },
 75     },
 76     .{
 77         .name = "group-one-aspect",
 78         .destination_type = 1,
 79         .key_entropy = &.{},
 80         .private_key = &.{},
 81         .public_key = &.{},
 82         .identity_hash = &.{},
 83         .app_name = &.{ 0x74, 0x69, 0x6e, 0x79 },
 84         .aspects = &.{
 85             &.{ 0x67, 0x72, 0x6f, 0x75, 0x70 },
 86         },
 87         .expanded_name = &.{
 88             0x74, 0x69, 0x6e, 0x79, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
 89         },
 90         .name_hash = &.{
 91             0x70, 0xc2, 0x77, 0x49, 0x0c, 0xc8, 0xcb, 0x97, 0x89, 0x4e,
 92         },
 93         .destination_hash = &.{
 94             0x2f, 0x43, 0xa1, 0x80, 0xb8, 0xd9, 0x17, 0xde, 0x69, 0x19, 0x84, 0x6e,
 95             0x04, 0x60, 0xed, 0xe5,
 96         },
 97     },
 98     .{
 99         .name = "plain-three-aspects",
100         .destination_type = 2,
101         .key_entropy = &.{},
102         .private_key = &.{},
103         .public_key = &.{},
104         .identity_hash = &.{},
105         .app_name = &.{ 0x74, 0x69, 0x6e, 0x79 },
106         .aspects = &.{
107             &.{ 0x6f, 0x6e, 0x65 },
108             &.{ 0x74, 0x77, 0x6f },
109             &.{ 0x74, 0x68, 0x72, 0x65, 0x65 },
110         },
111         .expanded_name = &.{
112             0x74, 0x69, 0x6e, 0x79, 0x2e, 0x6f, 0x6e, 0x65, 0x2e, 0x74, 0x77, 0x6f,
113             0x2e, 0x74, 0x68, 0x72, 0x65, 0x65,
114         },
115         .name_hash = &.{
116             0xd6, 0x48, 0xa8, 0x40, 0x4a, 0xbf, 0x63, 0x41, 0xea, 0xbd,
117         },
118         .destination_hash = &.{
119             0x62, 0x44, 0xec, 0xca, 0x97, 0x37, 0xb9, 0x95, 0x7f, 0x0b, 0x0d, 0x2e,
120             0xdd, 0x49, 0x5a, 0x49,
121         },
122     },
123     .{
124         .name = "single-unicode-aspect",
125         .destination_type = 0,
126         .key_entropy = &.{
127             0x22, 0x42, 0x7f, 0x71, 0x36, 0x25, 0xc8, 0x35, 0xb5, 0x5f, 0xb6, 0xfa,
128             0xc9, 0x6a, 0xc5, 0x6e, 0x94, 0x0c, 0xc8, 0x18, 0xba, 0x6d, 0xc0, 0xb7,
129             0xd9, 0xc4, 0x4a, 0x3f, 0xb3, 0x52, 0xf1, 0xa8, 0x5c, 0x27, 0xa4, 0xdc,
130             0x7f, 0x8b, 0x66, 0xe3, 0xed, 0x8f, 0x37, 0x7c, 0x75, 0x16, 0x96, 0xb8,
131             0x64, 0x83, 0x52, 0x3e, 0x2e, 0xc4, 0x4c, 0x47, 0x00, 0xe7, 0x5f, 0x76,
132             0xbe, 0xb1, 0xaa, 0xba,
133         },
134         .private_key = &.{
135             0x20, 0x42, 0x7f, 0x71, 0x36, 0x25, 0xc8, 0x35, 0xb5, 0x5f, 0xb6, 0xfa,
136             0xc9, 0x6a, 0xc5, 0x6e, 0x94, 0x0c, 0xc8, 0x18, 0xba, 0x6d, 0xc0, 0xb7,
137             0xd9, 0xc4, 0x4a, 0x3f, 0xb3, 0x52, 0xf1, 0x68, 0x5c, 0x27, 0xa4, 0xdc,
138             0x7f, 0x8b, 0x66, 0xe3, 0xed, 0x8f, 0x37, 0x7c, 0x75, 0x16, 0x96, 0xb8,
139             0x64, 0x83, 0x52, 0x3e, 0x2e, 0xc4, 0x4c, 0x47, 0x00, 0xe7, 0x5f, 0x76,
140             0xbe, 0xb1, 0xaa, 0xba,
141         },
142         .public_key = &.{
143             0x6c, 0xb1, 0x4b, 0xc0, 0x4c, 0xd5, 0x70, 0x2e, 0x1c, 0x15, 0x15, 0x90,
144             0x35, 0x1a, 0x24, 0xfa, 0x60, 0xd8, 0x2e, 0x26, 0x75, 0xc8, 0x39, 0xdd,
145             0x46, 0xc8, 0x80, 0x04, 0x88, 0xeb, 0xbd, 0x52, 0x70, 0x57, 0x2b, 0x25,
146             0x87, 0x45, 0xe7, 0x6b, 0xbf, 0xed, 0x0a, 0x1d, 0xd4, 0x2e, 0x47, 0x8b,
147             0x06, 0x31, 0x73, 0xd4, 0xac, 0xab, 0x17, 0x24, 0xcb, 0x27, 0xe7, 0x5a,
148             0x3f, 0xc7, 0xec, 0x28,
149         },
150         .identity_hash = &.{
151             0xaa, 0xf9, 0x13, 0xf7, 0x94, 0x1a, 0x51, 0xb3, 0xbf, 0x49, 0x10, 0xf7,
152             0xb3, 0x65, 0x9c, 0x05,
153         },
154         .app_name = &.{ 0x74, 0x69, 0x6e, 0x79 },
155         .aspects = &.{
156             &.{ 0x6d, 0xc3, 0xa9, 0x73, 0x61, 0x6e, 0x67, 0x65 },
157         },
158         .expanded_name = &.{
159             0x74, 0x69, 0x6e, 0x79, 0x2e, 0x6d, 0xc3, 0xa9, 0x73, 0x61, 0x6e, 0x67,
160             0x65, 0x2e, 0x61, 0x61, 0x66, 0x39, 0x31, 0x33, 0x66, 0x37, 0x39, 0x34,
161             0x31, 0x61, 0x35, 0x31, 0x62, 0x33, 0x62, 0x66, 0x34, 0x39, 0x31, 0x30,
162             0x66, 0x37, 0x62, 0x33, 0x36, 0x35, 0x39, 0x63, 0x30, 0x35,
163         },
164         .name_hash = &.{
165             0x25, 0x4e, 0x7d, 0xf6, 0x2d, 0xe8, 0x10, 0x38, 0x03, 0xd6,
166         },
167         .destination_hash = &.{
168             0x17, 0x84, 0xd0, 0xc2, 0xd2, 0x1e, 0x13, 0x8a, 0x50, 0x64, 0x70, 0x01,
169             0x17, 0x34, 0x7a, 0x63,
170         },
171     },
172     .{
173         .name = "plain-path-request",
174         .destination_type = 2,
175         .key_entropy = &.{},
176         .private_key = &.{},
177         .public_key = &.{},
178         .identity_hash = &.{},
179         .app_name = &.{
180             0x72, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
181         },
182         .aspects = &.{
183             &.{ 0x70, 0x61, 0x74, 0x68 },
184             &.{ 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74 },
185         },
186         .expanded_name = &.{
187             0x72, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
188             0x2e, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
189             0x74,
190         },
191         .name_hash = &.{
192             0x79, 0x26, 0xbb, 0xe7, 0xdd, 0x7f, 0x9a, 0xba, 0x88, 0xb0,
193         },
194         .destination_hash = &.{
195             0x6b, 0x9f, 0x66, 0x01, 0x4d, 0x98, 0x53, 0xfa, 0xab, 0x22, 0x0f, 0xba,
196             0x47, 0xd0, 0x27, 0x61,
197         },
198     },
199 };