diff --git a/test_util/wpt b/test_util/wpt index c297f88500..5d424eb8c7 160000 --- a/test_util/wpt +++ b/test_util/wpt @@ -1 +1 @@ -Subproject commit c297f88500de105a82118d1a5527d52e63c7ba47 +Subproject commit 5d424eb8c75dee2c8c11f4d5db17ee4e31fe1a71 diff --git a/tools/wpt/expectation.json b/tools/wpt/expectation.json index 0f31e94f72..f1b476faf2 100644 --- a/tools/wpt/expectation.json +++ b/tools/wpt/expectation.json @@ -32,7 +32,11 @@ "pbkdf2.https.any.worker.html?5001-6000": true, "pbkdf2.https.any.worker.html?6001-7000": true, "pbkdf2.https.any.worker.html?7001-8000": true, - "pbkdf2.https.any.worker.html?8001-last": true + "pbkdf2.https.any.worker.html?8001-last": true, + "cfrg_curves_bits.https.any.html": false, + "cfrg_curves_bits.https.any.worker.html": false, + "cfrg_curves_keys.https.any.html": false, + "cfrg_curves_keys.https.any.worker.html": false }, "digest": { "digest.https.any.html": true, @@ -568,7 +572,263 @@ "successes_RSASSA-PKCS1-v1_5.https.any.worker.html?1-10": true, "successes_RSASSA-PKCS1-v1_5.https.any.worker.html?11-20": true, "successes_RSASSA-PKCS1-v1_5.https.any.worker.html?21-30": true, - "successes_RSASSA-PKCS1-v1_5.https.any.worker.html?31-last": true + "successes_RSASSA-PKCS1-v1_5.https.any.worker.html?31-last": true, + "failures_Ed25519.https.any.html": [ + "Bad usages: generateKey({name: Ed25519}, true, [encrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, encrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, encrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, encrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [decrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, decrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, decrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, decrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [wrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, wrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, wrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, wrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [unwrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, unwrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, unwrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, unwrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [deriveKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, deriveKey])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, deriveKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, deriveKey])", + "Bad usages: generateKey({name: Ed25519}, true, [deriveBits])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, deriveBits])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, deriveBits])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, deriveBits])", + "Empty usages: generateKey({name: Ed25519}, false, [])", + "Empty usages: generateKey({name: Ed25519}, true, [])" + ], + "failures_Ed25519.https.any.worker.html": [ + "Bad usages: generateKey({name: Ed25519}, true, [encrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, encrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, encrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, encrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [decrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, decrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, decrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, decrypt])", + "Bad usages: generateKey({name: Ed25519}, true, [wrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, wrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, wrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, wrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [unwrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, unwrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, unwrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, unwrapKey])", + "Bad usages: generateKey({name: Ed25519}, true, [deriveKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, deriveKey])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, deriveKey])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, deriveKey])", + "Bad usages: generateKey({name: Ed25519}, true, [deriveBits])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, deriveBits])", + "Bad usages: generateKey({name: Ed25519}, true, [verify, sign, deriveBits])", + "Bad usages: generateKey({name: Ed25519}, true, [sign, verify, sign, sign, verify, deriveBits])", + "Empty usages: generateKey({name: Ed25519}, false, [])", + "Empty usages: generateKey({name: Ed25519}, true, [])" + ], + "failures_Ed448.https.any.html": [ + "Bad usages: generateKey({name: Ed448}, true, [encrypt])", + "Bad usages: generateKey({name: Ed448}, true, [sign, encrypt])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, encrypt])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, encrypt])", + "Bad usages: generateKey({name: Ed448}, true, [decrypt])", + "Bad usages: generateKey({name: Ed448}, true, [sign, decrypt])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, decrypt])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, decrypt])", + "Bad usages: generateKey({name: Ed448}, true, [wrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, wrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, wrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, wrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [unwrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, unwrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, unwrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, unwrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [deriveKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, deriveKey])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, deriveKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, deriveKey])", + "Bad usages: generateKey({name: Ed448}, true, [deriveBits])", + "Bad usages: generateKey({name: Ed448}, true, [sign, deriveBits])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, deriveBits])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, deriveBits])", + "Empty usages: generateKey({name: Ed448}, false, [])", + "Empty usages: generateKey({name: Ed448}, true, [])" + ], + "failures_Ed448.https.any.worker.html": [ + "Bad usages: generateKey({name: Ed448}, true, [encrypt])", + "Bad usages: generateKey({name: Ed448}, true, [sign, encrypt])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, encrypt])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, encrypt])", + "Bad usages: generateKey({name: Ed448}, true, [decrypt])", + "Bad usages: generateKey({name: Ed448}, true, [sign, decrypt])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, decrypt])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, decrypt])", + "Bad usages: generateKey({name: Ed448}, true, [wrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, wrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, wrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, wrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [unwrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, unwrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, unwrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, unwrapKey])", + "Bad usages: generateKey({name: Ed448}, true, [deriveKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, deriveKey])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, deriveKey])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, deriveKey])", + "Bad usages: generateKey({name: Ed448}, true, [deriveBits])", + "Bad usages: generateKey({name: Ed448}, true, [sign, deriveBits])", + "Bad usages: generateKey({name: Ed448}, true, [verify, sign, deriveBits])", + "Bad usages: generateKey({name: Ed448}, true, [sign, verify, sign, sign, verify, deriveBits])", + "Empty usages: generateKey({name: Ed448}, false, [])", + "Empty usages: generateKey({name: Ed448}, true, [])" + ], + "failures_X25519.https.any.html": [ + "Bad usages: generateKey({name: X25519}, true, [encrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, encrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, encrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, encrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt])", + "Bad usages: generateKey({name: X25519}, true, [decrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, decrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, decrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, decrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt])", + "Bad usages: generateKey({name: X25519}, true, [sign])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, sign])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, sign])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, sign])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign])", + "Bad usages: generateKey({name: X25519}, true, [verify])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, verify])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, verify])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, verify])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify])", + "Bad usages: generateKey({name: X25519}, true, [wrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, wrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, wrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, wrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey])", + "Bad usages: generateKey({name: X25519}, true, [unwrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, unwrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, unwrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, unwrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey])", + "Empty usages: generateKey({name: X25519}, false, [])", + "Empty usages: generateKey({name: X25519}, true, [])" + ], + "failures_X25519.https.any.worker.html": [ + "Bad usages: generateKey({name: X25519}, true, [encrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, encrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, encrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, encrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt])", + "Bad usages: generateKey({name: X25519}, true, [decrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, decrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, decrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, decrypt])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt])", + "Bad usages: generateKey({name: X25519}, true, [sign])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, sign])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, sign])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, sign])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign])", + "Bad usages: generateKey({name: X25519}, true, [verify])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, verify])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, verify])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, verify])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify])", + "Bad usages: generateKey({name: X25519}, true, [wrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, wrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, wrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, wrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey])", + "Bad usages: generateKey({name: X25519}, true, [unwrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, unwrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, deriveKey, unwrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveBits, unwrapKey])", + "Bad usages: generateKey({name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey])", + "Empty usages: generateKey({name: X25519}, false, [])", + "Empty usages: generateKey({name: X25519}, true, [])" + ], + "failures_X448.https.any.html": [ + "Bad usages: generateKey({name: X448}, true, [encrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, encrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, encrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, encrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt])", + "Bad usages: generateKey({name: X448}, true, [decrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, decrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, decrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, decrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt])", + "Bad usages: generateKey({name: X448}, true, [sign])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, sign])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, sign])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, sign])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign])", + "Bad usages: generateKey({name: X448}, true, [verify])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, verify])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, verify])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, verify])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify])", + "Bad usages: generateKey({name: X448}, true, [wrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, wrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, wrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, wrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey])", + "Bad usages: generateKey({name: X448}, true, [unwrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, unwrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, unwrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, unwrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey])", + "Empty usages: generateKey({name: X448}, false, [])", + "Empty usages: generateKey({name: X448}, true, [])" + ], + "failures_X448.https.any.worker.html": [ + "Bad usages: generateKey({name: X448}, true, [encrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, encrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, encrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, encrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, encrypt])", + "Bad usages: generateKey({name: X448}, true, [decrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, decrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, decrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, decrypt])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, decrypt])", + "Bad usages: generateKey({name: X448}, true, [sign])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, sign])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, sign])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, sign])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, sign])", + "Bad usages: generateKey({name: X448}, true, [verify])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, verify])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, verify])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, verify])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, verify])", + "Bad usages: generateKey({name: X448}, true, [wrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, wrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, wrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, wrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, wrapKey])", + "Bad usages: generateKey({name: X448}, true, [unwrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, unwrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, deriveKey, unwrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveBits, unwrapKey])", + "Bad usages: generateKey({name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits, deriveKey, deriveBits, unwrapKey])", + "Empty usages: generateKey({name: X448}, false, [])", + "Empty usages: generateKey({name: X448}, true, [])" + ], + "successes_Ed25519.https.any.html": false, + "successes_Ed25519.https.any.worker.html": false, + "successes_Ed448.https.any.html": false, + "successes_Ed448.https.any.worker.html": false, + "successes_X25519.https.any.html": false, + "successes_X25519.https.any.worker.html": false, + "successes_X448.https.any.html": false, + "successes_X448.https.any.worker.html": false }, "historical.any.html": false, "historical.any.worker.html": false, @@ -638,7 +898,9 @@ "rsa_importKey.https.any.html": true, "rsa_importKey.https.any.worker.html": true, "symmetric_importKey.https.any.html": true, - "symmetric_importKey.https.any.worker.html": true + "symmetric_importKey.https.any.worker.html": true, + "okp_importKey.https.any.html": false, + "okp_importKey.https.any.worker.html": false }, "randomUUID.https.any.html": true, "randomUUID.https.any.worker.html": true, @@ -716,10 +978,10 @@ "importVectorKeys step: ECDSA P-521 with SHA-256 verification failure due to altered plaintext", "importVectorKeys step: ECDSA P-521 with SHA-384 verification failure due to altered plaintext", "importVectorKeys step: ECDSA P-521 with SHA-512 verification failure due to altered plaintext", + "importVectorKeys step: ECDSA P-521 with SHA-512 signing with wrong algorithm name", "importVectorKeys step: ECDSA P-521 with SHA-1 signing with wrong algorithm name", "importVectorKeys step: ECDSA P-521 with SHA-256 signing with wrong algorithm name", "importVectorKeys step: ECDSA P-521 with SHA-384 signing with wrong algorithm name", - "importVectorKeys step: ECDSA P-521 with SHA-512 signing with wrong algorithm name", "importVectorKeys step: ECDSA P-521 with SHA-1 verifying with wrong algorithm name", "importVectorKeys step: ECDSA P-521 with SHA-256 verifying with wrong algorithm name", "importVectorKeys step: ECDSA P-521 with SHA-384 verifying with wrong algorithm name", @@ -812,7 +1074,59 @@ "rsa_pkcs.https.any.html": true, "rsa_pkcs.https.any.worker.html": true, "rsa_pss.https.any.html": true, - "rsa_pss.https.any.worker.html": true + "rsa_pss.https.any.worker.html": true, + "eddsa.https.any.html": [ + "importVectorKeys step: EdDSA Ed25519 verification", + "importVectorKeys step: EdDSA Ed448 verification", + "importVectorKeys step: EdDSA Ed25519 verification with altered signature after call", + "importVectorKeys step: EdDSA Ed448 verification with altered signature after call", + "importVectorKeys step: EdDSA Ed25519 with altered data after call", + "importVectorKeys step: EdDSA Ed448 with altered data after call", + "importVectorKeys step: EdDSA Ed25519 using privateKey to verify", + "importVectorKeys step: EdDSA Ed448 using privateKey to verify", + "importVectorKeys step: EdDSA Ed25519 using publicKey to sign", + "importVectorKeys step: EdDSA Ed448 using publicKey to sign", + "importVectorKeys step: EdDSA Ed25519 no verify usage", + "importVectorKeys step: EdDSA Ed448 no verify usage", + "importVectorKeys step: EdDSA Ed25519 round trip", + "importVectorKeys step: EdDSA Ed448 round trip", + "importVectorKeys step: EdDSA Ed25519 verification failure due to altered signature", + "importVectorKeys step: EdDSA Ed448 verification failure due to altered signature", + "importVectorKeys step: EdDSA Ed25519 verification failure due to shortened signature", + "importVectorKeys step: EdDSA Ed448 verification failure due to shortened signature", + "importVectorKeys step: EdDSA Ed25519 verification failure due to altered data", + "importVectorKeys step: EdDSA Ed448 verification failure due to altered data", + "importVectorKeys step: EdDSA Ed25519 signing with wrong algorithm name", + "importVectorKeys step: EdDSA Ed448 signing with wrong algorithm name", + "importVectorKeys step: EdDSA Ed25519 verifying with wrong algorithm name", + "importVectorKeys step: EdDSA Ed448 verifying with wrong algorithm name" + ], + "eddsa.https.any.worker.html": [ + "importVectorKeys step: EdDSA Ed25519 verification", + "importVectorKeys step: EdDSA Ed448 verification", + "importVectorKeys step: EdDSA Ed25519 verification with altered signature after call", + "importVectorKeys step: EdDSA Ed448 verification with altered signature after call", + "importVectorKeys step: EdDSA Ed25519 with altered data after call", + "importVectorKeys step: EdDSA Ed448 with altered data after call", + "importVectorKeys step: EdDSA Ed25519 using privateKey to verify", + "importVectorKeys step: EdDSA Ed448 using privateKey to verify", + "importVectorKeys step: EdDSA Ed25519 using publicKey to sign", + "importVectorKeys step: EdDSA Ed448 using publicKey to sign", + "importVectorKeys step: EdDSA Ed25519 no verify usage", + "importVectorKeys step: EdDSA Ed448 no verify usage", + "importVectorKeys step: EdDSA Ed25519 round trip", + "importVectorKeys step: EdDSA Ed448 round trip", + "importVectorKeys step: EdDSA Ed25519 verification failure due to altered signature", + "importVectorKeys step: EdDSA Ed448 verification failure due to altered signature", + "importVectorKeys step: EdDSA Ed25519 verification failure due to shortened signature", + "importVectorKeys step: EdDSA Ed448 verification failure due to shortened signature", + "importVectorKeys step: EdDSA Ed25519 verification failure due to altered data", + "importVectorKeys step: EdDSA Ed448 verification failure due to altered data", + "importVectorKeys step: EdDSA Ed25519 signing with wrong algorithm name", + "importVectorKeys step: EdDSA Ed448 signing with wrong algorithm name", + "importVectorKeys step: EdDSA Ed25519 verifying with wrong algorithm name", + "importVectorKeys step: EdDSA Ed448 verifying with wrong algorithm name" + ] }, "wrapKey_unwrapKey": { "wrapKey_unwrapKey.https.any.worker.html": [ @@ -879,8 +1193,74 @@ "Can wrap and unwrap RSA-PSS private key keys as non-extractable using jwk and AES-GCM", "Can unwrap RSA-PSS private key non-extractable keys using jwk and AES-GCM", "Can wrap and unwrap ECDH public key keys using spki and RSA-OAEP" + ], + "wrapKey_unwrapKey.https.any.html": [ + "Can wrap and unwrap ECDH public key keys using spki and AES-CTR", + "Can wrap and unwrap ECDH public key keys using spki and AES-CBC", + "Can wrap and unwrap ECDSA public key keys using spki and AES-GCM", + "Can wrap and unwrap ECDSA public key keys using jwk and AES-GCM", + "Can wrap and unwrap ECDSA private key keys using pkcs8 and AES-GCM", + "Can wrap and unwrap ECDSA private key keys as non-extractable using pkcs8 and AES-GCM", + "Can wrap and unwrap ECDSA private key keys using jwk and AES-GCM", + "Can wrap and unwrap ECDSA private key keys as non-extractable using jwk and AES-GCM", + "Can unwrap ECDSA private key non-extractable keys using jwk and AES-GCM", + "Can wrap and unwrap ECDH public key keys using spki and AES-GCM", + "Can wrap and unwrap ECDH public key keys using jwk and AES-GCM", + "Can wrap and unwrap ECDH private key keys using pkcs8 and AES-GCM", + "Can wrap and unwrap ECDH private key keys as non-extractable using pkcs8 and AES-GCM", + "Can wrap and unwrap ECDH private key keys using jwk and AES-GCM", + "Can wrap and unwrap ECDH private key keys as non-extractable using jwk and AES-GCM", + "Can unwrap ECDH private key non-extractable keys using jwk and AES-GCM", + "Can wrap and unwrap HMAC keys using raw and AES-GCM", + "Can wrap and unwrap HMAC keys as non-extractable using raw and AES-GCM", + "Can wrap and unwrap HMAC keys using jwk and AES-GCM", + "Can wrap and unwrap HMAC keys as non-extractable using jwk and AES-GCM", + "Can unwrap HMAC non-extractable keys using jwk and AES-GCM", + "Can wrap and unwrap AES-CTR keys using raw and AES-GCM", + "Can wrap and unwrap AES-CTR keys as non-extractable using raw and AES-GCM", + "Can wrap and unwrap AES-CTR keys using jwk and AES-GCM", + "Can wrap and unwrap AES-CTR keys as non-extractable using jwk and AES-GCM", + "Can unwrap AES-CTR non-extractable keys using jwk and AES-GCM", + "Can wrap and unwrap AES-CBC keys using raw and AES-GCM", + "Can wrap and unwrap AES-CBC keys as non-extractable using raw and AES-GCM", + "Can wrap and unwrap AES-CBC keys using jwk and AES-GCM", + "Can wrap and unwrap AES-CBC keys as non-extractable using jwk and AES-GCM", + "Can unwrap AES-CBC non-extractable keys using jwk and AES-GCM", + "Can wrap and unwrap AES-GCM keys using raw and AES-GCM", + "Can wrap and unwrap AES-GCM keys as non-extractable using raw and AES-GCM", + "Can wrap and unwrap AES-GCM keys using jwk and AES-GCM", + "Can wrap and unwrap AES-GCM keys as non-extractable using jwk and AES-GCM", + "Can unwrap AES-GCM non-extractable keys using jwk and AES-GCM", + "Can wrap and unwrap AES-KW keys using raw and AES-GCM", + "Can wrap and unwrap AES-KW keys as non-extractable using raw and AES-GCM", + "Can wrap and unwrap AES-KW keys using jwk and AES-GCM", + "Can wrap and unwrap AES-KW keys as non-extractable using jwk and AES-GCM", + "Can unwrap AES-KW non-extractable keys using jwk and AES-GCM", + "Can wrap and unwrap RSA-PSS public key keys using spki and AES-GCM", + "Can wrap and unwrap RSA-PSS public key keys using jwk and AES-GCM", + "Can wrap and unwrap RSA-PSS private key keys using pkcs8 and AES-GCM", + "Can wrap and unwrap RSA-PSS private key keys as non-extractable using pkcs8 and AES-GCM", + "Can wrap and unwrap RSA-PSS private key keys using jwk and AES-GCM", + "Can wrap and unwrap RSA-PSS private key keys as non-extractable using jwk and AES-GCM", + "Can unwrap RSA-PSS private key non-extractable keys using jwk and AES-GCM", + "Can wrap and unwrap RSA-OAEP public key keys using spki and AES-GCM", + "Can wrap and unwrap RSA-OAEP public key keys using jwk and AES-GCM", + "Can wrap and unwrap RSA-OAEP private key keys using pkcs8 and AES-GCM", + "Can wrap and unwrap RSA-OAEP private key keys as non-extractable using pkcs8 and AES-GCM", + "Can wrap and unwrap RSA-OAEP private key keys using jwk and AES-GCM", + "Can wrap and unwrap RSA-OAEP private key keys as non-extractable using jwk and AES-GCM", + "Can unwrap RSA-OAEP private key non-extractable keys using jwk and AES-GCM", + "Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using spki and AES-GCM", + "Can wrap and unwrap RSASSA-PKCS1-v1_5 public key keys using jwk and AES-GCM", + "Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using pkcs8 and AES-GCM", + "Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using pkcs8 and AES-GCM", + "Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys using jwk and AES-GCM", + "Can wrap and unwrap RSASSA-PKCS1-v1_5 private key keys as non-extractable using jwk and AES-GCM", + "Can unwrap RSASSA-PKCS1-v1_5 private key non-extractable keys using jwk and AES-GCM", + "Can wrap and unwrap ECDH public key keys using spki and RSA-OAEP" ] - } + }, + "algorithm-discards-context.https.window.html": false }, "console": { "console-is-a-namespace.any.html": true, @@ -2368,8 +2748,22 @@ "request": { "request-init-002.any.html": true, "request-init-002.any.worker.html": true, - "request-init-stream.any.html": true, - "request-init-stream.any.worker.html": true, + "request-init-stream.any.html": [ + "It is error to omit .duplex when the body is a ReadableStream.", + "It is error to set .duplex = 'full' when the body is null.", + "It is error to set .duplex = 'full' when the body is a string.", + "It is error to set .duplex = 'full' when the body is a Uint8Array.", + "It is error to set .duplex = 'full' when the body is a Blob.", + "It is error to set .duplex = 'full' when the body is a ReadableStream." + ], + "request-init-stream.any.worker.html": [ + "It is error to omit .duplex when the body is a ReadableStream.", + "It is error to set .duplex = 'full' when the body is null.", + "It is error to set .duplex = 'full' when the body is a string.", + "It is error to set .duplex = 'full' when the body is a Uint8Array.", + "It is error to set .duplex = 'full' when the body is a Blob.", + "It is error to set .duplex = 'full' when the body is a ReadableStream." + ], "request-consume-empty.any.html": [ "Consume empty FormData request body as text" ], @@ -2434,6 +2828,7 @@ "Adding invalid request header \"Keep-Alive: KO\"", "Adding invalid request header \"Origin: KO\"", "Adding invalid request header \"Referer: KO\"", + "Adding invalid request header \"Set-Cookie: KO\"", "Adding invalid request header \"TE: KO\"", "Adding invalid request header \"Trailer: KO\"", "Adding invalid request header \"Transfer-Encoding: KO\"", @@ -2471,6 +2866,7 @@ "Adding invalid request header \"Keep-Alive: KO\"", "Adding invalid request header \"Origin: KO\"", "Adding invalid request header \"Referer: KO\"", + "Adding invalid request header \"Set-Cookie: KO\"", "Adding invalid request header \"TE: KO\"", "Adding invalid request header \"Trailer: KO\"", "Adding invalid request header \"Transfer-Encoding: KO\"", @@ -3003,6 +3399,7 @@ "Request interface: new Request('about:blank') must inherit property \"isHistoryNavigation\" with the proper type", "Response interface: operation error()", "Response interface: operation redirect(USVString, optional unsigned short)", + "Response interface: operation json(any, optional ResponseInit)", "Response interface: attribute body", "Response interface: attribute bodyUsed", "Response interface: calling redirect(USVString, optional unsigned short) on new Response() with too few arguments must throw TypeError", @@ -3033,6 +3430,7 @@ "Request interface: new Request('about:blank') must inherit property \"isHistoryNavigation\" with the proper type", "Response interface: operation error()", "Response interface: operation redirect(USVString, optional unsigned short)", + "Response interface: operation json(any, optional ResponseInit)", "Response interface: attribute body", "Response interface: attribute bodyUsed", "Response interface: calling redirect(USVString, optional unsigned short) on new Response() with too few arguments must throw TypeError", @@ -4236,7 +4634,10 @@ "Pattern: [] Inputs: [\"https://example.com/\"]", "Pattern: [] Inputs: [{}]", "Pattern: [] Inputs: []", - "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]" + "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]", + "Pattern: [{\"pathname\":\"/foo/bar\"},{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO/BAR\"}]", + "Pattern: [\"https://example.com:8080/foo?bar#baz\",{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO\",\"search\":\"BAR\",\"hash\":\"BAZ\",\"baseURL\":\"https://example.com:8080\"}]", + "Pattern: [\"/foo?bar#baz\",\"https://example.com:8080\",{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO\",\"search\":\"BAR\",\"hash\":\"BAZ\",\"baseURL\":\"https://example.com:8080\"}]" ], "urlpattern.any.worker.html": [ "Pattern: [{\"pathname\":\"/foo/:bar?\"}] Inputs: [{\"pathname\":\"/foo\"}]", @@ -4253,7 +4654,10 @@ "Pattern: [] Inputs: [\"https://example.com/\"]", "Pattern: [] Inputs: [{}]", "Pattern: [] Inputs: []", - "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]" + "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]", + "Pattern: [{\"pathname\":\"/foo/bar\"},{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO/BAR\"}]", + "Pattern: [\"https://example.com:8080/foo?bar#baz\",{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO\",\"search\":\"BAR\",\"hash\":\"BAZ\",\"baseURL\":\"https://example.com:8080\"}]", + "Pattern: [\"/foo?bar#baz\",\"https://example.com:8080\",{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO\",\"search\":\"BAR\",\"hash\":\"BAZ\",\"baseURL\":\"https://example.com:8080\"}]" ], "urlpattern.https.any.html": [ "Pattern: [{\"pathname\":\"/foo/:bar?\"}] Inputs: [{\"pathname\":\"/foo\"}]", @@ -4270,7 +4674,10 @@ "Pattern: [] Inputs: [\"https://example.com/\"]", "Pattern: [] Inputs: [{}]", "Pattern: [] Inputs: []", - "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]" + "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]", + "Pattern: [{\"pathname\":\"/foo/bar\"},{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO/BAR\"}]", + "Pattern: [\"https://example.com:8080/foo?bar#baz\",{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO\",\"search\":\"BAR\",\"hash\":\"BAZ\",\"baseURL\":\"https://example.com:8080\"}]", + "Pattern: [\"/foo?bar#baz\",\"https://example.com:8080\",{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO\",\"search\":\"BAR\",\"hash\":\"BAZ\",\"baseURL\":\"https://example.com:8080\"}]" ], "urlpattern.https.any.worker.html": [ "Pattern: [{\"pathname\":\"/foo/:bar?\"}] Inputs: [{\"pathname\":\"/foo\"}]", @@ -4287,7 +4694,10 @@ "Pattern: [] Inputs: [\"https://example.com/\"]", "Pattern: [] Inputs: [{}]", "Pattern: [] Inputs: []", - "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]" + "Pattern: [{\"pathname\":\"*{}**?\"}] Inputs: [{\"pathname\":\"foobar\"}]", + "Pattern: [{\"pathname\":\"/foo/bar\"},{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO/BAR\"}]", + "Pattern: [\"https://example.com:8080/foo?bar#baz\",{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO\",\"search\":\"BAR\",\"hash\":\"BAZ\",\"baseURL\":\"https://example.com:8080\"}]", + "Pattern: [\"/foo?bar#baz\",\"https://example.com:8080\",{\"ignoreCase\":true}] Inputs: [{\"pathname\":\"/FOO\",\"search\":\"BAR\",\"hash\":\"BAZ\",\"baseURL\":\"https://example.com:8080\"}]" ] }, "compression": {