Package detail

@digitalcredentials/keypair

digitalcredentials19.9kMIT2.0.5

Cryptographic key pair data model in Javascript/Typescript, for Node.js, browsers, and React Native. Useful for Verifiable Credentials, DIDs (Decentralized Identifiers), and other uses of Data Integrity.

dcc, react native, keys, key pair

readme

Cryptographic Key Pair (@digitalcredentials/keypair)

Node.js CI NPM Version

Cryptographic key pair data model in Javascript/Typescript, for Node.js, browsers, and React Native. Useful for Verifiable Credentials, DIDs (Decentralized Identifiers), and other uses of Data Integrity.

Table of Contents

Background

Extracted from Digital Bazaar's crypto-ld library, and converted to Typescript.

This is an abstract key pair data model, meant to be used in individual subclass key pair implementations, such as:

Choosing a Key Type

For digital signatures using the linked-data-integrity library, signing of Verifiable Credentials using vc library, authorization capabilities, and DIDAuth operations:

  • Prefer Ed25519VerificationKey2020 type keys, by default.
  • Use EcdsaSepc256k1 keys if your use case requires it (for example, if you're developing for a Bitcoin-based or Ethereum-based ledger), or if you require Hierarchical Deterministic (HD) wallet functionality.

For key agreement protocols for encryption operations:

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 16+ is recommended.

NPM

To install via NPM:

npm install @digitalcredentials/keypair

Development

To install locally (for development):

git clone https://github.com/digitalcredentials/keypair.git
cd keypair
npm install

Usage

This library is meant to be used only by implementers of new cryptographic key suite libraries.

When adding support for a new suite type subclass of keypair, developers should do the following:

  1. Create their own npm package / Github repo, such as example-key-pair.
  2. Subclass KeyPair.
  3. Override relevant methods (such as export() and fingerprint()).
  4. Add to the key type table in the crypto-suite-manager README.md.

Contribute

PRs accepted.

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

License

MIT License © 2022 Digital Credentials Consortium.

changelog

keypair Changelog

2.0.1-2.0.5 - 2025-04-29

Changed

  • Fix naming of IVerificationResult export.

2.0.0 - 2025-04-29

Changed

1.0.5 - 2022-12-22

Changed

  • Adjust export compile target.
  • Re-export GenerateKeyPairOptions

1.0.3 - 2022-12-20

Added

  • Export SerializedKeyPair interface.

1.0.2 - 2022-12-19

Changed

  • Fix constructor signature.
  • Fix type declarations in dist/.

1.0.0 - 2022-12-19

Added

  • Initial commit. Extracted the LDKeyPair class from crypto-ld v7.0, converted it to Typescript, and renamed to KeyPair.
  • For previous changes, see the crypto-ld CHANGELOG