({ name, publicUsages, privateUsages }, extractable)
| 212 | } |
| 213 | |
| 214 | async 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'); |
no test coverage detected