@cef-ebsi/cli 1.1.1 → 1.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.
Files changed (37) hide show
  1. package/dist/app.js +44 -7
  2. package/dist/app.js.map +1 -1
  3. package/dist/buildParam/didV3.js +46 -67
  4. package/dist/buildParam/didV3.js.map +1 -1
  5. package/dist/buildParam/didV4.js +4 -68
  6. package/dist/buildParam/didV4.js.map +1 -1
  7. package/dist/buildParam/tntV1.js +6 -2
  8. package/dist/buildParam/tntV1.js.map +1 -1
  9. package/dist/buildParam/tntV2.js +6 -2
  10. package/dist/buildParam/tntV2.js.map +1 -1
  11. package/dist/commands/authorisation-v4.js +6 -3
  12. package/dist/commands/authorisation-v4.js.map +1 -1
  13. package/dist/commands/authorisation-v5.js +6 -3
  14. package/dist/commands/authorisation-v5.js.map +1 -1
  15. package/dist/commands/compute.js +113 -32
  16. package/dist/commands/compute.js.map +1 -1
  17. package/dist/commands/conformance-v3.js +18 -9
  18. package/dist/commands/conformance-v3.js.map +1 -1
  19. package/dist/commands/hardwarewallet.js +2 -2
  20. package/dist/commands/hardwarewallet.js.map +1 -1
  21. package/dist/config.js.map +1 -1
  22. package/dist/scripts/assets/TrustedNodesList.json +5 -1
  23. package/dist/scripts/issueVcTnl +4 -0
  24. package/dist/scripts/verifyVcTnl +3 -1
  25. package/dist/scripts/wctv3/issueToHolder +1 -1
  26. package/dist/tsconfig.tsbuildinfo +1 -1
  27. package/dist/utils/Client.js +13 -55
  28. package/dist/utils/Client.js.map +1 -1
  29. package/dist/utils/HardwareWallet.js +68 -52
  30. package/dist/utils/HardwareWallet.js.map +1 -1
  31. package/dist/utils/index.js +0 -1
  32. package/dist/utils/index.js.map +1 -1
  33. package/dist/utils/utils.js +188 -26
  34. package/dist/utils/utils.js.map +1 -1
  35. package/package.json +107 -107
  36. package/dist/utils/verifiablePresentation.js +0 -42
  37. package/dist/utils/verifiablePresentation.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  import crypto from "node:crypto";
2
2
  import Joi from "joi";
3
- import elliptic from "elliptic";
3
+ import { secp256k1 } from "@noble/curves/secp256k1";
4
+ import { p256 } from "@noble/curves/p256";
4
5
  import { base64url } from "multiformats/bases/base64";
5
6
  import { bases } from "multiformats/basics";
6
7
  import $RefParser from "@apidevtools/json-schema-ref-parser";
@@ -8,7 +9,6 @@ import canonicalize from "canonicalize";
8
9
  import { base16 } from "multiformats/bases/base16";
9
10
  import { base58btc } from "multiformats/bases/base58";
10
11
  import readline from "readline";
11
- const EC = elliptic.ec;
12
12
  const serialize = canonicalize;
13
13
  export function prefixWith0x(key) {
14
14
  return key.startsWith("0x") ? key : `0x${key}`;
@@ -22,31 +22,191 @@ export function fromHexString(hexString) {
22
22
  export function toHexString(bytes) {
23
23
  return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), "");
24
24
  }
