gpt4 book ai didi

javascript - key 生成将算法作为错误抛出

转载 作者:行者123 更新时间:2023-11-30 11:38:21 25 4
gpt4 key购买 nike

我有以下代码:

crypto.subtle.generateKey({
name: 'ECDSA',
namedCurve: 'P-256',
}, true, ['sign', 'verify']).then(function(key) {
console.log('generated key');
}).catch(function(err) {
console.log('error: ' + err + ', as JSON: ' + JSON.stringify(err));
});

当我在 Chrome 或 Firefox 中运行这段代码 ( live demo here ) 时,它会打印出 generated key。然而,在 Microsoft Edge 14.14393 中,输出非常奇怪:

error: [object Object], as JSON: {"name":"ECDSA","namedCurve":"P-256"}

为什么 Edge 会在这里抛出错误?
为什么抛出的错误不是普通的错误对象,而是算法规范?
如何在 Edge 中生成 ECDSA key ?

最佳答案

根据Web Cryptography API Edge 的文档,目前看来并不支持 ECDSA 算法。

我真的不明白为什么错误与您传递给 generateKey 方法的负载匹配,但对我来说它看起来像一个错误。

关于你能做什么,你可以使用像elliptic这样的库这将允许您生成您的 key 客户端。它已经在 Edge 13 下进行了测试,假设您遇到的错误不是由 14 引起的,这似乎是一个很好的解决方案。

const EC = require('elliptic').ec
const ec = new EC('p256')
const key = ec.genKeyPair()

我想您也不想依赖负责生成和发回 key 的 API 调用,因为它可能会危及您的系统,但这也可能是解决问题的一种方法。

关于javascript - key 生成将算法作为错误抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43577520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com