@digitalbazaar/x25519-key-agreement-key-2020

中文文档
3.0.1发布于 2022/09/05BSD-3-ClauseES Module近 30 天下载 2.2万

An X25519 (Curve25519) DH (Diffie-Hellman) key implementation to work with the X25519 2020 Crypto suite.

原始使用文档
文档目录8 节
  1. Table of Contents
  2. Security
  3. Background
  4. Install
  5. Usage
  6. Contribute
  7. Commercial Support
  8. License

X25519KeyAgreementKey2020 (@digitalbazaar/x25519-key-agreement-key-2020)

Build status Coverage status NPM Version

An X25519 (Curve25519) DH (Diffie-Hellman) key implementation to work with the X25519 2020 Crypto suite.

Table of Contents

Security

TBD

Background

For use with crypto-ld >= 5.0.

To actually perform encryption with those keys, we recommend you use the minimal-cipher library.

This is a low-level level library to generate and serialize X25519 (Curve25519) key pairs (uses nacl.box under the hood).

See also (related specs):

Install

Requires Node.js 14+

To install locally (for development):

git clone https://github.com/digitalbazaar/x25519-key-agreement-key-2020.git
cd x25519-key-agreement-key-2020
npm install

Usage

Importing:

const {X25519KeyAgreementKey2020} = require('@digitalbazaar/x25519-key-agreement-key-2020');

// Or, if you're testing code in the interactive Node CLI, right in this repo:
const {X25519KeyAgreementKey2020} = require('./');

Generating:

const keyPair = await X25519KeyAgreementKey2020.generate({
  controller: 'did:example:1234'
});
// ->
{
  "id": "did:example:1234#z6LSeRSE5Em5oJpwdk3NBaLVERBS332ULC7EQq5EtMsmXhsM",
  "controller": "did:example:1234",
  "type": "X25519KeyAgreementKey2020",
  "publicKeyMultibase": "z6LSeRSE5Em5oJpwdk3NBaLVERBS332ULC7EQq5EtMsmXhsM",
  "privateKeyMultibase": "z3weeMD56C1T347EmB6kYNS7trpQwjvtQCpCYRpqGz6mcemT"
}

Serializing just the public key:

keyPair.export({publicKey: true});
// ->
{
  "id": "did:example:1234#z6LSeRSE5Em5oJpwdk3NBaLVERBS332ULC7EQq5EtMsmXhsM",
  "controller": "did:example:1234",
  "type": "X25519KeyAgreementKey2020",
  "publicKeyMultibase": "z6LSeRSE5Em5oJpwdk3NBaLVERBS332ULC7EQq5EtMsmXhsM"
}

Serializing both the private and public key:

// a different key pair than the previous example
await keyPair.export({publicKey: true, privateKey: true})
// ->
{
  "id": "did:example:1234#z6LSeRSE5Em5oJpwdk3NBaLVERBS332ULC7EQq5EtMsmXhsM",
  "controller": "did:example:1234",
  "type": "X25519KeyAgreementKey2020",
  "publicKeyMultibase": "z6LSeRSE5Em5oJpwdk3NBaLVERBS332ULC7EQq5EtMsmXhsM",
  "privateKeyMultibase": "z3weeMD56C1T347EmB6kYNS7trpQwjvtQCpCYRpqGz6mcemT"
}

Deserializing:

// Loading public key only
const keyPair = await X25519KeyAgreementKey2020.from({
  "id": "did:example:1234#z6LSeRSE5Em5oJpwdk3NBaLVERBS332ULC7EQq5EtMsmXhsM",
  "controller": "did:example:1234",
  "type": "X25519KeyAgreementKey2020",
  "publicKeyMultibase": "z6LSeRSE5Em5oJpwdk3NBaLVERBS332ULC7EQq5EtMsmXhsM"
});

Contribute

See the contribute file!

PRs accepted.

If editing the Readme, please conform to the standard-readme specification.

Commercial Support

Commercial support for this library is available upon request from Digital Bazaar: [email protected]

License

New BSD License (3-clause) © Digital Bazaar

版本与发布记录

@digitalbazaar/x25519-key-agreement-key-2020 共发布 8 个版本,首次发布于 2021/03/31;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.0.1latest2022/09/054 年前
3.0.02022/06/024 年前
2.1.02022/05/074 年前
2.0.02021/06/205 年前
1.2.12021/05/075 年前
1.2.02021/04/035 年前

关于 @digitalbazaar/x25519-key-agreement-key-2020 的常见问题

@digitalbazaar/x25519-key-agreement-key-2020 是什么?

An X25519 (Curve25519) DH (Diffie-Hellman) key implementation to work with the X25519 2020 Crypto suite.

如何安装 @digitalbazaar/x25519-key-agreement-key-2020?

在项目目录运行 npm install @digitalbazaar/x25519-key-agreement-key-2020,或使用 pnpm add / yarn add / bun add。

@digitalbazaar/x25519-key-agreement-key-2020 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/digitalbazaar__x25519-key-agreement-key-2020 是否存在。

@digitalbazaar/x25519-key-agreement-key-2020 支持 ESM 还是 CommonJS?

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

@digitalbazaar/x25519-key-agreement-key-2020 需要什么版本的 Node.js?

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

@digitalbazaar/x25519-key-agreement-key-2020 可以商用吗?

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

@digitalbazaar/x25519-key-agreement-key-2020 的下载量有多少?

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

@digitalbazaar/x25519-key-agreement-key-2020 还在维护吗?

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