test: update WPT for WebCryptoAPI to 6a1c545d77 · nodejs/node@47a2132 · GitHub
Skip to content

Commit 47a2132

Browse files
nodejs-github-botaduh95
authored andcommitted
test: update WPT for WebCryptoAPI to 6a1c545d77
PR-URL: #62187 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
1 parent 6c8fa42 commit 47a2132

14 files changed

Lines changed: 1187 additions & 81 deletions

File tree

test/fixtures/wpt/README.md

Lines changed: 1 addition & 1 deletion

test/fixtures/wpt/WebCryptoAPI/digest/cshake.tentative.https.any.js

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,17 +195,52 @@ Object.keys(digestedData).forEach(function (alg) {
195195

196196
promise_test(function (test) {
197197
var buffer = new Uint8Array(sourceData[size]);
198-
return crypto.subtle
198+
var promise = crypto.subtle
199199
.digest({ name: alg, length: length }, buffer)
200200
.then(function (result) {
201-
// Alter the buffer after calling digest
202-
buffer[0] = ~buffer[0];
203201
assert_true(
204202
equalBuffers(result, digestedData[alg][length][size]),
205203
'digest matches expected'
206204
);
207205
});
206+
// Alter the buffer after calling digest
207+
buffer[0] = ~buffer[0];
208+
return promise;
208209
}, alg + ' with ' + length + ' bit output and ' + size + ' source data and altered buffer after call');
210+
211+
promise_test(function (test) {
212+
var buffer = new Uint8Array(sourceData[size]);
213+
return crypto.subtle
214+
.digest({
215+
get name() {
216+
// Transfer the buffer while calling digest
217+
buffer.buffer.transfer();
218+
return alg;
219+
},
220+
length
221+
}, buffer)
222+
.then(function (result) {
223+
assert_true(
224+
equalBuffers(result, digestedData[alg][length].empty),
225+
'digest on transferred buffer should match result for empty buffer'
226+
);
227+
});
228+
}, alg + ' with ' + length + ' bit output and ' + size + ' source data and transferred buffer during call');
229+
230+
promise_test(function (test) {
231+
var buffer = new Uint8Array(sourceData[size]);
232+
var promise = crypto.subtle
233+
.digest({ name: alg, length: length }, buffer)
234+
.then(function (result) {
235+
assert_true(
236+
equalBuffers(result, digestedData[alg][length][size]),
237+
'digest matches expected'
238+
);
239+
});
240+
// Transfer the buffer after calling digest
241+
buffer.buffer.transfer();
242+
return promise;
243+
}, alg + ' with ' + length + ' bit output and ' + size + ' source data and transferred buffer after call');
209244
}
210245
});
211246
});

test/fixtures/wpt/WebCryptoAPI/digest/digest.https.any.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,30 @@
113113
copiedBuffer[0] = 255 - copiedBuffer[0];
114114
return promise;
115115
}, upCase + " with " + size + " source data and altered buffer after call");
116+
117+
promise_test(function(test) {
118+
var copiedBuffer = copyBuffer(sourceData[size]);
119+
copiedBuffer.buffer.transfer();
120+
return subtle.digest({name: upCase}, copiedBuffer)
121+
.then(function(result) {
122+
assert_true(equalBuffers(result, digestedData[alg].empty), "digest() on transferred buffer should yield result for empty buffer for " + alg + ":" + size);
123+
}, function(err) {
124+
assert_unreached("digest() threw an error for transferred buffer for " + alg + ":" + size + ": " + err.message);
125+
});
126+
}, upCase + " with " + size + " source data and transferred buffer during call");
127+
128+
promise_test(function(test) {
129+
var copiedBuffer = copyBuffer(sourceData[size]);
130+
var promise = subtle.digest({name: upCase}, copiedBuffer)
131+
.then(function(result) {
132+
assert_true(equalBuffers(result, digestedData[alg][size]), "digest() yielded expected result for " + alg + ":" + size);
133+
}, function(err) {
134+
assert_unreached("digest() threw an error for " + alg + ":" + size + " - " + err.message);
135+
});
136+
137+
copiedBuffer.buffer.transfer();
138+
return promise;
139+
}, upCase + " with " + size + " source data and transferred buffer after call");
116140
}
117141
});
118142
});

test/fixtures/wpt/WebCryptoAPI/digest/sha3.tentative.https.any.js

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,15 +132,47 @@ Object.keys(sourceData).forEach(function (size) {
132132

133133
promise_test(function (test) {
134134
var buffer = new Uint8Array(sourceData[size]);
135-
return crypto.subtle.digest(alg, buffer).then(function (result) {
136-
// Alter the buffer after calling digest
137-
buffer[0] = ~buffer[0];
135+
var promise = crypto.subtle.digest(alg, buffer).then(function (result) {
138136
assert_true(
139137
equalBuffers(result, digestedData[alg][size]),
140138
'digest matches expected'
141139
);
142140
});
141+
// Alter the buffer after calling digest
142+
buffer[0] = ~buffer[0];
143+
return promise;
143144
}, alg + ' with ' + size + ' source data and altered buffer after call');
145+
146+
promise_test(function (test) {
147+
var buffer = new Uint8Array(sourceData[size]);
148+
return crypto.subtle
149+
.digest({
150+
get name() {
151+
// Transfer the buffer while calling digest
152+
buffer.buffer.transfer();
153+
return alg;
154+
}
155+
}, buffer)
156+
.then(function (result) {
157+
assert_true(
158+
equalBuffers(result, digestedData[alg].empty),
159+
'digest on transferred buffer should match result for empty buffer'
160+
);
161+
});
162+
}, alg + ' with ' + size + ' source data and transferred buffer during call');
163+
164+
promise_test(function (test) {
165+
var buffer = new Uint8Array(sourceData[size]);
166+
var promise = crypto.subtle.digest(alg, buffer).then(function (result) {
167+
assert_true(
168+
equalBuffers(result, digestedData[alg][size]),
169+
'digest matches expected'
170+
);
171+
});
172+
// Transfer the buffer after calling digest
173+
buffer.buffer.transfer();
174+
return promise;
175+
}, alg + ' with ' + size + ' source data and transferred buffer after call');
144176
}
145177
});
146178
});

test/fixtures/wpt/WebCryptoAPI/encrypt_decrypt/aes.js

Lines changed: 126 additions & 0 deletions

0 commit comments

Comments
 (0)