Decentralized Online Identity Proofs library in Node/JavaScript
Find a file
Yarmo Mackenbach 1f29accb5f Add utils
2020-10-25 00:31:14 +02:00
bundle Change license to Apache-2.0 2020-10-24 15:11:14 +02:00
demo Add bundled library and simple demo 2020-10-24 14:38:10 +02:00
src Add utils 2020-10-25 00:31:14 +02:00
test Add pattern matching 2020-10-24 23:36:25 +02:00
.gitignore Add gitignore 2020-10-23 22:59:44 +02:00
.licenseignore Change license to Apache-2.0 2020-10-24 15:11:14 +02:00
LICENSE Change license to Apache-2.0 2020-10-24 15:11:14 +02:00
license-checker-config.json Change license to Apache-2.0 2020-10-24 15:11:14 +02:00
LICENSE.HEADER Change license to Apache-2.0 2020-10-24 15:11:14 +02:00
package-lock.json Add chai-match-pattern 2020-10-24 22:25:00 +02:00
package.json Add chai-match-pattern 2020-10-24 22:25:00 +02:00
README.md Update README 2020-10-25 00:16:08 +02:00

doip.js

Decentralized OpenPGP Identity Proofs library in node

Technical specifications

Service provider data structure

The object returned by a service provider consists of:

- serviceprovider (object)
  - type          (string: the service provider's type [web, communication])
  - name          (string: the service provider's name)
- profile         (object)
  - display       (string: the profile's identifier for display)
  - uri           (string: the profile's URI)
- proof           (object)
  - uri           (string: the URI containing the proof to be by humans and machines)
  - fetch         (string: see below)
  - useProxy      (boolean: should the request be sent using a proxy)
  - format        (string: [json, text])
- claim           (object)
  - fingerprint   (string: the fingerprint that verifies the claim if found in the proof)
  - format        (string: see below [uri, message, fingerprint])
  - path          (string: the path to the claim inside the proof JSON (comma-separated))
  - relation      (string: how the claim format relates to the proof format [contains, equals, oneOf])
- qr              (string: a URI to be displayed as QR code if the claim is verified)

proof.fetch

Sometimes, the URI used by humans to verify a claim is inadequate for use by machines. This is needed when the JSON is served by a different endpoint. In this case, machines will use a different URI than the one shown to humans.

claim.format

There are three claim formats:

  • uri: the claim is formulated as openpgp4fpr:FINGEPRPRINT
  • message: the claim is formulated as [Verifying my OpenPGP key: openpgp4fpr:FINGEPRPRINT]
  • fingerprint: the claim is formulated as FINGEPRPRINT