NotSupportedError - k6 中的 WebCrypto 生成密钥

问题描述 投票:0回答:1

我正在使用 k6 JavaScript API 来运行测试,k6 在使用库方面非常有限,因此为了进行 EC 加密,我正在使用

k6/experimental/webcrypto
:

import { crypto } from "k6/experimental/webcrypto";

export function generateKeyPair() {
    crypto.subtle.generateKey(
        {
            name: "ECDSA",
            namedCurve: "P-256"
        },
        true,
        ["sign", "verify"],
    ).then((keypair) => {
        console.log(keypair)
    })
}

但是,当调用我的函数时,我收到以下错误:

ERRO[0009] Uncaught (in promise) NotSupportedError

在nodeJS中使用@peculiar/webcrypto模块尝试相同的功能不会产生错误:

const { Crypto } = require("@peculiar/webcrypto");

function keygenPerculiarCrypto(){
    const crypto = new Crypto();

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

为什么k6版本不行而node版本可以?
在 k6 中进行 EC 加密有其他选择吗?

javascript k6 webcrypto-api webcrypto
1个回答
0
投票

最近才在 k6 版本 0.51 中添加了对 ECDSA 的支持,该版本于 于 5 月 13 日发布

此版本为 k6/experimental/webcrypto 模块带来了对非对称加密的支持。我们添加了对椭圆曲线算法 ECDH (xk6-webcrypto#67) 和 ECDSA (xk6-webcrypto#69) 算法以及新的导入/导出密钥格式(如 spki 和 pkcs8)的支持。

尝试使用 k6 0.50.0 运行脚本会给出(完整)错误消息:

ERRO[0000] 未捕获(承诺)NotSupportedError:不支持的算法:ECDSA

升级到 k6 0.51.0 可以正常工作并输出密钥对信息:

INFO[0000] {"privateKey":{"type":"private","extractable":true,"algorithm":{"key_algorithm":{"algorithm":{"name":"ECDSA"}," name":"ECDSA"},"algorithm":{"name":"ECDSA"},"name":"ECDSA","namedCurve":"P-256"},"usages":["sign"] },"publicKey":{"type":"public","extractable":true,"algorithm":{"key_algorithm":{"algorithm":{"name":"ECDSA"},"name":" ECDSA"},"算法":{"名称":"ECDSA"},"名称":"ECDSA","namedCurve":"P-256"},"用法":["验证"]}} 来源=控制台

© www.soinside.com 2019 - 2024. All rights reserved.