如何在 JavaScript 中使用 PKCS#8 导出 SubtleCrypto ECDSA 私钥?

问题描述

我正在尝试导出我在 JavaScript 中使用 SubtleCrypto 生成的 ECDSA(这可能也适用于 ECDH)私钥。 According to MDN(是的,这是针对 importKey,但这是您从 exportKey 的页面链接的位置),为此我可以使用 PKCS#8,因此我将其放在一起以下代码片段旨在实现此类导出:

crypto.subtle.generateKey(
    {
        "name": "ECDSA","namedCurve": "P-256"
    },true,["sign","verify"]
).then(keys => {
    crypto.subtle.exportKey("pkcs8",keys.privateKey)
        .then(exported_key => {
            console.log(exported_key)
        })
}

这适用于 Chromium 和 GNOME Web (WebKit)。在 Firefox 中,我将以下错误记录到控制台:

Uncaught (in promise) DOMException: Operation is not supported

这似乎来自后一个表达式,即对 exportKey 的调用。 Firefox 支持对我和我正在从事的工作很重要,所以我想弄清楚这一点,我想这与其说是 Firefox 中的错误,不如说是我做错了什么,所以我认为这是最好弄清楚而不是说无论如何都不支持 Firefox。

有人可能认为这是因为 Firefox 不支持使用 PKSC#8 导出 EC 密钥,但 looking at the compatibility table on MDN 似乎并非如此,因为它被标记为从版本 34 开始支持,并且没有实施说明。我离题了。

我在这里可能做错了什么,我该如何让它发挥作用?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...