We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
As per Verifiable Credential Data Integrity 1.0, the proofValue MUST be expressed as in the Multibase encoding format.
proofValue
This is not done in the code, see https://github.com/mattrglobal/jsonld-signatures-bbs/blob/master/src/BbsBlsSignature2020.ts#L379
Basic reproduction:
import { BbsBlsSignature2020, Bls12381G2KeyPair } from '@mattrglobal/jsonld-signatures-bbs' import { sign, purposes } from "jsonld-signatures"; const keyPair = new Bls12381G2KeyPair({ "id": "did:example:489398593#test", "controller": "did:example:489398593", "privateKeyBase58": "5D6Pa8dSwApdnfg7EZR8WnGfvLDCZPZGsZ5Y1ELL9VDj", "publicKeyBase58": "oqpWYKaZD9M1Kbe94BVXpr8WTdFBNZyKv48cziTiQUeuhm7sBhCABMyYG4kcMrseC68YTFFgyhiNeBKjzdKk9MiRWuLv5H4FFujQsQK2KTAtzU8qTBiZqBHMmnLF4PL7Ytu" }); const documentLoader = async (url: string): Promise<any> => { // HACK: Just a quick hack to get the context. if (url.startsWith('http')) { const res = await fetch(url); const linkHeader = res.headers.get('Link') if(linkHeader) { const parts = linkHeader.split(';') const contextUrl = parts[0].replace('<', '').replace('>', '') return documentLoader(url + contextUrl) } return { contextUrl: null, document: await res.json(), documentUrl: url } } } const inputDocument = { '@context': [ 'https://schema.org', 'https://w3id.org/security/bbs/v1' ], '@type': 'Person', 'name': 'John Doe' } const signedDocument = await sign(inputDocument, { suite: new BbsBlsSignature2020({ key: keyPair }), purpose: new purposes.AssertionProofPurpose(), documentLoader }) console.log(signedDocument)
Results in:
{ "@context": [ "https://schema.org", "https://w3id.org/security/bbs/v1" ], "@type": "Person", "name": "John Doe", "https://w3id.org/security#proof": { "@graph": { "type": "BbsBlsSignature2020", "created": "2024-01-08T02:17:50Z", "proofPurpose": "assertionMethod", "proofValue": "rCZ65PkLqdlYHqOJoLtPW/KdfoacLIWZ/EA79DfgygAGRQx5Uiihtno+apCmpMfjWbwMfQxOYveLVux+muOsBGn/CuxGchB3cPozh2rRtO4nvDvkL4XqCp9662Yo9GgwqcuQBY55Y6mTfz3ifaZbKg==", "verificationMethod": "did:example:489398593#test" } } }
Instead, the proofValue should be expressed as RFC4648 (base64url), with no padding, and prefixed with u to denote the format.
u
The text was updated successfully, but these errors were encountered:
No branches or pull requests
As per Verifiable Credential Data Integrity 1.0, the
proofValue
MUST be expressed as in the Multibase encoding format.This is not done in the code, see https://github.com/mattrglobal/jsonld-signatures-bbs/blob/master/src/BbsBlsSignature2020.ts#L379
Basic reproduction:
Results in:
Instead, the
proofValue
should be expressed as RFC4648 (base64url), with no padding, and prefixed withu
to denote the format.The text was updated successfully, but these errors were encountered: