MCPcopy Index your code
hub / github.com/nodejs/node / testImportJwk

Function testImportJwk

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

Source from the content-addressed store, hash-verified

212}
213
214async function testImportJwk({ name, publicUsages, privateUsages }, extractable) {
215
216 const jwk = keyData[name].jwk;
217
218 const tests = [
219 subtle.importKey(
220 'jwk',
221 {
222 kty: jwk.kty,
223 alg: jwk.alg,
224 pub: jwk.pub,
225 },
226 { name },
227 extractable, publicUsages),
228 subtle.importKey(
229 'jwk',
230 jwk,
231 { name },
232 extractable,
233 privateUsages),
234 ];
235
236 const [
237 publicKey,
238 privateKey,
239 ] = await Promise.all(tests);
240
241 assert.strictEqual(publicKey.type, 'public');
242 assert.strictEqual(privateKey.type, 'private');
243 assert.strictEqual(publicKey.extractable, extractable);
244 assert.strictEqual(privateKey.extractable, extractable);
245 assert.deepStrictEqual(publicKey.usages, publicUsages);
246 assert.deepStrictEqual(privateKey.usages, privateUsages);
247 assert.strictEqual(publicKey.algorithm.name, name);
248 assert.strictEqual(privateKey.algorithm.name, name);
249 assert.strictEqual(privateKey.algorithm, privateKey.algorithm);
250 assert.strictEqual(privateKey.usages, privateKey.usages);
251 assert.strictEqual(publicKey.algorithm, publicKey.algorithm);
252 assert.strictEqual(publicKey.usages, publicKey.usages);
253
254 if (extractable) {
255 // Test the round trip
256 const [
257 pubJwk,
258 pvtJwk,
259 ] = await Promise.all([
260 subtle.exportKey('jwk', publicKey),
261 subtle.exportKey('jwk', privateKey),
262 ]);
263
264 assert.deepStrictEqual(pubJwk.key_ops, publicUsages);
265 assert.strictEqual(pubJwk.ext, true);
266 assert.strictEqual(pubJwk.kty, 'AKP');
267 assert.strictEqual(pubJwk.pub, jwk.pub);
268
269 assert.deepStrictEqual(pvtJwk.key_ops, privateUsages);
270 assert.strictEqual(pvtJwk.ext, true);
271 assert.strictEqual(pvtJwk.kty, 'AKP');

Calls 1

allMethod · 0.80

Tested by

no test coverage detected