Skip to content

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.

License

Notifications You must be signed in to change notification settings

digitalcredentials/keypair

Repository files navigation

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.

About

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.

Resources

License

Stars

Watchers

Forks

Packages

No packages published