@digitalbazaar/ed25519-verification-key-2018

中文文档
4.0.0发布于 2022/06/02BSD-3-ClauseES Module近 30 天下载 1.6万

A library for generating and working with Ed25519 key pairs, for use with crypto-ld.

原始使用文档
文档目录15 节
  1. Table of Contents
  2. Background
  3. Security
  4. Install
  5. Usage
  6. Generating a new public/private key pair
  7. Importing a key pair from storage
  8. Exporting the public key only
  9. Exporting the full public-private key pair
  10. Generating and verifying key fingerprint
  11. Creating a signer function
  12. Creating a verifier function
  13. Contribute
  14. Commercial Support
  15. License

Ed25519VerificationKey2018 Key Pair Library for Linked Data (@digitalbazaar/ed25519-verification-key-2018)

Node.js CI

Javascript library for generating and working with Ed25519VerificationKey2018 key pairs, for use with crypto-ld.

Table of Contents

Background

See also (related specs):

Security

As with most security- and cryptography-related tools, the overall security of your system will largely depend on your design decisions.

Install

  • Node.js 14+ is required.

To install locally (for development):

git clone https://github.com/digitalbazaar/ed25519-verification-key-2018.git
cd ed25519-verification-key-2018
npm install

Usage

Generating a new public/private key pair

To generate a new public/private key pair:

  • {string} [controller] Optional controller URI or DID to initialize the generated key. (This will also init the key id.)
  • {string} [seed] Optional deterministic seed value from which to generate the key.
import {Ed25519VerificationKey2018} from '@digitalbazaar/ed25519-verification-key-2018';

const edKeyPair = await Ed25519VerificationKey2018.generate();

Importing a key pair from storage

To create an instance of a public/private key pair from data imported from storage, use .from():

const serializedKeyPair = { ... };

const keyPair = await Ed25519VerificationKey2018.from(serializedKeyPair);

Note that only installed key types are supported, if you try to create a key pair via from() for an unsupported type, an error will be thrown.

Exporting the public key only

To export just the public key of a pair:

await keyPair.export({publicKey: true});
// ->
{ 
  id: 'did:ex:123#z6MkumafR1duPR5FZgbVu8nzX3VyhULoXNpq9rpjhfaiMQmx',
  controller: 'did:ex:123',
  type: 'Ed25519VerificationKey2018',
  publicKeyBase58: 'GKKcpmPU3sanTBkoDZq9fwwysu4x7VaUTquosPchSBza'
}
*/

Exporting the full public-private key pair

To export the full key pair, including private key (warning: this should be a carefully considered operation, best left to dedicated Key Management Systems):

await keyPair.export({publicKey: true, privateKey: true});
// ->
{
  id: 'did:ex:123#z6Mks8wJbzhWdmkQZgw7z2qHwaxPVnFsFmEZSXzGkLkvhMvL',
  controller: 'did:ex:123',
  type: 'Ed25519VerificationKey2018',
  publicKeyBase58: 'DggG1kT5JEFwTC6RJTsT6VQPgCz1qszCkX5Lv4nun98x',
  privateKeyBase58: 'sSicNq6YBSzafzYDAcuduRmdHtnrZRJ7CbvjzdQhC45ewwvQeuqbM2dNwS9RCf6buUJGu6N3rBy6oLSpMwha8tc'
}

Generating and verifying key fingerprint

To generate a fingerprint:

keyPair.fingerprint();
// ->
'z6Mks8wJbzhWdmkQZgw7z2qHwaxPVnFsFmEZSXzGkLkvhMvL'

To verify a fingerprint:

const fingerprint = 'z6Mks8wJbzhWdmkQZgw7z2qHwaxPVnFsFmEZSXzGkLkvhMvL';
keyPair.verifyFingerprint({fingerprint});
// ->
{ valid: true }

Creating a signer function

In order to perform a cryptographic signature, you need to create a sign function, and then invoke it.

const keyPair = Ed25519VerificationKey2018.generate();

const {sign} = keyPair.signer();

const data = 'test data to sign';
const signatureValue = await sign({data});

Creating a verifier function

In order to verify a cryptographic signature, you need to create a verify function, and then invoke it (passing it the data to verify, and the signature).

const keyPair = Ed25519VerificationKey2018.generate();

const {verify} = keyPair.verifier();

const {valid} = await verify({data, signature});

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/ed25519-verification-key-2018 共发布 12 个版本,首次发布于 2020/07/25;过去 12 个月发布了 0 个版本。

版本发布日期距今
4.0.0latest2022/06/024 年前
3.2.02022/05/064 年前
3.1.22022/02/164 年前
3.1.12021/04/095 年前
3.1.02021/04/035 年前
3.0.02021/03/175 年前

关于 @digitalbazaar/ed25519-verification-key-2018 的常见问题

@digitalbazaar/ed25519-verification-key-2018 是什么?

A library for generating and working with Ed25519 key pairs, for use with crypto-ld.

如何安装 @digitalbazaar/ed25519-verification-key-2018?

在项目目录运行 npm install @digitalbazaar/ed25519-verification-key-2018,或使用 pnpm add / yarn add / bun add。

@digitalbazaar/ed25519-verification-key-2018 支持 TypeScript 吗?

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

@digitalbazaar/ed25519-verification-key-2018 支持 ESM 还是 CommonJS?

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

@digitalbazaar/ed25519-verification-key-2018 需要什么版本的 Node.js?

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

@digitalbazaar/ed25519-verification-key-2018 可以商用吗?

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

@digitalbazaar/ed25519-verification-key-2018 的下载量有多少?

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

@digitalbazaar/ed25519-verification-key-2018 还在维护吗?

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