@veramo/credential-ld 5.2.1-unstable.22 → 5.3.0
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/suites/EcdsaSecp256k1RecoverySignature2020.d.ts.map +1 -1
- package/build/suites/EcdsaSecp256k1RecoverySignature2020.js +7 -5
- package/build/suites/EcdsaSecp256k1RecoverySignature2020.js.map +1 -1
- package/build/suites/Ed25519Signature2018.d.ts.map +1 -1
- package/build/suites/Ed25519Signature2018.js +5 -4
- package/build/suites/Ed25519Signature2018.js.map +1 -1
- package/build/suites/Ed25519Signature2020.d.ts.map +1 -1
- package/build/suites/Ed25519Signature2020.js +3 -2
- 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 +8 -10
- package/build/suites/JsonWebSignature2020.js.map +1 -1
- package/build/tsdoc-metadata.json +1 -1
- package/package.json +9 -8
- package/src/suites/EcdsaSecp256k1RecoverySignature2020.ts +10 -11
- package/src/suites/Ed25519Signature2018.ts +5 -4
- package/src/suites/Ed25519Signature2020.ts +3 -9
- package/src/suites/JsonWebSignature2020.ts +68 -76
|
@@ -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;AAOlG;;;;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;IAGzD,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAoB7F,UAAU,IAAI,MAAM;CAGrB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { VeramoLdSignature } from '../ld-suites.js';
|
|
2
2
|
import ldsEcdsa from '@veramo-community/lds-ecdsa-secp256k1-recovery2020';
|
|
3
|
-
import
|
|
3
|
+
import * as u8a from 'uint8arrays';
|
|
4
|
+
import { asArray, encodeJoseBlob } from '@veramo/utils';
|
|
4
5
|
const { EcdsaSecp256k1RecoveryMethod2020, EcdsaSecp256k1RecoverySignature2020 } = ldsEcdsa;
|
|
5
6
|
/**
|
|
6
7
|
* Veramo wrapper for the EcdsaSecp256k1RecoverySignature2020 suite by Transmute Industries
|
|
@@ -25,8 +26,8 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
25
26
|
crit: ['b64'],
|
|
26
27
|
};
|
|
27
28
|
const headerString = encodeJoseBlob(header);
|
|
28
|
-
const messageBuffer = concat([
|
|
29
|
-
const messageString =
|
|
29
|
+
const messageBuffer = u8a.concat([u8a.fromString(`${headerString}.`, 'utf-8'), args.data]);
|
|
30
|
+
const messageString = u8a.toString(messageBuffer, 'base64');
|
|
30
31
|
const signature = await context.agent.keyManagerSign({
|
|
31
32
|
keyRef: key.kid,
|
|
32
33
|
algorithm: 'ES256K-R',
|
|
@@ -54,7 +55,8 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
54
55
|
getSuiteForVerification() {
|
|
55
56
|
return new EcdsaSecp256k1RecoverySignature2020();
|
|
56
57
|
}
|
|
57
|
-
preSigningCredModification(credential) {
|
|
58
|
+
preSigningCredModification(credential) {
|
|
59
|
+
}
|
|
58
60
|
async preDidResolutionModification(didUrl, didDoc) {
|
|
59
61
|
// did:ethr
|
|
60
62
|
const idx = didDoc['@context']?.indexOf('https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld') || -1;
|
|
@@ -66,7 +68,7 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
66
68
|
didDoc.verificationMethod?.forEach((x) => {
|
|
67
69
|
if (x.blockchainAccountId) {
|
|
68
70
|
if (x.blockchainAccountId.lastIndexOf('@eip155:') !== -1) {
|
|
69
|
-
const [address, chain] = x.blockchainAccountId.split(
|
|
71
|
+
const [address, chain] = x.blockchainAccountId.split("@eip155:");
|
|
70
72
|
x.blockchainAccountId = `eip155:${chain}:${address}`;
|
|
71
73
|
}
|
|
72
74
|
}
|
|
@@ -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;AAIlG;;;;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,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { encodeJoseBlob } from '@veramo/utils';
|
|
2
2
|
import { VeramoLdSignature } from '../ld-suites.js';
|
|
3
|
+
import * as u8a from 'uint8arrays';
|
|
3
4
|
import { Ed25519Signature2018, Ed25519VerificationKey2018 } from '@transmute/ed25519-signature-2018';
|
|
4
5
|
/**
|
|
5
6
|
* Veramo wrapper for the Ed25519Signature2018 suite by Transmute Industries
|
|
@@ -26,8 +27,8 @@ export class VeramoEd25519Signature2018 extends VeramoLdSignature {
|
|
|
26
27
|
crit: ['b64'],
|
|
27
28
|
};
|
|
28
29
|
const headerString = encodeJoseBlob(header);
|
|
29
|
-
const messageBuffer = concat([
|
|
30
|
-
const messageString =
|
|
30
|
+
const messageBuffer = u8a.concat([u8a.fromString(`${headerString}.`, 'utf-8'), args.data]);
|
|
31
|
+
const messageString = u8a.toString(messageBuffer, 'base64');
|
|
31
32
|
const signature = await context.agent.keyManagerSign({
|
|
32
33
|
keyRef: key.kid,
|
|
33
34
|
algorithm: 'EdDSA',
|
|
@@ -40,7 +41,7 @@ export class VeramoEd25519Signature2018 extends VeramoLdSignature {
|
|
|
40
41
|
const verificationKey = new Ed25519VerificationKey2018({
|
|
41
42
|
id,
|
|
42
43
|
controller,
|
|
43
|
-
publicKey:
|
|
44
|
+
publicKey: u8a.fromString(key.publicKeyHex, 'base16'),
|
|
44
45
|
signer: () => signer,
|
|
45
46
|
type: this.getSupportedVerificationType(),
|
|
46
47
|
});
|
|
@@ -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,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAwB,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEzE,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,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,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC1F,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;gBAC3D,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,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC;YACrD,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;AAW3B;;;;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,7 +1,8 @@
|
|
|
1
1
|
import { VeramoLdSignature } from '../ld-suites.js';
|
|
2
|
+
import * as u8a from 'uint8arrays';
|
|
2
3
|
import { Ed25519Signature2020 } from '@digitalcredentials/ed25519-signature-2020';
|
|
3
4
|
import { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020';
|
|
4
|
-
import { asArray, base64ToBytes,
|
|
5
|
+
import { asArray, base64ToBytes, bytesToMultibase, extractPublicKeyHex, hexToBytes } from '@veramo/utils';
|
|
5
6
|
import Debug from 'debug';
|
|
6
7
|
const debug = Debug('veramo:credential-ld:Ed25519Signature2020');
|
|
7
8
|
/**
|
|
@@ -23,7 +24,7 @@ export class VeramoEd25519Signature2020 extends VeramoLdSignature {
|
|
|
23
24
|
const signer = {
|
|
24
25
|
// returns signatureBytes
|
|
25
26
|
sign: async (args) => {
|
|
26
|
-
const messageString =
|
|
27
|
+
const messageString = u8a.toString(args.data, 'base64');
|
|
27
28
|
const signature = await context.agent.keyManagerSign({
|
|
28
29
|
keyRef: key.kid,
|
|
29
30
|
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,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAA;AAC9F,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,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAM1E;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC7D,4BAA4B,IAAI,gBAAgB;IAIhD,yBAAyB,IAAI,QAAQ;IAI/B,kBAAkB,CACpB,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,GAC7C,OAAO,CAAC,GAAG,CAAC;IAmDf,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;CAKhG"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { VeramoLdSignature } from
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import { VeramoLdSignature } from "../ld-suites.js";
|
|
2
|
+
import * as u8a from "uint8arrays";
|
|
3
|
+
import { JsonWebKey, JsonWebSignature } from "@transmute/json-web-signature";
|
|
4
|
+
import { asArray, encodeJoseBlob } from "@veramo/utils";
|
|
4
5
|
/**
|
|
5
6
|
* Veramo wrapper for the JsonWebSignature2020 suite by Transmute Industries
|
|
6
7
|
*
|
|
@@ -26,8 +27,8 @@ export class VeramoJsonWebSignature2020 extends VeramoLdSignature {
|
|
|
26
27
|
crit: ['b64'],
|
|
27
28
|
};
|
|
28
29
|
const headerString = encodeJoseBlob(header);
|
|
29
|
-
const messageBuffer = concat([
|
|
30
|
-
const messageString =
|
|
30
|
+
const messageBuffer = u8a.concat([u8a.fromString(`${headerString}.`, 'utf-8'), args.data]);
|
|
31
|
+
const messageString = u8a.toString(messageBuffer, 'base64');
|
|
31
32
|
const signature = await context.agent.keyManagerSign({
|
|
32
33
|
keyRef: key.kid,
|
|
33
34
|
algorithm: 'EdDSA',
|
|
@@ -44,7 +45,7 @@ export class VeramoJsonWebSignature2020 extends VeramoLdSignature {
|
|
|
44
45
|
publicKeyJwk: {
|
|
45
46
|
kty: 'OKP',
|
|
46
47
|
crv: 'Ed25519',
|
|
47
|
-
x:
|
|
48
|
+
x: u8a.toString(u8a.fromString(key.publicKeyHex, 'hex'), 'base64url'),
|
|
48
49
|
},
|
|
49
50
|
});
|
|
50
51
|
verificationKey.signer = () => signer;
|
|
@@ -52,10 +53,7 @@ export class VeramoJsonWebSignature2020 extends VeramoLdSignature {
|
|
|
52
53
|
key: verificationKey,
|
|
53
54
|
});
|
|
54
55
|
suite.ensureSuiteContext = ({ document }) => {
|
|
55
|
-
document['@context'] = [
|
|
56
|
-
...asArray(document['@context'] || []),
|
|
57
|
-
'https://w3id.org/security/suites/jws-2020/v1',
|
|
58
|
-
];
|
|
56
|
+
document['@context'] = [...asArray(document['@context'] || []), 'https://w3id.org/security/suites/jws-2020/v1'];
|
|
59
57
|
};
|
|
60
58
|
return suite;
|
|
61
59
|
}
|
|
@@ -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,CAAC;AAC1E,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGxD;;;;GAIG;AACH,MAAM,OAAO,0BAA2B,SAAQ,iBAAiB;IAC7D,4BAA4B;QACxB,OAAO,gBAAgB,CAAA;IAC3B,CAAC;IAED,yBAAyB;QACrB,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,kBAAkB,CACpB,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;YACX,yBAAyB;YACzB,IAAI,EAAE,KAAK,EAAE,IAA0B,EAAmB,EAAE;gBACxD,MAAM,MAAM,GAAG;oBACX,GAAG,EAAE,OAAO;oBACZ,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,CAAC,KAAK,CAAC;iBAChB,CAAA;gBACD,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;gBAC3C,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC1F,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;gBAC3D,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;oBACjD,MAAM,EAAE,GAAG,CAAC,GAAG;oBACf,SAAS,EAAE,OAAO;oBAClB,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,QAAQ;iBACrB,CAAC,CAAA;gBACF,OAAO,GAAG,YAAY,KAAK,SAAS,EAAE,CAAA;YAC1C,CAAC;SACJ,CAAA;QAED,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;YAC1C,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,IAAI,CAAC,4BAA4B,EAAE;YACzC,UAAU,EAAE,UAAU;YACtB,YAAY,EAAE;gBACV,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,SAAS;gBACd,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC;aACxE;SACJ,CAAC,CAAA;QAEF,eAAe,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAA;QAErC,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC;YAC/B,GAAG,EAAE,eAAe;SACvB,CAAC,CAAA;QAEF,KAAK,CAAC,kBAAkB,GAAG,CAAC,EAAE,QAAQ,EAA+C,EAAE,EAAE;YACrF,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,8CAA8C,CAAC,CAAA;QACnH,CAAC,CAAA;QAED,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,gBAAgB,EAAE,CAAA;IACjC,CAAC;IAED,0BAA0B,CAAC,UAA6B;QACpD,MAAM;IACV,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,MAAc,EAAE,MAAmB;QAClE,aAAa;QACb,OAAO,MAAM,CAAA;IACjB,CAAC;CAEJ"}
|
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.
|
|
4
|
+
"version": "5.3.0",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./build/index.js",
|
|
@@ -23,15 +23,16 @@
|
|
|
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.79",
|
|
27
|
+
"@transmute/ed25519-signature-2018": "^0.7.0-unstable.79",
|
|
28
|
+
"@transmute/json-web-signature": "^0.7.0-unstable.79",
|
|
29
29
|
"@veramo-community/lds-ecdsa-secp256k1-recovery2020": "uport-project/EcdsaSecp256k1RecoverySignature2020",
|
|
30
|
-
"@veramo/core-types": "^5.
|
|
31
|
-
"@veramo/utils": "^5.
|
|
30
|
+
"@veramo/core-types": "^5.3.0",
|
|
31
|
+
"@veramo/utils": "^5.3.0",
|
|
32
32
|
"cross-fetch": "^3.1.6",
|
|
33
33
|
"debug": "^4.3.3",
|
|
34
|
-
"did-resolver": "^4.1
|
|
34
|
+
"did-resolver": "^4.0.1",
|
|
35
|
+
"uint8arrays": "^4.0.3"
|
|
35
36
|
},
|
|
36
37
|
"resolutions": {
|
|
37
38
|
"@types/react": "18.0.26",
|
|
@@ -62,5 +63,5 @@
|
|
|
62
63
|
"node_modules",
|
|
63
64
|
"src"
|
|
64
65
|
],
|
|
65
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "c604249fdf0291b42043a8db9390517fc60441da"
|
|
66
67
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
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
|
|
4
|
+
import * as u8a from 'uint8arrays'
|
|
5
|
+
import { asArray, encodeJoseBlob } from '@veramo/utils'
|
|
5
6
|
|
|
6
7
|
const { EcdsaSecp256k1RecoveryMethod2020, EcdsaSecp256k1RecoverySignature2020 } = ldsEcdsa
|
|
7
8
|
|
|
@@ -35,8 +36,8 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
35
36
|
crit: ['b64'],
|
|
36
37
|
}
|
|
37
38
|
const headerString = encodeJoseBlob(header)
|
|
38
|
-
const messageBuffer = concat([
|
|
39
|
-
const messageString =
|
|
39
|
+
const messageBuffer = u8a.concat([u8a.fromString(`${headerString}.`, 'utf-8'), args.data])
|
|
40
|
+
const messageString = u8a.toString(messageBuffer, 'base64')
|
|
40
41
|
const signature = await context.agent.keyManagerSign({
|
|
41
42
|
keyRef: key.kid,
|
|
42
43
|
algorithm: 'ES256K-R',
|
|
@@ -58,7 +59,7 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
58
59
|
}),
|
|
59
60
|
})
|
|
60
61
|
|
|
61
|
-
suite.ensureSuiteContext = ({ document }: { document: any
|
|
62
|
+
suite.ensureSuiteContext = ({ document }: { document: any, addSuiteContext: boolean }) => {
|
|
62
63
|
document['@context'] = [...asArray(document['@context'] || []), this.getContext()]
|
|
63
64
|
}
|
|
64
65
|
|
|
@@ -69,14 +70,12 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
69
70
|
return new EcdsaSecp256k1RecoverySignature2020()
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
preSigningCredModification(credential: CredentialPayload): void {
|
|
73
|
+
preSigningCredModification(credential: CredentialPayload): void {
|
|
74
|
+
}
|
|
73
75
|
|
|
74
76
|
async preDidResolutionModification(didUrl: string, didDoc: DIDDocument): Promise<DIDDocument> {
|
|
75
|
-
|
|
76
|
-
const idx =
|
|
77
|
-
didDoc['@context']?.indexOf(
|
|
78
|
-
'https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld',
|
|
79
|
-
) || -1
|
|
77
|
+
// did:ethr
|
|
78
|
+
const idx = didDoc['@context']?.indexOf('https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld') || -1
|
|
80
79
|
if (Array.isArray(didDoc['@context']) && idx !== -1) {
|
|
81
80
|
didDoc['@context'][idx] = this.getContext()
|
|
82
81
|
}
|
|
@@ -86,7 +85,7 @@ export class VeramoEcdsaSecp256k1RecoverySignature2020 extends VeramoLdSignature
|
|
|
86
85
|
didDoc.verificationMethod?.forEach((x) => {
|
|
87
86
|
if (x.blockchainAccountId) {
|
|
88
87
|
if (x.blockchainAccountId.lastIndexOf('@eip155:') !== -1) {
|
|
89
|
-
const [address, chain] = x.blockchainAccountId.split(
|
|
88
|
+
const [ address, chain ] = x.blockchainAccountId.split("@eip155:")
|
|
90
89
|
x.blockchainAccountId = `eip155:${chain}:${address}`
|
|
91
90
|
}
|
|
92
91
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { encodeJoseBlob } 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'
|
|
4
5
|
import { Ed25519Signature2018, Ed25519VerificationKey2018 } from '@transmute/ed25519-signature-2018'
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -37,8 +38,8 @@ export class VeramoEd25519Signature2018 extends VeramoLdSignature {
|
|
|
37
38
|
crit: ['b64'],
|
|
38
39
|
}
|
|
39
40
|
const headerString = encodeJoseBlob(header)
|
|
40
|
-
const messageBuffer = concat([
|
|
41
|
-
const messageString =
|
|
41
|
+
const messageBuffer = u8a.concat([u8a.fromString(`${headerString}.`, 'utf-8'), args.data])
|
|
42
|
+
const messageString = u8a.toString(messageBuffer, 'base64')
|
|
42
43
|
const signature = await context.agent.keyManagerSign({
|
|
43
44
|
keyRef: key.kid,
|
|
44
45
|
algorithm: 'EdDSA',
|
|
@@ -52,7 +53,7 @@ export class VeramoEd25519Signature2018 extends VeramoLdSignature {
|
|
|
52
53
|
const verificationKey = new Ed25519VerificationKey2018({
|
|
53
54
|
id,
|
|
54
55
|
controller,
|
|
55
|
-
publicKey:
|
|
56
|
+
publicKey: u8a.fromString(key.publicKeyHex, 'base16'),
|
|
56
57
|
signer: () => signer,
|
|
57
58
|
type: this.getSupportedVerificationType(),
|
|
58
59
|
})
|
|
@@ -8,16 +8,10 @@ import {
|
|
|
8
8
|
IResolver,
|
|
9
9
|
TKeyType,
|
|
10
10
|
} from '@veramo/core-types'
|
|
11
|
+
import * as u8a from 'uint8arrays'
|
|
11
12
|
import { Ed25519Signature2020 } from '@digitalcredentials/ed25519-signature-2020'
|
|
12
13
|
import { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020'
|
|
13
|
-
import {
|
|
14
|
-
asArray,
|
|
15
|
-
base64ToBytes,
|
|
16
|
-
bytesToBase64,
|
|
17
|
-
bytesToMultibase,
|
|
18
|
-
extractPublicKeyHex,
|
|
19
|
-
hexToBytes,
|
|
20
|
-
} from '@veramo/utils'
|
|
14
|
+
import { asArray, base64ToBytes, bytesToMultibase, extractPublicKeyHex, hexToBytes } from '@veramo/utils'
|
|
21
15
|
import { VerificationMethod } from 'did-resolver'
|
|
22
16
|
|
|
23
17
|
import Debug from 'debug'
|
|
@@ -52,7 +46,7 @@ export class VeramoEd25519Signature2020 extends VeramoLdSignature {
|
|
|
52
46
|
const signer = {
|
|
53
47
|
// returns signatureBytes
|
|
54
48
|
sign: async (args: { data: Uint8Array }): Promise<Uint8Array> => {
|
|
55
|
-
const messageString =
|
|
49
|
+
const messageString = u8a.toString(args.data, 'base64')
|
|
56
50
|
const signature = await context.agent.keyManagerSign({
|
|
57
51
|
keyRef: key.kid,
|
|
58
52
|
data: messageString,
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
import { CredentialPayload, DIDDocument, IAgentContext, IKey, TKeyType } from
|
|
2
|
-
import { RequiredAgentMethods, VeramoLdSignature } from
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
bytesToBase64url,
|
|
8
|
-
concat,
|
|
9
|
-
encodeJoseBlob,
|
|
10
|
-
hexToBytes,
|
|
11
|
-
stringToUtf8Bytes,
|
|
12
|
-
} from '@veramo/utils'
|
|
1
|
+
import { CredentialPayload, DIDDocument, IAgentContext, IKey, TKeyType } from "@veramo/core-types";
|
|
2
|
+
import { RequiredAgentMethods, VeramoLdSignature } from "../ld-suites.js";
|
|
3
|
+
import * as u8a from "uint8arrays";
|
|
4
|
+
import { JsonWebKey, JsonWebSignature } from "@transmute/json-web-signature";
|
|
5
|
+
import { asArray, encodeJoseBlob } from "@veramo/utils";
|
|
6
|
+
|
|
13
7
|
|
|
14
8
|
/**
|
|
15
9
|
* Veramo wrapper for the JsonWebSignature2020 suite by Transmute Industries
|
|
@@ -17,83 +11,81 @@ import {
|
|
|
17
11
|
* @alpha This API is experimental and is very likely to change or disappear in future releases without notice.
|
|
18
12
|
*/
|
|
19
13
|
export class VeramoJsonWebSignature2020 extends VeramoLdSignature {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
getSupportedVerificationType(): 'JsonWebKey2020' {
|
|
15
|
+
return 'JsonWebKey2020'
|
|
16
|
+
}
|
|
23
17
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
getSupportedVeramoKeyType(): TKeyType {
|
|
19
|
+
return 'Ed25519'
|
|
20
|
+
}
|
|
27
21
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
22
|
+
async getSuiteForSigning(
|
|
23
|
+
key: IKey,
|
|
24
|
+
issuerDid: string,
|
|
25
|
+
verificationMethodId: string,
|
|
26
|
+
context: IAgentContext<RequiredAgentMethods>,
|
|
27
|
+
): Promise<any> {
|
|
28
|
+
const controller = issuerDid
|
|
35
29
|
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
// DID Key ID
|
|
31
|
+
let id = verificationMethodId
|
|
38
32
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
33
|
+
const signer = {
|
|
34
|
+
// returns a JWS detached
|
|
35
|
+
sign: async (args: { data: Uint8Array }): Promise<string> => {
|
|
36
|
+
const header = {
|
|
37
|
+
alg: 'EdDSA',
|
|
38
|
+
b64: false,
|
|
39
|
+
crit: ['b64'],
|
|
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
|
+
},
|
|
46
52
|
}
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
|
|
54
|
+
const verificationKey = await JsonWebKey.from({
|
|
55
|
+
id: id,
|
|
56
|
+
type: this.getSupportedVerificationType(),
|
|
57
|
+
controller: controller,
|
|
58
|
+
publicKeyJwk: {
|
|
59
|
+
kty: 'OKP',
|
|
60
|
+
crv: 'Ed25519',
|
|
61
|
+
x: u8a.toString(u8a.fromString(key.publicKeyHex, 'hex'), 'base64url'),
|
|
62
|
+
},
|
|
55
63
|
})
|
|
56
|
-
return `${headerString}..${signature}`
|
|
57
|
-
},
|
|
58
|
-
}
|
|
59
64
|
|
|
60
|
-
|
|
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
|
-
})
|
|
65
|
+
verificationKey.signer = () => signer
|
|
70
66
|
|
|
71
|
-
|
|
67
|
+
const suite = new JsonWebSignature({
|
|
68
|
+
key: verificationKey,
|
|
69
|
+
})
|
|
72
70
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
suite.ensureSuiteContext = ({ document }: { document: any, addSuiteContext: boolean }) => {
|
|
72
|
+
document['@context'] = [...asArray(document['@context'] || []), 'https://w3id.org/security/suites/jws-2020/v1']
|
|
73
|
+
}
|
|
76
74
|
|
|
77
|
-
|
|
78
|
-
document['@context'] = [
|
|
79
|
-
...asArray(document['@context'] || []),
|
|
80
|
-
'https://w3id.org/security/suites/jws-2020/v1',
|
|
81
|
-
]
|
|
75
|
+
return suite
|
|
82
76
|
}
|
|
83
77
|
|
|
84
|
-
|
|
85
|
-
|
|
78
|
+
getSuiteForVerification(): any {
|
|
79
|
+
return new JsonWebSignature()
|
|
80
|
+
}
|
|
86
81
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
82
|
+
preSigningCredModification(credential: CredentialPayload): void {
|
|
83
|
+
// nop
|
|
84
|
+
}
|
|
90
85
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
async preDidResolutionModification(didUrl: string, didDoc: DIDDocument): Promise<DIDDocument> {
|
|
87
|
+
// do nothing
|
|
88
|
+
return didDoc
|
|
89
|
+
}
|
|
94
90
|
|
|
95
|
-
async preDidResolutionModification(didUrl: string, didDoc: DIDDocument): Promise<DIDDocument> {
|
|
96
|
-
// do nothing
|
|
97
|
-
return didDoc
|
|
98
|
-
}
|
|
99
91
|
}
|