decentralized-identity / decentralized-identity/veramo

[proposal] Metadata for ManagedPrivateKey

Open
#1,361 3 comments 1 reaction 0 assignees View on GitHub
enhancement key-manager pinned
Dominant language
TypeScript
Stars
543
Forks
137
Avg merge
12m
Merged PRs (30d)
2

Description

**Is your feature request related to a problem? Please describe.**
When building a multi-tenant and/or multi-user system using Veramo, it's likely you'll need to store private keys which can be accessed/used by multiple parties. For example, an organization might have a private key associated with `did:web:organization.com`. You'd want this key to be owned by the organization itself rather than a specific user, so that in the event that the underlying organization ownership is transferred the key can follow without additional changes.

There are likely other use-cases where you'd want to attach metadata to the private key outside of authz. At the moment there is no way to pass metadata to an `AbstractPrivateKeyStore`.

**Describe the solution you'd like**
We already have the `KeyMetadata` interface on `ManagedKeyInfo`. The `meta` object could also be added to the `ManagedPrivateKey` interface.

**Describe alternatives you've considered**
You can currently work around this by implementing a custom `AbstractKeyManagementSystem`, but this either requires a non-compliant `AbstractPrivateKeyStore` class (to receive the metadata), or separately associating the metadata after creating the key (which is also not ideal).

**Additional context**
It's worth considering how the existing `algorithms` property of `KeyMetadata` should be handled. Generating it dynamically (currently via `asManagedKeyInfo`) is probably preferable to storing alongside the key.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.