MCPcopy Create free account
hub / github.com/nodejs/node / testImportJwk

Function testImportJwk

test/parallel/test-webcrypto-export-import-ml-kem.js:293–469  ·  view source on GitHub ↗
({ name, publicUsages, privateUsages }, extractable)

Source from the content-addressed store, hash-verified

291}
292
293async function testImportJwk({ name, publicUsages, privateUsages }, extractable) {
294
295 const jwk = keyData[name].jwk;
296
297 const tests = [
298 subtle.importKey(
299 'jwk',
300 {
301 kty: jwk.kty,
302 alg: jwk.alg,
303 pub: jwk.pub,
304 },
305 { name },
306 extractable, publicUsages),
307 subtle.importKey(
308 'jwk',
309 jwk,
310 { name },
311 extractable,
312 privateUsages),
313 ];
314
315 const [
316 publicKey,
317 privateKey,
318 ] = await Promise.all(tests);
319
320 assert.strictEqual(publicKey.type, 'public');
321 assert.strictEqual(privateKey.type, 'private');
322 assert.strictEqual(publicKey.extractable, extractable);
323 assert.strictEqual(privateKey.extractable, extractable);
324 assert.deepStrictEqual(publicKey.usages, publicUsages);
325 assert.deepStrictEqual(privateKey.usages, privateUsages);
326 assert.strictEqual(publicKey.algorithm.name, name);
327 assert.strictEqual(privateKey.algorithm.name, name);
328 assert.strictEqual(privateKey.algorithm, privateKey.algorithm);
329 assert.strictEqual(privateKey.usages, privateKey.usages);
330 assert.strictEqual(publicKey.algorithm, publicKey.algorithm);
331 assert.strictEqual(publicKey.usages, publicKey.usages);
332
333 if (extractable) {
334 // Test the round trip
335 const [
336 pubJwk,
337 pvtJwk,
338 ] = await Promise.all([
339 subtle.exportKey('jwk', publicKey),
340 subtle.exportKey('jwk', privateKey),
341 ]);
342
343 assert.deepStrictEqual(pubJwk.key_ops, publicUsages);
344 assert.strictEqual(pubJwk.ext, true);
345 assert.strictEqual(pubJwk.kty, 'AKP');
346 assert.strictEqual(pubJwk.pub, jwk.pub);
347
348 assert.deepStrictEqual(pvtJwk.key_ops, privateUsages);
349 assert.strictEqual(pvtJwk.ext, true);
350 assert.strictEqual(pvtJwk.kty, 'AKP');

Calls 1

allMethod · 0.80

Tested by

no test coverage detected