使用 ECDSA 的微妙加密:无法使用指定的密钥用法创建密钥
subtle crypto with ECDSA : Cannot create a key using the specified key usages
我想在 Chrome 中导入一个 ECDSA 私钥来签署一些数据,尝试使用 crypto.subtle.importKey
:使用 [=13= 为 importKey
提供派生的私钥].
尝试使用库时,我遇到了以下错误:
Cannot create a key using the specified key usages.
代码:
const browserKey = await crypto.subtle.importKey(
'raw',
derivatedNode.privateKey, // ArrayBuffer
{
name: 'ECDSA',
namedCurve: 'P-256' // Haven't found better fit for secp256k1?
},
false,
['sign']
);
仔细检查了我的私钥,得到 Uint8Array(32)
这似乎通常与 importKey
没问题。
感谢任何帮助。
Web 加密 API 不支持 secp256k1
曲线。以后也会not support。
Web Crypto API 不支持 secp256k1,但您可以使用两种解决方法:
使用Node.js库来存储私钥,并从浏览器发出请求来签署一些有效载荷:https://www.npmjs.com/package/ecdh-crypto/v/1.0.5
使用 ethers.js 库在纯 Javascript 中完成它,但你将无法拥有 non-extractable 密钥,如果你这样做很好重新使用静态捆绑文件构建浏览器扩展,否则您必须相信自己的服务器不会受到损害:https://docs.ethers.io/v4/api-wallet.html#signing
我想在 Chrome 中导入一个 ECDSA 私钥来签署一些数据,尝试使用 crypto.subtle.importKey
:使用 [=13= 为 importKey
提供派生的私钥].
尝试使用库时,我遇到了以下错误:
Cannot create a key using the specified key usages.
代码:
const browserKey = await crypto.subtle.importKey(
'raw',
derivatedNode.privateKey, // ArrayBuffer
{
name: 'ECDSA',
namedCurve: 'P-256' // Haven't found better fit for secp256k1?
},
false,
['sign']
);
仔细检查了我的私钥,得到 Uint8Array(32)
这似乎通常与 importKey
没问题。
感谢任何帮助。
Web 加密 API 不支持 secp256k1
曲线。以后也会not support。
Web Crypto API 不支持 secp256k1,但您可以使用两种解决方法:
使用Node.js库来存储私钥,并从浏览器发出请求来签署一些有效载荷:https://www.npmjs.com/package/ecdh-crypto/v/1.0.5
使用 ethers.js 库在纯 Javascript 中完成它,但你将无法拥有 non-extractable 密钥,如果你这样做很好重新使用静态捆绑文件构建浏览器扩展,否则您必须相信自己的服务器不会受到损害:https://docs.ethers.io/v4/api-wallet.html#signing