accept-signature.window.js (2561B)
1 // META: script=helper.js 2 // 3 // The following tests verify that `accept-signature` headers are sent when 4 // requesting resources via `<script>` elements. 5 6 let test_cases = [ 7 { 8 integrity: `ed25519-${kValidKeys['rfc']}`, 9 header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`, 10 }, 11 { 12 integrity: `ed25519-${kValidKeys['rfc']} malformed-thing`, 13 header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`, 14 }, 15 { 16 integrity: `ed25519-${kValidKeys['rfc']} ed25519-${kValidKeys['rfc']}`, 17 header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`, 18 }, 19 { 20 integrity: `ed25519-${kValidKeys['arbitrary']} ed25519-${kValidKeys['rfc']}`, 21 header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="ed25519-integrity", ` + 22 `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`, 23 }, 24 { 25 integrity: `ed25519-${kValidKeys['rfc']} ed25519-${kValidKeys['arbitrary']}`, 26 header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity", ` + 27 `sig1=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="ed25519-integrity"`, 28 }, 29 { 30 integrity: `ed25519-${kValidKeys['arbitrary']} malformed-thing ed25519-${kValidKeys['rfc']}`, 31 header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="ed25519-integrity", ` + 32 `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`, 33 }, 34 { 35 integrity: `ed25519-${kValidKeys['rfc']} malformed-thing ed25519-${kValidKeys['arbitrary']}`, 36 header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity", ` + 37 `sig1=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="ed25519-integrity"`, 38 }, 39 ]; 40 41 let test_counter = 0; 42 for (let test of test_cases) { 43 test_counter++; 44 async_test(t => { 45 let s = document.createElement('script'); 46 let resource = new URL("/subresource-integrity/signatures/accept-signature-script.py", self.location); 47 resource.searchParams.set("header", test.header); 48 resource.searchParams.set("counter", test_counter); // Just to force independent requests. 49 s.src = resource; 50 s.integrity = test.integrity; 51 s.onload = t.step_func_done(e => { 52 assert_equals(s.getAttribute('matched'), 'true'); 53 }); 54 s.onerror = t.unreached_func("Script should not fail."); 55 56 document.body.appendChild(s); 57 }, test.integrity) 58 }