This document serves as an informative registry for all known Linked Data Key descriptions and their associated specifications.

Comments regarding this document are welcome. Please file issues directly on GitHub, or send them to public-credentials@w3.org (subscribe, archives).

Portions of the work on this specification have been funded by the United States Department of Homeland Security's Science and Technology Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002 and HSHQDC-17-C-00019. The content of this specification does not necessarily reflect the position or the policy of the U.S. Government and no official endorsement should be inferred.

Work on this specification has also been supported by the Rebooting the Web of Trust community facilitated by Christopher Allen, Shannon Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, Manu Sporny, Drummond Reed, and Joe Andrieu.

Introduction

This document contains a list of all known Linked Data Cryptographic Suites and their associated specifications.

The Registration Process

Software implementers may find that the existing cryptographic suites listed in this repository are not suitable for their use case and may need to add a new cryptographic suite to this registry. Adding a Linked Data Cryptographic Suite to this list is designed to be a lightweight, community-driven process. In order to add a new suite to this registry, an implementer MUST:

  1. Implement at least an experimental version of the new cryptographic suite.
  2. Create a specification describing the new cryptographic suite that is publicly available and intended to be conformant with the Linked Data Proofs specification.
  3. Request that the specification is added to this registry by submitting a Github Pull Request that adds the new suite to the list of existing suites with URL.

Specifications that do not meet these criteria will not be accepted. Old listings which fall out of conformance may be removed.

Implementers that would like help or guidance during this process are urged to join the W3C Credentials Community Group and request assistance via the mailing list.

Signature Suites

This section summarizes the cryptographic signature suites and their corresponding verification methods currently known to the community. By convention there is a 1-1 mapping between signature suite (proof.type) and verification method (publicKey.type). Suites that support multiple verification methods MUST state so explicitly, and MUST register all verification method types in the suite specification.

Ed25519

Ed25519Signature2018

Summary
Identifiers Ed25519Signature2018
Status PROVISIONAL
Authors Markus Sabadello
Specification Ed25519 Signature Suite 2018

Ed25519VerificationKey2018

