mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
test: update WPT for WebCryptoAPI to 76dfa54e5d
PR-URL: https://github.com/nodejs/node/pull/56093 Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Jason Zhang <xzha4350@gmail.com>
This commit is contained in:
2
test/fixtures/wpt/README.md
vendored
2
test/fixtures/wpt/README.md
vendored
@@ -32,7 +32,7 @@ Last update:
|
||||
- user-timing: https://github.com/web-platform-tests/wpt/tree/5ae85bf826/user-timing
|
||||
- wasm/jsapi: https://github.com/web-platform-tests/wpt/tree/cde25e7e3c/wasm/jsapi
|
||||
- wasm/webapi: https://github.com/web-platform-tests/wpt/tree/fd1b23eeaa/wasm/webapi
|
||||
- WebCryptoAPI: https://github.com/web-platform-tests/wpt/tree/ecf39b605f/WebCryptoAPI
|
||||
- WebCryptoAPI: https://github.com/web-platform-tests/wpt/tree/76dfa54e5d/WebCryptoAPI
|
||||
- webidl/ecmascript-binding/es-exceptions: https://github.com/web-platform-tests/wpt/tree/a370aad338/webidl/ecmascript-binding/es-exceptions
|
||||
- webmessaging/broadcastchannel: https://github.com/web-platform-tests/wpt/tree/6495c91853/webmessaging/broadcastchannel
|
||||
- webstorage: https://github.com/web-platform-tests/wpt/tree/9dafa89214/webstorage
|
||||
|
||||
@@ -19,6 +19,14 @@ function getMismatchedJWKKeyData(algorithm) {
|
||||
return [];
|
||||
}
|
||||
|
||||
function getMismatchedKtyField(algorithm) {
|
||||
return mismatchedKtyField[algorithm.name];
|
||||
}
|
||||
|
||||
function getMismatchedCrvField(algorithm) {
|
||||
return mismatchedCrvField[algorithm.name];
|
||||
}
|
||||
|
||||
var validKeyData = {
|
||||
"P-521": [
|
||||
{
|
||||
@@ -201,3 +209,17 @@ var missingJWKFieldKeyData = {
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// The 'kty' field doesn't match the key algorithm.
|
||||
var mismatchedKtyField = {
|
||||
"P-521": "OKP",
|
||||
"P-256": "OKP",
|
||||
"P-384": "OKP",
|
||||
}
|
||||
|
||||
// The 'kty' field doesn't match the key algorithm.
|
||||
var mismatchedCrvField = {
|
||||
"P-521": "P-256",
|
||||
"P-256": "P-384",
|
||||
"P-384": "P-521",
|
||||
}
|
||||
|
||||
@@ -207,4 +207,64 @@ function run_test(algorithmNames) {
|
||||
});
|
||||
});
|
||||
|
||||
// The 'kty' field is not correct.
|
||||
testVectors.forEach(function(vector) {
|
||||
var name = vector.name;
|
||||
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
|
||||
getValidKeyData(algorithm).forEach(function(test) {
|
||||
if (test.format === "jwk") {
|
||||
var data = {crv: test.data.crv, kty: test.data.kty, d: test.data.d, x: test.data.x, d: test.data.d};
|
||||
data.kty = getMismatchedKtyField(algorithm);
|
||||
var usages = validUsages(vector, 'jwk', test.data);
|
||||
testError('jwk', algorithm, data, name, usages, true, "DataError", "Invalid 'kty' field");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// The 'ext' field is not correct.
|
||||
testVectors.forEach(function(vector) {
|
||||
var name = vector.name;
|
||||
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
|
||||
getValidKeyData(algorithm).forEach(function(test) {
|
||||
if (test.format === "jwk") {
|
||||
var data = {crv: test.data.crv, kty: test.data.kty, d: test.data.d, x: test.data.x, d: test.data.d};
|
||||
data.ext = false;
|
||||
var usages = validUsages(vector, 'jwk', test.data);
|
||||
testError('jwk', algorithm, data, name, usages, true, "DataError", "Import from a non-extractable");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// The 'use' field is incorrect.
|
||||
testVectors.forEach(function(vector) {
|
||||
var name = vector.name;
|
||||
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
|
||||
getValidKeyData(algorithm).forEach(function(test) {
|
||||
if (test.format === "jwk") {
|
||||
var data = {crv: test.data.crv, kty: test.data.kty, d: test.data.d, x: test.data.x, d: test.data.d};
|
||||
data.use = "invalid";
|
||||
var usages = validUsages(vector, 'jwk', test.data);
|
||||
if (usages.length !== 0)
|
||||
testError('jwk', algorithm, data, name, usages, true, "DataError", "Invalid 'use' field");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// The 'crv' field is incorrect.
|
||||
testVectors.forEach(function(vector) {
|
||||
var name = vector.name;
|
||||
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
|
||||
getValidKeyData(algorithm).forEach(function(test) {
|
||||
if (test.format === "jwk") {
|
||||
var data = {crv: test.data.crv, kty: test.data.kty, d: test.data.d, x: test.data.x, d: test.data.d};
|
||||
data.crv = getMismatchedCrvField(algorithm)
|
||||
var usages = validUsages(vector, 'jwk', test.data);
|
||||
testError('jwk', algorithm, data, name, usages, true, "DataError", "Invalid 'crv' field");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -17,6 +17,14 @@ function getMismatchedJWKKeyData(algorithm) {
|
||||
return mismatchedJWKKeyData[algorithm.name];
|
||||
}
|
||||
|
||||
function getMismatchedKtyField(algorithm) {
|
||||
return mismatchedKtyField[algorithm.name];
|
||||
}
|
||||
|
||||
function getMismatchedCrvField(algorithm) {
|
||||
return mismatchedCrvField[algorithm.name];
|
||||
}
|
||||
|
||||
var validKeyData = {
|
||||
"Ed25519": [
|
||||
{
|
||||
@@ -412,3 +420,19 @@ var mismatchedJWKKeyData = {
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
// The 'kty' field doesn't match the key algorithm.
|
||||
var mismatchedKtyField = {
|
||||
"Ed25519": "EC",
|
||||
"X25519": "EC",
|
||||
"Ed448": "EC",
|
||||
"X448": "EC",
|
||||
}
|
||||
|
||||
// The 'kty' field doesn't match the key algorithm.
|
||||
var mismatchedCrvField = {
|
||||
"Ed25519": "X25519",
|
||||
"X25519": "Ed448",
|
||||
"Ed448": "X25519",
|
||||
"X448": "Ed25519",
|
||||
}
|
||||
|
||||
2
test/fixtures/wpt/versions.json
vendored
2
test/fixtures/wpt/versions.json
vendored
@@ -88,7 +88,7 @@
|
||||
"path": "wasm/webapi"
|
||||
},
|
||||
"WebCryptoAPI": {
|
||||
"commit": "ecf39b605f4d2b5d7ef4fe344063c2856c9f105c",
|
||||
"commit": "76dfa54e5df7f8cee7501cc6d598cf647c2b8564",
|
||||
"path": "WebCryptoAPI"
|
||||
},
|
||||
"webidl/ecmascript-binding/es-exceptions": {
|
||||
|
||||
Reference in New Issue
Block a user