@digitalcredentials/crypto-ld

中文文档
7.0.6发布于 2022/10/20BSD-3-ClauseTypeScriptESM + CJS零依赖近 30 天下载 4924

一个 Javascript 库,用于在 Linked Data 加密密钥对上生成和进行共同操作.

中文使用文档
文档目录15 节
  1. 目录
  2. 背景情况
  3. 支持的密钥类型
  4. 选择密钥类型
  5. 警卫
  6. 安装
  7. 使用量
  8. 安装密钥类型的支持
  9. 生成新的公用/私用密钥对
  10. 从存储导入一对密钥
  11. 常见的单个密钥配对操作
  12. 对签名相关密钥对的操作
  13. 贡献
  14. 商业支助
  15. 许可证

链接数据的加密密钥对等库 (crypto-ld) (简体中文)

Build status NPM Version

一个 Javascript 库,用于在 Linked Data 加密密钥对上生成和进行共同操作.

目录

背景情况

另见(相关规格):

支持的密钥类型

此库提供一般链接数据加密密钥生成 函数,但不默认支持任何单个密钥类型.

要使用它,你必须 安装单个驱动程序库 每个 密码密钥类型 。 目前支持以下图书馆.

类型密码套件图书馆使用量
Ed25519Ed25519 核查Key 2020 (建议), Ed25519 核查Key2018 (遗产)ed25519-verification-key-2020 >=1.0 (建议), ed25519-verification-key-2018 >=2.0 (遗产)签署、加入、签署、签署、签署、签署
X25519/Curve25519X25519 关键协定Key2019x25519-key-agreement-key-2019 >=4.0ECDH 人权委 键协议, JWE/CWE 加密 minimal-cipher
Secp256k1Ecdsa Secp 256k1 核查 Key2019ecdsa-secp256k1-verification-key-2019签名, VCs, z Caps, DIDAuth, HD 钱包

选择密钥类型

