@veramo/credential-ld 5.3.1-next.4 → 5.3.1-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/action-handler.d.ts.map +1 -1
- package/build/action-handler.js +4 -3
- package/build/action-handler.js.map +1 -1
- package/build/suites/EcdsaSecp256k1RecoverySignature2020.d.ts.map +1 -1
- package/build/suites/EcdsaSecp256k1RecoverySignature2020.js +5 -7
- package/build/suites/EcdsaSecp256k1RecoverySignature2020.js.map +1 -1
- package/build/suites/Ed25519Signature2018.d.ts.map +1 -1
- package/build/suites/Ed25519Signature2018.js +4 -5
- package/build/suites/Ed25519Signature2018.js.map +1 -1
- package/build/suites/Ed25519Signature2020.d.ts.map +1 -1
- package/build/suites/Ed25519Signature2020.js +2 -3
- package/build/suites/Ed25519Signature2020.js.map +1 -1
- package/build/suites/JsonWebSignature2020.d.ts +2 -2
- package/build/suites/JsonWebSignature2020.d.ts.map +1 -1
- package/build/suites/JsonWebSignature2020.js +10 -8
- package/build/suites/JsonWebSignature2020.js.map +1 -1
- package/build/tsdoc-metadata.json +1 -1
- package/package.json +8 -9
- package/src/action-handler.ts +6 -3
- package/src/suites/EcdsaSecp256k1RecoverySignature2020.ts +11 -10
- package/src/suites/Ed25519Signature2018.ts +4 -5
- package/src/suites/Ed25519Signature2020.ts +9 -3
- package/src/suites/JsonWebSignature2020.ts +76 -68
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-handler.d.ts","sourceRoot":"","sources":["../src/action-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAKZ,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAI9C,OAAO,EAML,SAAS,EAET,UAAU,
|
|
1
|
+
{"version":3,"file":"action-handler.d.ts","sourceRoot":"","sources":["../src/action-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAKZ,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAI9C,OAAO,EAML,SAAS,EAET,UAAU,EAEX,MAAM,eAAe,CAAA;AAItB,OAAO,EACL,UAAU,EACV,iCAAiC,EACjC,mCAAmC,EACnC,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AAInB;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;IACrC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA6B;IAE5C,OAAO,CAAC,kBAAkB,CAAoB;gBAElC,OAAO,EAAE;QAAE,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAAC,MAAM,EAAE,iBAAiB,EAAE,CAAA;KAAE;IActG,uEAAuE;IAC1D,8BAA8B,CACzC,IAAI,EAAE,mCAAmC,EACzC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,sBAAsB,CAAC;IAmElC,qEAAqE;IACxD,4BAA4B,CACvC,IAAI,EAAE,iCAAiC,EACvC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,oBAAoB,CAAC;IAiDhC,2DAA2D;IAC9C,kBAAkB,CAC7B,IAAI,EAAE,uBAAuB,EAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,OAAO,CAAC;IAgBnB,6DAA6D;IAChD,oBAAoB,CAC/B,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,OAAO,CAAC;YAgBL,oBAAoB;CAgCnC"}
|
package/build/action-handler.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import schema from './plugin.schema.json' assert { type: 'json' };
|
|
2
2
|
import Debug from 'debug';
|
|
3
3
|
import { LdContextLoader } from './ld-context-loader.js';
|
|
4
|
-
import { extractIssuer, isDefined, MANDATORY_CREDENTIAL_CONTEXT, mapIdentifierKeysToDoc, processEntryToArray, } from '@veramo/utils';
|
|
4
|
+
import { extractIssuer, isDefined, MANDATORY_CREDENTIAL_CONTEXT, mapIdentifierKeysToDoc, processEntryToArray, removeDIDParameters, } from '@veramo/utils';
|
|
5
5
|
import { LdCredentialModule } from './ld-credential-module.js';
|
|
6
6
|
import { LdSuiteLoader } from './ld-suite-loader.js';
|
|
7
7
|
const debug = Debug('veramo:credential-ld:action-handler');
|
|
@@ -51,9 +51,10 @@ export class CredentialIssuerLD {
|
|
|
51
51
|
}
|
|
52
52
|
//issuanceDate must not be present for presentations because it is not defined in a @context
|
|
53
53
|
delete presentation.issuanceDate;
|
|
54
|
+
const holder = removeDIDParameters(presentation.holder);
|
|
54
55
|
let identifier;
|
|
55
56
|
try {
|
|
56
|
-
identifier = await context.agent.didManagerGet({ did:
|
|
57
|
+
identifier = await context.agent.didManagerGet({ did: holder });
|
|
57
58
|
}
|
|
58
59
|
catch (e) {
|
|
59
60
|
throw new Error('invalid_argument: args.presentation.holder must be a DID managed by this agent');
|
|
@@ -80,7 +81,7 @@ export class CredentialIssuerLD {
|
|
|
80
81
|
'@context': credentialContext,
|
|
81
82
|
type: credentialType,
|
|
82
83
|
};
|
|
83
|
-
const issuer = extractIssuer(credential);
|
|
84
|
+
const issuer = extractIssuer(credential, { removeParameters: true });
|
|
84
85
|
if (!issuer || typeof issuer === 'undefined') {
|
|
85
86
|
throw new Error('invalid_argument: args.credential.issuer must not be empty');
|
|
86
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-handler.js","sourceRoot":"","sources":["../src/action-handler.ts"],"names":[],"mappings":"AAYA,OAAO,MAAM,MAAM,sBAAsB,CAAC,SAAS,IAAI,EAAE,MAAM,EAAE,CAAA;AACjE,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAEL,aAAa,EACb,SAAS,EACT,4BAA4B,EAC5B,sBAAsB,EAEtB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"action-handler.js","sourceRoot":"","sources":["../src/action-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EcdsaSecp256k1RecoverySignature2020.d.ts","sourceRoot":"","sources":["../../src/suites/EcdsaSecp256k1RecoverySignature2020.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"EcdsaSecp256k1RecoverySignature2020.d.ts","sourceRoot":"","sources":["../../src/suites/EcdsaSecp256k1RecoverySignature2020.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAMlG;;;;GAIG;AACH,qBAAa,yCAA0C,SAAQ,iBAAiB;IAC9E,4BAA4B,IAAI,MAAM;IAItC,yBAAyB,IAAI,QAAQ;IAIrC,kBAAkB,CAChB,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,GAC3C,GAAG;IAyCN,uBAAuB,IAAI,GAAG;IAI9B,0BAA0B,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAEzD,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAuB7F,UAAU,IAAI,MAAM;CAGrB"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { VeramoLdSignature } from '../ld-suites.js';
|
|
2
2
|
import ldsEcdsa from '@veramo-community/lds-ecdsa-secp256k1-recovery2020';
|
|
3
|
-
import
|
|
4
|
-
import { asArray, encodeJoseBlob } from '@veramo/utils';
|
|
3
|
+
import { asArray, bytesToBase64, concat, encodeJoseBlob, stringToUtf8Bytes } from '@veramo/utils';
|
|
5
4
|
const { EcdsaSecp256k1RecoveryMethod2020, EcdsaSecp256k1RecoverySignature2020 } = ldsEcdsa;
|
|
6
5
|
/**
|
|
7
6
|
* Veramo wrapper for the EcdsaSecp256k1RecoverySignature2020 suite by Transmute Industries
|
|
@@ -26,8 +25,8 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
26
25
|
crit: ['b64'],
|
|
27
26
|
};
|
|
28
27
|
const headerString = encodeJoseBlob(header);
|
|
29
|
-
const messageBuffer =
|
|
30
|
-
const messageString =
|
|
28
|
+
const messageBuffer = concat([stringToUtf8Bytes(`${headerString}.`), args.data]);
|
|
29
|
+
const messageString = bytesToBase64(messageBuffer);
|
|
31
30
|
const signature = await context.agent.keyManagerSign({
|
|
32
31
|
keyRef: key.kid,
|
|
33
32
|
algorithm: 'ES256K-R',
|
|
@@ -55,8 +54,7 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
55
54
|
getSuiteForVerification() {
|
|
56
55
|
return new EcdsaSecp256k1RecoverySignature2020();
|
|
57
56
|
}
|
|
58
|
-
preSigningCredModification(credential) {
|
|
59
|
-
}
|
|
57
|
+
preSigningCredModification(credential) { }
|
|
60
58
|
async preDidResolutionModification(didUrl, didDoc) {
|
|
61
59
|
// did:ethr
|
|
62
60
|
const idx = didDoc['@context']?.indexOf('https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld') || -1;
|
|
@@ -68,7 +66,7 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
68
66
|
didDoc.verificationMethod?.forEach((x) => {
|
|
69
67
|
if (x.blockchainAccountId) {
|
|
70
68
|
if (x.blockchainAccountId.lastIndexOf('@eip155:') !== -1) {
|
|
71
|
-
const [address, chain] = x.blockchainAccountId.split(
|
|
69
|
+
const [address, chain] = x.blockchainAccountId.split('@eip155:');
|
|
72
70
|
x.blockchainAccountId = `eip155:${chain}:${address}`;
|
|
73
71
|
}
|
|
74
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EcdsaSecp256k1RecoverySignature2020.js","sourceRoot":"","sources":["../../src/suites/EcdsaSecp256k1RecoverySignature2020.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEzE,OAAO,QAAQ,MAAM,oDAAoD,CAAA;AACzE,OAAO,
|
|
1
|
+
{"version":3,"file":"EcdsaSecp256k1RecoverySignature2020.js","sourceRoot":"","sources":["../../src/suites/EcdsaSecp256k1RecoverySignature2020.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ed25519Signature2018.d.ts","sourceRoot":"","sources":["../../src/suites/Ed25519Signature2018.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"Ed25519Signature2018.d.ts","sourceRoot":"","sources":["../../src/suites/Ed25519Signature2018.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGlG;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC/D,4BAA4B,IAAI,MAAM;IAItC,yBAAyB,IAAI,QAAQ;IAIrC,kBAAkB,CAChB,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,GAC3C,GAAG;IA2CN,uBAAuB,IAAI,GAAG;IAI9B,0BAA0B,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIzD,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAI9F"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { encodeJoseBlob } from '@veramo/utils';
|
|
1
|
+
import { bytesToBase64, concat, encodeJoseBlob, hexToBytes, stringToUtf8Bytes } from '@veramo/utils';
|
|
2
2
|
import { VeramoLdSignature } from '../ld-suites.js';
|
|
3
|
-
import * as u8a from 'uint8arrays';
|
|
4
3
|
import { Ed25519Signature2018, Ed25519VerificationKey2018 } from '@transmute/ed25519-signature-2018';
|
|
5
4
|
/**
|
|
6
5
|
* Veramo wrapper for the Ed25519Signature2018 suite by Transmute Industries
|
|
@@ -27,8 +26,8 @@ export class VeramoEd25519Signature2018 extends VeramoLdSignature {
|
|
|
27
26
|
crit: ['b64'],
|
|
28
27
|
};
|
|
29
28
|
const headerString = encodeJoseBlob(header);
|
|
30
|
-
const messageBuffer =
|
|
31
|
-
const messageString =
|
|
29
|
+
const messageBuffer = concat([stringToUtf8Bytes(`${headerString}.`), args.data]);
|
|
30
|
+
const messageString = bytesToBase64(messageBuffer);
|
|
32
31
|
const signature = await context.agent.keyManagerSign({
|
|
33
32
|
keyRef: key.kid,
|
|
34
33
|
algorithm: 'EdDSA',
|
|
@@ -41,7 +40,7 @@ export class VeramoEd25519Signature2018 extends VeramoLdSignature {
|
|
|
41
40
|
const verificationKey = new Ed25519VerificationKey2018({
|
|
42
41
|
id,
|
|
43
42
|
controller,
|
|
44
|
-
publicKey:
|
|
43
|
+
publicKey: hexToBytes(key.publicKeyHex),
|
|
45
44
|
signer: () => signer,
|
|
46
45
|
type: this.getSupportedVerificationType(),
|
|
47
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ed25519Signature2018.js","sourceRoot":"","sources":["../../src/suites/Ed25519Signature2018.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Ed25519Signature2018.js","sourceRoot":"","sources":["../../src/suites/Ed25519Signature2018.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACpG,OAAO,EAAwB,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEzE,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAEpG;;;;GAIG;AACH,MAAM,OAAO,0BAA2B,SAAQ,iBAAiB;IAC/D,4BAA4B;QAC1B,OAAO,4BAA4B,CAAA;IACrC,CAAC;IAED,yBAAyB;QACvB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,kBAAkB,CAChB,GAAS,EACT,SAAiB,EACjB,oBAA4B,EAC5B,OAA4C;QAE5C,MAAM,UAAU,GAAG,SAAS,CAAA;QAE5B,aAAa;QACb,IAAI,EAAE,GAAG,oBAAoB,CAAA;QAE7B,MAAM,MAAM,GAAG;YACb,yBAAyB;YACzB,IAAI,EAAE,KAAK,EAAE,IAA0B,EAAmB,EAAE;gBAC1D,MAAM,MAAM,GAAG;oBACb,GAAG,EAAE,OAAO;oBACZ,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,CAAC,KAAK,CAAC;iBACd,CAAA;gBACD,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;gBAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,iBAAiB,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBAChF,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;gBAClD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;oBACnD,MAAM,EAAE,GAAG,CAAC,GAAG;oBACf,SAAS,EAAE,OAAO;oBAClB,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAA;gBACF,OAAO,GAAG,YAAY,KAAK,SAAS,EAAE,CAAA;YACxC,CAAC;SACF,CAAA;QAED,MAAM,eAAe,GAAG,IAAI,0BAA0B,CAAC;YACrD,EAAE;YACF,UAAU;YACV,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;YACvC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM;YACpB,IAAI,EAAE,IAAI,CAAC,4BAA4B,EAAE;SAC1C,CAAC,CAAA;QACF,2GAA2G;QAC3G,eAAe,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAa,CAAA;QAE5C,OAAO,IAAI,oBAAoB,CAAC;YAC9B,GAAG,EAAE,eAAe;YACpB,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;IACJ,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,oBAAoB,EAAE,CAAA;IACnC,CAAC;IAED,0BAA0B,CAAC,UAA6B;QACtD,qBAAqB;IACvB,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,MAAc,EAAE,MAAmB;QACpE,qBAAqB;QACrB,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ed25519Signature2020.d.ts","sourceRoot":"","sources":["../../src/suites/Ed25519Signature2020.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,aAAa,EACb,IAAI,EACJ,SAAS,EACT,QAAQ,EACT,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"Ed25519Signature2020.d.ts","sourceRoot":"","sources":["../../src/suites/Ed25519Signature2020.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,aAAa,EACb,IAAI,EACJ,SAAS,EACT,QAAQ,EACT,MAAM,oBAAoB,CAAA;AAiB3B;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC/D,4BAA4B,IAAI,MAAM;IAItC,yBAAyB,IAAI,QAAQ;IAIrC,kBAAkB,CAChB,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,GAC3C,OAAO,CAAC,GAAG,CAAC;IAoCf,uBAAuB,IAAI,GAAG;IAI9B,0BAA0B,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIzD,4BAA4B,CAChC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,EACnD,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,GAChC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IA0C1D,OAAO,CAAC,2BAA2B;CAWpC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { VeramoLdSignature } from '../ld-suites.js';
|
|
2
|
-
import * as u8a from 'uint8arrays';
|
|
3
2
|
import { Ed25519Signature2020 } from '@digitalcredentials/ed25519-signature-2020';
|
|
4
3
|
import { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020';
|
|
5
|
-
import { asArray, base64ToBytes, bytesToMultibase, extractPublicKeyHex, hexToBytes } from '@veramo/utils';
|
|
4
|
+
import { asArray, base64ToBytes, bytesToBase64, bytesToMultibase, extractPublicKeyHex, hexToBytes, } from '@veramo/utils';
|
|
6
5
|
import Debug from 'debug';
|
|
7
6
|
const debug = Debug('veramo:credential-ld:Ed25519Signature2020');
|
|
8
7
|
/**
|
|
@@ -24,7 +23,7 @@ export class VeramoEd25519Signature2020 extends VeramoLdSignature {
|
|
|
24
23
|
const signer = {
|
|
25
24
|
// returns signatureBytes
|
|
26
25
|
sign: async (args) => {
|
|
27
|
-
const messageString =
|
|
26
|
+
const messageString = bytesToBase64(args.data);
|
|
28
27
|
const signature = await context.agent.keyManagerSign({
|
|
29
28
|
keyRef: key.kid,
|
|
30
29
|
data: messageString,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ed25519Signature2020.js","sourceRoot":"","sources":["../../src/suites/Ed25519Signature2020.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAUzE,OAAO,
|
|
1
|
+
{"version":3,"file":"Ed25519Signature2020.js","sourceRoot":"","sources":["../../src/suites/Ed25519Signature2020.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CredentialPayload, DIDDocument, IAgentContext, IKey, TKeyType } from
|
|
2
|
-
import { RequiredAgentMethods, VeramoLdSignature } from
|
|
1
|
+
import { CredentialPayload, DIDDocument, IAgentContext, IKey, TKeyType } from '@veramo/core-types';
|
|
2
|
+
import { RequiredAgentMethods, VeramoLdSignature } from '../ld-suites.js';
|
|
3
3
|
/**
|
|
4
4
|
* Veramo wrapper for the JsonWebSignature2020 suite by Transmute Industries
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonWebSignature2020.d.ts","sourceRoot":"","sources":["../../src/suites/JsonWebSignature2020.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"JsonWebSignature2020.d.ts","sourceRoot":"","sources":["../../src/suites/JsonWebSignature2020.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClG,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAYzE;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC/D,4BAA4B,IAAI,gBAAgB;IAIhD,yBAAyB,IAAI,QAAQ;IAI/B,kBAAkB,CACtB,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,GAC3C,OAAO,CAAC,GAAG,CAAC;IAsDf,uBAAuB,IAAI,GAAG;IAI9B,0BAA0B,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIzD,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAI9F"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { VeramoLdSignature } from
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { asArray, encodeJoseBlob } from "@veramo/utils";
|
|
1
|
+
import { VeramoLdSignature } from '../ld-suites.js';
|
|
2
|
+
import { JsonWebKey, JsonWebSignature } from '@transmute/json-web-signature';
|
|
3
|
+
import { asArray, bytesToBase64, bytesToBase64url, concat, encodeJoseBlob, hexToBytes, stringToUtf8Bytes, } from '@veramo/utils';
|
|
5
4
|
/**
|
|
6
5
|
* Veramo wrapper for the JsonWebSignature2020 suite by Transmute Industries
|
|
7
6
|
*
|
|
@@ -27,8 +26,8 @@ export class VeramoJsonWebSignature2020 extends VeramoLdSignature {
|
|
|
27
26
|
crit: ['b64'],
|
|
28
27
|
};
|
|
29
28
|
const headerString = encodeJoseBlob(header);
|
|
30
|
-
const messageBuffer =
|
|
31
|
-
const messageString =
|
|
29
|
+
const messageBuffer = concat([stringToUtf8Bytes(`${headerString}.`), args.data]);
|
|
30
|
+
const messageString = bytesToBase64(messageBuffer);
|
|
32
31
|
const signature = await context.agent.keyManagerSign({
|
|
33
32
|
keyRef: key.kid,
|
|
34
33
|
algorithm: 'EdDSA',
|
|
@@ -45,7 +44,7 @@ export class VeramoJsonWebSignature2020 extends VeramoLdSignature {
|
|
|
45
44
|
publicKeyJwk: {
|
|
46
45
|
kty: 'OKP',
|
|
47
46
|
crv: 'Ed25519',
|
|
48
|
-
x:
|
|
47
|
+
x: bytesToBase64url(hexToBytes(key.publicKeyHex)),
|
|
49
48
|
},
|
|
50
49
|
});
|
|
51
50
|
verificationKey.signer = () => signer;
|
|
@@ -53,7 +52,10 @@ export class VeramoJsonWebSignature2020 extends VeramoLdSignature {
|
|
|
53
52
|
key: verificationKey,
|
|
54
53
|
});
|
|
55
54
|
suite.ensureSuiteContext = ({ document }) => {
|
|
56
|
-
document['@context'] = [
|
|
55
|
+
document['@context'] = [
|
|
56
|
+
...asArray(document['@context'] || []),
|
|
57
|
+
'https://w3id.org/security/suites/jws-2020/v1',
|
|
58
|
+
];
|
|
57
59
|
};
|
|
58
60
|
return suite;
|
|
59
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonWebSignature2020.js","sourceRoot":"","sources":["../../src/suites/JsonWebSignature2020.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,iBAAiB,EAAE,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"JsonWebSignature2020.js","sourceRoot":"","sources":["../../src/suites/JsonWebSignature2020.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,EACL,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,MAAM,EACN,cAAc,EACd,UAAU,EACV,iBAAiB,GAClB,MAAM,eAAe,CAAA;AAEtB;;;;GAIG;AACH,MAAM,OAAO,0BAA2B,SAAQ,iBAAiB;IAC/D,4BAA4B;QAC1B,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED,yBAAyB;QACvB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,GAAS,EACT,SAAiB,EACjB,oBAA4B,EAC5B,OAA4C;QAE5C,MAAM,UAAU,GAAG,SAAS,CAAA;QAE5B,aAAa;QACb,IAAI,EAAE,GAAG,oBAAoB,CAAA;QAE7B,MAAM,MAAM,GAAG;YACb,yBAAyB;YACzB,IAAI,EAAE,KAAK,EAAE,IAA0B,EAAmB,EAAE;gBAC1D,MAAM,MAAM,GAAG;oBACb,GAAG,EAAE,OAAO;oBACZ,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,CAAC,KAAK,CAAC;iBACd,CAAA;gBACD,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;gBAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,iBAAiB,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBAChF,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;gBAClD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;oBACnD,MAAM,EAAE,GAAG,CAAC,GAAG;oBACf,SAAS,EAAE,OAAO;oBAClB,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAA;gBACF,OAAO,GAAG,YAAY,KAAK,SAAS,EAAE,CAAA;YACxC,CAAC;SACF,CAAA;QAED,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;YAC5C,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,IAAI,CAAC,4BAA4B,EAAE;YACzC,UAAU,EAAE,UAAU;YACtB,YAAY,EAAE;gBACZ,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,SAAS;gBACd,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;aAClD;SACF,CAAC,CAAA;QAEF,eAAe,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAA;QAErC,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC;YACjC,GAAG,EAAE,eAAe;SACrB,CAAC,CAAA;QAEF,KAAK,CAAC,kBAAkB,GAAG,CAAC,EAAE,QAAQ,EAA+C,EAAE,EAAE;YACvF,QAAQ,CAAC,UAAU,CAAC,GAAG;gBACrB,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACtC,8CAA8C;aAC/C,CAAA;QACH,CAAC,CAAA;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,gBAAgB,EAAE,CAAA;IAC/B,CAAC;IAED,0BAA0B,CAAC,UAA6B;QACtD,MAAM;IACR,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,MAAc,EAAE,MAAmB;QACpE,aAAa;QACb,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veramo/credential-ld",
|
|
3
3
|
"description": "Veramo plugin for working with W3C JSON-LD Verifiable Credentials & Presentations.",
|
|
4
|
-
"version": "5.3.1-next.
|
|
4
|
+
"version": "5.3.1-next.7+5294a812e",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./build/index.js",
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
"@digitalcredentials/jsonld": "^5.2.1",
|
|
24
24
|
"@digitalcredentials/jsonld-signatures": "^9.3.1",
|
|
25
25
|
"@digitalcredentials/vc": "^5.0.0",
|
|
26
|
-
"@transmute/credentials-context": "^0.7.0-unstable.
|
|
27
|
-
"@transmute/ed25519-signature-2018": "^0.7.0-unstable.
|
|
28
|
-
"@transmute/json-web-signature": "^0.7.0-unstable.
|
|
26
|
+
"@transmute/credentials-context": "^0.7.0-unstable.81",
|
|
27
|
+
"@transmute/ed25519-signature-2018": "^0.7.0-unstable.81",
|
|
28
|
+
"@transmute/json-web-signature": "^0.7.0-unstable.81",
|
|
29
29
|
"@veramo-community/lds-ecdsa-secp256k1-recovery2020": "uport-project/EcdsaSecp256k1RecoverySignature2020",
|
|
30
|
-
"@veramo/core-types": "^5.3.1-next.
|
|
31
|
-
"@veramo/utils": "^5.3.1-next.
|
|
30
|
+
"@veramo/core-types": "^5.3.1-next.7+5294a812e",
|
|
31
|
+
"@veramo/utils": "^5.3.1-next.7+5294a812e",
|
|
32
32
|
"cross-fetch": "^3.1.6",
|
|
33
33
|
"debug": "^4.3.3",
|
|
34
|
-
"did-resolver": "^4.0
|
|
35
|
-
"uint8arrays": "^4.0.3"
|
|
34
|
+
"did-resolver": "^4.1.0"
|
|
36
35
|
},
|
|
37
36
|
"resolutions": {
|
|
38
37
|
"@types/react": "18.0.26",
|
|
@@ -63,5 +62,5 @@
|
|
|
63
62
|
"node_modules",
|
|
64
63
|
"src"
|
|
65
64
|
],
|
|
66
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "5294a812ee578c0712b54f216416c3ef78c848da"
|
|
67
66
|
}
|
package/src/action-handler.ts
CHANGED
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
OrPromise,
|
|
23
23
|
processEntryToArray,
|
|
24
24
|
RecordLike,
|
|
25
|
+
removeDIDParameters,
|
|
25
26
|
} from '@veramo/utils'
|
|
26
27
|
|
|
27
28
|
import { LdCredentialModule } from './ld-credential-module.js'
|
|
@@ -98,9 +99,11 @@ export class CredentialIssuerLD implements IAgentPlugin {
|
|
|
98
99
|
//issuanceDate must not be present for presentations because it is not defined in a @context
|
|
99
100
|
delete presentation.issuanceDate
|
|
100
101
|
|
|
102
|
+
const holder = removeDIDParameters(presentation.holder)
|
|
103
|
+
|
|
101
104
|
let identifier: IIdentifier
|
|
102
105
|
try {
|
|
103
|
-
identifier = await context.agent.didManagerGet({ did:
|
|
106
|
+
identifier = await context.agent.didManagerGet({ did: holder })
|
|
104
107
|
} catch (e) {
|
|
105
108
|
throw new Error('invalid_argument: args.presentation.holder must be a DID managed by this agent')
|
|
106
109
|
}
|
|
@@ -148,7 +151,7 @@ export class CredentialIssuerLD implements IAgentPlugin {
|
|
|
148
151
|
type: credentialType,
|
|
149
152
|
}
|
|
150
153
|
|
|
151
|
-
const issuer = extractIssuer(credential)
|
|
154
|
+
const issuer = extractIssuer(credential, { removeParameters: true })
|
|
152
155
|
if (!issuer || typeof issuer === 'undefined') {
|
|
153
156
|
throw new Error('invalid_argument: args.credential.issuer must not be empty')
|
|
154
157
|
}
|
|
@@ -252,7 +255,7 @@ export class CredentialIssuerLD implements IAgentPlugin {
|
|
|
252
255
|
signingKey = extendedKeys.find((k) => supportedTypes.includes(k.meta.verificationMethod.type))
|
|
253
256
|
}
|
|
254
257
|
|
|
255
|
-
|
|
258
|
+
|
|
256
259
|
if (!signingKey) throw Error(`key_not_found: No suitable signing key found for ${identifier.did}`)
|
|
257
260
|
verificationMethodId = signingKey.meta.verificationMethod.id
|
|
258
261
|
return { signingKey, verificationMethodId }
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { RequiredAgentMethods, VeramoLdSignature } from '../ld-suites.js'
|
|
2
2
|
import { CredentialPayload, DIDDocument, IAgentContext, IKey, TKeyType } from '@veramo/core-types'
|
|
3
3
|
import ldsEcdsa from '@veramo-community/lds-ecdsa-secp256k1-recovery2020'
|
|
4
|
-
import
|
|
5
|
-
import { asArray, encodeJoseBlob } from '@veramo/utils'
|
|
4
|
+
import { asArray, bytesToBase64, concat, encodeJoseBlob, stringToUtf8Bytes } from '@veramo/utils'
|
|
6
5
|
|
|
7
6
|
const { EcdsaSecp256k1RecoveryMethod2020, EcdsaSecp256k1RecoverySignature2020 } = ldsEcdsa
|
|
8
7
|
|
|
@@ -36,8 +35,8 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
36
35
|
crit: ['b64'],
|
|
37
36
|
}
|
|
38
37
|
const headerString = encodeJoseBlob(header)
|
|
39
|
-
const messageBuffer =
|
|
40
|
-
const messageString =
|
|
38
|
+
const messageBuffer = concat([stringToUtf8Bytes(`${headerString}.`), args.data])
|
|
39
|
+
const messageString = bytesToBase64(messageBuffer)
|
|
41
40
|
const signature = await context.agent.keyManagerSign({
|
|
42
41
|
keyRef: key.kid,
|
|
43
42
|
algorithm: 'ES256K-R',
|
|
@@ -59,7 +58,7 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
59
58
|
}),
|
|
60
59
|
})
|
|
61
60
|
|
|
62
|
-
suite.ensureSuiteContext = ({ document }: { document: any
|
|
61
|
+
suite.ensureSuiteContext = ({ document }: { document: any; addSuiteContext: boolean }) => {
|
|
63
62
|
document['@context'] = [...asArray(document['@context'] || []), this.getContext()]
|
|
64
63
|
}
|
|
65
64
|
|
|
@@ -70,12 +69,14 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
70
69
|
return new EcdsaSecp256k1RecoverySignature2020()
|
|
71
70
|
}
|
|
72
71
|
|
|
73
|
-
preSigningCredModification(credential: CredentialPayload): void {
|
|
74
|
-
}
|
|
72
|
+
preSigningCredModification(credential: CredentialPayload): void {}
|
|
75
73
|
|
|
76
74
|
async preDidResolutionModification(didUrl: string, didDoc: DIDDocument): Promise<DIDDocument> {
|
|
77
|
-
// did:ethr
|
|
78
|
-
const idx =
|
|
75
|
+
// did:ethr
|
|
76
|
+
const idx =
|
|
77
|
+
didDoc['@context']?.indexOf(
|
|
78
|
+
'https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld',
|
|
79
|
+
) || -1
|
|
79
80
|
if (Array.isArray(didDoc['@context']) && idx !== -1) {
|
|
80
81
|
didDoc['@context'][idx] = this.getContext()
|
|
81
82
|
}
|
|
@@ -85,7 +86,7 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
85
86
|
didDoc.verificationMethod?.forEach((x) => {
|
|
86
87
|
if (x.blockchainAccountId) {
|
|
87
88
|
if (x.blockchainAccountId.lastIndexOf('@eip155:') !== -1) {
|
|
88
|
-
const [
|
|
89
|
+
const [address, chain] = x.blockchainAccountId.split('@eip155:')
|
|
89
90
|
x.blockchainAccountId = `eip155:${chain}:${address}`
|
|
90
91
|
}
|
|
91
92
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { encodeJoseBlob } from '@veramo/utils'
|
|
1
|
+
import { bytesToBase64, concat, encodeJoseBlob, hexToBytes, stringToUtf8Bytes } from '@veramo/utils'
|
|
2
2
|
import { RequiredAgentMethods, VeramoLdSignature } from '../ld-suites.js'
|
|
3
3
|
import { CredentialPayload, DIDDocument, IAgentContext, IKey, TKeyType } from '@veramo/core-types'
|
|
4
|
-
import * as u8a from 'uint8arrays'
|
|
5
4
|
import { Ed25519Signature2018, Ed25519VerificationKey2018 } from '@transmute/ed25519-signature-2018'
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -38,8 +37,8 @@ export class VeramoEd25519Signature2018 extends VeramoLdSignature {
|
|
|
38
37
|
crit: ['b64'],
|
|
39
38
|
}
|
|
40
39
|
const headerString = encodeJoseBlob(header)
|
|
41
|
-
const messageBuffer =
|
|
42
|
-
const messageString =
|
|
40
|
+
const messageBuffer = concat([stringToUtf8Bytes(`${headerString}.`), args.data])
|
|
41
|
+
const messageString = bytesToBase64(messageBuffer)
|
|
43
42
|
const signature = await context.agent.keyManagerSign({
|
|
44
43
|
keyRef: key.kid,
|
|
45
44
|
algorithm: 'EdDSA',
|
|
@@ -53,7 +52,7 @@ export class VeramoEd25519Signature2018 extends VeramoLdSignature {
|
|
|
53
52
|
const verificationKey = new Ed25519VerificationKey2018({
|
|
54
53
|
id,
|
|
55
54
|
controller,
|
|
56
|
-
publicKey:
|
|
55
|
+
publicKey: hexToBytes(key.publicKeyHex),
|
|
57
56
|
signer: () => signer,
|
|
58
57
|
type: this.getSupportedVerificationType(),
|
|
59
58
|
})
|
|
@@ -8,10 +8,16 @@ import {
|
|
|
8
8
|
IResolver,
|
|
9
9
|
TKeyType,
|
|
10
10
|
} from '@veramo/core-types'
|
|
11
|
-
import * as u8a from 'uint8arrays'
|
|
12
11
|
import { Ed25519Signature2020 } from '@digitalcredentials/ed25519-signature-2020'
|
|
13
12
|
import { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020'
|
|
14
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
asArray,
|
|
15
|
+
base64ToBytes,
|
|
16
|
+
bytesToBase64,
|
|
17
|
+
bytesToMultibase,
|
|
18
|
+
extractPublicKeyHex,
|
|
19
|
+
hexToBytes,
|
|
20
|
+
} from '@veramo/utils'
|
|
15
21
|
import { VerificationMethod } from 'did-resolver'
|
|
16
22
|
|
|
17
23
|
import Debug from 'debug'
|
|
@@ -46,7 +52,7 @@ export class VeramoEd25519Signature2020 extends VeramoLdSignature {
|
|
|
46
52
|
const signer = {
|
|
47
53
|
// returns signatureBytes
|
|
48
54
|
sign: async (args: { data: Uint8Array }): Promise<Uint8Array> => {
|
|
49
|
-
const messageString =
|
|
55
|
+
const messageString = bytesToBase64(args.data)
|
|
50
56
|
const signature = await context.agent.keyManagerSign({
|
|
51
57
|
keyRef: key.kid,
|
|
52
58
|
data: messageString,
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import { CredentialPayload, DIDDocument, IAgentContext, IKey, TKeyType } from
|
|
2
|
-
import { RequiredAgentMethods, VeramoLdSignature } from
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { CredentialPayload, DIDDocument, IAgentContext, IKey, TKeyType } from '@veramo/core-types'
|
|
2
|
+
import { RequiredAgentMethods, VeramoLdSignature } from '../ld-suites.js'
|
|
3
|
+
import { JsonWebKey, JsonWebSignature } from '@transmute/json-web-signature'
|
|
4
|
+
import {
|
|
5
|
+
asArray,
|
|
6
|
+
bytesToBase64,
|
|
7
|
+
bytesToBase64url,
|
|
8
|
+
concat,
|
|
9
|
+
encodeJoseBlob,
|
|
10
|
+
hexToBytes,
|
|
11
|
+
stringToUtf8Bytes,
|
|
12
|
+
} from '@veramo/utils'
|
|
7
13
|
|
|
8
14
|
/**
|
|
9
15
|
* Veramo wrapper for the JsonWebSignature2020 suite by Transmute Industries
|
|
@@ -11,81 +17,83 @@ import { asArray, encodeJoseBlob } from "@veramo/utils";
|
|
|
11
17
|
* @alpha This API is experimental and is very likely to change or disappear in future releases without notice.
|
|
12
18
|
*/
|
|
13
19
|
export class VeramoJsonWebSignature2020 extends VeramoLdSignature {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
getSupportedVerificationType(): 'JsonWebKey2020' {
|
|
21
|
+
return 'JsonWebKey2020'
|
|
22
|
+
}
|
|
17
23
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
getSupportedVeramoKeyType(): TKeyType {
|
|
25
|
+
return 'Ed25519'
|
|
26
|
+
}
|
|
21
27
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
async getSuiteForSigning(
|
|
29
|
+
key: IKey,
|
|
30
|
+
issuerDid: string,
|
|
31
|
+
verificationMethodId: string,
|
|
32
|
+
context: IAgentContext<RequiredAgentMethods>,
|
|
33
|
+
): Promise<any> {
|
|
34
|
+
const controller = issuerDid
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
36
|
+
// DID Key ID
|
|
37
|
+
let id = verificationMethodId
|
|
32
38
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
const headerString = encodeJoseBlob(header)
|
|
42
|
-
const messageBuffer = u8a.concat([u8a.fromString(`${headerString}.`, 'utf-8'), args.data])
|
|
43
|
-
const messageString = u8a.toString(messageBuffer, 'base64')
|
|
44
|
-
const signature = await context.agent.keyManagerSign({
|
|
45
|
-
keyRef: key.kid,
|
|
46
|
-
algorithm: 'EdDSA',
|
|
47
|
-
data: messageString,
|
|
48
|
-
encoding: 'base64',
|
|
49
|
-
})
|
|
50
|
-
return `${headerString}..${signature}`
|
|
51
|
-
},
|
|
39
|
+
const signer = {
|
|
40
|
+
// returns a JWS detached
|
|
41
|
+
sign: async (args: { data: Uint8Array }): Promise<string> => {
|
|
42
|
+
const header = {
|
|
43
|
+
alg: 'EdDSA',
|
|
44
|
+
b64: false,
|
|
45
|
+
crit: ['b64'],
|
|
52
46
|
}
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
x: u8a.toString(u8a.fromString(key.publicKeyHex, 'hex'), 'base64url'),
|
|
62
|
-
},
|
|
47
|
+
const headerString = encodeJoseBlob(header)
|
|
48
|
+
const messageBuffer = concat([stringToUtf8Bytes(`${headerString}.`), args.data])
|
|
49
|
+
const messageString = bytesToBase64(messageBuffer)
|
|
50
|
+
const signature = await context.agent.keyManagerSign({
|
|
51
|
+
keyRef: key.kid,
|
|
52
|
+
algorithm: 'EdDSA',
|
|
53
|
+
data: messageString,
|
|
54
|
+
encoding: 'base64',
|
|
63
55
|
})
|
|
56
|
+
return `${headerString}..${signature}`
|
|
57
|
+
},
|
|
58
|
+
}
|
|
64
59
|
|
|
65
|
-
|
|
60
|
+
const verificationKey = await JsonWebKey.from({
|
|
61
|
+
id: id,
|
|
62
|
+
type: this.getSupportedVerificationType(),
|
|
63
|
+
controller: controller,
|
|
64
|
+
publicKeyJwk: {
|
|
65
|
+
kty: 'OKP',
|
|
66
|
+
crv: 'Ed25519',
|
|
67
|
+
x: bytesToBase64url(hexToBytes(key.publicKeyHex)),
|
|
68
|
+
},
|
|
69
|
+
})
|
|
66
70
|
|
|
67
|
-
|
|
68
|
-
key: verificationKey,
|
|
69
|
-
})
|
|
71
|
+
verificationKey.signer = () => signer
|
|
70
72
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
const suite = new JsonWebSignature({
|
|
74
|
+
key: verificationKey,
|
|
75
|
+
})
|
|
74
76
|
|
|
75
|
-
|
|
77
|
+
suite.ensureSuiteContext = ({ document }: { document: any; addSuiteContext: boolean }) => {
|
|
78
|
+
document['@context'] = [
|
|
79
|
+
...asArray(document['@context'] || []),
|
|
80
|
+
'https://w3id.org/security/suites/jws-2020/v1',
|
|
81
|
+
]
|
|
76
82
|
}
|
|
77
83
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
84
|
+
return suite
|
|
85
|
+
}
|
|
81
86
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
87
|
+
getSuiteForVerification(): any {
|
|
88
|
+
return new JsonWebSignature()
|
|
89
|
+
}
|
|
85
90
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
91
|
+
preSigningCredModification(credential: CredentialPayload): void {
|
|
92
|
+
// nop
|
|
93
|
+
}
|
|
90
94
|
|
|
95
|
+
async preDidResolutionModification(didUrl: string, didDoc: DIDDocument): Promise<DIDDocument> {
|
|
96
|
+
// do nothing
|
|
97
|
+
return didDoc
|
|
98
|
+
}
|
|
91
99
|
}
|