@imagina-build/ias-cli 0.0.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +406 -2
  2. package/bin/ias.mjs +19 -0
  3. package/package.json +31 -12
  4. package/schema/ias.schema.json +535 -0
  5. package/shared/credentials/cms.mjs +105 -0
  6. package/shared/credentials/index.mjs +354 -0
  7. package/shared/credentials/plist.mjs +93 -0
  8. package/shared/vault/approvers-vectors.mjs +188 -0
  9. package/shared/vault/approvers.mjs +234 -0
  10. package/shared/vault/index.mjs +583 -0
  11. package/shared/vault/plaintext.mjs +115 -0
  12. package/shared/vault/test-vectors/ias-vault-2/approvers.json +2122 -0
  13. package/shared/vault/test-vectors/ias-vault-2/keys.json +43 -0
  14. package/shared/vault/test-vectors/ias-vault-2/malformed.json +1739 -0
  15. package/shared/vault/test-vectors/ias-vault-2/plaintexts.json +149 -0
  16. package/shared/vault/test-vectors/ias-vault-2/runners.json +580 -0
  17. package/shared/vault/test-vectors/ias-vault-2/sealed.json +567 -0
  18. package/shared/vault/test-vectors/ias-vault-2/tampered.json +989 -0
  19. package/shared/vault/test-vectors/keys.json +31 -0
  20. package/shared/vault/test-vectors/malformed.json +1341 -0
  21. package/shared/vault/test-vectors/sealed.json +384 -0
  22. package/shared/vault/test-vectors/tampered.json +610 -0
  23. package/shared/vault/vectors.mjs +720 -0
  24. package/src/cli.mjs +231 -0
  25. package/src/commands/apps/index.mjs +36 -0
  26. package/src/commands/auth/index.mjs +141 -0
  27. package/src/commands/build/follow.mjs +168 -0
  28. package/src/commands/build/index.mjs +110 -0
  29. package/src/commands/build/local.mjs +69 -0
  30. package/src/commands/build/profile.mjs +50 -0
  31. package/src/commands/build/source.mjs +71 -0
  32. package/src/commands/builds/index.mjs +148 -0
  33. package/src/commands/credentials/index.mjs +256 -0
  34. package/src/commands/credentials/material.mjs +159 -0
  35. package/src/commands/devices/asc.mjs +116 -0
  36. package/src/commands/devices/index.mjs +65 -0
  37. package/src/commands/devices/sync.mjs +223 -0
  38. package/src/commands/dist/index.mjs +108 -0
  39. package/src/commands/doctor/index.mjs +158 -0
  40. package/src/commands/env/index.mjs +163 -0
  41. package/src/commands/github/index.mjs +53 -0
  42. package/src/commands/init/index.mjs +224 -0
  43. package/src/commands/migrate/credentials.mjs +213 -0
  44. package/src/commands/migrate/eas-cli.mjs +153 -0
  45. package/src/commands/migrate/index.mjs +73 -0
  46. package/src/commands/migrate/numbers.mjs +85 -0
  47. package/src/commands/migrate/profiles.mjs +174 -0
  48. package/src/commands/migrate/project.mjs +249 -0
  49. package/src/commands/migrate/survey.mjs +205 -0
  50. package/src/commands/migrate/variables.mjs +183 -0
  51. package/src/commands/push/index.mjs +334 -0
  52. package/src/commands/sdk/index.mjs +81 -0
  53. package/src/commands/submit/index.mjs +85 -0
  54. package/src/commands/update/index.mjs +526 -0
  55. package/src/commands/usage/index.mjs +57 -0
  56. package/src/commands/vault/approvers.mjs +129 -0
  57. package/src/commands/vault/index.mjs +159 -0
  58. package/src/commands/vault/runners.mjs +115 -0
  59. package/src/commands/vault/team.mjs +111 -0
  60. package/src/commands/version/index.mjs +71 -0
  61. package/src/commands/webhooks/index.mjs +104 -0
  62. package/src/commands/workflows/index.mjs +88 -0
  63. package/src/config.mjs +261 -0
  64. package/src/dist.mjs +99 -0
  65. package/src/errors.mjs +158 -0
  66. package/src/http.mjs +45 -0
  67. package/src/legacy.mjs +73 -0
  68. package/src/manage.mjs +120 -0
  69. package/src/ota.mjs +122 -0
  70. package/src/output.mjs +36 -0
  71. package/src/process.mjs +45 -0
  72. package/src/schema.mjs +131 -0
  73. package/src/sdk.mjs +114 -0
  74. package/src/secret-input.mjs +27 -0
  75. package/src/secrets.mjs +37 -0
  76. package/src/shared.mjs +5 -0
  77. package/src/team-vault.mjs +152 -0
  78. package/src/token-store.mjs +93 -0
