bud11_claims.v1.json (46451B)
1 { 2 "suite": "blossom_bud11_claims", 3 "contract_version": "1.0.0", 4 "vectors": [ 5 { 6 "id": "action-get", 7 "kind": "blossom.bud11.action.parse.valid", 8 "input": { "action": "get" }, 9 "expected": { "action": "get" } 10 }, 11 { 12 "id": "action-upload", 13 "kind": "blossom.bud11.action.parse.valid", 14 "input": { "action": "upload" }, 15 "expected": { "action": "upload" } 16 }, 17 { 18 "id": "action-list", 19 "kind": "blossom.bud11.action.parse.valid", 20 "input": { "action": "list" }, 21 "expected": { "action": "list" } 22 }, 23 { 24 "id": "action-delete", 25 "kind": "blossom.bud11.action.parse.valid", 26 "input": { "action": "delete" }, 27 "expected": { "action": "delete" } 28 }, 29 { 30 "id": "action-media", 31 "kind": "blossom.bud11.action.parse.valid", 32 "input": { "action": "media" }, 33 "expected": { "action": "media" } 34 }, 35 { 36 "id": "action-empty", 37 "kind": "blossom.bud11.action.parse.invalid", 38 "input": { "action": "" }, 39 "expected": { "error": "invalid_authorization_action" } 40 }, 41 { 42 "id": "action-uppercase", 43 "kind": "blossom.bud11.action.parse.invalid", 44 "input": { "action": "Upload" }, 45 "expected": { "error": "invalid_authorization_action" } 46 }, 47 { 48 "id": "action-leading-space", 49 "kind": "blossom.bud11.action.parse.invalid", 50 "input": { "action": " upload" }, 51 "expected": { "error": "invalid_authorization_action" } 52 }, 53 { 54 "id": "action-trailing-space", 55 "kind": "blossom.bud11.action.parse.invalid", 56 "input": { "action": "upload " }, 57 "expected": { "error": "invalid_authorization_action" } 58 }, 59 { 60 "id": "action-unknown", 61 "kind": "blossom.bud11.action.parse.invalid", 62 "input": { "action": "mirror" }, 63 "expected": { "error": "invalid_authorization_action" } 64 }, 65 { 66 "id": "domain-basic", 67 "kind": "blossom.bud11.server_domain.parse.valid", 68 "input": { "domain": "blossom.radroots.test" }, 69 "expected": { "domain": "blossom.radroots.test" } 70 }, 71 { 72 "id": "domain-localhost", 73 "kind": "blossom.bud11.server_domain.parse.valid", 74 "input": { "domain": "localhost" }, 75 "expected": { "domain": "localhost" } 76 }, 77 { 78 "id": "domain-hyphen-and-digit", 79 "kind": "blossom.bud11.server_domain.parse.valid", 80 "input": { "domain": "blob-2.example.test" }, 81 "expected": { "domain": "blob-2.example.test" } 82 }, 83 { 84 "id": "domain-canonical-ipv4", 85 "kind": "blossom.bud11.server_domain.parse.valid", 86 "input": { "domain": "127.0.0.1" }, 87 "expected": { "domain": "127.0.0.1" } 88 }, 89 { 90 "id": "domain-max-label", 91 "kind": "blossom.bud11.server_domain.parse.valid", 92 "input": { "domain": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.test" }, 93 "expected": { "domain": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.test" } 94 }, 95 { 96 "id": "domain-maximum-total-length", 97 "kind": "blossom.bud11.server_domain.parse.valid", 98 "input": { "domain": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" }, 99 "expected": { "domain": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" } 100 }, 101 { 102 "id": "domain-total-length-too-long", 103 "kind": "blossom.bud11.server_domain.parse.invalid", 104 "input": { "domain": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" }, 105 "expected": { "error": "invalid_authorization_server_domain" } 106 }, 107 { 108 "id": "domain-empty", 109 "kind": "blossom.bud11.server_domain.parse.invalid", 110 "input": { "domain": "" }, 111 "expected": { "error": "invalid_authorization_server_domain" } 112 }, 113 { 114 "id": "domain-uppercase", 115 "kind": "blossom.bud11.server_domain.parse.invalid", 116 "input": { "domain": "Blossom.Radroots.Test" }, 117 "expected": { "error": "invalid_authorization_server_domain" } 118 }, 119 { 120 "id": "domain-scheme", 121 "kind": "blossom.bud11.server_domain.parse.invalid", 122 "input": { "domain": "https://blossom.radroots.test" }, 123 "expected": { "error": "invalid_authorization_server_domain" } 124 }, 125 { 126 "id": "domain-port", 127 "kind": "blossom.bud11.server_domain.parse.invalid", 128 "input": { "domain": "blossom.radroots.test:443" }, 129 "expected": { "error": "invalid_authorization_server_domain" } 130 }, 131 { 132 "id": "domain-path", 133 "kind": "blossom.bud11.server_domain.parse.invalid", 134 "input": { "domain": "blossom.radroots.test/upload" }, 135 "expected": { "error": "invalid_authorization_server_domain" } 136 }, 137 { 138 "id": "domain-trailing-dot", 139 "kind": "blossom.bud11.server_domain.parse.invalid", 140 "input": { "domain": "blossom.radroots.test." }, 141 "expected": { "error": "invalid_authorization_server_domain" } 142 }, 143 { 144 "id": "domain-empty-label", 145 "kind": "blossom.bud11.server_domain.parse.invalid", 146 "input": { "domain": "blossom..test" }, 147 "expected": { "error": "invalid_authorization_server_domain" } 148 }, 149 { 150 "id": "domain-leading-hyphen", 151 "kind": "blossom.bud11.server_domain.parse.invalid", 152 "input": { "domain": "-blossom.radroots.test" }, 153 "expected": { "error": "invalid_authorization_server_domain" } 154 }, 155 { 156 "id": "domain-trailing-hyphen", 157 "kind": "blossom.bud11.server_domain.parse.invalid", 158 "input": { "domain": "blossom-.radroots.test" }, 159 "expected": { "error": "invalid_authorization_server_domain" } 160 }, 161 { 162 "id": "domain-underscore", 163 "kind": "blossom.bud11.server_domain.parse.invalid", 164 "input": { "domain": "blossom_server.radroots.test" }, 165 "expected": { "error": "invalid_authorization_server_domain" } 166 }, 167 { 168 "id": "domain-label-too-long", 169 "kind": "blossom.bud11.server_domain.parse.invalid", 170 "input": { "domain": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.test" }, 171 "expected": { "error": "invalid_authorization_server_domain" } 172 }, 173 { 174 "id": "domain-short-ipv4", 175 "kind": "blossom.bud11.server_domain.parse.invalid", 176 "input": { "domain": "127.1" }, 177 "expected": { "error": "invalid_authorization_server_domain" } 178 }, 179 { 180 "id": "domain-leading-zero-ipv4", 181 "kind": "blossom.bud11.server_domain.parse.invalid", 182 "input": { "domain": "127.00.0.1" }, 183 "expected": { "error": "invalid_authorization_server_domain" } 184 }, 185 { 186 "id": "domain-out-of-range-ipv4", 187 "kind": "blossom.bud11.server_domain.parse.invalid", 188 "input": { "domain": "256.0.0.1" }, 189 "expected": { "error": "invalid_authorization_server_domain" } 190 }, 191 { 192 "id": "content-upload", 193 "kind": "blossom.bud11.content.parse.valid", 194 "input": { "content": "Upload farm photo" }, 195 "expected": { "content": "Upload farm photo" } 196 }, 197 { 198 "id": "content-delete", 199 "kind": "blossom.bud11.content.parse.valid", 200 "input": { "content": "Delete old farm photo" }, 201 "expected": { "content": "Delete old farm photo" } 202 }, 203 { 204 "id": "content-unicode", 205 "kind": "blossom.bud11.content.parse.valid", 206 "input": { "content": "Téléverser la photo" }, 207 "expected": { "content": "Téléverser la photo" } 208 }, 209 { 210 "id": "content-punctuation", 211 "kind": "blossom.bud11.content.parse.valid", 212 "input": { "content": "Upload: photo #2!" }, 213 "expected": { "content": "Upload: photo #2!" } 214 }, 215 { 216 "id": "content-empty", 217 "kind": "blossom.bud11.content.parse.invalid", 218 "input": { "content": "" }, 219 "expected": { "error": "invalid_authorization_content" } 220 }, 221 { 222 "id": "content-space-only", 223 "kind": "blossom.bud11.content.parse.invalid", 224 "input": { "content": " " }, 225 "expected": { "error": "invalid_authorization_content" } 226 }, 227 { 228 "id": "content-leading-space", 229 "kind": "blossom.bud11.content.parse.invalid", 230 "input": { "content": " Upload farm photo" }, 231 "expected": { "error": "invalid_authorization_content" } 232 }, 233 { 234 "id": "content-trailing-space", 235 "kind": "blossom.bud11.content.parse.invalid", 236 "input": { "content": "Upload farm photo " }, 237 "expected": { "error": "invalid_authorization_content" } 238 }, 239 { 240 "id": "content-newline", 241 "kind": "blossom.bud11.content.parse.valid", 242 "input": { "content": "Upload\nphoto" }, 243 "expected": { "content": "Upload\nphoto" } 244 }, 245 { 246 "id": "content-tab", 247 "kind": "blossom.bud11.content.parse.valid", 248 "input": { "content": "Upload\tphoto" }, 249 "expected": { "content": "Upload\tphoto" } 250 }, 251 { 252 "id": "content-maximum-byte-length", 253 "kind": "blossom.bud11.content.parse.valid", 254 "input": { "content": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 255 "expected": { "content_byte_length": 4096 } 256 }, 257 { 258 "id": "content-byte-length-too-long", 259 "kind": "blossom.bud11.content.parse.invalid", 260 "input": { "content": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 261 "expected": { "error": "invalid_authorization_content" } 262 }, 263 { 264 "id": "content-control", 265 "kind": "blossom.bud11.content.parse.invalid", 266 "input": { "content": "Upload\u0000photo" }, 267 "expected": { "error": "invalid_authorization_content" } 268 }, 269 { 270 "id": "claim-parse-upload", 271 "kind": "blossom.bud11.claim.parse.valid", 272 "input": { 273 "content": "Upload farm photo", 274 "created_at": 1999999990, 275 "tags": [ 276 ["t", "upload"], 277 ["expiration", "2000000060"], 278 ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"], 279 ["server", "blossom.radroots.test"] 280 ] 281 }, 282 "expected": { 283 "content": "Upload farm photo", 284 "created_at": 1999999990, 285 "action": "upload", 286 "expiration": 2000000060, 287 "servers": ["blossom.radroots.test"], 288 "hashes": ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"] 289 } 290 }, 291 { 292 "id": "claim-parse-unknown-tags-tolerated", 293 "kind": "blossom.bud11.claim.parse.valid", 294 "input": { 295 "content": "List farm photos", 296 "created_at": 1999999999, 297 "tags": [ 298 ["client", "radroots", "future", "fields"], 299 ["t", "list"], 300 ["expiration", "2000000001"], 301 ["future-only"], 302 [] 303 ] 304 }, 305 "expected": { 306 "content": "List farm photos", 307 "created_at": 1999999999, 308 "action": "list", 309 "expiration": 2000000001, 310 "servers": [], 311 "hashes": [] 312 } 313 }, 314 { 315 "id": "claim-parse-known-trailing-elements-tolerated", 316 "kind": "blossom.bud11.claim.parse.valid", 317 "input": { 318 "content": "Upload farm photo", 319 "created_at": 1999999990, 320 "tags": [ 321 ["t", "upload", "ignored"], 322 ["expiration", "2000000060", "ignored", "again"], 323 ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "ignored"], 324 ["server", "blossom.radroots.test", "ignored"] 325 ] 326 }, 327 "expected": { 328 "content": "Upload farm photo", 329 "created_at": 1999999990, 330 "action": "upload", 331 "expiration": 2000000060, 332 "servers": ["blossom.radroots.test"], 333 "hashes": ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"] 334 } 335 }, 336 { 337 "id": "claim-parse-multiple-scopes", 338 "kind": "blossom.bud11.claim.parse.valid", 339 "input": { 340 "content": "Upload selected farm photos", 341 "created_at": 1999999990, 342 "tags": [ 343 ["t", "upload"], 344 ["expiration", "2000000060"], 345 ["server", "other.example.test"], 346 ["server", "blossom.radroots.test"], 347 ["x", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"], 348 ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"] 349 ] 350 }, 351 "expected": { 352 "content": "Upload selected farm photos", 353 "created_at": 1999999990, 354 "action": "upload", 355 "expiration": 2000000060, 356 "servers": ["other.example.test", "blossom.radroots.test"], 357 "hashes": [ 358 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", 359 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 360 ] 361 } 362 }, 363 { 364 "id": "claim-parse-uppercase-tag-names-unknown", 365 "kind": "blossom.bud11.claim.parse.valid", 366 "input": { 367 "content": "Get farm photo", 368 "created_at": 1999999999, 369 "tags": [ 370 ["T", "delete"], 371 ["Expiration", "1"], 372 ["Server", "BAD"], 373 ["X", "BAD"], 374 ["t", "get"], 375 ["expiration", "2000000001"] 376 ] 377 }, 378 "expected": { 379 "content": "Get farm photo", 380 "created_at": 1999999999, 381 "action": "get", 382 "expiration": 2000000001, 383 "servers": [], 384 "hashes": [] 385 } 386 }, 387 { 388 "id": "claim-parse-invalid-content", 389 "kind": "blossom.bud11.claim.parse.invalid", 390 "input": { 391 "content": "", 392 "created_at": 1999999990, 393 "tags": [["t", "upload"], ["expiration", "2000000060"]] 394 }, 395 "expected": { "error": "invalid_authorization_content" } 396 }, 397 { 398 "id": "claim-parse-missing-action", 399 "kind": "blossom.bud11.claim.parse.invalid", 400 "input": { 401 "content": "Upload farm photo", 402 "created_at": 1999999990, 403 "tags": [["expiration", "2000000060"]] 404 }, 405 "expected": { "error": "missing_authorization_action_tag" } 406 }, 407 { 408 "id": "claim-parse-duplicate-action", 409 "kind": "blossom.bud11.claim.parse.invalid", 410 "input": { 411 "content": "Upload farm photo", 412 "created_at": 1999999990, 413 "tags": [["t", "upload"], ["t", "upload"], ["expiration", "2000000060"]] 414 }, 415 "expected": { "error": "duplicate_authorization_action_tag" } 416 }, 417 { 418 "id": "claim-parse-conflicting-action", 419 "kind": "blossom.bud11.claim.parse.invalid", 420 "input": { 421 "content": "Upload farm photo", 422 "created_at": 1999999990, 423 "tags": [["t", "upload"], ["t", "delete"], ["expiration", "2000000060"]] 424 }, 425 "expected": { "error": "duplicate_authorization_action_tag" } 426 }, 427 { 428 "id": "claim-parse-action-missing-value", 429 "kind": "blossom.bud11.claim.parse.invalid", 430 "input": { 431 "content": "Upload farm photo", 432 "created_at": 1999999990, 433 "tags": [["t"], ["expiration", "2000000060"]] 434 }, 435 "expected": { "error": "malformed_authorization_action_tag" } 436 }, 437 { 438 "id": "claim-parse-action-invalid-value", 439 "kind": "blossom.bud11.claim.parse.invalid", 440 "input": { 441 "content": "Upload farm photo", 442 "created_at": 1999999990, 443 "tags": [["t", "UPLOAD"], ["expiration", "2000000060"]] 444 }, 445 "expected": { "error": "malformed_authorization_action_tag" } 446 }, 447 { 448 "id": "claim-parse-missing-expiration", 449 "kind": "blossom.bud11.claim.parse.invalid", 450 "input": { 451 "content": "Upload farm photo", 452 "created_at": 1999999990, 453 "tags": [["t", "upload"]] 454 }, 455 "expected": { "error": "missing_authorization_expiration_tag" } 456 }, 457 { 458 "id": "claim-parse-duplicate-expiration", 459 "kind": "blossom.bud11.claim.parse.invalid", 460 "input": { 461 "content": "Upload farm photo", 462 "created_at": 1999999990, 463 "tags": [["t", "upload"], ["expiration", "2000000060"], ["expiration", "2000000061"]] 464 }, 465 "expected": { "error": "duplicate_authorization_expiration_tag" } 466 }, 467 { 468 "id": "claim-parse-expiration-missing-value", 469 "kind": "blossom.bud11.claim.parse.invalid", 470 "input": { 471 "content": "Upload farm photo", 472 "created_at": 1999999990, 473 "tags": [["t", "upload"], ["expiration"]] 474 }, 475 "expected": { "error": "malformed_authorization_expiration_tag" } 476 }, 477 { 478 "id": "claim-parse-expiration-nondigit", 479 "kind": "blossom.bud11.claim.parse.invalid", 480 "input": { 481 "content": "Upload farm photo", 482 "created_at": 1999999990, 483 "tags": [["t", "upload"], ["expiration", "later"]] 484 }, 485 "expected": { "error": "malformed_authorization_expiration_tag" } 486 }, 487 { 488 "id": "claim-parse-expiration-negative", 489 "kind": "blossom.bud11.claim.parse.invalid", 490 "input": { 491 "content": "Upload farm photo", 492 "created_at": 1999999990, 493 "tags": [["t", "upload"], ["expiration", "-1"]] 494 }, 495 "expected": { "error": "malformed_authorization_expiration_tag" } 496 }, 497 { 498 "id": "claim-parse-expiration-overflow", 499 "kind": "blossom.bud11.claim.parse.invalid", 500 "input": { 501 "content": "Upload farm photo", 502 "created_at": 1999999990, 503 "tags": [["t", "upload"], ["expiration", "18446744073709551616"]] 504 }, 505 "expected": { "error": "malformed_authorization_expiration_tag" } 506 }, 507 { 508 "id": "claim-parse-server-missing-value", 509 "kind": "blossom.bud11.claim.parse.invalid", 510 "input": { 511 "content": "Upload farm photo", 512 "created_at": 1999999990, 513 "tags": [["t", "upload"], ["expiration", "2000000060"], ["server"]] 514 }, 515 "expected": { "error": "malformed_authorization_server_tag" } 516 }, 517 { 518 "id": "claim-parse-server-malformed-before-match", 519 "kind": "blossom.bud11.claim.parse.invalid", 520 "input": { 521 "content": "Upload farm photo", 522 "created_at": 1999999990, 523 "tags": [ 524 ["t", "upload"], 525 ["expiration", "2000000060"], 526 ["server", "https://bad.example"], 527 ["server", "blossom.radroots.test"] 528 ] 529 }, 530 "expected": { "error": "malformed_authorization_server_tag" } 531 }, 532 { 533 "id": "claim-parse-hash-missing-value", 534 "kind": "blossom.bud11.claim.parse.invalid", 535 "input": { 536 "content": "Upload farm photo", 537 "created_at": 1999999990, 538 "tags": [["t", "upload"], ["expiration", "2000000060"], ["x"]] 539 }, 540 "expected": { "error": "malformed_authorization_hash_tag" } 541 }, 542 { 543 "id": "claim-parse-hash-malformed-before-match", 544 "kind": "blossom.bud11.claim.parse.invalid", 545 "input": { 546 "content": "Upload farm photo", 547 "created_at": 1999999990, 548 "tags": [ 549 ["t", "upload"], 550 ["expiration", "2000000060"], 551 ["x", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"], 552 ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"] 553 ] 554 }, 555 "expected": { "error": "malformed_authorization_hash_tag" } 556 }, 557 { 558 "id": "validation-max-age-zero", 559 "kind": "blossom.bud11.validation.new.valid", 560 "input": { 561 "target": { "type": "list" }, 562 "server_domain": "blossom.radroots.test", 563 "server_scope": "optional_any_match", 564 "now": 2000000000, 565 "max_created_age": 0 566 }, 567 "expected": { "max_created_age": 0 } 568 }, 569 { 570 "id": "validation-max-age-300", 571 "kind": "blossom.bud11.validation.new.valid", 572 "input": { 573 "target": { "type": "list" }, 574 "server_domain": "blossom.radroots.test", 575 "server_scope": "required_any_match", 576 "now": 2000000000, 577 "max_created_age": 300 578 }, 579 "expected": { "max_created_age": 300 } 580 }, 581 { 582 "id": "validation-max-age-301", 583 "kind": "blossom.bud11.validation.new.invalid", 584 "input": { 585 "target": { "type": "list" }, 586 "server_domain": "blossom.radroots.test", 587 "server_scope": "optional_any_match", 588 "now": 2000000000, 589 "max_created_age": 301 590 }, 591 "expected": { "error": "invalid_authorization_created_age" } 592 }, 593 { 594 "id": "validate-get-no-hash-scope", 595 "kind": "blossom.bud11.claim.validate.valid", 596 "input": { 597 "claim": { "content": "Get farm photo", "created_at": 1999999999, "tags": [["t", "get"], ["expiration", "2000000001"]] }, 598 "target": { "type": "get_blob", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 599 "server_domain": "blossom.radroots.test", 600 "server_scope": "optional_any_match", 601 "now": 2000000000, 602 "max_created_age": 300 603 }, 604 "expected": { "action": "get" } 605 }, 606 { 607 "id": "validate-get-multiple-hash-any-match", 608 "kind": "blossom.bud11.claim.validate.valid", 609 "input": { 610 "claim": { "content": "Get selected farm photo", "created_at": 1999999990, "tags": [["t", "get"], ["expiration", "2000000060"], ["x", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"], ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]] }, 611 "target": { "type": "get_blob", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 612 "server_domain": "blossom.radroots.test", 613 "server_scope": "optional_any_match", 614 "now": 2000000000, 615 "max_created_age": 300 616 }, 617 "expected": { "action": "get" } 618 }, 619 { 620 "id": "validate-upload", 621 "kind": "blossom.bud11.claim.validate.valid", 622 "input": { 623 "claim": { "content": "Upload farm photo", "created_at": 1999999990, "tags": [["t", "upload"], ["expiration", "2000000060"], ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"], ["server", "blossom.radroots.test"]] }, 624 "target": { "type": "upload", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 625 "server_domain": "blossom.radroots.test", 626 "server_scope": "required_any_match", 627 "now": 2000000000, 628 "max_created_age": 300 629 }, 630 "expected": { "action": "upload" } 631 }, 632 { 633 "id": "validate-list", 634 "kind": "blossom.bud11.claim.validate.valid", 635 "input": { 636 "claim": { "content": "List farm photos", "created_at": 1999999990, "tags": [["t", "list"], ["expiration", "2000000060"], ["server", "blossom.radroots.test"]] }, 637 "target": { "type": "list" }, 638 "server_domain": "blossom.radroots.test", 639 "server_scope": "required_any_match", 640 "now": 2000000000, 641 "max_created_age": 300 642 }, 643 "expected": { "action": "list" } 644 }, 645 { 646 "id": "validate-delete", 647 "kind": "blossom.bud11.claim.validate.valid", 648 "input": { 649 "claim": { "content": "Delete farm photo", "created_at": 1999999990, "tags": [["t", "delete"], ["expiration", "2000000060"], ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]] }, 650 "target": { "type": "delete_blob", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 651 "server_domain": "blossom.radroots.test", 652 "server_scope": "optional_any_match", 653 "now": 2000000000, 654 "max_created_age": 300 655 }, 656 "expected": { "action": "delete" } 657 }, 658 { 659 "id": "validate-mirror-uses-upload", 660 "kind": "blossom.bud11.claim.validate.valid", 661 "input": { 662 "claim": { "content": "Mirror farm photo", "created_at": 1999999990, "tags": [["t", "upload"], ["expiration", "2000000060"], ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]] }, 663 "target": { "type": "mirror", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 664 "server_domain": "blossom.radroots.test", 665 "server_scope": "optional_any_match", 666 "now": 2000000000, 667 "max_created_age": 300 668 }, 669 "expected": { "action": "upload" } 670 }, 671 { 672 "id": "validate-media", 673 "kind": "blossom.bud11.claim.validate.valid", 674 "input": { 675 "claim": { "content": "Transform farm photo", "created_at": 1999999990, "tags": [["t", "media"], ["expiration", "2000000060"], ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]] }, 676 "target": { "type": "media", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 677 "server_domain": "blossom.radroots.test", 678 "server_scope": "optional_any_match", 679 "now": 2000000000, 680 "max_created_age": 300 681 }, 682 "expected": { "action": "media" } 683 }, 684 { 685 "id": "validate-list-ignores-valid-hash-scopes", 686 "kind": "blossom.bud11.claim.validate.valid", 687 "input": { 688 "claim": { "content": "List farm photos", "created_at": 1999999990, "tags": [["t", "list"], ["expiration", "2000000060"], ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]] }, 689 "target": { "type": "list" }, 690 "server_domain": "blossom.radroots.test", 691 "server_scope": "optional_any_match", 692 "now": 2000000000, 693 "max_created_age": 300 694 }, 695 "expected": { "action": "list" } 696 }, 697 { 698 "id": "validate-optional-server-absent", 699 "kind": "blossom.bud11.claim.validate.valid", 700 "input": { 701 "claim": { "content": "Upload farm photo", "created_at": 1999999990, "tags": [["t", "upload"], ["expiration", "2000000060"], ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]] }, 702 "target": { "type": "upload", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 703 "server_domain": "blossom.radroots.test", 704 "server_scope": "optional_any_match", 705 "now": 2000000000, 706 "max_created_age": 300 707 }, 708 "expected": { "action": "upload" } 709 }, 710 { 711 "id": "validate-multiple-server-any-match", 712 "kind": "blossom.bud11.claim.validate.valid", 713 "input": { 714 "claim": { "content": "Upload farm photo", "created_at": 1999999990, "tags": [["t", "upload"], ["expiration", "2000000060"], ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"], ["server", "other.example.test"], ["server", "blossom.radroots.test"]] }, 715 "target": { "type": "upload", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 716 "server_domain": "blossom.radroots.test", 717 "server_scope": "required_any_match", 718 "now": 2000000000, 719 "max_created_age": 300 720 }, 721 "expected": { "action": "upload" } 722 }, 723 { 724 "id": "validate-multiple-hash-any-match-required", 725 "kind": "blossom.bud11.claim.validate.valid", 726 "input": { 727 "claim": { "content": "Upload selected farm photo", "created_at": 1999999990, "tags": [["t", "upload"], ["expiration", "2000000060"], ["x", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"], ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]] }, 728 "target": { "type": "upload", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 729 "server_domain": "blossom.radroots.test", 730 "server_scope": "optional_any_match", 731 "now": 2000000000, 732 "max_created_age": 300 733 }, 734 "expected": { "action": "upload" } 735 }, 736 { 737 "id": "validate-created-at-now", 738 "kind": "blossom.bud11.claim.validate.invalid", 739 "input": { 740 "claim": { "content": "List farm photos", "created_at": 2000000000, "tags": [["t", "list"], ["expiration", "2000000001"]] }, 741 "target": { "type": "list" }, 742 "server_domain": "blossom.radroots.test", 743 "server_scope": "optional_any_match", 744 "now": 2000000000, 745 "max_created_age": 0 746 }, 747 "expected": { "error": "authorization_created_in_future" } 748 }, 749 { 750 "id": "validate-horizon-300", 751 "kind": "blossom.bud11.claim.validate.valid", 752 "input": { 753 "claim": { "content": "List farm photos", "created_at": 1999999701, "tags": [["t", "list"], ["expiration", "2000000001"]] }, 754 "target": { "type": "list" }, 755 "server_domain": "blossom.radroots.test", 756 "server_scope": "optional_any_match", 757 "now": 2000000000, 758 "max_created_age": 300 759 }, 760 "expected": { "action": "list" } 761 }, 762 { 763 "id": "validate-action-mismatch", 764 "kind": "blossom.bud11.claim.validate.invalid", 765 "input": { 766 "claim": { "content": "Upload farm photo", "created_at": 1999999990, "tags": [["t", "upload"], ["expiration", "2000000060"], ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]] }, 767 "target": { "type": "delete_blob", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 768 "server_domain": "blossom.radroots.test", 769 "server_scope": "optional_any_match", 770 "now": 2000000000, 771 "max_created_age": 300 772 }, 773 "expected": { "error": "authorization_action_mismatch" } 774 }, 775 { 776 "id": "validate-optional-server-mismatch", 777 "kind": "blossom.bud11.claim.validate.invalid", 778 "input": { 779 "claim": { "content": "List farm photos", "created_at": 1999999990, "tags": [["t", "list"], ["expiration", "2000000060"], ["server", "other.example.test"]] }, 780 "target": { "type": "list" }, 781 "server_domain": "blossom.radroots.test", 782 "server_scope": "optional_any_match", 783 "now": 2000000000, 784 "max_created_age": 300 785 }, 786 "expected": { "error": "authorization_server_mismatch" } 787 }, 788 { 789 "id": "validate-required-server-missing", 790 "kind": "blossom.bud11.claim.validate.invalid", 791 "input": { 792 "claim": { "content": "List farm photos", "created_at": 1999999990, "tags": [["t", "list"], ["expiration", "2000000060"]] }, 793 "target": { "type": "list" }, 794 "server_domain": "blossom.radroots.test", 795 "server_scope": "required_any_match", 796 "now": 2000000000, 797 "max_created_age": 300 798 }, 799 "expected": { "error": "authorization_server_required" } 800 }, 801 { 802 "id": "validate-required-server-multiple-mismatch", 803 "kind": "blossom.bud11.claim.validate.invalid", 804 "input": { 805 "claim": { "content": "List farm photos", "created_at": 1999999990, "tags": [["t", "list"], ["expiration", "2000000060"], ["server", "one.example.test"], ["server", "two.example.test"]] }, 806 "target": { "type": "list" }, 807 "server_domain": "blossom.radroots.test", 808 "server_scope": "required_any_match", 809 "now": 2000000000, 810 "max_created_age": 300 811 }, 812 "expected": { "error": "authorization_server_mismatch" } 813 }, 814 { 815 "id": "validate-required-hash-missing", 816 "kind": "blossom.bud11.claim.validate.invalid", 817 "input": { 818 "claim": { "content": "Upload farm photo", "created_at": 1999999990, "tags": [["t", "upload"], ["expiration", "2000000060"]] }, 819 "target": { "type": "upload", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 820 "server_domain": "blossom.radroots.test", 821 "server_scope": "optional_any_match", 822 "now": 2000000000, 823 "max_created_age": 300 824 }, 825 "expected": { "error": "authorization_hash_required" } 826 }, 827 { 828 "id": "validate-required-hash-multiple-mismatch", 829 "kind": "blossom.bud11.claim.validate.invalid", 830 "input": { 831 "claim": { "content": "Upload selected farm photo", "created_at": 1999999990, "tags": [["t", "upload"], ["expiration", "2000000060"], ["x", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"], ["x", "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"]] }, 832 "target": { "type": "upload", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 833 "server_domain": "blossom.radroots.test", 834 "server_scope": "optional_any_match", 835 "now": 2000000000, 836 "max_created_age": 300 837 }, 838 "expected": { "error": "authorization_hash_mismatch" } 839 }, 840 { 841 "id": "validate-get-optional-hash-mismatch", 842 "kind": "blossom.bud11.claim.validate.invalid", 843 "input": { 844 "claim": { "content": "Get selected farm photo", "created_at": 1999999990, "tags": [["t", "get"], ["expiration", "2000000060"], ["x", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"]] }, 845 "target": { "type": "get_blob", "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, 846 "server_domain": "blossom.radroots.test", 847 "server_scope": "optional_any_match", 848 "now": 2000000000, 849 "max_created_age": 300 850 }, 851 "expected": { "error": "authorization_hash_mismatch" } 852 }, 853 { 854 "id": "validate-created-at-future", 855 "kind": "blossom.bud11.claim.validate.invalid", 856 "input": { 857 "claim": { "content": "List farm photos", "created_at": 2000000001, "tags": [["t", "list"], ["expiration", "2000000002"]] }, 858 "target": { "type": "list" }, 859 "server_domain": "blossom.radroots.test", 860 "server_scope": "optional_any_match", 861 "now": 2000000000, 862 "max_created_age": 300 863 }, 864 "expected": { "error": "authorization_created_in_future" } 865 }, 866 { 867 "id": "validate-created-at-stale-301", 868 "kind": "blossom.bud11.claim.validate.invalid", 869 "input": { 870 "claim": { "content": "List farm photos", "created_at": 1999999699, "tags": [["t", "list"], ["expiration", "2000000001"]] }, 871 "target": { "type": "list" }, 872 "server_domain": "blossom.radroots.test", 873 "server_scope": "optional_any_match", 874 "now": 2000000000, 875 "max_created_age": 300 876 }, 877 "expected": { "error": "authorization_stale" } 878 }, 879 { 880 "id": "validate-expiration-at-now", 881 "kind": "blossom.bud11.claim.validate.invalid", 882 "input": { 883 "claim": { "content": "List farm photos", "created_at": 1999999990, "tags": [["t", "list"], ["expiration", "2000000000"]] }, 884 "target": { "type": "list" }, 885 "server_domain": "blossom.radroots.test", 886 "server_scope": "optional_any_match", 887 "now": 2000000000, 888 "max_created_age": 300 889 }, 890 "expected": { "error": "authorization_expired" } 891 }, 892 { 893 "id": "validate-horizon-301", 894 "kind": "blossom.bud11.claim.validate.invalid", 895 "input": { 896 "claim": { "content": "List farm photos", "created_at": 1999999999, "tags": [["t", "list"], ["expiration", "2000000300"]] }, 897 "target": { "type": "list" }, 898 "server_domain": "blossom.radroots.test", 899 "server_scope": "optional_any_match", 900 "now": 2000000000, 901 "max_created_age": 300 902 }, 903 "expected": { "error": "invalid_authorization_lifetime" } 904 }, 905 { 906 "id": "authored-upload-lifetime-1", 907 "kind": "blossom.bud11.authored_upload.valid", 908 "input": { 909 "content": "Upload farm photo", 910 "server_domain": "blossom.radroots.test", 911 "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 912 "created_at": 2000000000, 913 "lifetime": 1 914 }, 915 "expected": { 916 "kind": 24242, 917 "content": "Upload farm photo", 918 "created_at": 2000000000, 919 "expiration": 2000000001, 920 "tags": [ 921 ["t", "upload"], 922 ["expiration", "2000000001"], 923 ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"], 924 ["server", "blossom.radroots.test"] 925 ] 926 } 927 }, 928 { 929 "id": "authored-upload-lifetime-300", 930 "kind": "blossom.bud11.authored_upload.valid", 931 "input": { 932 "content": "Upload farm photo", 933 "server_domain": "blossom.radroots.test", 934 "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 935 "created_at": 2000000000, 936 "lifetime": 300 937 }, 938 "expected": { 939 "kind": 24242, 940 "content": "Upload farm photo", 941 "created_at": 2000000000, 942 "expiration": 2000000300, 943 "tags": [ 944 ["t", "upload"], 945 ["expiration", "2000000300"], 946 ["x", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"], 947 ["server", "blossom.radroots.test"] 948 ] 949 } 950 }, 951 { 952 "id": "authored-upload-lifetime-zero", 953 "kind": "blossom.bud11.authored_upload.invalid", 954 "input": { 955 "content": "Upload farm photo", 956 "server_domain": "blossom.radroots.test", 957 "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 958 "created_at": 2000000000, 959 "lifetime": 0 960 }, 961 "expected": { "error": "invalid_authorization_lifetime" } 962 }, 963 { 964 "id": "authored-upload-lifetime-301", 965 "kind": "blossom.bud11.authored_upload.invalid", 966 "input": { 967 "content": "Upload farm photo", 968 "server_domain": "blossom.radroots.test", 969 "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 970 "created_at": 2000000000, 971 "lifetime": 301 972 }, 973 "expected": { "error": "invalid_authorization_lifetime" } 974 }, 975 { 976 "id": "authored-upload-expiration-overflow", 977 "kind": "blossom.bud11.authored_upload.invalid", 978 "input": { 979 "content": "Upload farm photo", 980 "server_domain": "blossom.radroots.test", 981 "hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 982 "created_at": 18446744073709551615, 983 "lifetime": 1 984 }, 985 "expected": { "error": "authorization_timestamp_overflow" } 986 } 987 ] 988 }