数字签字 jsonld-signatures, (中文(简体) ), 使用 vc-js, (中文(简体) ), 授权能力,以及 DIDAuth 操作:

  • 偏爱 Ed25519 核查Key 2020 键,默认情况下.
  • 使用 EcdsaSepc256k1 (英语) 键,如果您的使用大小写需要的话(例如,如果 你正在开发一个基于比特币或伊特鲁姆的分类账,或者如果你 需要分级决定(HD)钱包功能.

对于加密操作的关键协议协议协议 :

警卫

同大多数与安全和密码学有关的工具一样 您的系统将在很大程度上取决于您的设计决定 .

安装

  • 需要14.0+节点.

在当地安装(用于开发):

git clone https://github.com/digitalcredentials/crypto-ld.git
cd crypto-ld
npm install

使用量

安装密钥类型的支持

要使用此库, 您需要导入并安装驱动程序 库,用于您将通过 use() 方法.

要使用一个或多个支持的套件库 :

import {Ed25519VerificationKey2020} from '@digitalcredentials/ed25519-verification-key-2020';
import {X25519KeyAgreementKey2020} from '@digitalcredentials/x25519-key-agreement-key-2020';

import {CryptoLD} from '@digitalcredentials/crypto-ld';
const cryptoLd = new CryptoLD();

cryptoLd.use(Ed25519VerificationKey2020);
cryptoLd.use(X25519KeyAgreementKey2020);

const edKeyPair = await cryptoLd.generate({type: 'Ed25519VerificationKey2020'});

生成新的公用/私用密钥对

要生成一个新的公/私密密钥配对 : cryptoLd.generate(options)数字 :

  • {string} [type] 需要套房名称.
  • {string} [controller] 可选控制器 URI 或 Did 初始化 生成了密钥。 (此会输入密钥 ID. )
  • {string} [seed] 可选的确定种子值( 只有部分种子支持) 关键类型,例如 ed25519从中生成密钥.

从存储导入一对密钥

从下列数据中创建公/私密密钥对实例: 存储,使用 cryptoLd.from()数字 :

const serializedKeyPair = { ... };

const keyPair = await cryptoLd.from(serializedKeyPair);

注意,如果您试图创建 键对通过 from() 对于一个不支持的类型,会显示错误.

常见的单个密钥配对操作

整个行动范围将取决于关键类型。 这里有些常见的 所有关键类型支持的操作.

只导出公钥

仅导出一对的公钥 - 使用 export()数字 :

keyPair.export({publicKey: true});
// ->
{
  type: 'Ed25519VerificationKey2020',
  id: 'did:example:1234#z6MkszZtxCmA2Ce4vUV132PCuLQmwnaDD5mw2L23fGNnsiX3',
  controller: 'did:example:1234',
  publicKeyMultibase: 'zEYJrMxWigf9boyeJMTRN4Ern8DJMoCXaLK77pzQmxVjf'
}

导出完整的公-私密密钥配对

要导出完整一对密钥, 包括私钥( 警告 : 这应该是 仔细考虑的操作,最好留给专用密钥管理系统:

keyPair.export({publicKey: true, privateKey: true});
// ->
{
  type: 'Ed25519VerificationKey2020',
  id: 'did:example:1234#z6MkszZtxCmA2Ce4vUV132PCuLQmwnaDD5mw2L23fGNnsiX3',
  controller: 'did:example:1234',
  publicKeyMultibase: 'zEYJrMxWigf9boyeJMTRN4Ern8DJMoCXaLK77pzQmxVjf',
  privateKeyMultibase: 'z4E7Q4neNHwv3pXUNzUjzc6TTYspqn9Aw6vakpRKpbVrCzwKWD4hQDHnxuhfrTaMjnR8BTp9NeUvJiwJoSUM6xHAZ'
}

生成和验证密钥指纹

要生成指纹 :

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

为了验证指纹:

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

对于与签字和核查有关的密钥配对(从 页:1 LDVerifierKeyPair ),必须支持另外两个操作:

创建签名函数

为了执行加密签名,您需要创建 sign 函数,然后引用它.

const keyPair = await cryptoLd.generate({type: 'Ed25519VerificationKey2020'});

const {sign} = keyPair.signer();

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

创建验证函数

为了验证密码签名,您需要创建 verify 函数,然后引用它(通过数据验证,和签名).

const keyPair = await cryptoLd.generate({type: 'Ed25519VerificationKey2020'});

const {verify} = keyPair.verifier();

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

贡献

见 贡献文件来啊!

公关接受.

请遵照 标准读取 规格.

商业支助

该图书馆的商务支助可应下列请求提供: 数字集市: 支持@ digitalbazaar.com

许可证

新建 BSD 许可证( 3- clause) 数字集市

版本与发布记录

@digitalcredentials/crypto-ld 共发布 5 个版本,首次发布于 2022/10/18;过去 12 个月发布了 0 个版本。

版本发布日期距今
7.0.6latest2022/10/204 年前
7.0.52022/10/204 年前
7.0.42022/10/204 年前
7.0.32022/10/184 年前
7.0.22022/10/184 年前

关于 @digitalcredentials/crypto-ld 的常见问题

@digitalcredentials/crypto-ld 是什么?

一个 Javascript 库,用于在 Linked Data 加密密钥对上生成和进行共同操作.

如何安装 @digitalcredentials/crypto-ld?

在项目目录运行 npm install @digitalcredentials/crypto-ld,或使用 pnpm add / yarn add / bun add。

@digitalcredentials/crypto-ld 支持 TypeScript 吗?

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

@digitalcredentials/crypto-ld 支持 ESM 还是 CommonJS?

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

@digitalcredentials/crypto-ld 需要什么版本的 Node.js?

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

@digitalcredentials/crypto-ld 可以商用吗?

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

@digitalcredentials/crypto-ld 的下载量有多少?

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

@digitalcredentials/crypto-ld 还在维护吗?

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