Socket
Socket
Sign inDemoInstall

@interop/did-web-resolver

Package Overview
Dependencies
Maintainers
0
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@interop/did-web-resolver

A did:web method Decentralized Identifier (DID) resolver for the did-io library.


Version published
Weekly downloads
86
decreased by-45.57%
Maintainers
0
Weekly downloads
 
Created
Source

did:web Resolver (@interop/did-web-resolver)

Node.js CI NPM Version

A did:web method Decentralized Identifier (DID) resolver for the did-io library.

Table of Contents

Security

TBD

Background

A did:web method driver for use with in-browser and server-side on Node.js with the did-io resolver library.

Draft spec (W3C CCG Work Item):

did:web Decentralized Identifier Method Specification

Other implementations:

Usage

Initializing

import { Ed25519VerificationKey2020 }
  from '@digitalcredentials/ed25519-verification-key-2020'
import { X25519KeyAgreementKey2020 }
  from '@digitalcredentials/x25519-key-agreement-key-2020'
import { CryptoLD } from 'crypto-ld'

import * as didWeb from '@interop/did-web-resolver'

const cryptoLd = new CryptoLD()
cryptoLd.use(Ed25519VerificationKey2020)
cryptoLd.use(X25519KeyAgreementKey2020)

const didWebDriver = didWeb.driver({ cryptoLd })

// Optionally use it with the CachedResolver from did-io
import {CachedResolver} from '@digitalcredentials/did-io';
const resolver = new CachedResolver()
resolver.use(didWebDriver)

Generating a new DID

Generating from seed

If you have a deterministic secret seed (created with did-cli, for example) and would like to generate a did:web document from it:

const url = 'https://example.com'
const seed = 'z1AhV1bADy7RepJ64mvH7Kk7htFNGc7EA1WA5nGzLSTWc6o'

const { didDocument, keyPairs, methodFor } = await didWebDriver.generate({ url, seed })
// didDocument
{
  '@context': [
    'https://www.w3.org/ns/did/v1',
    'https://w3id.org/security/suites/ed25519-2020/v1',
    'https://w3id.org/security/suites/x25519-2020/v1'
  ],
  id: 'did:web:example.com',
  assertionMethod: [{
    id: 'did:web:example.com#z6MkmDMjfkjs9XPCN1LfoQQRHz1mJ8PEdiVYC66XKhj3wGyB',
    type: 'Ed25519VerificationKey2020',
    controller: 'did:web:example.com',
    publicKeyMultibase: 'z6MkmDMjfkjs9XPCN1LfoQQRHz1mJ8PEdiVYC66XKhj3wGyB'
  }]
}
Generating new random keys

Invoking generate() by itself will create new keypairs for each proof purpose.

const { didDocument, keyPairs, methodFor } = await didWebDriver.generate()
// didDocument
{
  '@context': [
    'https://www.w3.org/ns/did/v1',
    'https://w3id.org/security/suites/ed25519-2020/v1',
    'https://w3id.org/security/suites/x25519-2020/v1'
  ],
  id: 'did:web:example.com',
  capabilityInvocation: [{
    id: 'did:web:example.com#z6MkqUiWi2o5V5oDEVzqszpkDhzeJ2o9Z4zVyTWeASqgrgti',
    type: 'Ed25519VerificationKey2020',
    controller: 'did:web:example.com',
    publicKeyMultibase: 'zC2TU7nYe9YJk81A9CRruNcSeUTXJ9Bk9HSbiLAsfwU7L'
  }],
  authentication: [{
    id: 'did:web:example.com#z6MksjNYAxjiTrhPFx9Ljk3SVowEtFXhFqLdsMKJHV4KrcDT',
    type: 'Ed25519VerificationKey2020',
    controller: 'did:web:example.com',
    publicKeyMultibase: 'zEH7VaiVH8KCv9TJe4B5beiPF4gFqqx6HBLQNTD6JwPS5'
  }],
  assertionMethod: [{
    id: 'did:web:example.com#z6MkiyYa5mG4moiHrmXQea8bNvdEWRWi3KuouHqoiknGf7xV',
    type: 'Ed25519VerificationKey2020',
    controller: 'did:web:example.com',
    publicKeyMultibase: 'z5XHXVX1dSGDpkGghy1AkXq5EgrErdSfTDGvstUpFjuB7'
  }],
  capabilityDelegation: [{
    id: 'did:web:example.com#z6MknmeMZEXLhS6g2p6YPHkQG4PkNsJev652CqnsArPm3dZa',
    type: 'Ed25519VerificationKey2020',
    controller: 'did:web:example.com',
    publicKeyMultibase: 'z9KPJxzGuMtcCvKFqhinZQxqkZJ2oWCpfWpswLaRk8QnC'
  }],
  keyAgreement: [{
    id: 'did:web:example.com#z6LSg3dWQzpQgRpaVzNXkcosnheyhXJUQkNQQgXyDapFSCFZ',
    type: 'X25519KeyAgreementKey2020',
    controller: 'did:web:example.com',
    publicKeyMultibase: 'z5NTLth1Yay6qQbzmDyHvU7SVrNmMi9CFXhpHj8AiipUo'
  }]
}

Install

git clone https://github.com/interop-alliance/did-web-resolver.git
cd did-web-resolver
npm install

Contribute

PRs accepted.

License

The MIT License ©2020-2021 Interop Alliance and Dmitri Zagidulin

FAQs

Package last updated on 04 Aug 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc