Giter Site home page Giter Site logo

w3c-ccg / lds-jws2020 Goto Github PK

View Code? Open in Web Editor NEW
13.0 13.0 9.0 4.07 MB

Linked Data Signatures for JWS

Home Page: https://www.w3.org/community/reports/credentials/CG-FINAL-lds-jws2020-20220721/

License: Other

decentralized-identifiers jose json-ld jwe jwk jws linked-data verifiable-credentials

lds-jws2020's Introduction

This repo is now deprecated.

This work has moved to the W3C VCWG, you can open issues, comment on PRs or engage on the latest version here:

See the W3C Verifiable Credentials Working Group.

Linked Data Signatures for JWS

View On Github

Interop Test Suite

See the repo above for links to implementations in Java, Rust and TypeScript.

Security Considerations

You should be aware that some of these curves are not considered safe:

If you will only ever need to support Ed25519 or only Secp256k1, you should consider using a restricted Linked Data Signature Suite like:

Supported JOSE Algorithms

The expected alg will be determined by the following table.

kty crvOrSize signature keyAgreement encryption
OKP Ed25519 EdDSA
OKP X25519 ECDH ECDH-ES+A256KW
EC secp256k1 ES256K ECDH
RSA 2048 PS256 RSA-OAEP
EC P-256 ES256 ECDH ECDH-ES+A256KW
EC P-384 ES384 ECDH ECDH-ES+A256KW

Anything else will result in an unsupported alg error.

Suite Details

Per ld-signatures, this Signature Suite defines the following:

{
  "id": "https://w3c-ccg.github.io/lds-jws2020/contexts/#JsonWebSignature2020",
  "type": "SignatureSuite",
  "canonicalizationAlgorithm": "https://w3id.org/security#URDNA2015",
  "digestAlgorithm": "https://tools.ietf.org/html/rfc4634#section-4.2.2",
  "signatureAlgorithm": "https://www.iana.org/assignments/jose/jose.xhtml#web-signature-encryption-algorithms"
}

See the Linked Data Signature Suite Vocabulary.

Credits and Support

Works with:

lds-jws2020's People

Contributors

brianorwhatever avatar clehner avatar decentralgabe avatar dependabot[bot] avatar gjgd avatar jacehensley avatar kdenhartog-mattr avatar kimdhamilton avatar mprorock avatar or13 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

lds-jws2020's Issues

Rename repo/types to align with JWS

Please rename the following things in this library:

lds-jose2020 -> lds-jws2020
JoseVerificationKey2020 -> JwsVerificationKey2020
JoseLinkedDataSignature2020 -> JsonWebSignature2020

JOSE stands for "Json Object Signing and Encryption" -- this library doesn't do encryption, it does signatures, and that is the Json Web Signature part of the JOSE stack.

Suite Error when following example

Time Appropriate Greetings.
Not 100% sure what is causing this issue, but just trying out the example from the readme.md results in the following issue:

suite.ensureSuiteContext({document, addSuiteContext});

Digest algorithm

Where is the canonical definition of the digest algorithm defined by the vocabulary:

{
  "id": "https://lds.jsld.org/contexts/#JsonWebSignature2020",
  "type": "SignatureSuite",
  "canonicalizationAlgorithm": "https://w3id.org/security#URDNA2015",
  "digestAlgorithm": "https://www.ietf.org/assignments/jwa-parameters#SHA256",
  "signatureAlgorithm": "https://tools.ietf.org/html/rfc7518"
}

https://www.ietf.org/assignments/jwa-parameters#SHA256 is not a valid URL, and JWA does not define message-digest algorithms.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.