0

我正在尝试将公钥导入crypto.subtle,但出现了一个神秘的(双关语)错误:

未捕获(承诺)类型错误:无法在“SubtleCrypto”上执行“importKey”:提供的值无法转换为序列。

这是我的钥匙:

jPublicJWK = {
  "crv":"P-256",
  "key_ops":"verify",
  "kty":"EC",
  "x":"QcQI-5wvczyuzU0SWl91tdUWbG5RMYFdNrOCNHen-08",
  "y":"sYVMwVF4ZO2-u0xPMyOXff7VoOQo6kdBv0IeEcnrYno",
  "use":"sig"
}

这是我导入的方式:

let jwkCryptoKey = await crypto.subtle.importKey(
    "jwk",
    jPublicJWK, 
    {
        name: "ECDSA",
        namedCurve: "P-256",
    },
    true,
    ["verify"]
);

我究竟做错了什么?

4

1 回答 1

0

根据rfckey_ops是一个数组。“它的值是一个键操作值的数组。” 棘手的小句子错过。

由于key_ops是可选的,您可以将其全部删除或将其放入数组中:

jPublicJWK = {
    "crv": "P-256",
    "kty": "EC",
    "key_ops": ["verify"],
    "x": "NDeK5mTx7Tse16x4ipl1m6NYDkwLO-YBU_BUqEtOuIM",
    "y": "9Q3XDebaKId0pmrPqVTTR__UnpBn2oxqY8nAlrTw_qU",
    "use": "sig"
};
于 2020-06-05T08:49:54.970 回答