@cloudflare/voprf-ts

中文文档
1.0.0发布于 2024/08/14BSD-3-ClauseTypeScriptESM + CJS零依赖近 30 天下载 34万

voprf-ts:一个用于 Oblivious Pseudorandom 函数的 TypeScript 库 (OPRF)

中文使用文档
文档目录9 节
  1. 使用量
  2. 步骤1
  3. 步骤2
  4. 步骤3
  5. 步骤4
  6. 发展
  7. 安全免责声明
  8. 密码提供者
  9. 许可证

NPM NPM

NPM

voprf-ts:一个用于 Oblivious Pseudorandom 函数的 TypeScript 库 (OPRF)

一个 无法识别的 Pseudorandom 函数 是一个客户端和服务器之间的双方协议,用于计算一个Pseudorandom函数(PRF)的输出.

服务器提供PRF密钥,客户端提供PRF输入. 协议结束时,客户端在不学习PRF密钥的情况下学习了PRF输出,服务器既不学习PRF输入,也不学习输出.

A 类 可核查业务报告框架 确保客户端能够验证服务器在执行协议时使用了特定的私人密钥.

A 类 部分失明( POPRF) 扩展一个VOPRF,允许客户端和服务器为PRF计算提供公共共享输入.

规格 : RFC 9497 (韩语)

此库支持所有三种模式 :

Oprf.Mode.OPRF
Oprf.Mode.VOPRF
Oprf.Mode.POPRF

并支持以下与基本组和所使用散列相对应的套件:

Oprf.Suite.P256_SHA256
Oprf.Suite.P384_SHA384
Oprf.Suite.P521_SHA512

在使用该套房时,还支持其他套房 @ noble/ 曲线 对话框为 CryptoProvider。见 实例/图片/索引.ts 设置此选项 CryptoProvider。 。 。 .

Oprf.Suite.RISTRETTO255_SHA512
Oprf.Suite.DECAF448_SHAKE256

使用量

步骤1

首先设置客户端和服务器. 在这个例子中,我们使用VOPRF模式与套件P384-SHA384.

import {
    Oprf, VOPRFClient, VOPRFServer, generatePublicKey, randomPrivateKey
} from '@cloudflare/voprf-ts';

const suite = Oprf.Suite.P384_SHA384;
const privateKey = await randomPrivateKey(suite);
const publicKey = generatePublicKey(suite, privateKey);

const server = new VOPRFServer(suite, privateKey);
const client = new VOPRFClient(suite, publicKey);

步骤2

客户端准备任意输入,由服务器进行批量评价. 失明方法产生评价请求,以及一些定稿后使用的数据。 然后,客户端向服务器发送评价请求.

const input = new TextEncoder().encode('This is the client's input');
const batch = [input]
const [finData, evalReq] = await client.blind(batch);

步骤3

服务器收到评价请求后,会以评价回复客户端.

const evaluation = await server.blindEvaluate(evalReq);

步骤4

最后,客户端可以使用服务器的评价和第二步的定稿数据来制作OPRF协议的输出. 如果模式是可核查的,该步骤还检查服务器使用预期的私钥进行评估的证明.

// Get output matching first input of batch
const [output] = await client.finalize(finData, evaluation);

发展

任务国家预防机制脚本
安装$ npm ci
大楼$ npm run build
单位测试$ npm run test
实例$ npm run examples
基准制定$ npm run bench
代码 Linting$ npm run lint
代码格式$ npm run format

安全免责声明

这个图书馆是一次性提供的,没有保证。 因此,预计将来会改变代码,寄存器和API. 我们建议在制作应用中使用这个图书馆之前要谨慎,因为其部分内容是实验性的. 所有安全问题都必须报告,请立即通知我们,根据我们的指示 安全政策。 。 。 .

密码提供者

虽然这个库依赖于标准 网络加密 API 对于高级操作,质场和椭圆曲线操作不由标准API覆盖. 为此原因,此库可以配置为使用以下提供者之一:

⚠️ 说明: 经常运行是防止时间攻击的基本要求。 然而在JavaScript中,常时执行并不保证. 这些提供者为实现这一目标作出了不同的选择.

许可证

该项目根据以下规定获得许可证: BSD-3- 休闲许可证。 。 。 .

版本与发布记录

@cloudflare/voprf-ts 共发布 5 个版本,首次发布于 2021/12/04;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.0latest2024/08/142 年前
0.21.22023/09/303 年前
0.11.02022/11/183 年前
0.9.02022/04/204 年前
0.8.02021/12/044 年前

关于 @cloudflare/voprf-ts 的常见问题

@cloudflare/voprf-ts 是什么?

voprf-ts:一个用于 Oblivious Pseudorandom 函数的 TypeScript 库 (OPRF)

如何安装 @cloudflare/voprf-ts?

在项目目录运行 npm install @cloudflare/voprf-ts,或使用 pnpm add / yarn add / bun add。

@cloudflare/voprf-ts 支持 TypeScript 吗?

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

@cloudflare/voprf-ts 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cloudflare/voprf-ts 需要什么版本的 Node.js?

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

@cloudflare/voprf-ts 可以商用吗?

@cloudflare/voprf-ts 使用 BSD-3-Clause 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括,不构成法律意见,请以许可原文为准。

@cloudflare/voprf-ts 的下载量有多少?

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

@cloudflare/voprf-ts 还在维护吗?

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