Skip to content

Latest commit

 

History

History
51 lines (29 loc) · 1.62 KB

README.md

File metadata and controls

51 lines (29 loc) · 1.62 KB

Identity


Abstract

Identities are use for verification and access control of database entries. They often contain keys used to digitally sign data and serve as a composable way to distribute access to multiple devices without sharing any private data.

Table of Contents

Introduction

Identities are used for entry validation and access control. Every entry will have or contain a reference to an identity.

Formats

List of spec'd identity formats

Validity Constraints

An identity must pass all validity constraints of the identity format. If one of these constaints is not satisfied the identity is invalid. Invalid identities cannot be added to the replica.

Interface

The identity interface is defined:

  {
    id: type 2
    auth: tag 42
  }

Identity formats do not need to match the interface at the encoding level. When decoded and verified by the identity format, this interface must be exposed.

The id field is a key used to control access. It does not need to be the signing key used by the identity. In most cases it will be a separate signing key used to sign other identities, giving them access under one identity id.

The auth field is the cid to the identity object. It is used in some entry formats as a reference to the identity, to deduplicate data.