不能导入jwk格式的公共EC密钥



我正在使用Chrome,我想导入这个公共EC p -256 ECDH密钥,如下所示:

await crypto.subtle.importKey(
"jwk",
{
kty: "EC",
crv: "P-256",
ext: true,
x: "mRBuuxrvM7xy2oc4xZkw_i0JyIiIp_b0Zmnb1RYKZcg",
y: "emhIhswnvIHICDtkWx4LLWy3HcN-is2l1oN9-r4_ChQ",
key_ops: ["deriveKey"],
},
{ name: "ECDH", namedCurve: "P-256" },
true,
["deriveKey"]
);

但是我得到错误:不能使用指定的键用法创建一个键。

为什么不呢?

好的,所以当您想要导入公钥以从中派生密钥时,您不应该给它任何keyUssages。

await crypto.subtle.importKey(
"jwk",
{
kty: "EC",
crv: "P-256",
ext: true,
x: "mRBuuxrvM7xy2oc4xZkw_i0JyIiIp_b0Zmnb1RYKZcg",
y: "emhIhswnvIHICDtkWx4LLWy3HcN-is2l1oN9-r4_ChQ",
}, 
{ name: "ECDH", namedCurve: "P-256" },
true,
[] // the public key just doesn't have usages 
);

最新更新