blob: ca80c228655a3e2e9200d76c48a14e372a9b3c32 [file] [log] [blame]
<!DOCTYPE html>
<meta http-equiv="Content-Security-Policy"
content="script-src 'unsafe-inline' 'nonce-abcd' 'ed25519-qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0='">
<title>Subresource Integrity with Ed25519 plus Content Security Policy</title>
<script src="/resources/testharness.js" nonce="abcd"></script>
<script src="/resources/testharnessreport.js" nonce="abcd"></script>
<script src="/resources/sriharness.js" nonce="abcd"></script>
<div id="log"></div>
<div id="container"></div>
<script nonce="abcd">
// This needs to be the same key as in this doc's content security policy.
var public_key = "qGFmwTxlocg707D1cX4w60iTwtfwbMLf8ITDyfko7s0=";
new SRIScriptTest(
true,
"Ed25519-with-CSP, passes, valid key, valid signature.",
"ed25519-signature.js",
"ed25519-" + public_key
).execute();
new SRIScriptTest(
false,
"Ed25519-with-CSP, fails, valid key, invalid signature.",
"ed25519-broken-signature.js",
"ed25519-" + public_key
).execute();
// The first of these uses the nonce rather than the signature to pass CSP.
// That doesn't test anything useful about the Ed25519 feature, but is here
// to test the precondition for the next test. So if this test passes and
// the second one fails, then we can be sure that the 2nd test failed only
// because of the CSP key mismatch, as that's the only difference between
// the tests.
var key_not_in_csp = "5MVHFfs/9Ri+YSwH4FwneSFp88t1ljryPoLxdiyTKks=";
new SRIScriptTest(
true,
"Ed25519-with-CSP, passes, alternative key.",
"ed25519-signature2.js",
"ed25519-" + key_not_in_csp,
/* cross origin */ undefined,
/* nonce */ "abcd").execute();
new SRIScriptTest(
false,
"Ed25519-with-CSP, fails, valid key, valid signature, key not in CSP.",
"ed25519-signature2.js",
"ed25519-" + key_not_in_csp,
).execute();
</script>