hash_path_and_descriptor.v1.json (45382B)
1 { 2 "suite": "blossom_hash_path_and_descriptor", 3 "contract_version": "1.0.0", 4 "vectors": [ 5 { 6 "id": "blossom_sha256_digest_empty_001", 7 "kind": "blossom.sha256.digest", 8 "input": { 9 "bytes_hex": "" 10 }, 11 "expected": { 12 "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" 13 } 14 }, 15 { 16 "id": "blossom_sha256_digest_abc_002", 17 "kind": "blossom.sha256.digest", 18 "input": { 19 "bytes_hex": "616263" 20 }, 21 "expected": { 22 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" 23 } 24 }, 25 { 26 "id": "blossom_sha256_digest_binary_003", 27 "kind": "blossom.sha256.digest", 28 "input": { 29 "bytes_hex": "89504e470d0a1a0a726164726f6f7473" 30 }, 31 "expected": { 32 "sha256": "a829dda89323e71a4575c1c45c52d65c3a0c87dd8ffcdab9ad12bbee57c00861" 33 } 34 }, 35 { 36 "id": "blossom_sha256_parse_valid_004", 37 "kind": "blossom.sha256.parse.valid", 38 "input": { 39 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" 40 }, 41 "expected": { 42 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" 43 } 44 }, 45 { 46 "id": "blossom_sha256_parse_zero_valid_005", 47 "kind": "blossom.sha256.parse.valid", 48 "input": { 49 "sha256": "0000000000000000000000000000000000000000000000000000000000000000" 50 }, 51 "expected": { 52 "sha256": "0000000000000000000000000000000000000000000000000000000000000000" 53 } 54 }, 55 { 56 "id": "blossom_sha256_parse_short_invalid_006", 57 "kind": "blossom.sha256.parse.invalid", 58 "input": { 59 "sha256": "ba7816bf8f01cfea" 60 }, 61 "expected": { 62 "error": "invalid_sha256" 63 } 64 }, 65 { 66 "id": "blossom_sha256_parse_uppercase_invalid_007", 67 "kind": "blossom.sha256.parse.invalid", 68 "input": { 69 "sha256": "BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD" 70 }, 71 "expected": { 72 "error": "invalid_sha256" 73 } 74 }, 75 { 76 "id": "blossom_sha256_parse_non_hex_invalid_008", 77 "kind": "blossom.sha256.parse.invalid", 78 "input": { 79 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ag" 80 }, 81 "expected": { 82 "error": "invalid_sha256" 83 } 84 }, 85 { 86 "id": "blossom_sha256_parse_too_long_invalid_008b", 87 "kind": "blossom.sha256.parse.invalid", 88 "input": { 89 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad0" 90 }, 91 "expected": { 92 "error": "invalid_sha256" 93 } 94 }, 95 { 96 "id": "blossom_hash_path_without_extension_009", 97 "kind": "blossom.hash_path.parse.valid", 98 "input": { 99 "path": "/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" 100 }, 101 "expected": { 102 "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 103 "extension": null 104 } 105 }, 106 { 107 "id": "blossom_hash_path_png_extension_010", 108 "kind": "blossom.hash_path.parse.valid", 109 "input": { 110 "path": "/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 111 }, 112 "expected": { 113 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 114 "extension": "png" 115 } 116 }, 117 { 118 "id": "blossom_hash_path_multi_extension_011", 119 "kind": "blossom.hash_path.parse.valid", 120 "input": { 121 "path": "/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.tar.gz" 122 }, 123 "expected": { 124 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 125 "extension": "tar.gz" 126 } 127 }, 128 { 129 "id": "blossom_hash_path_extension_case_preserved_012", 130 "kind": "blossom.hash_path.parse.valid", 131 "input": { 132 "path": "/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.Photo_JPG-2" 133 }, 134 "expected": { 135 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 136 "extension": "Photo_JPG-2" 137 } 138 }, 139 { 140 "id": "blossom_hash_path_missing_root_slash_013", 141 "kind": "blossom.hash_path.parse.invalid", 142 "input": { 143 "path": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 144 }, 145 "expected": { 146 "error": "invalid_hash_path" 147 } 148 }, 149 { 150 "id": "blossom_hash_path_empty_014", 151 "kind": "blossom.hash_path.parse.invalid", 152 "input": { 153 "path": "/" 154 }, 155 "expected": { 156 "error": "invalid_hash_path" 157 } 158 }, 159 { 160 "id": "blossom_hash_path_extra_segment_015", 161 "kind": "blossom.hash_path.parse.invalid", 162 "input": { 163 "path": "/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad/png" 164 }, 165 "expected": { 166 "error": "invalid_hash_path" 167 } 168 }, 169 { 170 "id": "blossom_hash_path_uppercase_hash_016", 171 "kind": "blossom.hash_path.parse.invalid", 172 "input": { 173 "path": "/BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD.png" 174 }, 175 "expected": { 176 "error": "invalid_sha256" 177 } 178 }, 179 { 180 "id": "blossom_hash_path_empty_extension_017", 181 "kind": "blossom.hash_path.parse.invalid", 182 "input": { 183 "path": "/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad." 184 }, 185 "expected": { 186 "error": "invalid_file_extension" 187 } 188 }, 189 { 190 "id": "blossom_hash_path_empty_extension_component_018", 191 "kind": "blossom.hash_path.parse.invalid", 192 "input": { 193 "path": "/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.tar..gz" 194 }, 195 "expected": { 196 "error": "invalid_file_extension" 197 } 198 }, 199 { 200 "id": "blossom_hash_path_whitespace_extension_019", 201 "kind": "blossom.hash_path.parse.invalid", 202 "input": { 203 "path": "/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.p ng" 204 }, 205 "expected": { 206 "error": "invalid_file_extension" 207 } 208 }, 209 { 210 "id": "blossom_hash_path_percent_encoded_extension_020", 211 "kind": "blossom.hash_path.parse.invalid", 212 "input": { 213 "path": "/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.%70ng" 214 }, 215 "expected": { 216 "error": "invalid_hash_path" 217 } 218 }, 219 { 220 "id": "blossom_hash_path_query_forbidden_021", 221 "kind": "blossom.hash_path.parse.invalid", 222 "input": { 223 "path": "/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png?download=1" 224 }, 225 "expected": { 226 "error": "invalid_hash_path" 227 } 228 }, 229 { 230 "id": "blossom_blob_url_https_canonical_authority_022", 231 "kind": "blossom.blob_url.parse.valid", 232 "input": { 233 "url": "HTTPS://MEDIA.EXAMPLE/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.PNG" 234 }, 235 "expected": { 236 "scheme": "https", 237 "host": "media.example", 238 "port": null, 239 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 240 "extension": "PNG" 241 } 242 }, 243 { 244 "id": "blossom_blob_url_public_http_structural_023", 245 "kind": "blossom.blob_url.parse.valid", 246 "input": { 247 "url": "http://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 248 }, 249 "expected": { 250 "scheme": "http", 251 "host": "media.example", 252 "port": null, 253 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 254 "extension": "png" 255 } 256 }, 257 { 258 "id": "blossom_blob_url_https_port_without_extension_024", 259 "kind": "blossom.blob_url.parse.valid", 260 "input": { 261 "url": "https://media.example:8443/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" 262 }, 263 "expected": { 264 "scheme": "https", 265 "host": "media.example", 266 "port": 8443, 267 "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 268 "extension": null 269 } 270 }, 271 { 272 "id": "blossom_blob_url_bracketed_ipv6_025", 273 "kind": "blossom.blob_url.parse.valid", 274 "input": { 275 "url": "http://[::1]:21100/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.bin" 276 }, 277 "expected": { 278 "scheme": "http", 279 "host": "[::1]", 280 "port": 21100, 281 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 282 "extension": "bin" 283 } 284 }, 285 { 286 "id": "blossom_blob_url_relative_invalid_026", 287 "kind": "blossom.blob_url.parse.invalid", 288 "input": { 289 "url": "/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 290 }, 291 "expected": { 292 "error": "invalid_blob_url" 293 } 294 }, 295 { 296 "id": "blossom_blob_url_unsupported_scheme_027", 297 "kind": "blossom.blob_url.parse.invalid", 298 "input": { 299 "url": "ftp://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 300 }, 301 "expected": { 302 "error": "unsupported_blob_url_scheme" 303 } 304 }, 305 { 306 "id": "blossom_blob_url_missing_authority_028", 307 "kind": "blossom.blob_url.parse.invalid", 308 "input": { 309 "url": "https://" 310 }, 311 "expected": { 312 "error": "invalid_blob_url" 313 } 314 }, 315 { 316 "id": "blossom_blob_url_credentials_forbidden_029", 317 "kind": "blossom.blob_url.parse.invalid", 318 "input": { 319 "url": "https://user:password@media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 320 }, 321 "expected": { 322 "error": "blob_url_credentials_forbidden" 323 } 324 }, 325 { 326 "id": "blossom_blob_url_empty_userinfo_forbidden_029b", 327 "kind": "blossom.blob_url.parse.invalid", 328 "input": { 329 "url": "https://@media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 330 }, 331 "expected": { 332 "error": "blob_url_credentials_forbidden" 333 } 334 }, 335 { 336 "id": "blossom_blob_url_empty_userinfo_separator_forbidden_029c", 337 "kind": "blossom.blob_url.parse.invalid", 338 "input": { 339 "url": "https://:@media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 340 }, 341 "expected": { 342 "error": "blob_url_credentials_forbidden" 343 } 344 }, 345 { 346 "id": "blossom_blob_url_query_forbidden_030", 347 "kind": "blossom.blob_url.parse.invalid", 348 "input": { 349 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png?download=1" 350 }, 351 "expected": { 352 "error": "blob_url_query_forbidden" 353 } 354 }, 355 { 356 "id": "blossom_blob_url_fragment_forbidden_031", 357 "kind": "blossom.blob_url.parse.invalid", 358 "input": { 359 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png#preview" 360 }, 361 "expected": { 362 "error": "blob_url_fragment_forbidden" 363 } 364 }, 365 { 366 "id": "blossom_blob_url_extra_path_segment_032", 367 "kind": "blossom.blob_url.parse.invalid", 368 "input": { 369 "url": "https://media.example/blobs/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 370 }, 371 "expected": { 372 "error": "invalid_hash_path" 373 } 374 }, 375 { 376 "id": "blossom_blob_url_port_out_of_range_033", 377 "kind": "blossom.blob_url.parse.invalid", 378 "input": { 379 "url": "https://media.example:65536/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 380 }, 381 "expected": { 382 "error": "invalid_blob_url" 383 } 384 }, 385 { 386 "id": "blossom_blob_url_uppercase_hash_034", 387 "kind": "blossom.blob_url.parse.invalid", 388 "input": { 389 "url": "https://media.example/BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD.png" 390 }, 391 "expected": { 392 "error": "invalid_sha256" 393 } 394 }, 395 { 396 "id": "blossom_blob_url_percent_encoded_extension_035", 397 "kind": "blossom.blob_url.parse.invalid", 398 "input": { 399 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.%70ng" 400 }, 401 "expected": { 402 "error": "invalid_blob_url" 403 } 404 }, 405 { 406 "id": "blossom_blob_url_unbracketed_ipv6_036", 407 "kind": "blossom.blob_url.parse.invalid", 408 "input": { 409 "url": "http://::1/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.bin" 410 }, 411 "expected": { 412 "error": "invalid_blob_url" 413 } 414 }, 415 { 416 "id": "blossom_blob_url_leading_whitespace_rejected_036b", 417 "kind": "blossom.blob_url.parse.invalid", 418 "input": { 419 "url": " https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 420 }, 421 "expected": { 422 "error": "invalid_blob_url" 423 } 424 }, 425 { 426 "id": "blossom_blob_url_embedded_newline_rejected_036c", 427 "kind": "blossom.blob_url.parse.invalid", 428 "input": { 429 "url": "https://media.example/\nba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 430 }, 431 "expected": { 432 "error": "invalid_blob_url" 433 } 434 }, 435 { 436 "id": "blossom_blob_url_trailing_tab_rejected_036d", 437 "kind": "blossom.blob_url.parse.invalid", 438 "input": { 439 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png\t" 440 }, 441 "expected": { 442 "error": "invalid_blob_url" 443 } 444 }, 445 { 446 "id": "blossom_blob_url_explicit_punycode_accepted_036e", 447 "kind": "blossom.blob_url.parse.valid", 448 "input": { 449 "url": "https://xn--mdia-9oa.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 450 }, 451 "expected": { 452 "scheme": "https", 453 "host": "xn--mdia-9oa.example", 454 "port": null, 455 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 456 "extension": "png" 457 } 458 }, 459 { 460 "id": "blossom_blob_url_format_character_rejected_036f", 461 "kind": "blossom.blob_url.parse.invalid", 462 "input": { 463 "url": "https://media\u200b.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 464 }, 465 "expected": { 466 "error": "invalid_blob_url" 467 } 468 }, 469 { 470 "id": "blossom_blob_url_implicit_idna_rejected_036g", 471 "kind": "blossom.blob_url.parse.invalid", 472 "input": { 473 "url": "https://m\u00e9dia.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 474 }, 475 "expected": { 476 "error": "invalid_blob_url" 477 } 478 }, 479 { 480 "id": "blossom_blob_url_underscore_label_rejected_036h", 481 "kind": "blossom.blob_url.parse.invalid", 482 "input": { 483 "url": "https://media_store.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 484 }, 485 "expected": { 486 "error": "invalid_blob_url" 487 } 488 }, 489 { 490 "id": "blossom_blob_url_edge_hyphen_rejected_036i", 491 "kind": "blossom.blob_url.parse.invalid", 492 "input": { 493 "url": "https://-media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 494 }, 495 "expected": { 496 "error": "invalid_blob_url" 497 } 498 }, 499 { 500 "id": "blossom_blob_url_empty_label_rejected_036j", 501 "kind": "blossom.blob_url.parse.invalid", 502 "input": { 503 "url": "https://media..example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 504 }, 505 "expected": { 506 "error": "invalid_blob_url" 507 } 508 }, 509 { 510 "id": "blossom_blob_url_oversized_label_rejected_036k", 511 "kind": "blossom.blob_url.parse.invalid", 512 "input": { 513 "url": "https://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 514 }, 515 "expected": { 516 "error": "invalid_blob_url" 517 } 518 }, 519 { 520 "id": "blossom_blob_url_maximum_dns_host_accepted_036l", 521 "kind": "blossom.blob_url.parse.valid", 522 "input": { 523 "url": "https://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 524 }, 525 "expected": { 526 "scheme": "https", 527 "host": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", 528 "port": null, 529 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 530 "extension": "png" 531 } 532 }, 533 { 534 "id": "blossom_blob_url_oversized_dns_host_rejected_036m", 535 "kind": "blossom.blob_url.parse.invalid", 536 "input": { 537 "url": "https://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 538 }, 539 "expected": { 540 "error": "invalid_blob_url" 541 } 542 }, 543 { 544 "id": "blossom_reference_https_public_approved_037", 545 "kind": "blossom.reference_policy.valid", 546 "input": { 547 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 548 }, 549 "expected": { 550 "approved": true, 551 "transport": "https" 552 } 553 }, 554 { 555 "id": "blossom_reference_https_private_address_approved_038", 556 "kind": "blossom.reference_policy.valid", 557 "input": { 558 "url": "https://10.0.0.4/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 559 }, 560 "expected": { 561 "approved": true, 562 "transport": "https" 563 } 564 }, 565 { 566 "id": "blossom_reference_http_localhost_approved_039", 567 "kind": "blossom.reference_policy.valid", 568 "input": { 569 "url": "http://LOCALHOST:21100/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 570 }, 571 "expected": { 572 "approved": true, 573 "transport": "loopback_http" 574 } 575 }, 576 { 577 "id": "blossom_reference_http_localhost_subdomain_approved_040", 578 "kind": "blossom.reference_policy.valid", 579 "input": { 580 "url": "http://media.localhost/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 581 }, 582 "expected": { 583 "approved": true, 584 "transport": "loopback_http" 585 } 586 }, 587 { 588 "id": "blossom_reference_http_nested_localhost_subdomain_approved_041", 589 "kind": "blossom.reference_policy.valid", 590 "input": { 591 "url": "http://blossom.dev.localhost/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 592 }, 593 "expected": { 594 "approved": true, 595 "transport": "loopback_http" 596 } 597 }, 598 { 599 "id": "blossom_reference_http_ipv4_loopback_approved_042", 600 "kind": "blossom.reference_policy.valid", 601 "input": { 602 "url": "http://127.0.0.1:21100/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 603 }, 604 "expected": { 605 "approved": true, 606 "transport": "loopback_http" 607 } 608 }, 609 { 610 "id": "blossom_reference_http_ipv4_loopback_range_approved_043", 611 "kind": "blossom.reference_policy.valid", 612 "input": { 613 "url": "http://127.255.255.254/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 614 }, 615 "expected": { 616 "approved": true, 617 "transport": "loopback_http" 618 } 619 }, 620 { 621 "id": "blossom_reference_http_ipv6_loopback_approved_044", 622 "kind": "blossom.reference_policy.valid", 623 "input": { 624 "url": "http://[::1]:21100/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 625 }, 626 "expected": { 627 "approved": true, 628 "transport": "loopback_http" 629 } 630 }, 631 { 632 "id": "blossom_reference_http_expanded_ipv6_loopback_approved_045", 633 "kind": "blossom.reference_policy.valid", 634 "input": { 635 "url": "http://[0:0:0:0:0:0:0:1]/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 636 }, 637 "expected": { 638 "approved": true, 639 "transport": "loopback_http" 640 } 641 }, 642 { 643 "id": "blossom_reference_http_public_rejected_046", 644 "kind": "blossom.reference_policy.invalid", 645 "input": { 646 "url": "http://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 647 }, 648 "expected": { 649 "error": "insecure_blob_url" 650 } 651 }, 652 { 653 "id": "blossom_reference_http_false_localhost_suffix_rejected_047", 654 "kind": "blossom.reference_policy.invalid", 655 "input": { 656 "url": "http://localhost.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 657 }, 658 "expected": { 659 "error": "insecure_blob_url" 660 } 661 }, 662 { 663 "id": "blossom_blob_url_absolute_localhost_name_rejected_048", 664 "kind": "blossom.blob_url.parse.invalid", 665 "input": { 666 "url": "http://localhost./ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 667 }, 668 "expected": { 669 "error": "invalid_blob_url" 670 } 671 }, 672 { 673 "id": "blossom_reference_http_before_ipv4_loopback_range_rejected_049", 674 "kind": "blossom.reference_policy.invalid", 675 "input": { 676 "url": "http://126.255.255.255/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 677 }, 678 "expected": { 679 "error": "insecure_blob_url" 680 } 681 }, 682 { 683 "id": "blossom_reference_http_after_ipv4_loopback_range_rejected_050", 684 "kind": "blossom.reference_policy.invalid", 685 "input": { 686 "url": "http://128.0.0.0/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 687 }, 688 "expected": { 689 "error": "insecure_blob_url" 690 } 691 }, 692 { 693 "id": "blossom_reference_http_private_ipv4_rejected_051", 694 "kind": "blossom.reference_policy.invalid", 695 "input": { 696 "url": "http://10.0.0.4/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 697 }, 698 "expected": { 699 "error": "insecure_blob_url" 700 } 701 }, 702 { 703 "id": "blossom_reference_http_unspecified_ipv4_rejected_052", 704 "kind": "blossom.reference_policy.invalid", 705 "input": { 706 "url": "http://0.0.0.0/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 707 }, 708 "expected": { 709 "error": "insecure_blob_url" 710 } 711 }, 712 { 713 "id": "blossom_reference_http_ipv6_link_local_rejected_053", 714 "kind": "blossom.reference_policy.invalid", 715 "input": { 716 "url": "http://[fe80::1]/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 717 }, 718 "expected": { 719 "error": "insecure_blob_url" 720 } 721 }, 722 { 723 "id": "blossom_reference_http_ipv4_mapped_ipv6_rejected_054", 724 "kind": "blossom.reference_policy.invalid", 725 "input": { 726 "url": "http://[::ffff:127.0.0.1]/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 727 }, 728 "expected": { 729 "error": "insecure_blob_url" 730 } 731 }, 732 { 733 "id": "blossom_blob_url_short_ipv4_spelling_rejected_055", 734 "kind": "blossom.blob_url.parse.invalid", 735 "input": { 736 "url": "http://127.1/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 737 }, 738 "expected": { 739 "error": "invalid_blob_url" 740 } 741 }, 742 { 743 "id": "blossom_reference_http_private_ipv4_second_range_rejected_056", 744 "kind": "blossom.reference_policy.invalid", 745 "input": { 746 "url": "http://192.168.1.4/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png" 747 }, 748 "expected": { 749 "error": "insecure_blob_url" 750 } 751 }, 752 { 753 "id": "blossom_media_type_image_png_057", 754 "kind": "blossom.media_type.parse.valid", 755 "input": { 756 "media_type": "image/png" 757 }, 758 "expected": { 759 "media_type": "image/png" 760 } 761 }, 762 { 763 "id": "blossom_media_type_case_canonicalized_058", 764 "kind": "blossom.media_type.parse.valid", 765 "input": { 766 "media_type": "IMAGE/PNG" 767 }, 768 "expected": { 769 "media_type": "image/png" 770 } 771 }, 772 { 773 "id": "blossom_media_type_vendor_token_059", 774 "kind": "blossom.media_type.parse.valid", 775 "input": { 776 "media_type": "application/vnd.radroots.fixture+json" 777 }, 778 "expected": { 779 "media_type": "application/vnd.radroots.fixture+json" 780 } 781 }, 782 { 783 "id": "blossom_media_type_empty_060", 784 "kind": "blossom.media_type.parse.invalid", 785 "input": { 786 "media_type": "" 787 }, 788 "expected": { 789 "error": "invalid_media_type" 790 } 791 }, 792 { 793 "id": "blossom_media_type_parameters_sorted_and_canonicalized_061", 794 "kind": "blossom.media_type.parse.valid", 795 "input": { 796 "media_type": "TEXT/PLAIN; PROFILE=web; CHARSET=UTF-8" 797 }, 798 "expected": { 799 "media_type": "text/plain; charset=UTF-8; profile=web" 800 } 801 }, 802 { 803 "id": "blossom_media_type_duplicate_parameter_rejected_061b", 804 "kind": "blossom.media_type.parse.invalid", 805 "input": { 806 "media_type": "image/png; profile=a; PROFILE=b" 807 }, 808 "expected": { 809 "error": "invalid_media_type" 810 } 811 }, 812 { 813 "id": "blossom_media_type_missing_separator_062", 814 "kind": "blossom.media_type.parse.invalid", 815 "input": { 816 "media_type": "imagepng" 817 }, 818 "expected": { 819 "error": "invalid_media_type" 820 } 821 }, 822 { 823 "id": "blossom_media_type_empty_subtype_063", 824 "kind": "blossom.media_type.parse.invalid", 825 "input": { 826 "media_type": "image/" 827 }, 828 "expected": { 829 "error": "invalid_media_type" 830 } 831 }, 832 { 833 "id": "blossom_media_type_wildcard_forbidden_064", 834 "kind": "blossom.media_type.parse.invalid", 835 "input": { 836 "media_type": "image/*" 837 }, 838 "expected": { 839 "error": "invalid_media_type" 840 } 841 }, 842 { 843 "id": "blossom_media_type_parser_truncated_whitespace_forbidden_065", 844 "kind": "blossom.media_type.parse.invalid", 845 "input": { 846 "media_type": "image/png " 847 }, 848 "expected": { 849 "error": "invalid_media_type" 850 } 851 }, 852 { 853 "id": "blossom_media_type_non_ascii_forbidden_066", 854 "kind": "blossom.media_type.parse.invalid", 855 "input": { 856 "media_type": "image/p\u00f1g" 857 }, 858 "expected": { 859 "error": "invalid_media_type" 860 } 861 }, 862 { 863 "id": "blossom_descriptor_https_valid_067", 864 "kind": "blossom.descriptor.parse.valid", 865 "input": { 866 "descriptor": { 867 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 868 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 869 "size": 3, 870 "type": "text/plain", 871 "uploaded": 1700000000 872 } 873 }, 874 "expected": { 875 "descriptor": { 876 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 877 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 878 "size": 3, 879 "type": "text/plain", 880 "uploaded": 1700000000 881 } 882 } 883 }, 884 { 885 "id": "blossom_descriptor_empty_blob_extra_fields_valid_068", 886 "kind": "blossom.descriptor.parse.valid", 887 "input": { 888 "descriptor": { 889 "url": "https://media.example/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.bin", 890 "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 891 "size": 0, 892 "type": "application/octet-stream", 893 "uploaded": 0, 894 "blurhash": "fixture-only-extra-field", 895 "custom": { 896 "version": 1 897 } 898 } 899 }, 900 "expected": { 901 "descriptor": { 902 "url": "https://media.example/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.bin", 903 "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 904 "size": 0, 905 "type": "application/octet-stream", 906 "uploaded": 0 907 } 908 } 909 }, 910 { 911 "id": "blossom_descriptor_extension_does_not_define_mime_069", 912 "kind": "blossom.descriptor.parse.valid", 913 "input": { 914 "descriptor": { 915 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.jpg", 916 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 917 "size": 3, 918 "type": "image/png", 919 "uploaded": 1700000001 920 } 921 }, 922 "expected": { 923 "descriptor": { 924 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.jpg", 925 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 926 "size": 3, 927 "type": "image/png", 928 "uploaded": 1700000001 929 } 930 } 931 }, 932 { 933 "id": "blossom_descriptor_public_http_structurally_valid_070", 934 "kind": "blossom.descriptor.parse.valid", 935 "input": { 936 "descriptor": { 937 "url": "http://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 938 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 939 "size": 3, 940 "type": "text/plain", 941 "uploaded": 1700000002 942 } 943 }, 944 "expected": { 945 "descriptor": { 946 "url": "http://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 947 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 948 "size": 3, 949 "type": "text/plain", 950 "uploaded": 1700000002 951 } 952 } 953 }, 954 { 955 "id": "blossom_descriptor_media_type_canonicalized_071", 956 "kind": "blossom.descriptor.parse.valid", 957 "input": { 958 "descriptor": { 959 "url": "http://127.0.0.1:21100/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.PNG", 960 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 961 "size": 3, 962 "type": "IMAGE/PNG", 963 "uploaded": 0 964 } 965 }, 966 "expected": { 967 "descriptor": { 968 "url": "http://127.0.0.1:21100/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.PNG", 969 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 970 "size": 3, 971 "type": "image/png", 972 "uploaded": 0 973 } 974 } 975 }, 976 { 977 "id": "blossom_descriptor_missing_url_072", 978 "kind": "blossom.descriptor.parse.invalid", 979 "input": { 980 "descriptor": { 981 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 982 "size": 3, 983 "type": "text/plain", 984 "uploaded": 1700000000 985 } 986 }, 987 "expected": { 988 "error": "missing_descriptor_field", 989 "field": "url" 990 } 991 }, 992 { 993 "id": "blossom_descriptor_missing_sha256_073", 994 "kind": "blossom.descriptor.parse.invalid", 995 "input": { 996 "descriptor": { 997 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 998 "size": 3, 999 "type": "text/plain", 1000 "uploaded": 1700000000 1001 } 1002 }, 1003 "expected": { 1004 "error": "missing_descriptor_field", 1005 "field": "sha256" 1006 } 1007 }, 1008 { 1009 "id": "blossom_descriptor_missing_size_074", 1010 "kind": "blossom.descriptor.parse.invalid", 1011 "input": { 1012 "descriptor": { 1013 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1014 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1015 "type": "text/plain", 1016 "uploaded": 1700000000 1017 } 1018 }, 1019 "expected": { 1020 "error": "missing_descriptor_field", 1021 "field": "size" 1022 } 1023 }, 1024 { 1025 "id": "blossom_descriptor_missing_type_075", 1026 "kind": "blossom.descriptor.parse.invalid", 1027 "input": { 1028 "descriptor": { 1029 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1030 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1031 "size": 3, 1032 "uploaded": 1700000000 1033 } 1034 }, 1035 "expected": { 1036 "error": "missing_descriptor_field", 1037 "field": "type" 1038 } 1039 }, 1040 { 1041 "id": "blossom_descriptor_missing_uploaded_076", 1042 "kind": "blossom.descriptor.parse.invalid", 1043 "input": { 1044 "descriptor": { 1045 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1046 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1047 "size": 3, 1048 "type": "text/plain" 1049 } 1050 }, 1051 "expected": { 1052 "error": "missing_descriptor_field", 1053 "field": "uploaded" 1054 } 1055 }, 1056 { 1057 "id": "blossom_descriptor_url_extension_required_077", 1058 "kind": "blossom.descriptor.parse.invalid", 1059 "input": { 1060 "descriptor": { 1061 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1062 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1063 "size": 3, 1064 "type": "text/plain", 1065 "uploaded": 1700000000 1066 } 1067 }, 1068 "expected": { 1069 "error": "descriptor_extension_required" 1070 } 1071 }, 1072 { 1073 "id": "blossom_descriptor_url_hash_mismatch_078", 1074 "kind": "blossom.descriptor.parse.invalid", 1075 "input": { 1076 "descriptor": { 1077 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1078 "sha256": "0000000000000000000000000000000000000000000000000000000000000000", 1079 "size": 3, 1080 "type": "text/plain", 1081 "uploaded": 1700000000 1082 } 1083 }, 1084 "expected": { 1085 "error": "descriptor_hash_mismatch" 1086 } 1087 }, 1088 { 1089 "id": "blossom_descriptor_negative_size_079", 1090 "kind": "blossom.descriptor.parse.invalid", 1091 "input": { 1092 "descriptor": { 1093 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1094 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1095 "size": -1, 1096 "type": "text/plain", 1097 "uploaded": 1700000000 1098 } 1099 }, 1100 "expected": { 1101 "error": "invalid_descriptor_size" 1102 } 1103 }, 1104 { 1105 "id": "blossom_descriptor_fractional_size_080", 1106 "kind": "blossom.descriptor.parse.invalid", 1107 "input": { 1108 "descriptor": { 1109 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1110 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1111 "size": 3.5, 1112 "type": "text/plain", 1113 "uploaded": 1700000000 1114 } 1115 }, 1116 "expected": { 1117 "error": "invalid_descriptor_size" 1118 } 1119 }, 1120 { 1121 "id": "blossom_descriptor_negative_uploaded_081", 1122 "kind": "blossom.descriptor.parse.invalid", 1123 "input": { 1124 "descriptor": { 1125 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1126 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1127 "size": 3, 1128 "type": "text/plain", 1129 "uploaded": -1 1130 } 1131 }, 1132 "expected": { 1133 "error": "invalid_descriptor_uploaded" 1134 } 1135 }, 1136 { 1137 "id": "blossom_descriptor_parameterized_media_type_valid_082", 1138 "kind": "blossom.descriptor.parse.valid", 1139 "input": { 1140 "descriptor": { 1141 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1142 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1143 "size": 3, 1144 "type": "TEXT/PLAIN; PROFILE=mobile; CHARSET=UTF-8", 1145 "uploaded": 1700000000 1146 } 1147 }, 1148 "expected": { 1149 "descriptor": { 1150 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1151 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1152 "size": 3, 1153 "type": "text/plain; charset=UTF-8; profile=mobile", 1154 "uploaded": 1700000000 1155 } 1156 } 1157 }, 1158 { 1159 "id": "blossom_descriptor_invalid_media_type_082b", 1160 "kind": "blossom.descriptor.parse.invalid", 1161 "input": { 1162 "descriptor": { 1163 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1164 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1165 "size": 3, 1166 "type": "image/", 1167 "uploaded": 1700000000 1168 } 1169 }, 1170 "expected": { 1171 "error": "invalid_media_type" 1172 } 1173 }, 1174 { 1175 "id": "blossom_descriptor_uppercase_sha256_083", 1176 "kind": "blossom.descriptor.parse.invalid", 1177 "input": { 1178 "descriptor": { 1179 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1180 "sha256": "BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD", 1181 "size": 3, 1182 "type": "text/plain", 1183 "uploaded": 1700000000 1184 } 1185 }, 1186 "expected": { 1187 "error": "invalid_sha256" 1188 } 1189 }, 1190 { 1191 "id": "blossom_descriptor_url_query_forbidden_084", 1192 "kind": "blossom.descriptor.parse.invalid", 1193 "input": { 1194 "descriptor": { 1195 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt?download=1", 1196 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1197 "size": 3, 1198 "type": "text/plain", 1199 "uploaded": 1700000000 1200 } 1201 }, 1202 "expected": { 1203 "error": "blob_url_query_forbidden" 1204 } 1205 }, 1206 { 1207 "id": "blossom_descriptor_approved_https_reference_084b", 1208 "kind": "blossom.descriptor.approve_reference.valid", 1209 "input": { 1210 "descriptor": { 1211 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1212 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1213 "size": 3, 1214 "type": "text/plain", 1215 "uploaded": 1700000000 1216 } 1217 }, 1218 "expected": { 1219 "approved_url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt" 1220 } 1221 }, 1222 { 1223 "id": "blossom_descriptor_public_http_reference_rejected_084c", 1224 "kind": "blossom.descriptor.approve_reference.invalid", 1225 "input": { 1226 "descriptor": { 1227 "url": "http://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1228 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1229 "size": 3, 1230 "type": "text/plain", 1231 "uploaded": 1700000000 1232 } 1233 }, 1234 "expected": { 1235 "error": "insecure_blob_url" 1236 } 1237 }, 1238 { 1239 "id": "blossom_descriptor_verify_abc_valid_085", 1240 "kind": "blossom.descriptor.verify_bytes.valid", 1241 "input": { 1242 "descriptor": { 1243 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1244 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1245 "size": 3, 1246 "type": "text/plain", 1247 "uploaded": 1700000000 1248 }, 1249 "approved_media_type": "text/plain", 1250 "bytes_hex": "616263" 1251 }, 1252 "expected": { 1253 "verified": { 1254 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1255 "size": 3, 1256 "media_type": "text/plain" 1257 } 1258 } 1259 }, 1260 { 1261 "id": "blossom_descriptor_verify_empty_valid_086", 1262 "kind": "blossom.descriptor.verify_bytes.valid", 1263 "input": { 1264 "descriptor": { 1265 "url": "https://media.example/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.bin", 1266 "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 1267 "size": 0, 1268 "type": "application/octet-stream", 1269 "uploaded": 1700000000 1270 }, 1271 "approved_media_type": "application/octet-stream", 1272 "bytes_hex": "" 1273 }, 1274 "expected": { 1275 "verified": { 1276 "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", 1277 "size": 0, 1278 "media_type": "application/octet-stream" 1279 } 1280 } 1281 }, 1282 { 1283 "id": "blossom_descriptor_verify_no_sniff_or_extension_inference_087", 1284 "kind": "blossom.descriptor.verify_bytes.valid", 1285 "input": { 1286 "descriptor": { 1287 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.jpg", 1288 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1289 "size": 3, 1290 "type": "image/png", 1291 "uploaded": 1700000000 1292 }, 1293 "approved_media_type": "image/png", 1294 "bytes_hex": "616263" 1295 }, 1296 "expected": { 1297 "verified": { 1298 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1299 "size": 3, 1300 "media_type": "image/png" 1301 } 1302 } 1303 }, 1304 { 1305 "id": "blossom_descriptor_verify_approved_media_type_canonicalized_088", 1306 "kind": "blossom.descriptor.verify_bytes.valid", 1307 "input": { 1308 "descriptor": { 1309 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.png", 1310 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1311 "size": 3, 1312 "type": "image/png", 1313 "uploaded": 1700000000 1314 }, 1315 "approved_media_type": "IMAGE/PNG", 1316 "bytes_hex": "616263" 1317 }, 1318 "expected": { 1319 "verified": { 1320 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1321 "size": 3, 1322 "media_type": "image/png" 1323 } 1324 } 1325 }, 1326 { 1327 "id": "blossom_descriptor_verify_hash_mismatch_089", 1328 "kind": "blossom.descriptor.verify_bytes.invalid", 1329 "input": { 1330 "descriptor": { 1331 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1332 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1333 "size": 7, 1334 "type": "text/plain", 1335 "uploaded": 1700000000 1336 }, 1337 "approved_media_type": "text/plain", 1338 "bytes_hex": "6368616e676564" 1339 }, 1340 "expected": { 1341 "error": "blob_hash_mismatch" 1342 } 1343 }, 1344 { 1345 "id": "blossom_descriptor_verify_size_mismatch_090", 1346 "kind": "blossom.descriptor.verify_bytes.invalid", 1347 "input": { 1348 "descriptor": { 1349 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1350 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1351 "size": 4, 1352 "type": "text/plain", 1353 "uploaded": 1700000000 1354 }, 1355 "approved_media_type": "text/plain", 1356 "bytes_hex": "616263" 1357 }, 1358 "expected": { 1359 "error": "blob_size_mismatch" 1360 } 1361 }, 1362 { 1363 "id": "blossom_descriptor_verify_media_type_mismatch_091", 1364 "kind": "blossom.descriptor.verify_bytes.invalid", 1365 "input": { 1366 "descriptor": { 1367 "url": "https://media.example/ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.txt", 1368 "sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", 1369 "size": 3, 1370 "type": "text/plain", 1371 "uploaded": 1700000000 1372 }, 1373 "approved_media_type": "application/octet-stream", 1374 "bytes_hex": "616263" 1375 }, 1376 "expected": { 1377 "error": "blob_media_type_mismatch" 1378 } 1379 } 1380 ] 1381 }