Skip to content

Latest commit

 

History

History
44 lines (29 loc) · 1.62 KB

README.md

File metadata and controls

44 lines (29 loc) · 1.62 KB

Vault Server

The Vault Server is an abstraction over Confidential Storage vaults and WebKMS key stores.

How it works

See the OpenAPI spec.

Creating Vaults

When a user creates a vault in the Vault Server:

  • a Decentralized Identifier is created for the vault
  • a WebKMS key store is created with the vault's DID as its controller
  • a Confidential Storage vault is created with the vault's DID as its controller

Storing documents

When a user stores a document in a vault in the Vault Server:

  • the user provides a unique identifier for the document and its contents
  • the contents are encrypted with a random encryption key
  • a new key pair is created in the WebKMS key store
  • the encryption key is encrypted by the WebKMS service using the new key pair
  • the encrypted artifacts are assembled into an EncryptedDocument and stored in the Confidential Storage vault

Authorizations

When a user authorizes a third party to access a document, the Vault Server creates two authorization tokens:

  • One token to use at the Confidential Storage Vault backend to retrieve the encrypted document
  • One token to use at the WebKMS keystore backend to unwrap the encryption key for the document

Contributing

Thank you for your interest in contributing. Please see our community contribution guidelines for more information.

License

Apache License, Version 2.0 (Apache-2.0). See the LICENSE file.