25
- export function getPublicKeyJwk(hex) {
26
- const ec = new EC("secp256k1");
27
- const publicKey = ec
28
- .keyFromPublic(Buffer.from(hex.replace("0x", ""), "hex"))
29
- .getPublic();
30
- return {
31
- kty: "EC",
32
- crv: "secp256k1",
33
- x: base64url.baseEncode(Buffer.from(publicKey.getX().toString("hex", 64), "hex")),
34
- y: base64url.baseEncode(Buffer.from(publicKey.getY().toString("hex", 64), "hex")),
35
- };
36
- }
37
- export function getPrivateKeyHex(privateKeyJwk) {
38
- return Buffer.from(base64url.baseDecode(privateKeyJwk.d)).toString("hex");
39
- }
40
- export function getPublicKeyHex(jwk) {
41
- if (jwk.crv === "secp256k1") {
42
- const ec = new EC("secp256k1");
43
- const publicKey = ec.keyFromPublic({
44
- x: Buffer.from(base64url.baseDecode(jwk.x)).toString("hex"),
45
- y: Buffer.from(base64url.baseDecode(jwk.y)).toString("hex"),
25
+ function inferKeyProps(key, inputAlg, inputSourceType) {
26
+ let alg;
27
+ if (inputAlg) {
28
+ alg = inputAlg;
29
+ }
30
+ else {
31
+ // infer alg
32
+ if (typeof key !== "object") {
33
+ throw new Error("cannot infer algorithm");
34
+ }
35
+ const jwk = key;
36
+ if (jwk.kty === "RSA")
37
+ alg = "RS256";
38
+ else if (jwk.kty === "OKP" && jwk.crv === "Ed25519")
39
+ alg = "EdDSA";
40
+ else if (jwk.kty === "EC" && jwk.crv === "P-256")
41
+ alg = "ES256";
42
+ else if (jwk.kty === "EC" && jwk.crv === "secp256k1")
43
+ alg = "ES256K";
44
+ else
45
+ throw new Error("cannot infer algorithm");
46
+ }
47
+ let sourceType;
48
+ if (inputSourceType) {
49
+ sourceType = inputSourceType;
50
+ // infer source type
51
+ }
52
+ else if (typeof key === "string" && key.length >= 130) {
53
+ sourceType = "publicHex";
54
+ }
55
+ else if (typeof key === "string" && key.length >= 64) {
56
+ sourceType = "privateHex";
57
+ }
58
+ else if (typeof key === "object" && Object.hasOwn(key, "d")) {
59
+ sourceType = "privateJwk";
60
+ }
61
+ else if (typeof key === "object") {
62
+ sourceType = "publicJwk";
63
+ }
64
+ else {
65
+ throw new Error("cannot infer source type");
66
+ }
67
+ return { alg, sourceType };
68
+ }
69
+ export function encodePublicKey(args) {
70
+ const { key, format, alg: inputAlg, sourceType: inputSourceType } = args;
71
+ const { alg, sourceType } = inferKeyProps(key, inputAlg, inputSourceType);
72
+ if (sourceType === "publicJwk") {
73
+ const publicKeyJwk = key;
74
+ if (format === "jwk")
75
+ return publicKeyJwk;
76
+ if (format === "pem") {
77
+ const keyObject = crypto.createPublicKey({
78
+ key: publicKeyJwk,
79
+ format: "jwk",
80
+ });
81
+ return keyObject.export({ format: "pem", type: "spki" });
82
+ }
83
+ // compute public key hex
84
+ if (!["ES256K", "ES256"].includes(alg))
85
+ throw new Error(`the encoding from ${sourceType} to ${format} for alg ${alg} is not supported`);
86
+ if (format === "hex") {
87
+ return `0x04${Buffer.from(base64url.baseDecode(publicKeyJwk.x)).toString("hex")}${Buffer.from(base64url.baseDecode(publicKeyJwk.y)).toString("hex")}`;
88
+ }
89
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
90
+ throw new Error(`invalid format ${format}`);
91
+ }
92
+ if (sourceType === "privateJwk") {
93
+ let publicKeyJwk;
94
+ if (alg === "RS256") {
95
+ const { d, p, q, dp, dq, qi, ...publicJwk } = key;
96
+ publicKeyJwk = publicJwk;
97
+ }
98
+ else {
99
+ const { d, ...publicJwk } = key;
100
+ publicKeyJwk = publicJwk;
101
+ }
102
+ return encodePublicKey({
103
+ key: publicKeyJwk,
104
+ alg,
105
+ sourceType: "publicJwk",
106
+ format,
107
+ });
108
+ }
109
+ if (sourceType === "publicHex") {
110
+ if (format === "hex")
111
+ return key;
112
+ // compute public key hex
113
+ if (!["ES256K", "ES256"].includes(alg))
114
+ throw new Error(`the encoding from ${sourceType} to ${format} for alg ${alg} is not supported`);
115
+ const publicKeyHex = removePrefix0x(key);
116
+ const publicKeyJwk = {
117
+ kty: "EC",
118
+ crv: alg === "ES256K" ? "secp256k1" : "P-256",
119
+ x: base64url.baseEncode(Buffer.from(publicKeyHex.slice(2, 66), "hex")),
120
+ y: base64url.baseEncode(Buffer.from(publicKeyHex.slice(66), "hex")),
121
+ };
122
+ if (format === "jwk") {
123
+ return publicKeyJwk;
124
+ }
125
+ if (format === "pem") {
126
+ const keyObject = crypto.createPublicKey({
127
+ key: publicKeyJwk,
128
+ format: "jwk",
129
+ });
130
+ return keyObject.export({ format: "pem", type: "spki" });
131
+ }
132
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
133
+ throw new Error(`invalid format ${format}`);
134
+ }
135
+ if (sourceType === "privateHex") {
136
+ // compute private key jwk
137
+ if (!["ES256K", "ES256"].includes(alg))
138
+ throw new Error(`the encoding from ${sourceType} to ${format} for alg ${alg} is not supported`);
139
+ const privateKeyHex = removePrefix0x(key);
140
+ const publicKey = alg === "ES256K"
141
+ ? secp256k1.getPublicKey(privateKeyHex, false)
142
+ : p256.getPublicKey(privateKeyHex, false);
143
+ const publicKeyHex = `0x${Buffer.from(publicKey).toString("hex")}`;
144
+ return encodePublicKey({
145
+ key: publicKeyHex,
146
+ alg,
147
+ sourceType: "publicHex",
148
+ format,
46
149
  });
47
- return `0x${publicKey.getPublic().encode("hex", false)}`;
48
150
  }
49
- return `0x${Buffer.from(JSON.stringify(jwk)).toString("hex")}`;
151
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
152
+ throw new Error(`invalid source type ${sourceType}`);
153
+ }
154
+ export function encodePrivateKey(args) {
155
+ const { key, format, type, alg: inputAlg, sourceType: inputSourceType, } = args;
156
+ const { alg, sourceType } = inferKeyProps(key, inputAlg, inputSourceType);
157
+ if (sourceType.startsWith("public"))
158
+ throw new Error(`cannot encode key from ${sourceType} to ${format}`);
159
+ if (sourceType === "privateJwk") {
160
+ const privateKeyJwk = key;
161
+ if (format === "jwk")
162
+ return privateKeyJwk;
163
+ if (format === "pem") {
164
+ const keyObject = crypto.createPrivateKey({
165
+ key: privateKeyJwk,
166
+ format: "jwk",
167
+ });
168
+ return keyObject.export({ format: "pem", type });
169
+ }
170
+ // compute private key hex
171
+ if (!["ES256K", "ES256"].includes(alg))
172
+ throw new Error(`the encoding from ${sourceType} to ${format} for alg ${alg} is not supported`);
173
+ if (format === "hex") {
174
+ return `0x${Buffer.from(base64url.baseDecode(privateKeyJwk.d)).toString("hex")}`;
175
+ }
176
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
177
+ throw new Error(`invalid format ${format}`);
178
+ }
179
+ if (sourceType === "privateHex") {
180
+ if (format === "hex")
181
+ return key;
182
+ // compute private key jwk
183
+ if (!["ES256K", "ES256"].includes(alg))
184
+ throw new Error(`the encoding from ${sourceType} to ${format} for alg ${alg} is not supported`);
185
+ const privateKeyHex = removePrefix0x(key);
186
+ const publicKey = alg === "ES256K"
187
+ ? secp256k1.getPublicKey(privateKeyHex, false)
188
+ : p256.getPublicKey(privateKeyHex, false);
189
+ const privateKeyJwk = {
190
+ kty: "EC",
191
+ crv: alg === "ES256K" ? "secp256k1" : "P-256",
192
+ x: base64url.baseEncode(publicKey.slice(1, 33)),
193
+ y: base64url.baseEncode(publicKey.slice(33)),
194
+ d: base64url.baseEncode(Buffer.from(privateKeyHex, "hex")),
195
+ };
196
+ if (format === "jwk")
197
+ return privateKeyJwk;
198
+ if (format === "pem") {
199
+ const keyObject = crypto.createPrivateKey({
200
+ key: privateKeyJwk,
201
+ format: "jwk",
202
+ });
203
+ return keyObject.export({ format: "pem", type });
204
+ }
205
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
206
+ throw new Error(`invalid format ${format}`);
207
+ }
208
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
209
+ throw new Error(`invalid source type ${sourceType}`);
50
210
  }
51
211
  function removeAnnotations(obj) {
52
212
  /**
@@ -133,7 +293,9 @@ export function getWords(str) {
133
293
  .filter((word) => word !== "")
134
294
  .map((word) => {
135
295
  const num = Number(word);
136
- if (Number.isNaN(num) || num > Number.MAX_SAFE_INTEGER)
296
+ if (word.startsWith("0x") ||
297
+ Number.isNaN(num) ||
298
+ num > Number.MAX_SAFE_INTEGER)
137
299
  return word;
138
300
  return num;
139
301
  });
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,107 +1,107 @@
1
- {
2
- "name": "@cef-ebsi/cli",
3
- "version": "1.1.1",
4
- "description": "EBSI Command Line Interface",
5
- "license": "EUPL-1.2",
6
- "type": "module",
7
- "main": "dist/index.js",
8
- "types": "dist/index.d.ts",
9
- "files": [
10
- "bin",
11
- "dist"
12
- ],
13
- "bin": {
14
- "cli": "bin/cli.js"
15
- },
16
- "scripts": {
17
- "audit": "audit-ci --moderate --skip-dev -a GHSA-p6mc-m468-83gw",
18
- "build": "rimraf dist && tsc --build && copyfiles -u 1 \"src/scripts/**/*\" dist",
19
- "dev": "ts-node --esm src/cli.ts",
20
- "lint-staged": "lint-staged",
21
- "lint": "yarn lint:eslint && yarn lint:tsc && yarn lint:prettier",
22
- "lint:eslint": "eslint . --ext .js,.ts",
23
- "lint:tsc": "tsc --noEmit --incremental false",
24
- "lint:prettier": "prettier . --check",
25
- "prepare": "yarn build",
26
- "prepare:release": "yarn release-it --ci",
27
- "program:migrate": "ts-node --esm src/programs/migrateDids.ts",
28
- "start": "node dist/cli",
29
- "test": "vitest --run",
30
- "test:authorisation": "vitest --run authorisation.spec.ts",
31
- "test:did": "vitest --run did.spec.ts",
32
- "test:essentials": "vitest --run essentials.spec.ts",
33
- "test:ledger": "vitest --run ledger.spec.ts",
34
- "test:tar": "vitest --run tar.spec.ts",
35
- "test:timestamp": "vitest --run timestamp.spec.ts",
36
- "test:tir": "vitest --run tir.spec.ts",
37
- "test:tnt": "vitest --run tnt.spec.ts",
38
- "test:tpr": "vitest --run tpr.spec.ts",
39
- "test:tsr": "vitest --run tsr.spec.ts",
40
- "test:accredit-and-authorize": "vitest --run accredit-and-authorize.spec.ts",
41
- "test:holder-wallet": "vitest --run holder-wallet.spec.ts",
42
- "test:issue-to-holder": "vitest --run issue-to-holder.spec.ts",
43
- "test:verifier": "vitest --run verifier.spec.ts",
44
- "test:pda1": "vitest --run pda1.spec.ts"
45
- },
46
- "dependencies": {
47
- "@apidevtools/json-schema-ref-parser": "^11.5.4",
48
- "@cef-ebsi/ebsi-did-resolver": "^4.0.1",
49
- "@cef-ebsi/key-did-resolver": "^2.0.1",
50
- "@cef-ebsi/key-encoder": "^2.0.0-alpha.0",
51
- "@cef-ebsi/verifiable-credential": "^5.5.0",
52
- "@cef-ebsi/verifiable-presentation": "^6.4.0",
53
- "@cef-ebsi/wallet-lib": "^5.0.1",
54
- "asn1js": "^3.0.5",
55
- "axios": "^1.7.2",
56
- "canonicalize": "^2.0.0",
57
- "chalk": "^5.3.0",
58
- "did-jwt": "^7.4.5",
59
- "did-resolver": "^4.1.0",
60
- "dotenv": "^16.4.5",
61
- "elliptic": "^6.5.5",
62
- "ethers": "^5.7.2",
63
- "form-data": "^4.0.0",
64
- "graphene-pk11": "^2.3.6",
65
- "https-proxy-agent": "^5.0.0",
66
- "joi": "^17.13.3",
67
- "jose": "^4.15.5",
68
- "lodash.set": "^4.3.2",
69
- "multiformats": "^12.1.3",
70
- "multihashes": "^4.0.3",
71
- "pkijs": "^3.2.4",
72
- "qs": "^6.12.1"
73
- },
74
- "devDependencies": {
75
- "@commitlint/cli": "^18.4.3",
76
- "@commitlint/config-conventional": "^18.4.3",
77
- "@release-it/conventional-changelog": "^8.0.1",
78
- "@tsconfig/node18": "^18.2.4",
79
- "@types/elliptic": "^6.4.18",
80
- "@types/lodash.set": "^4.3.9",
81
- "@types/node": "^18.18.0",
82
- "@types/qs": "^6.9.10",
83
- "@typescript-eslint/eslint-plugin": "^6.13.2",
84
- "@typescript-eslint/parser": "^6.13.2",
85
- "audit-ci": "^6.6.1",
86
- "copyfiles": "^2.4.1",
87
- "eslint": "^8.55.0",
88
- "eslint-config-airbnb-base": "^15.0.0",
89
- "eslint-config-airbnb-typescript": "^17.1.0",
90
- "eslint-config-prettier": "^9.1.0",
91
- "eslint-plugin-import": "^2.29.0",
92
- "eslint-plugin-prettier": "^5.0.1",
93
- "husky": "^8.0.3",
94
- "lint-staged": "^15.2.0",
95
- "prettier": "^3.1.1",
96
- "read-pkg": "^9.0.1",
97
- "release-it": "^17.0.1",
98
- "rimraf": "^5.0.5",
99
- "spdx-license-list": "^6.9.0",
100
- "ts-node": "^10.9.2",
101
- "typescript": "5.3.3",
102
- "vitest": "^0.34.6"
103
- },
104
- "resolutions": {
105
- "**/@ethersproject/providers/ws": "^7.5.10"
106
- }
107
- }
1
+ {
2
+ "name": "@cef-ebsi/cli",
3
+ "version": "1.3.0",
4
+ "description": "EBSI Command Line Interface",
5
+ "license": "EUPL-1.2",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "files": [
10
+ "bin",
11
+ "dist"
12
+ ],
13
+ "bin": {
14
+ "cli": "bin/cli.js"
15
+ },
16
+ "scripts": {
17
+ "audit": "audit-ci --moderate --skip-dev -a GHSA-p6mc-m468-83gw GHSA-vjh7-7g9h-fjfh",
18
+ "build": "rimraf dist && tsc --build && copyfiles -u 1 \"src/scripts/**/*\" dist",
19
+ "dev": "ts-node --esm src/cli.ts",
20
+ "lint-staged": "lint-staged",
21
+ "lint": "yarn lint:eslint && yarn lint:tsc && yarn lint:prettier",
22
+ "lint:eslint": "eslint . --ext .js,.ts",
23
+ "lint:tsc": "tsc --noEmit --incremental false",
24
+ "lint:prettier": "prettier . --check",
25
+ "prepare": "yarn build",
26
+ "prepare:release": "yarn release-it --ci",
27
+ "program:migrate": "ts-node --esm src/programs/migrateDids.ts",
28
+ "start": "node dist/cli",
29
+ "test": "vitest --run",
30
+ "test:authorisation": "vitest --run authorisation.spec.ts",
31
+ "test:did": "vitest --run did.spec.ts",
32
+ "test:essentials": "vitest --run essentials.spec.ts",
33
+ "test:ledger": "vitest --run ledger.spec.ts",
34
+ "test:tar": "vitest --run tar.spec.ts",
35
+ "test:timestamp": "vitest --run timestamp.spec.ts",
36
+ "test:tir": "vitest --run tir.spec.ts",
37
+ "test:tnt": "vitest --run tnt.spec.ts",
38
+ "test:tpr": "vitest --run tpr.spec.ts",
39
+ "test:tsr": "vitest --run tsr.spec.ts",
40
+ "test:accredit-and-authorize": "vitest --run accredit-and-authorize.spec.ts",
41
+ "test:holder-wallet": "vitest --run holder-wallet.spec.ts",
42
+ "test:issue-to-holder": "vitest --run issue-to-holder.spec.ts",
43
+ "test:verifier": "vitest --run verifier.spec.ts",
44
+ "test:pda1": "vitest --run pda1.spec.ts"
45
+ },
46
+ "dependencies": {
47
+ "@apidevtools/json-schema-ref-parser": "^11.5.4",
48
+ "@cef-ebsi/ebsi-did-resolver": "^4.0.5",
49
+ "@cef-ebsi/key-did-resolver": "^2.1.0",
50
+ "@cef-ebsi/verifiable-credential": "^7.0.0",
51
+ "@cef-ebsi/verifiable-presentation": "^8.0.0",
52
+ "@cef-ebsi/wallet-lib": "^6.0.0",
53
+ "@noble/curves": "^1.8.1",
54
+ "asn1js": "^3.0.5",
55
+ "axios": "^1.7.2",
56
+ "canonicalize": "^2.0.0",
57
+ "chalk": "^5.3.0",
58
+ "did-jwt": "^7.4.5",
59
+ "did-resolver": "^4.1.0",
60
+ "dotenv": "^16.4.5",
61
+ "ethers": "^5.7.2",
62
+ "form-data": "^4.0.0",
63
+ "https-proxy-agent": "^5.0.0",
64
+ "joi": "^17.13.3",
65
+ "jose": "^4.15.5",
66
+ "lodash.set": "^4.3.2",
67
+ "multiformats": "^12.1.3",
68
+ "multihashes": "^4.0.3",
69
+ "pkijs": "^3.2.4",
70
+ "qs": "^6.12.1"
71
+ },
72
+ "optionalDependencies": {
73
+ "graphene-pk11": "^2.3.6"
74
+ },
75
+ "devDependencies": {
76
+ "@commitlint/cli": "^18.4.3",
77
+ "@commitlint/config-conventional": "^18.4.3",
78
+ "@release-it/conventional-changelog": "^8.0.1",
79
+ "@tsconfig/node18": "^18.2.4",
80
+ "@types/lodash.set": "^4.3.9",
81
+ "@types/node": "^18.18.0",
82
+ "@types/qs": "^6.9.10",
83
+ "@typescript-eslint/eslint-plugin": "^6.13.2",
84
+ "@typescript-eslint/parser": "^6.13.2",
85
+ "audit-ci": "^6.6.1",
86
+ "copyfiles": "^2.4.1",
87
+ "eslint": "^8.55.0",
88
+ "eslint-config-airbnb-base": "^15.0.0",
89
+ "eslint-config-airbnb-typescript": "^17.1.0",
90
+ "eslint-config-prettier": "^9.1.0",
91
+ "eslint-plugin-import": "^2.29.0",
92
+ "eslint-plugin-prettier": "^5.0.1",
93
+ "husky": "^8.0.3",
94
+ "lint-staged": "^15.2.0",
95
+ "prettier": "^3.1.1",
96
+ "read-pkg": "^9.0.1",
97
+ "release-it": "^17.0.1",
98
+ "rimraf": "^5.0.5",
99
+ "spdx-license-list": "^6.9.0",
100
+ "ts-node": "^10.9.2",
101
+ "typescript": "5.3.3",
102
+ "vitest": "^0.34.6"
103
+ },
104
+ "resolutions": {
105
+ "**/@ethersproject/providers/ws": "^7.5.10"
106
+ }
107
+ }
@@ -1,42 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- export async function createVPJwt(client, alg, vc, audience) {
3
- const keys = client.keys[alg];
4
- if (!keys)
5
- throw new Error(`No keys defined for alg ${alg}`);
6
- let verifiableCredential;
7
- if (vc === "empty") {
8
- verifiableCredential = [];
9
- }
10
- else if (Array.isArray(vc)) {
11
- verifiableCredential = vc;
12
- }
13
- else {
14
- verifiableCredential = [vc];
15
- }
16
- // NOTE: We cannot use @cef-ebsi/verifiable-presentation library
17
- // because it requires the private key and the CLI tool
18
- // now supports Hardware Wallets, which do not expose private keys.
19
- const vp = {
20
- id: `urn:did:${randomUUID()}`,
21
- "@context": ["https://www.w3.org/2018/credentials/v1"],
22
- type: ["VerifiablePresentation"],
23
- holder: client.did,
24
- verifiableCredential,
25
- };
26
- const now = Math.floor(Date.now() / 1000);
27
- const vpJwtPayload = {
28
- jti: vp.id,
29
- sub: client.did,
30
- iss: client.did,
31
- nbf: now - 60, // 1 minute in the past
32
- exp: now + 120, // 2 minutes in the future
33
- iat: now,
34
- aud: audience,
35
- nonce: randomUUID(),
36
- vp,
37
- };
38
- const jwtVp = await client.signJWT(vpJwtPayload, {}, alg);
39
- return { jwtVp, payload: vp };
40
- }
41
- export default createVPJwt;
42
- //# sourceMappingURL=verifiablePresentation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verifiablePresentation.js","sourceRoot":"","sources":["../../src/utils/verifiablePresentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,GAAQ,EACR,EAAqB,EACrB,QAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;IAE7D,IAAI,oBAA8B,CAAC;IACnC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACnB,oBAAoB,GAAG,EAAE,CAAC;IAC5B,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7B,oBAAoB,GAAG,EAAE,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,oBAAoB,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,gEAAgE;IAChE,uDAAuD;IACvD,mEAAmE;IAEnE,MAAM,EAAE,GAAG;QACT,EAAE,EAAE,WAAW,UAAU,EAAE,EAAE;QAC7B,UAAU,EAAE,CAAC,wCAAwC,CAAC;QACtD,IAAI,EAAE,CAAC,wBAAwB,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC,GAAG;QAClB,oBAAoB;KACS,CAAC;IAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG;QACnB,GAAG,EAAE,EAAE,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,uBAAuB;QACtC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,0BAA0B;QAC1C,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,UAAU,EAAE;QACnB,EAAE;KACH,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAChC,CAAC;AAED,eAAe,WAAW,CAAC"}