◐ Shell
clean mode source ↗

test,crypto: update WebCryptoAPI WPT · nodejs/node@bb4aa7a

Original file line numberDiff line numberDiff line change

@@ -32,7 +32,7 @@ Last update:

3232

- user-timing: https://github.com/web-platform-tests/wpt/tree/5ae85bf826/user-timing

3333

- wasm/jsapi: https://github.com/web-platform-tests/wpt/tree/cde25e7e3c/wasm/jsapi

3434

- wasm/webapi: https://github.com/web-platform-tests/wpt/tree/fd1b23eeaa/wasm/webapi

35-

- WebCryptoAPI: https://github.com/web-platform-tests/wpt/tree/b81831169b/WebCryptoAPI

35+

- WebCryptoAPI: https://github.com/web-platform-tests/wpt/tree/ecf39b605f/WebCryptoAPI

3636

- webidl/ecmascript-binding/es-exceptions: https://github.com/web-platform-tests/wpt/tree/a370aad338/webidl/ecmascript-binding/es-exceptions

3737

- webmessaging/broadcastchannel: https://github.com/web-platform-tests/wpt/tree/6495c91853/webmessaging/broadcastchannel

3838

- webstorage: https://github.com/web-platform-tests/wpt/tree/9dafa89214/webstorage

Original file line numberDiff line numberDiff line change

@@ -118,6 +118,20 @@

118118

});

119119

});

120120
121+

// Call digest() with empty algorithm object

122+

Object.keys(sourceData).forEach(function(size) {

123+

promise_test(function(test) {

124+

var promise = subtle.digest({}, sourceData[size])

125+

.then(function(result) {

126+

assert_unreached("digest() with missing algorithm name should have thrown a TypeError");

127+

}, function(err) {

128+

assert_equals(err.name, "TypeError", "Missing algorithm name should cause TypeError")

129+

});

130+
131+

return promise;

132+

}, "empty algorithm object with " + size);

133+

});

134+
121135
122136

done();

123137
Original file line numberDiff line numberDiff line change

@@ -166,6 +166,14 @@ function run_test(algorithmNames) {

166166

});

167167

});

168168
169+

// Empty algorithm should fail with TypeError

170+

allValidUsages(["decrypt", "sign", "deriveBits"], true, []) // Small search space, shouldn't matter because should fail before used

171+

.forEach(function(usages) {

172+

[false, true, "RED", 7].forEach(function(extractable){

173+

testError({}, extractable, usages, "TypeError", "Empty algorithm");

174+

});

175+

});

176+
169177
170178

// Algorithms normalize okay, but usages bad (though not empty).

171179

// It shouldn't matter what other extractable is. Should fail

Original file line numberDiff line numberDiff line change

@@ -192,4 +192,19 @@ function run_test(algorithmNames) {

192192

});

193193

});

194194

});

195+
196+

// Missing mandatory "name" field on algorithm

197+

testVectors.forEach(function(vector) {

198+

var name = vector.name;

199+

// We just need *some* valid keydata, so pick the first available algorithm.

200+

var algorithm = allAlgorithmSpecifiersFor(name)[0];

201+

getValidKeyData(algorithm).forEach(function(test) {

202+

validUsages(vector, test.format, test.data).forEach(function(usages) {

203+

[true, false].forEach(function(extractable) {

204+

testError(test.format, {}, test.data, name, usages, extractable, "TypeError", "Missing algorithm name");

205+

});

206+

});

207+

});

208+

});

209+
195210

}

Original file line numberDiff line numberDiff line change

@@ -88,7 +88,7 @@

8888

"path": "wasm/webapi"

8989

},

9090

"WebCryptoAPI": {

91-

"commit": "b81831169b8527a6c569a4ad92cf8a1baf4a7118",

91+

"commit": "ecf39b605f4d2b5d7ef4fe344063c2856c9f105c",

9292

"path": "WebCryptoAPI"

9393

},

9494

"webidl/ecmascript-binding/es-exceptions": {