@@ -0,0 +1,580 @@
1
+ {
2
+ "format": "ias-vault-2",
3
+ "description": "The list of authorised runners (ias-vault-2/runners), signed by the team: lists are good ones, each with its signedText and the runners it gives; malformed must be rejected with code (validateRunnerList); tampered are well formed but their signature does not verify.",
4
+ "warning": "Test vectors: the keys are public. Never use them for anything else.",
5
+ "lists": [
6
+ {
7
+ "name": "first-runner",
8
+ "description": "runner-a is authorised: the first list.",
9
+ "runners": [
10
+ "runner-a"
11
+ ],
12
+ "signedText": "ias-vault-2\nrunners\nkj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y\n1\n1\nOHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk\nA8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg",
13
+ "list": {
14
+ "format": "ias-vault-2/runners",
15
+ "serial": 1,
16
+ "runners": [
17
+ {
18
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
19
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
20
+ }
21
+ ],
22
+ "signature": {
23
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
24
+ "sig": "YQzYGFt1x5UHn8aZWTAlut3hEInOZYfYBKmgjQO9Zt3ZWBDEBJVhmH9TWYFcXKA2-fjQFJSj4wxDwXYK3sxiBg"
25
+ }
26
+ },
27
+ "verified": {
28
+ "serial": 1,
29
+ "runners": [
30
+ {
31
+ "kind": "runner",
32
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
33
+ "publicKey": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
34
+ }
35
+ ]
36
+ }
37
+ },
38
+ {
39
+ "name": "second-runner",
40
+ "description": "runner-b is authorised too.",
41
+ "runners": [
42
+ "runner-a",
43
+ "runner-b"
44
+ ],
45
+ "signedText": "ias-vault-2\nrunners\nkj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y\n2\n2\nOHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk\nA8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg\n3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg\nBwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w",
46
+ "list": {
47
+ "format": "ias-vault-2/runners",
48
+ "serial": 2,
49
+ "runners": [
50
+ {
51
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
52
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
53
+ },
54
+ {
55
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
56
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
57
+ }
58
+ ],
59
+ "signature": {
60
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
61
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
62
+ }
63
+ },
64
+ "verified": {
65
+ "serial": 2,
66
+ "runners": [
67
+ {
68
+ "kind": "runner",
69
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
70
+ "publicKey": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
71
+ },
72
+ {
73
+ "kind": "runner",
74
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
75
+ "publicKey": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
76
+ }
77
+ ]
78
+ }
79
+ },
80
+ {
81
+ "name": "runner-a-revoked",
82
+ "description": "runner-a is revoked: the list goes on without it, with a higher serial.",
83
+ "runners": [
84
+ "runner-b"
85
+ ],
86
+ "signedText": "ias-vault-2\nrunners\nkj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y\n3\n1\n3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg\nBwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w",
87
+ "list": {
88
+ "format": "ias-vault-2/runners",
89
+ "serial": 3,
90
+ "runners": [
91
+ {
92
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
93
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
94
+ }
95
+ ],
96
+ "signature": {
97
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
98
+ "sig": "79Xf0_23NjH0VepTXxmTdo3ccWpaGqPJUalnh_Laf3DW_9xE_Awk0KFcLubNeT6BXFnJQZUXFQ0pRzEo4kG5AA"
99
+ }
100
+ },
101
+ "verified": {
102
+ "serial": 3,
103
+ "runners": [
104
+ {
105
+ "kind": "runner",
106
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
107
+ "publicKey": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
108
+ }
109
+ ]
110
+ }
111
+ },
112
+ {
113
+ "name": "empty",
114
+ "description": "Every runner revoked: an empty list is still signed.",
115
+ "runners": [],
116
+ "signedText": "ias-vault-2\nrunners\nkj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y\n4\n0",
117
+ "list": {
118
+ "format": "ias-vault-2/runners",
119
+ "serial": 4,
120
+ "runners": [],
121
+ "signature": {
122
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
123
+ "sig": "YOhCGLORJCM7rp6dUuGlxe6F0vSDC8AsCRYR9XaOhjXzQhfrar1Tkiscy0p4JFM1UdCpuYqXY-gI0ljbK6bNCQ"
124
+ }
125
+ },
126
+ "verified": {
127
+ "serial": 4,
128
+ "runners": []
129
+ }
130
+ }
131
+ ],
132
+ "malformed": [
133
+ {
134
+ "name": "array",
135
+ "code": "runners",
136
+ "description": "A list instead of an object.",
137
+ "list": [
138
+ {
139
+ "format": "ias-vault-2/runners",
140
+ "serial": 2,
141
+ "runners": [
142
+ {
143
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
144
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
145
+ },
146
+ {
147
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
148
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
149
+ }
150
+ ],
151
+ "signature": {
152
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
153
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
154
+ }
155
+ }
156
+ ]
157
+ },
158
+ {
159
+ "name": "other-format",
160
+ "code": "runners.format",
161
+ "description": "Another format.",
162
+ "list": {
163
+ "format": "ias-vault-1/runners",
164
+ "serial": 2,
165
+ "runners": [
166
+ {
167
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
168
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
169
+ },
170
+ {
171
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
172
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
173
+ }
174
+ ],
175
+ "signature": {
176
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
177
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
178
+ }
179
+ }
180
+ },
181
+ {
182
+ "name": "missing-signature",
183
+ "code": "runners.fields",
184
+ "description": "No signature.",
185
+ "list": {
186
+ "format": "ias-vault-2/runners",
187
+ "serial": 2,
188
+ "runners": [
189
+ {
190
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
191
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
192
+ },
193
+ {
194
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
195
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
196
+ }
197
+ ]
198
+ }
199
+ },
200
+ {
201
+ "name": "extra-field",
202
+ "code": "runners.fields",
203
+ "description": "A field besides format, serial, runners and signature.",
204
+ "list": {
205
+ "format": "ias-vault-2/runners",
206
+ "serial": 2,
207
+ "runners": [
208
+ {
209
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
210
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
211
+ },
212
+ {
213
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
214
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
215
+ }
216
+ ],
217
+ "signature": {
218
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
219
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
220
+ },
221
+ "issued_at": "2026-10-21T10:00:00+00:00"
222
+ }
223
+ },
224
+ {
225
+ "name": "serial-zero",
226
+ "code": "runners.serial",
227
+ "description": "Serial 0.",
228
+ "list": {
229
+ "format": "ias-vault-2/runners",
230
+ "serial": 0,
231
+ "runners": [
232
+ {
233
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
234
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
235
+ },
236
+ {
237
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
238
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
239
+ }
240
+ ],
241
+ "signature": {
242
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
243
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
244
+ }
245
+ }
246
+ },
247
+ {
248
+ "name": "serial-string",
249
+ "code": "runners.serial",
250
+ "description": "The serial as a string.",
251
+ "list": {
252
+ "format": "ias-vault-2/runners",
253
+ "serial": "2",
254
+ "runners": [
255
+ {
256
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
257
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
258
+ },
259
+ {
260
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
261
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
262
+ }
263
+ ],
264
+ "signature": {
265
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
266
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
267
+ }
268
+ }
269
+ },
270
+ {
271
+ "name": "runners-object",
272
+ "code": "runners.list",
273
+ "description": "The runners as an object keyed by kid.",
274
+ "list": {
275
+ "format": "ias-vault-2/runners",
276
+ "serial": 2,
277
+ "runners": {
278
+ "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk": {
279
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
280
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
281
+ },
282
+ "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg": {
283
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
284
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
285
+ }
286
+ },
287
+ "signature": {
288
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
289
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
290
+ }
291
+ }
292
+ },
293
+ {
294
+ "name": "runner-name-field",
295
+ "code": "runner",
296
+ "description": "A runner with a name: names are the server's, the list is only keys.",
297
+ "list": {
298
+ "format": "ias-vault-2/runners",
299
+ "serial": 2,
300
+ "runners": [
301
+ {
302
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
303
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg",
304
+ "name": "Mac mini"
305
+ },
306
+ {
307
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
308
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
309
+ }
310
+ ],
311
+ "signature": {
312
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
313
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
314
+ }
315
+ }
316
+ },
317
+ {
318
+ "name": "runner-kid-padded",
319
+ "code": "runner.kid",
320
+ "description": "Padding after a kid.",
321
+ "list": {
322
+ "format": "ias-vault-2/runners",
323
+ "serial": 2,
324
+ "runners": [
325
+ {
326
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk=",
327
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
328
+ },
329
+ {
330
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
331
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
332
+ }
333
+ ],
334
+ "signature": {
335
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
336
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
337
+ }
338
+ }
339
+ },
340
+ {
341
+ "name": "runner-public-key-31-bytes",
342
+ "code": "runner.public_key",
343
+ "description": "A 31-byte public key.",
344
+ "list": {
345
+ "format": "ias-vault-2/runners",
346
+ "serial": 2,
347
+ "runners": [
348
+ {
349
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
350
+ "public_key": "xjW5UZFcS-hrXHMY2-UsEVynLntQ7YajZXlZ2OERSA"
351
+ },
352
+ {
353
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
354
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
355
+ }
356
+ ],
357
+ "signature": {
358
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
359
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
360
+ }
361
+ }
362
+ },
363
+ {
364
+ "name": "runner-kid-of-other-key",
365
+ "code": "runner.key",
366
+ "description": "The kid of runner-b beside the public key of runner-a.",
367
+ "list": {
368
+ "format": "ias-vault-2/runners",
369
+ "serial": 2,
370
+ "runners": [
371
+ {
372
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
373
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
374
+ },
375
+ {
376
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
377
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
378
+ }
379
+ ],
380
+ "signature": {
381
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
382
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
383
+ }
384
+ }
385
+ },
386
+ {
387
+ "name": "runner-duplicate",
388
+ "code": "runner.duplicate",
389
+ "description": "The same runner twice.",
390
+ "list": {
391
+ "format": "ias-vault-2/runners",
392
+ "serial": 2,
393
+ "runners": [
394
+ {
395
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
396
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
397
+ },
398
+ {
399
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
400
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
401
+ },
402
+ {
403
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
404
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
405
+ }
406
+ ],
407
+ "signature": {
408
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
409
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
410
+ }
411
+ }
412
+ },
413
+ {
414
+ "name": "signature-sig-63-bytes",
415
+ "code": "signature.sig",
416
+ "description": "A 63-byte signature.",
417
+ "list": {
418
+ "format": "ias-vault-2/runners",
419
+ "serial": 2,
420
+ "runners": [
421
+ {
422
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
423
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
424
+ },
425
+ {
426
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
427
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
428
+ }
429
+ ],
430
+ "signature": {
431
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
432
+ "sig": "URLAGoY4ldNyhmp__BmkBpHO42mYbROMiskP15bmHjJqJZYgucE_bgoy5uZjYKfd6eFv1hPXz-nZQwtYq8QN"
433
+ }
434
+ }
435
+ },
436
+ {
437
+ "name": "signed-by-another-key",
438
+ "code": "signature.unknown",
439
+ "description": "The list signed by another team's key with its own kid (options.signingKid is the team's).",
440
+ "list": {
441
+ "format": "ias-vault-2/runners",
442
+ "serial": 2,
443
+ "runners": [
444
+ {
445
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
446
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
447
+ },
448
+ {
449
+ "kid": "bZCIXUHuqtQwwwX8BID-dN94qaZhvJTcx-q_xkV7qsA",
450
+ "public_key": "6L8x6hVnLNSV2ApoexpOCCc2CxTRdBR23DF26x0JpBc"
451
+ }
452
+ ],
453
+ "signature": {
454
+ "kid": "GS0AJ9GoNBRiq6UFVPBnRxjovYsP5dJDy9Klz1AguIc",
455
+ "sig": "R9v4irzU5AfiKfFPHFXr0iTaWA4NnntY8bvZ9e600m6xJYWQqlf_rwt2RmYMvwPgXrobCiEgldvn8yyFp43HBg"
456
+ }
457
+ },
458
+ "options": {
459
+ "signingKid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y"
460
+ }
461
+ }
462
+ ],
463
+ "tampered": [
464
+ {
465
+ "name": "runner-added-by-the-server",
466
+ "description": "outsider added by the server without signing: the CLI must never seal for it.",
467
+ "error": "signature-invalid",
468
+ "list": {
469
+ "format": "ias-vault-2/runners",
470
+ "serial": 2,
471
+ "runners": [
472
+ {
473
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
474
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
475
+ },
476
+ {
477
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
478
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
479
+ },
480
+ {
481
+ "kid": "bZCIXUHuqtQwwwX8BID-dN94qaZhvJTcx-q_xkV7qsA",
482
+ "public_key": "6L8x6hVnLNSV2ApoexpOCCc2CxTRdBR23DF26x0JpBc"
483
+ }
484
+ ],
485
+ "signature": {
486
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
487
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
488
+ }
489
+ }
490
+ },
491
+ {
492
+ "name": "runner-removed-without-signing",
493
+ "description": "runner-b removed without signing.",
494
+ "error": "signature-invalid",
495
+ "list": {
496
+ "format": "ias-vault-2/runners",
497
+ "serial": 2,
498
+ "runners": [
499
+ {
500
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
501
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
502
+ }
503
+ ],
504
+ "signature": {
505
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
506
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
507
+ }
508
+ }
509
+ },
510
+ {
511
+ "name": "serial-raised",
512
+ "description": "The serial raised without signing.",
513
+ "error": "signature-invalid",
514
+ "list": {
515
+ "format": "ias-vault-2/runners",
516
+ "serial": 9,
517
+ "runners": [
518
+ {
519
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
520
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
521
+ },
522
+ {
523
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
524
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
525
+ }
526
+ ],
527
+ "signature": {
528
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
529
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
530
+ }
531
+ }
532
+ },
533
+ {
534
+ "name": "runners-reordered",
535
+ "description": "The two runners in the other order.",
536
+ "error": "signature-invalid",
537
+ "list": {
538
+ "format": "ias-vault-2/runners",
539
+ "serial": 2,
540
+ "runners": [
541
+ {
542
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
543
+ "public_key": "BwByHcoYIaRS9Afd6N766tpi_jc3J0eeHDQkOfGbF1w"
544
+ },
545
+ {
546
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
547
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
548
+ }
549
+ ],
550
+ "signature": {
551
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
552
+ "sig": "FVESwBqGOJXTcoZqf_wZpAaRzuNpmG0TjIrJD9eW5h4yaiWWILnBP24KMubmY2Cn3enhb9YT18_p2UMLWKvEDQ"
553
+ }
554
+ }
555
+ },
556
+ {
557
+ "name": "forged-under-the-team-kid",
558
+ "description": "The list with outsider signed by another key under the team's kid.",
559
+ "error": "signature-invalid",
560
+ "list": {
561
+ "format": "ias-vault-2/runners",
562
+ "serial": 3,
563
+ "runners": [
564
+ {
565
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
566
+ "public_key": "A8Y1uVGRXEvoa1xzGNvlLBFcpy57UO2Go2V5WdjhEUg"
567
+ },
568
+ {
569
+ "kid": "bZCIXUHuqtQwwwX8BID-dN94qaZhvJTcx-q_xkV7qsA",
570
+ "public_key": "6L8x6hVnLNSV2ApoexpOCCc2CxTRdBR23DF26x0JpBc"
571
+ }
572
+ ],
573
+ "signature": {
574
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
575
+ "sig": "WRCBQmslkYwq_MVXHOIO9T7S8F7Yu7grzpWINg8JRbp0qrla-T09d4iM9vfFKCryjxuWWUJJZ5acF9uTqht3Aw"
576
+ }
577
+ }
578
+ }
579
+ ]
580
+ }