Summary
Identifiers Ed25519VerificationKey2018
Status PROVISIONAL
Authors Markus Sabadello
Specification Ed25519 Signature 2018: key format
{
  "@context": ["https://w3id.org/security/v1"],
  "id": "did:example:123456789abcdefghi#keys-1",
  "type": "Ed25519VerificationKey2018",
  "controller": "did:example:123456789abcdefghi",
  "expires": "2017-02-08T16:02:20Z",
  "publicKeyBase58" : "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}

RSA

RsaSignature2018

Summary
Identifiers RsaSignature2018
Status PROVISIONAL
Authors Dave Longley, Manu Sporny
Specification RSA Signature Suite 2018

RsaVerificationKey2018

Summary
Identifiers RsaVerificationKey2018
Status PROVISIONAL
Authors Dave Longley, Manu Sporny
Specification RSA Signature Suite 2018
{
  "id": "did:example:123456789abcdefghi#keys-1",
  "type": "RsaVerificationKey2018",
  "controller": "did:example:123456789abcdefghi",
  "expires": "2017-02-08T16:02:20Z",
  "publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n"
}

Secp256k1

EcdsaSecp256k1Signature2019

Summary
Identifiers EcdsaSecp256k1Signature2019
Status PROVISIONAL
Authors Orie Steele
Specification ECDSA Secp256k1 Signature Suite 2019

EcdsaSecp256k1VerificationKey2019

Summary
Identifiers EcdsaSecp256k1VerificationKey2019
Status PROVISIONAL
Authors Orie Steele
Specification ECDSA Secp256k1 Signature Suite 2019
{
  "id": "did:example:123#WqzaOweASs78whhl_YvCEvj1nd89IycryVlmZMefcjU",
  "type": "EcdsaSecp256k1VerificationKey2019",
  "controller": "did:example:123",
  "publicKeyJwk": {
    "crv": "secp256k1",
    "x": "4xAbUxbGGFPv4qpHlPFAUJdzteUGR1lRK-CELCufU9w",
    "y": "EYcgCTsff1qtZjI9_ckZTXDSKAIuM0BknrKgo0BZ_Is",
    "kty": "EC",
    "kid": "WqzaOweASs78whhl_YvCEvj1nd89IycryVlmZMefcjU"
  }
}
  {
    "id": "did:example:123#zQ3shnxmSoA9BJ2Djspq8RZkh9MNcUSYvFmP8Fp46aQqhpio4",
    "type": "EcdsaSecp256k1VerificationKey2019",
    "controller": "did:example:123",
    "expires": "2017-02-08T16:02:20Z",
    "publicKeyBase58": '231cRx1fhyNzrdj9i3UseKm1ApgMwyDLbKtJJH5AacEwL'
  }

publicKeyHex remains unsupported in did-core.

{
  "id": "did:example:123#keys-1",
  "type": "EcdsaSecp256k1VerificationKey2019",
  "controller": "did:example:123",
  "expires": "2017-02-08T16:02:20Z",
  "publicKeyHex": "02b97c30de767f084...263d29f1450936b71"
}

EcdsaSecp256k1RecoverySignature2020

Summary
Identifiers EcdsaSecp256k1RecoverySignature2020
Status PROVISIONAL
Authors Orie Steele
Specification ECDSA Secp256k1 Recovery Signature Suite 2019

EcdsaSecp256k1RecoveryMethod2020

Summary
Identifiers EcdsaSecp256k1RecoveryMethod2020
Status PROVISIONAL
Authors Orie Steele
Specification ECDSA Secp256k1 Recovery Signature Suite 2019
{
  "id": "did:example:123#WqzaOweASs78whhl_YvCEvj1nd89IycryVlmZMefcjU",
  "type": "EcdsaSecp256k1RecoveryMethod2020",
  "controller": "did:example:123",
  "publicKeyJwk": {
    "crv": "secp256k1",
    "x": "4xAbUxbGGFPv4qpHlPFAUJdzteUGR1lRK-CELCufU9w",
    "y": "EYcgCTsff1qtZjI9_ckZTXDSKAIuM0BknrKgo0BZ_Is",
    "kty": "EC",
    "kid": "WqzaOweASs78whhl_YvCEvj1nd89IycryVlmZMefcjU"
  }
}

publicKeyHex remains unsupported in did-core.

{
  "id": "did:example:123#keys-1",
  "type": "EcdsaSecp256k1RecoveryMethod2020",
  "controller": "did:example:123",
  "expires": "2017-02-08T16:02:20Z",
  "publicKeyHex": "02b97c30de767f084...263d29f1450936b71"
}
  {
    "id": "did:example:123#keys-1",
    "type": "EcdsaSecp256k1RecoveryMethod2020",
    "controller": "did:example:123",
    "ethereumAddress": "0x89a932207c485f85226d86f7cd486a89a24fcc12"
  }
  

JWS

JsonWebSignature2020

Summary
Identifiers JsonWebSignature2020
Status PROVISIONAL
Authors Orie Steele
Specification Json Web Signature 2020

JwsVerificationKey2020

Summary
Identifiers JwsVerificationKey2020
Status PROVISIONAL
Authors Orie Steele
Specification Json Web Signature 2020
      {
        "id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
        "type": "JwsVerificationKey2020",
        "controller": "did:example:123",
        "publicKeyJwk": {
          "crv": "Ed25519",
          "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ",
          "kty": "OKP",
          "kid": "_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A"
        }
      }
  

GPG

GpgSignature2020

Summary
Identifiers GpgSignature2020
Status PROVISIONAL
Authors Orie Steele
Specification GPG Signature 2020

GpgVerificationKey2020

Summary
Identifiers GpgVerificationKey2020
Status PROVISIONAL
Authors Orie Steele
Specification GPG Signature 2020
      {
        "id": "did:example:123#989ed1057a294c8a3665add842e784c4d08de1e2",
        "type": "GpgVerificationKey2020",
        "controller": "did:example:123",
        "publicKeyGpg": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVersion: OpenPGP.js v4.9.0\r\nComment: https://openpgpjs.org\r\n\r\nxjMEXkm5LRYJKwYBBAHaRw8BAQdASmfrjYr7vrjwHNiBsdcImK397Vc3t4BL\r\nE8rnN......v6\r\nDw==\r\n=wSoi\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n"
      }
  

JCS Ed25519 Signature 2020

JcsEd25519Signature2020

Summary
Identifiers JcsEd25519Signature2020
Status PROVISIONAL
Authors Gabe Cohen, Orie Steele
Specification JCS Ed25519 Signature 2020

JcsEd25519Key2020

Summary
Identifiers JcsEd25519Key2020
Status PROVISIONAL
Authors Gabe Cohen, Orie Steele
Specification JCS Ed25519 Signature 2020
      {
        "created": "2020-02-21T22:37:48Z",
        "creator": "did:work:6sYe1y3zXhmyrBkgHgAgaq#key-1",
        "nonce": "524a497a-871c-4b89-a325-205f78fc5fcd",
        "signatureValue": "2NuYkfkFy8o4R8iRCaLzTYc1Uss8s22rvC7jiY4BA49sFmWbwbEkQ6BHQPULEp7mPfQQvJdKSjKRLJF8sp62GKvo",
        "type": "JcsEd25519Signature2020"
      }
    

BBS+ Signature 2020

BbsBlsSignature2020

Summary
Identifiers BbsBlsSignature2020
Status PROVISIONAL
Authors Tobias Looker, Orie Steele
Specification BBS+ Signatures 2020

BbsBlsSignatureProof2020

Summary
Identifiers BbsBlsSignatureProof2020
Status PROVISIONAL
Authors Tobias Looker, Orie Steele
Specification BBS+ Signatures 2020

Bls12381G1Key2020

Summary
Identifiers Bls12381G1Key2020
Status PROVISIONAL
Authors Tobias Looker, Orie Steele
Specification BBS+ Signatures 2020
    {
      "id": "did:example:489398593#test",
      "type": "Bls12381G1Key2020",
      "controller": "did:example:489398593",
      "publicKeyBase58": "4N9Kg9BxmDXtf2QgRH2j1UfFAcQAmgu9Xpwe2fLbSNQHPQHBK5dHrQfFvexvux"
    }
  

Bls12381G2Key2020

Summary
Identifiers Bls12381G2Key2020
Status PROVISIONAL
Authors Tobias Looker, Orie Steele
Specification BBS+ Signatures 2020
    {
      "id": "did:example:489398593#test",
      "type": "Bls12381G2Key2020",
      "controller": "did:example:489398593",
      "publicKeyBase58": "oqpWYKaZD9M1Kbe94BVXpr8WTdFBNZyKv48cziTiQUeuhm7sBhCABMyYG4kcMrseC68YTFFgyhiNeBKjzdKk9MiRWuLv5H4FFujQsQK2KTAtzU8qTBiZqBHMmnLF4PL7Ytu"
    }