Cryptographic Key Pair (@digitalcredentials/keypair)

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:
- Create their own npm package / Github repo, such as
example-key-pair
.
- Subclass KeyPair.
- Override relevant methods (such as
export()
and fingerprint()
).
- 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.