Skip to content

Commit e28ea89

Browse files
panvadanielleadams
authored andcommitted
crypto: fix subtle.importKey JWK OKP public key import
PR-URL: #37255 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
1 parent 85bed2e commit e28ea89

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

lib/internal/crypto/ec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ async function ecImportKey(
303303
keyObject = createECRawKey(
304304
namedCurve,
305305
Buffer.from(
306-
isPublic ? keyData.k : keyData.d,
306+
isPublic ? keyData.x : keyData.d,
307307
'base64'),
308308
isPublic);
309309
break;

test/parallel/test-webcrypto-x25519-x448.js

+33
Original file line numberDiff line numberDiff line change
@@ -244,3 +244,36 @@ assert.rejects(
244244
{
245245
message: /Unsupported named curves for ECDH/
246246
});
247+
248+
{
249+
// Private JWK import
250+
subtle.importKey(
251+
'jwk',
252+
{
253+
crv: 'X25519',
254+
d: '8CE-XY7cvbR-Pu7mILHq8YZ4hLGAA2-RD01he5q2wUA',
255+
x: '42IbTo34ZYANub5o42547vB6OxdEd44ztwZewoRch0Q',
256+
kty: 'OKP'
257+
},
258+
{
259+
name: 'ECDH',
260+
namedCurve: 'NODE-X25519'
261+
},
262+
true,
263+
['deriveBits']).then(common.mustCall());
264+
265+
// Public JWK import
266+
subtle.importKey(
267+
'jwk',
268+
{
269+
crv: 'X25519',
270+
x: '42IbTo34ZYANub5o42547vB6OxdEd44ztwZewoRch0Q',
271+
kty: 'OKP'
272+
},
273+
{
274+
name: 'ECDH',
275+
namedCurve: 'NODE-X25519'
276+
},
277+
true,
278+
[]).then(common.mustCall());
279+
}

0 commit comments

Comments
 (0)