@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,989 @@
1
+ {
2
+ "format": "ias-vault-2",
3
+ "description": "Well-formed envelopes that were altered. The server accepts their shape with its options (server: requiredKids and signingKid), because it does not verify signatures; opening them with key, checking the signature against the team key, must fail with error. Most fail at the signature (signature-invalid); the ones signed again by the team show that the encryption still binds everything.",
4
+ "warning": "Test vectors: the keys are public. Never use them for anything else.",
5
+ "base": "sealed.json, keystore-for-recovery-and-runner-a",
6
+ "server": {
7
+ "formats": [
8
+ "ias-vault-2"
9
+ ],
10
+ "requiredKids": [
11
+ "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0"
12
+ ],
13
+ "signingKid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y"
14
+ },
15
+ "cases": [
16
+ {
17
+ "name": "ciphertext-bit",
18
+ "description": "One bit of the first byte of data.ct flipped.",
19
+ "key": "runner-a",
20
+ "error": "signature-invalid",
21
+ "envelope": {
22
+ "format": "ias-vault-2",
23
+ "credential": {
24
+ "id": "00000000-0000-4000-8000-00000000e001",
25
+ "type": "android_upload_keystore",
26
+ "version": 1
27
+ },
28
+ "data": {
29
+ "iv": "0XaZsTpE_agQ_g89",
30
+ "ct": "tc6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
31
+ },
32
+ "recipients": [
33
+ {
34
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
35
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
36
+ "iv": "KvzUT7AfW9mgBjjq",
37
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
38
+ },
39
+ {
40
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
41
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
42
+ "iv": "a3oFvAfEAGJRkhAv",
43
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
44
+ }
45
+ ],
46
+ "signature": {
47
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
48
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
49
+ }
50
+ }
51
+ },
52
+ {
53
+ "name": "tag-bit",
54
+ "description": "One bit of the tag (the last byte of data.ct) flipped.",
55
+ "key": "runner-a",
56
+ "error": "signature-invalid",
57
+ "envelope": {
58
+ "format": "ias-vault-2",
59
+ "credential": {
60
+ "id": "00000000-0000-4000-8000-00000000e001",
61
+ "type": "android_upload_keystore",
62
+ "version": 1
63
+ },
64
+ "data": {
65
+ "iv": "0XaZsTpE_agQ_g89",
66
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdU"
67
+ },
68
+ "recipients": [
69
+ {
70
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
71
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
72
+ "iv": "KvzUT7AfW9mgBjjq",
73
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
74
+ },
75
+ {
76
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
77
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
78
+ "iv": "a3oFvAfEAGJRkhAv",
79
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
80
+ }
81
+ ],
82
+ "signature": {
83
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
84
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
85
+ }
86
+ }
87
+ },
88
+ {
89
+ "name": "data-iv",
90
+ "description": "Another data IV.",
91
+ "key": "runner-a",
92
+ "error": "signature-invalid",
93
+ "envelope": {
94
+ "format": "ias-vault-2",
95
+ "credential": {
96
+ "id": "00000000-0000-4000-8000-00000000e001",
97
+ "type": "android_upload_keystore",
98
+ "version": 1
99
+ },
100
+ "data": {
101
+ "iv": "aIYw8ssHLd2uul4c",
102
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
103
+ },
104
+ "recipients": [
105
+ {
106
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
107
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
108
+ "iv": "KvzUT7AfW9mgBjjq",
109
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
110
+ },
111
+ {
112
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
113
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
114
+ "iv": "a3oFvAfEAGJRkhAv",
115
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
116
+ }
117
+ ],
118
+ "signature": {
119
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
120
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
121
+ }
122
+ }
123
+ },
124
+ {
125
+ "name": "ciphertext-of-other-envelope",
126
+ "description": "The data of the other envelope of the same credential, under the wraps of this one.",
127
+ "key": "runner-a",
128
+ "error": "signature-invalid",
129
+ "envelope": {
130
+ "format": "ias-vault-2",
131
+ "credential": {
132
+ "id": "00000000-0000-4000-8000-00000000e001",
133
+ "type": "android_upload_keystore",
134
+ "version": 1
135
+ },
136
+ "data": {
137
+ "iv": "Ca5vCsNsCKAHKWb4",
138
+ "ct": "1ClCW8J8qQWj6sqcW8ksrPJUiaDmSakIQ4S-XvIqXZHNfWT5w_iyId3M49crCpA0YMz4PpF6JjWEDnRYffA7Ti_p75DM1qL8VoF1RttCPa3fVXUBa_gGXKgyG2fgD1AIAXtOCN_yCq4zXBMOzZKj9pjR2baIVeWbGO4E1_5LlDL81iBzAq7pp7-mSZxndXZyv6Ix5UTb5wIWxzFRSOcQBhbTWqhONPEQDNJ_uCbp0vEPMAxfPywGd60WyWEIg2nxMuV7A8-i3ojhB6HFTVuRqQHxNZlsoowePgYHBus7DHSFOEeeMHqV1ZQSkmdFt-FnHw63fZazrQ1hs6Z3Da0FxfDQ1NZphyq-M-y8mz-6_e9O-tEyMQ"
139
+ },
140
+ "recipients": [
141
+ {
142
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
143
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
144
+ "iv": "KvzUT7AfW9mgBjjq",
145
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
146
+ },
147
+ {
148
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
149
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
150
+ "iv": "a3oFvAfEAGJRkhAv",
151
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
152
+ }
153
+ ],
154
+ "signature": {
155
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
156
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
157
+ }
158
+ }
159
+ },
160
+ {
161
+ "name": "credential-version",
162
+ "description": "The version raised from 1 to 2.",
163
+ "key": "runner-a",
164
+ "error": "signature-invalid",
165
+ "envelope": {
166
+ "format": "ias-vault-2",
167
+ "credential": {
168
+ "id": "00000000-0000-4000-8000-00000000e001",
169
+ "type": "android_upload_keystore",
170
+ "version": 2
171
+ },
172
+ "data": {
173
+ "iv": "0XaZsTpE_agQ_g89",
174
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
175
+ },
176
+ "recipients": [
177
+ {
178
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
179
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
180
+ "iv": "KvzUT7AfW9mgBjjq",
181
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
182
+ },
183
+ {
184
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
185
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
186
+ "iv": "a3oFvAfEAGJRkhAv",
187
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
188
+ }
189
+ ],
190
+ "signature": {
191
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
192
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
193
+ }
194
+ }
195
+ },
196
+ {
197
+ "name": "credential-id",
198
+ "description": "Another credential id.",
199
+ "key": "runner-a",
200
+ "error": "signature-invalid",
201
+ "envelope": {
202
+ "format": "ias-vault-2",
203
+ "credential": {
204
+ "id": "00000000-0000-4000-8000-0000000000ff",
205
+ "type": "android_upload_keystore",
206
+ "version": 1
207
+ },
208
+ "data": {
209
+ "iv": "0XaZsTpE_agQ_g89",
210
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
211
+ },
212
+ "recipients": [
213
+ {
214
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
215
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
216
+ "iv": "KvzUT7AfW9mgBjjq",
217
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
218
+ },
219
+ {
220
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
221
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
222
+ "iv": "a3oFvAfEAGJRkhAv",
223
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
224
+ }
225
+ ],
226
+ "signature": {
227
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
228
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
229
+ }
230
+ }
231
+ },
232
+ {
233
+ "name": "credential-type",
234
+ "description": "Another credential type.",
235
+ "key": "runner-a",
236
+ "error": "signature-invalid",
237
+ "envelope": {
238
+ "format": "ias-vault-2",
239
+ "credential": {
240
+ "id": "00000000-0000-4000-8000-00000000e001",
241
+ "type": "google_service_account",
242
+ "version": 1
243
+ },
244
+ "data": {
245
+ "iv": "0XaZsTpE_agQ_g89",
246
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
247
+ },
248
+ "recipients": [
249
+ {
250
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
251
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
252
+ "iv": "KvzUT7AfW9mgBjjq",
253
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
254
+ },
255
+ {
256
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
257
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
258
+ "iv": "a3oFvAfEAGJRkhAv",
259
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
260
+ }
261
+ ],
262
+ "signature": {
263
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
264
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
265
+ }
266
+ }
267
+ },
268
+ {
269
+ "name": "kids-swapped",
270
+ "description": "The kids of the recovery and runner-a wraps exchanged.",
271
+ "key": "runner-a",
272
+ "error": "signature-invalid",
273
+ "envelope": {
274
+ "format": "ias-vault-2",
275
+ "credential": {
276
+ "id": "00000000-0000-4000-8000-00000000e001",
277
+ "type": "android_upload_keystore",
278
+ "version": 1
279
+ },
280
+ "data": {
281
+ "iv": "0XaZsTpE_agQ_g89",
282
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
283
+ },
284
+ "recipients": [
285
+ {
286
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
287
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
288
+ "iv": "KvzUT7AfW9mgBjjq",
289
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
290
+ },
291
+ {
292
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
293
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
294
+ "iv": "a3oFvAfEAGJRkhAv",
295
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
296
+ }
297
+ ],
298
+ "signature": {
299
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
300
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
301
+ }
302
+ }
303
+ },
304
+ {
305
+ "name": "wraps-reordered",
306
+ "description": "The two wraps, intact, in the other order: each still opens for its key, but the signature covers the order of the list.",
307
+ "key": "runner-a",
308
+ "error": "signature-invalid",
309
+ "envelope": {
310
+ "format": "ias-vault-2",
311
+ "credential": {
312
+ "id": "00000000-0000-4000-8000-00000000e001",
313
+ "type": "android_upload_keystore",
314
+ "version": 1
315
+ },
316
+ "data": {
317
+ "iv": "0XaZsTpE_agQ_g89",
318
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
319
+ },
320
+ "recipients": [
321
+ {
322
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
323
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
324
+ "iv": "a3oFvAfEAGJRkhAv",
325
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
326
+ },
327
+ {
328
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
329
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
330
+ "iv": "KvzUT7AfW9mgBjjq",
331
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
332
+ }
333
+ ],
334
+ "signature": {
335
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
336
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
337
+ }
338
+ }
339
+ },
340
+ {
341
+ "name": "wrap-of-other-recipient",
342
+ "description": "The recovery wrap copied under the kid of runner-a, in place of its own.",
343
+ "key": "runner-a",
344
+ "error": "signature-invalid",
345
+ "envelope": {
346
+ "format": "ias-vault-2",
347
+ "credential": {
348
+ "id": "00000000-0000-4000-8000-00000000e001",
349
+ "type": "android_upload_keystore",
350
+ "version": 1
351
+ },
352
+ "data": {
353
+ "iv": "0XaZsTpE_agQ_g89",
354
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
355
+ },
356
+ "recipients": [
357
+ {
358
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
359
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
360
+ "iv": "KvzUT7AfW9mgBjjq",
361
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
362
+ },
363
+ {
364
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
365
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
366
+ "iv": "KvzUT7AfW9mgBjjq",
367
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
368
+ }
369
+ ],
370
+ "signature": {
371
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
372
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
373
+ }
374
+ }
375
+ },
376
+ {
377
+ "name": "wrap-of-other-envelope",
378
+ "description": "The runner-a wrap of another envelope of the same credential in place of its own.",
379
+ "key": "runner-a",
380
+ "error": "signature-invalid",
381
+ "envelope": {
382
+ "format": "ias-vault-2",
383
+ "credential": {
384
+ "id": "00000000-0000-4000-8000-00000000e001",
385
+ "type": "android_upload_keystore",
386
+ "version": 1
387
+ },
388
+ "data": {
389
+ "iv": "0XaZsTpE_agQ_g89",
390
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
391
+ },
392
+ "recipients": [
393
+ {
394
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
395
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
396
+ "iv": "KvzUT7AfW9mgBjjq",
397
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
398
+ },
399
+ {
400
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
401
+ "epk": "1HC14Kn2H4kYohhULZ4TT-tf3_sBYPm_92kcBjLf7jc",
402
+ "iv": "ofubjoZ7H7iFMoY5",
403
+ "wk": "vuYYZhPOBY-BWfx2Qg-w5UWVjYL-yvrnNpzYX-srZowzLYqzJVwz01TP_LCDzfdb"
404
+ }
405
+ ],
406
+ "signature": {
407
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
408
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
409
+ }
410
+ }
411
+ },
412
+ {
413
+ "name": "wrapped-key-bit",
414
+ "description": "One bit of the runner-a wrapped key flipped.",
415
+ "key": "runner-a",
416
+ "error": "signature-invalid",
417
+ "envelope": {
418
+ "format": "ias-vault-2",
419
+ "credential": {
420
+ "id": "00000000-0000-4000-8000-00000000e001",
421
+ "type": "android_upload_keystore",
422
+ "version": 1
423
+ },
424
+ "data": {
425
+ "iv": "0XaZsTpE_agQ_g89",
426
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
427
+ },
428
+ "recipients": [
429
+ {
430
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
431
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
432
+ "iv": "KvzUT7AfW9mgBjjq",
433
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
434
+ },
435
+ {
436
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
437
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
438
+ "iv": "a3oFvAfEAGJRkhAv",
439
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt4"
440
+ }
441
+ ],
442
+ "signature": {
443
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
444
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
445
+ }
446
+ }
447
+ },
448
+ {
449
+ "name": "wrap-iv",
450
+ "description": "Another IV in the runner-a wrap.",
451
+ "key": "runner-a",
452
+ "error": "signature-invalid",
453
+ "envelope": {
454
+ "format": "ias-vault-2",
455
+ "credential": {
456
+ "id": "00000000-0000-4000-8000-00000000e001",
457
+ "type": "android_upload_keystore",
458
+ "version": 1
459
+ },
460
+ "data": {
461
+ "iv": "0XaZsTpE_agQ_g89",
462
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
463
+ },
464
+ "recipients": [
465
+ {
466
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
467
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
468
+ "iv": "KvzUT7AfW9mgBjjq",
469
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
470
+ },
471
+ {
472
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
473
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
474
+ "iv": "62G_rmBYqipLic6s",
475
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
476
+ }
477
+ ],
478
+ "signature": {
479
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
480
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
481
+ }
482
+ }
483
+ },
484
+ {
485
+ "name": "ephemeral-key",
486
+ "description": "Another (valid) ephemeral public key in the runner-a wrap.",
487
+ "key": "runner-a",
488
+ "error": "signature-invalid",
489
+ "envelope": {
490
+ "format": "ias-vault-2",
491
+ "credential": {
492
+ "id": "00000000-0000-4000-8000-00000000e001",
493
+ "type": "android_upload_keystore",
494
+ "version": 1
495
+ },
496
+ "data": {
497
+ "iv": "0XaZsTpE_agQ_g89",
498
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
499
+ },
500
+ "recipients": [
501
+ {
502
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
503
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
504
+ "iv": "KvzUT7AfW9mgBjjq",
505
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
506
+ },
507
+ {
508
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
509
+ "epk": "6L8x6hVnLNSV2ApoexpOCCc2CxTRdBR23DF26x0JpBc",
510
+ "iv": "a3oFvAfEAGJRkhAv",
511
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
512
+ }
513
+ ],
514
+ "signature": {
515
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
516
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
517
+ }
518
+ }
519
+ },
520
+ {
521
+ "name": "wrap-removed-by-the-server",
522
+ "description": "The runner-a wrap removed without signing again, as a server would do it: the recovery key no longer trusts the envelope. Removing a wrap is ias vault revoke, which signs again (sealed.json, revoke-runner-a).",
523
+ "key": "recovery",
524
+ "error": "signature-invalid",
525
+ "envelope": {
526
+ "format": "ias-vault-2",
527
+ "credential": {
528
+ "id": "00000000-0000-4000-8000-00000000e001",
529
+ "type": "android_upload_keystore",
530
+ "version": 1
531
+ },
532
+ "data": {
533
+ "iv": "0XaZsTpE_agQ_g89",
534
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
535
+ },
536
+ "recipients": [
537
+ {
538
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
539
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
540
+ "iv": "KvzUT7AfW9mgBjjq",
541
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
542
+ }
543
+ ],
544
+ "signature": {
545
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
546
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
547
+ }
548
+ }
549
+ },
550
+ {
551
+ "name": "wrap-added-by-the-server",
552
+ "description": "A wrap for outsider added without signing (a copy of runner-a's under its kid), as a server that wanted to grant itself would do: the signature no longer verifies.",
553
+ "key": "outsider",
554
+ "error": "signature-invalid",
555
+ "envelope": {
556
+ "format": "ias-vault-2",
557
+ "credential": {
558
+ "id": "00000000-0000-4000-8000-00000000e001",
559
+ "type": "android_upload_keystore",
560
+ "version": 1
561
+ },
562
+ "data": {
563
+ "iv": "0XaZsTpE_agQ_g89",
564
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
565
+ },
566
+ "recipients": [
567
+ {
568
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
569
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
570
+ "iv": "KvzUT7AfW9mgBjjq",
571
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
572
+ },
573
+ {
574
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
575
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
576
+ "iv": "a3oFvAfEAGJRkhAv",
577
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
578
+ },
579
+ {
580
+ "kid": "bZCIXUHuqtQwwwX8BID-dN94qaZhvJTcx-q_xkV7qsA",
581
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
582
+ "iv": "a3oFvAfEAGJRkhAv",
583
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
584
+ }
585
+ ],
586
+ "signature": {
587
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
588
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
589
+ }
590
+ }
591
+ },
592
+ {
593
+ "name": "signature-bit",
594
+ "description": "One bit of the signature flipped.",
595
+ "key": "runner-a",
596
+ "error": "signature-invalid",
597
+ "envelope": {
598
+ "format": "ias-vault-2",
599
+ "credential": {
600
+ "id": "00000000-0000-4000-8000-00000000e001",
601
+ "type": "android_upload_keystore",
602
+ "version": 1
603
+ },
604
+ "data": {
605
+ "iv": "0XaZsTpE_agQ_g89",
606
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
607
+ },
608
+ "recipients": [
609
+ {
610
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
611
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
612
+ "iv": "KvzUT7AfW9mgBjjq",
613
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
614
+ },
615
+ {
616
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
617
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
618
+ "iv": "a3oFvAfEAGJRkhAv",
619
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
620
+ }
621
+ ],
622
+ "signature": {
623
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
624
+ "sig": "da2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
625
+ }
626
+ }
627
+ },
628
+ {
629
+ "name": "signature-of-other-envelope",
630
+ "description": "The signature of the other envelope of the same credential.",
631
+ "key": "runner-a",
632
+ "error": "signature-invalid",
633
+ "envelope": {
634
+ "format": "ias-vault-2",
635
+ "credential": {
636
+ "id": "00000000-0000-4000-8000-00000000e001",
637
+ "type": "android_upload_keystore",
638
+ "version": 1
639
+ },
640
+ "data": {
641
+ "iv": "0XaZsTpE_agQ_g89",
642
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
643
+ },
644
+ "recipients": [
645
+ {
646
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
647
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
648
+ "iv": "KvzUT7AfW9mgBjjq",
649
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
650
+ },
651
+ {
652
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
653
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
654
+ "iv": "a3oFvAfEAGJRkhAv",
655
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
656
+ }
657
+ ],
658
+ "signature": {
659
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
660
+ "sig": "4c4ok7vsZOjVFgh-DEVH2Fr5kwhQaw4bFm9udEAVSoz_TeN6uieA1dNa2_HKz-iu1hlqh1IIVcatcJ_PFtFWCQ"
661
+ }
662
+ }
663
+ },
664
+ {
665
+ "name": "forged-under-the-team-kid",
666
+ "description": "The first case signed by another key but with the kid of the team: the server sees its registered kid and takes it; the runner checks the signature and refuses it.",
667
+ "key": "runner-a",
668
+ "error": "signature-invalid",
669
+ "envelope": {
670
+ "format": "ias-vault-2",
671
+ "credential": {
672
+ "id": "00000000-0000-4000-8000-00000000e001",
673
+ "type": "android_upload_keystore",
674
+ "version": 1
675
+ },
676
+ "data": {
677
+ "iv": "0XaZsTpE_agQ_g89",
678
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
679
+ },
680
+ "recipients": [
681
+ {
682
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
683
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
684
+ "iv": "KvzUT7AfW9mgBjjq",
685
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
686
+ },
687
+ {
688
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
689
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
690
+ "iv": "a3oFvAfEAGJRkhAv",
691
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
692
+ }
693
+ ],
694
+ "signature": {
695
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
696
+ "sig": "doSCNcyV9-7W_aA1QYq1nFh4mwnT7Z65PsR4ICX48OU8ppXSMINn4KFPRkpCgJGOJW51RPelw4EwkeG_22_8CQ"
697
+ }
698
+ }
699
+ },
700
+ {
701
+ "name": "sealed-by-someone-else",
702
+ "description": "docs/technical/vault.md §11: someone with the public keys (a compromised server) seals its own keystore for the recovery key and runner-a, under the id of the first case, and signs it with its own key under the team's kid. Well formed, sealed for registered keys, the registered signing kid: only the runner's check of the signature stops it.",
703
+ "key": "runner-a",
704
+ "error": "signature-invalid",
705
+ "envelope": {
706
+ "format": "ias-vault-2",
707
+ "credential": {
708
+ "id": "00000000-0000-4000-8000-00000000e001",
709
+ "type": "android_upload_keystore",
710
+ "version": 1
711
+ },
712
+ "data": {
713
+ "iv": "igY71rJPPtJ96XIR",
714
+ "ct": "4veIm3-L9aIcF6Xk0v7mO3nxj6SOEW30fTtv_Ori57XH4iVW9OPTjQ8Pb23Pgz8oW8lGjxUDmEf33kBykj9bppdFNYWIPWoRo6T81DKvLjX-jlU-5opFWJ4wc-CR0hHYjSf66GUmjJgv8dE9osrrlw2uDyq8qxA3n2VYzg_uyywX9GnpOxtbWWcRo8x8O0l0KvcCifYGT9-UM1PcQxPTFZ49VwLFmwMiNwVzkfVIps7OppxTBdwrh-fM5ngldFfgoC_M9F7p0-cepU8pN_LRAPWimLsRg5XWcwm60_CfdxNFw6o_HcDdh9q3bYzQrtRFlW8oOLwu26p7AB7mxZxd4J2fpEekMc83Cu46q6GNe1GYTcnlQ5n52QHQyMMehwBDfA"
715
+ },
716
+ "recipients": [
717
+ {
718
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
719
+ "epk": "p1-VmAYm70r8ZCuPbFALzvuv6MCSTKrIbrGqUDmetyY",
720
+ "iv": "Bm-OTRdDZaSRrret",
721
+ "wk": "_xSrRzRhrCYdAPqdvYjDjLiweJnE48YLsigIO9171NskK421cT1OiQ6Tb4LL4EXB"
722
+ },
723
+ {
724
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
725
+ "epk": "Lfi1uEmEsv_BOLfo7HiY6Fsos85zsg4lW378WX-EVyg",
726
+ "iv": "eFKVHZji9a2CEegJ",
727
+ "wk": "Ji09_OwZT9GVILaCbsfwGO5OSukD3omfaxGdHB-iom-ZJcyJC8KyMJCXoJkT6hTO"
728
+ }
729
+ ],
730
+ "signature": {
731
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
732
+ "sig": "hFE2T18U0GtBcYcjo8dfEY9pu7KFgoVgJ7RHyuTdvyyqpXsZVxB9thk7PkOA6Mehpp-ks1i9pCc-G6-Cq-5VCw"
733
+ }
734
+ }
735
+ },
736
+ {
737
+ "name": "signed-again-after-version-change",
738
+ "description": "The version raised and the envelope signed again by the team (a bug, or the team key in the wrong hands): the signature verifies, and every wrap still refuses another version.",
739
+ "key": "runner-a",
740
+ "error": "unwrap-failed",
741
+ "envelope": {
742
+ "format": "ias-vault-2",
743
+ "credential": {
744
+ "id": "00000000-0000-4000-8000-00000000e001",
745
+ "type": "android_upload_keystore",
746
+ "version": 2
747
+ },
748
+ "data": {
749
+ "iv": "0XaZsTpE_agQ_g89",
750
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
751
+ },
752
+ "recipients": [
753
+ {
754
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
755
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
756
+ "iv": "KvzUT7AfW9mgBjjq",
757
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
758
+ },
759
+ {
760
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
761
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
762
+ "iv": "a3oFvAfEAGJRkhAv",
763
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
764
+ }
765
+ ],
766
+ "signature": {
767
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
768
+ "sig": "Xdy6_mpTFuKl1kvWFo99tzuuXbMV4P46diSE0VzrQgWKoLmH4mdnVARUJIvW3P1aLn-g2rGyLIav4Yt7t9mhDQ"
769
+ }
770
+ }
771
+ },
772
+ {
773
+ "name": "signed-again-after-ciphertext-bit",
774
+ "description": "One bit of data.ct flipped and the envelope signed again by the team: the data does not authenticate.",
775
+ "key": "runner-a",
776
+ "error": "decrypt-failed",
777
+ "envelope": {
778
+ "format": "ias-vault-2",
779
+ "credential": {
780
+ "id": "00000000-0000-4000-8000-00000000e001",
781
+ "type": "android_upload_keystore",
782
+ "version": 1
783
+ },
784
+ "data": {
785
+ "iv": "0XaZsTpE_agQ_g89",
786
+ "ct": "tc6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
787
+ },
788
+ "recipients": [
789
+ {
790
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
791
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
792
+ "iv": "KvzUT7AfW9mgBjjq",
793
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
794
+ },
795
+ {
796
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
797
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
798
+ "iv": "a3oFvAfEAGJRkhAv",
799
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
800
+ }
801
+ ],
802
+ "signature": {
803
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
804
+ "sig": "yAc6wAZPtq6KMVGmX4tU50hsSxhVjHRW3d8L1uUjsTSMVd38FnkkL2p0jzo2Yr485NgmZ2YnAASeGDDelNTdAA"
805
+ }
806
+ }
807
+ },
808
+ {
809
+ "name": "signed-again-with-wrap-of-other-envelope",
810
+ "description": "The runner-a wrap of another envelope, signed again by the team: it opens, but its data key does not open this data.",
811
+ "key": "runner-a",
812
+ "error": "decrypt-failed",
813
+ "envelope": {
814
+ "format": "ias-vault-2",
815
+ "credential": {
816
+ "id": "00000000-0000-4000-8000-00000000e001",
817
+ "type": "android_upload_keystore",
818
+ "version": 1
819
+ },
820
+ "data": {
821
+ "iv": "0XaZsTpE_agQ_g89",
822
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
823
+ },
824
+ "recipients": [
825
+ {
826
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
827
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
828
+ "iv": "KvzUT7AfW9mgBjjq",
829
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
830
+ },
831
+ {
832
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
833
+ "epk": "1HC14Kn2H4kYohhULZ4TT-tf3_sBYPm_92kcBjLf7jc",
834
+ "iv": "ofubjoZ7H7iFMoY5",
835
+ "wk": "vuYYZhPOBY-BWfx2Qg-w5UWVjYL-yvrnNpzYX-srZowzLYqzJVwz01TP_LCDzfdb"
836
+ }
837
+ ],
838
+ "signature": {
839
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
840
+ "sig": "mu3gNtuA5cmoWoQ3rWv8_RRGqUPmeq_ndaEXvB0VrXXoMOzxKodIVEFSu6UBZf44fhu90j1IK_Tzpl3mkzWfBQ"
841
+ }
842
+ }
843
+ },
844
+ {
845
+ "name": "signed-again-with-kids-swapped",
846
+ "description": "The kids of the two wraps exchanged and signed again by the team.",
847
+ "key": "runner-a",
848
+ "error": "unwrap-failed",
849
+ "envelope": {
850
+ "format": "ias-vault-2",
851
+ "credential": {
852
+ "id": "00000000-0000-4000-8000-00000000e001",
853
+ "type": "android_upload_keystore",
854
+ "version": 1
855
+ },
856
+ "data": {
857
+ "iv": "0XaZsTpE_agQ_g89",
858
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
859
+ },
860
+ "recipients": [
861
+ {
862
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
863
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
864
+ "iv": "KvzUT7AfW9mgBjjq",
865
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
866
+ },
867
+ {
868
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
869
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
870
+ "iv": "a3oFvAfEAGJRkhAv",
871
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
872
+ }
873
+ ],
874
+ "signature": {
875
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
876
+ "sig": "dvM1pRRiUWL8GbTpzwMbJxZ2lj-ZZgd2jBMaqur4-GSzMSSQ2B0OHz1bpOnj3Aoe8sYhs7mIGsYlBTYkdHQsCA"
877
+ }
878
+ }
879
+ },
880
+ {
881
+ "name": "signed-again-with-ephemeral-key-zero",
882
+ "description": "An all-zero ephemeral key in the runner-a wrap, signed again by the team.",
883
+ "key": "runner-a",
884
+ "error": "unwrap-failed",
885
+ "envelope": {
886
+ "format": "ias-vault-2",
887
+ "credential": {
888
+ "id": "00000000-0000-4000-8000-00000000e001",
889
+ "type": "android_upload_keystore",
890
+ "version": 1
891
+ },
892
+ "data": {
893
+ "iv": "0XaZsTpE_agQ_g89",
894
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
895
+ },
896
+ "recipients": [
897
+ {
898
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
899
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
900
+ "iv": "KvzUT7AfW9mgBjjq",
901
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
902
+ },
903
+ {
904
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
905
+ "epk": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
906
+ "iv": "a3oFvAfEAGJRkhAv",
907
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
908
+ }
909
+ ],
910
+ "signature": {
911
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
912
+ "sig": "JZCMpFqw7-0ViOglBL7ut7avA-QPPGGz_4cPdLe2a1wLZyyvj-2NDMdQrBfZ-9Q88GmqNx0L1ryG9NXJqT-DCA"
913
+ }
914
+ }
915
+ },
916
+ {
917
+ "name": "outsider",
918
+ "description": "A valid envelope opened with a key that is not a recipient.",
919
+ "key": "outsider",
920
+ "error": "not-a-recipient",
921
+ "envelope": {
922
+ "format": "ias-vault-2",
923
+ "credential": {
924
+ "id": "00000000-0000-4000-8000-00000000e001",
925
+ "type": "android_upload_keystore",
926
+ "version": 1
927
+ },
928
+ "data": {
929
+ "iv": "0XaZsTpE_agQ_g89",
930
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
931
+ },
932
+ "recipients": [
933
+ {
934
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
935
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
936
+ "iv": "KvzUT7AfW9mgBjjq",
937
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
938
+ },
939
+ {
940
+ "kid": "OHeCFPD25tPd2DRaYj34dS7DLtio-1gUq_-NYsYmqNk",
941
+ "epk": "7N6B-jhSAl4t6tyP8fR7g81VIEwoTKvAKOUNRAPgcVA",
942
+ "iv": "a3oFvAfEAGJRkhAv",
943
+ "wk": "4DTOiTVkxA-YeV1uSdtsvBg3jAfroWp_18xfZ_H0OJYo6lpE0Hc5fWryZ7WUaQt5"
944
+ }
945
+ ],
946
+ "signature": {
947
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
948
+ "sig": "dK2mO7LMMxGnQnj9DEldMNEOHJfYmtekHod-bQZXX9JTD-Ftulri6Ssiq9qo1v9UW8bLNqCnB6b6kljngq22Bg"
949
+ }
950
+ }
951
+ },
952
+ {
953
+ "name": "revoked-runner-a",
954
+ "description": "runner-a after its revocation (sealed.json, revoke-runner-a).",
955
+ "key": "runner-a",
956
+ "error": "not-a-recipient",
957
+ "envelope": {
958
+ "format": "ias-vault-2",
959
+ "credential": {
960
+ "id": "00000000-0000-4000-8000-00000000e001",
961
+ "type": "android_upload_keystore",
962
+ "version": 1
963
+ },
964
+ "data": {
965
+ "iv": "0XaZsTpE_agQ_g89",
966
+ "ct": "tM6ENIdfVPy_YbVYoQ3C1YJTaYYwCrgMEros4BApV6mRDDyxIsFdmXiwH0r5wyK8P-LbbOMIJPM4izcB6ZSyhPwe6NeUP2wQxdKoMVf08fVvFR9ijdHbplTePWBE6myGyY0KefsmVH513JU5AtZ9FpYPH2sSlO_Jc-4oBBeoAoOAmvSff_hk7zp_7rwH4tEFsZWdQlwhV17sbYlb8H0XQV2m3SU1FjIYE_aYHUxEfq02DaY-Hh-MndhciUabSiorhrmhAFa0ZP1SiFtpEGI2iOduIRFZOrpDQeyVaaOULWIwTa155_2txN_t1V2mL5qJvhG7jr5N1J6_DQFjAdGI_9TYQYWdnPptw_w9LdQ"
967
+ },
968
+ "recipients": [
969
+ {
970
+ "kid": "gY6AuqT5ADs7vK-fmj9UEb5Gf6ZSdOLxT1mBWwD5hA0",
971
+ "epk": "f2gDGPbAdYQ9rJX5zaFwDjfCswRnjPGZN0iHNh4ifBU",
972
+ "iv": "KvzUT7AfW9mgBjjq",
973
+ "wk": "xeIt4rLJj3AIrN7KChMOdNOQS_ZZ5q4mcWbQeBn_3FXysWuT8zjwDhaT-c5VU3fd"
974
+ },
975
+ {
976
+ "kid": "3ZL6nCkm1BcKR1Nd5MqK3OMzPTijlc-wKtLHjIB-5hg",
977
+ "epk": "f70uUGZmE5VeaUBtSB8Z-NEyEoZFfx_kAll6XHwGCXc",
978
+ "iv": "mPcpYC89IJ9aekfA",
979
+ "wk": "C19eGc_bOsrmwy1xjVPYW6pGSM4Srw7r9M-OCbqgxHpuAGjrZSZJ7b24R66IHhrR"
980
+ }
981
+ ],
982
+ "signature": {
983
+ "kid": "kj5ytQ8v8H2A7tnrk0fVw6kOrYCNTqLXnqk1JcG104Y",
984
+ "sig": "kuvM6QtJTWpfQ9jUcWQbwCtA6Qt2LbPIwRT9I4XLYyqal8oV051ryZIgWX4fmd7hddBNIflmAgvxiAucR2eLBg"
985
+ }
986
+ }
987
+ }
988
+ ]
989
+ }