@dashlane/pqc-kem-kyber512-browser

中文文档
1.0.0发布于 2022/07/19Apache-2.0TypeScriptES Module零依赖近 30 天下载 2821

WebAssembly的 JavaScript 包装器生成器

中文使用文档
文档目录10 节
  1. 概览
  2. 游戏场
  3. 如何下载预建的装订和国家预防机制包
  4. 如何建设
  5. 如何使用
  6. 密钥封装
  7. 签署
  8. 禁用 Web Assembly 执行
  9. 更改 Web Assembly 的路径
  10. 执行说明

页:1

概览

该项目为WebAssembly编译的量子后非对称密码提供了JS装订和游乐场 标记 和JS的倒计时.

现有方法是: NIST 量子后密码学竞赛数字 :

用于创建约束的 C 执行是 clean 提供的案文 PQClean 分类。 。 。 .

这个项目的灵感来自 国家 曾经提供 NTRU JS 约束.

游戏场

有可能在现实世界条件下对约束进行测试和比较 这个游乐场。 。 。 .

如何下载预建的装订和国家预防机制包

预建装订在 游乐场。 。 。 .

如何建设

  • sudo apt install emscripten
  • npm ci
  • make clean
  • make kem-<the KEM algorithm you want to build> 或者说 make sign-<the signature algorithm you want to build>
  • 所有绑定可以使用 make all

输出目录为 docs/bin/ 每个输出装订都用联署材料模块及其相关的WebAssembly文件制作, 浏览器软件包和节点软件包.

如何使用

密钥封装

import kemBuilder from 'pqc-kem-<algoName>.js'

async function run() {
    const kem = await kemBuilder();
    
    const { publicKey, privateKey } = await kem.keypair();
    const { ciphertext, sharedSecret: sharedSecretA } = await kem.encapsulate(publicKey);
    const { sharedSecret: sharedSecretB } = await kem.decapsulate(ciphertext, privateKey);
    // sharedSecretA === sharedSecretB
}

run();

签署

import signBuilder from 'pqc-sign-<algoName>.js'

async function run() {
    const sign = await signBuilder();
    
    const message = new Uint8Array([0x44, 0x61, 0x73, 0x68, 0x6c, 0x61, 0x6e, 0x65]);
    
    const { publicKey, privateKey } = await sign.keypair();
    const { signature } = await sign.sign(message, privateKey);
    const validSignature = await sign.verify(signature, message, publicKey);
    // validSignature === true
}

run();

禁用 Web Assembly 执行

构建者的第一个可选参数设置为 true 您想要禁用 Web Assembly 执行 .

如果设定为虚假, 如果 Web Assembly 失败, 仍然可能使用倒置 JavaScript .

更改 Web Assembly 的路径

构建者的第二个可选参数是WebAssembly文件的路径.

执行说明

  • 随机生成由 lib 这是在使用 crypto.randomBytes。 。 。 .
  • SHA-2 财务报告和审定财务报表 AES 由执行Web Crypto API的SubtleCrypto提供执行。 这可能 由于同步调用SubtleCrypto,当AES-ECB是时会更慢地执行捆绑 使用,因为在此情况下,每个区块需要AES-CTR.
  • SHA-2 PQClean 执行仍然被使用 sphincs-sha256-* 绑定,因为它们使用增量版本 联 合 国 sha256 在Web Crypto API中不存在.
  • SHA-3 NTRU、Kyber、SABER、FrodoKEM和McEliece-Classic仍然使用PQClean执行,因为没有 在Web Crypto API中实现.

版本与发布记录

@dashlane/pqc-kem-kyber512-browser 共发布 1 个版本,首次发布于 2022/07/19;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.0latest2022/07/194 年前

关于 @dashlane/pqc-kem-kyber512-browser 的常见问题

@dashlane/pqc-kem-kyber512-browser 是什么?

WebAssembly的 JavaScript 包装器生成器

如何安装 @dashlane/pqc-kem-kyber512-browser?

在项目目录运行 npm install @dashlane/pqc-kem-kyber512-browser,或使用 pnpm add / yarn add / bun add。

@dashlane/pqc-kem-kyber512-browser 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dashlane/pqc-kem-kyber512-browser 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@dashlane/pqc-kem-kyber512-browser 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=16.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dashlane/pqc-kem-kyber512-browser 可以商用吗?

@dashlane/pqc-kem-kyber512-browser 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dashlane/pqc-kem-kyber512-browser 的下载量有多少?

根据 npm 官方下载统计,@dashlane/pqc-kem-kyber512-browser 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,821 次,日均约 94 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dashlane/pqc-kem-kyber512-browser 还在维护吗?

最新版本 1.0.0 发布于 2022/07/19(4 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/07/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。