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 };