Sphereon SSI SDK Crypto Extensions
BBS+, RSA, JWK, EBSI DID and key support
This mono repository, contains packages that add different crypto keys and signature suites as well as different DID methods to the SSI-SDK. The packages are also compatible with Veramo.
Key Management
DID methods | Description |
---|---|
Key Manager | The Key Manager orchestrates the various implementations of Key Management Systems, using a KeyStore to remember the link between a key reference, its metadata, and the respective key management system that provides the actual cryptographic capabilities. The methods of this plugin are used automatically by other plugins, such as DIDManager, CredentialPlugin, or DIDComm to perform their required cryptographic operations using the managed keys. You will need this version if you want to use BLS/BBS+ keys |
Local Key Management System | SSI-SDK and Veramo compatible Key Management System that stores keys in a local key store. It has support for RSA, BLS/BBS+ signatures, next to ed25519, es256k1, es256r1 |
DID Methods
The below packages can be used both in our SSI-SDK and Veramo. The below packages extend did:key and support did:jwk.
DID methods | Description |
---|---|
DIF did:key resolver | DIF DID resolver compatible did:key resolver with support for BLS/BBS+, JWK (EBSI natural persons), ed25519, es256k1, es256r1, es384r1, es521r1. |
did:key provider | SSI-SDK and Veramo compatible did:key provider, allows you to manage keys and DIDs with support for BLS/BBS+, JWK (EBSI natural persons), ed25519, es256k1, es256r1, es384r1, es521r1 |
DIF did:jwk resolver | DIF DID resolver compatible did:jwk resolver with support for ed25519, es256k1, es256r1, RSA keys. |
did:jwk provider | SSI-SDK and Veramo compatible did:jwk provider, allows you to manage JWK keys and DIDs |
Building and testing
Lerna
This package makes use of Lerna for managing multiple packages. Lerna is a tool that optimizes the workflow around managing multi-package repositories with git and npm / pnpm.
Build
The below command builds all packages for you
pnpm build
Test
The test command runs:
jest
coverage
You can also run only a single section of these tests, using for example pnpm test:watch
.
pnpm test
Utility scripts
There are other utility scripts that help with development.
pnpm prettier
- runsprettier
to fix code style.
Publish
There are scripts that can publish the following versions:
latest
next
unstable
pnpm publish:[version]