@sphereon/ssi-types 0.19.1-next.119 → 0.19.1-next.125
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-jwt-vc.d.ts","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sd-jwt-vc.d.ts","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,MAAM,CAAA;AAG/F,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;AAEtG,KAAK,cAAc,GACf,MAAM,GACN,MAAM,GACN,OAAO,GACP;IACE,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAA;IACvC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACf,GACD,KAAK,CAAC,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE7C;;;GAGG;AACH,MAAM,WAAW,uCAAuC;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE;QACJ,GAAG,CAAC,EAAE,GAAG,CAAA;QACT,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;IACD,MAAM,CAAC,EAAE;QACP,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AAEnC;;GAEG;AACH,UAAU,sCAAuC,SAAQ,uCAAuC;IAE9F,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAA;CACxC;AAED,KAAK,eAAe,GAAG,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,CAAA;AAC1F,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAClE,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAEpE;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,uCAAuC;IACnF;;;OAGG;IACH,iBAAiB,CAAC,EAAE,oBAAoB,CAAA;CACzC;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AACtF,MAAM,WAAW,eAAe;IAE9B,OAAO,EAAE,MAAM,CAAA;IAGf,OAAO,EAAE,sBAAsB,CAAA;IAG/B,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;iEAE6D;IAC7D,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;OAIG;IACH,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;IAEnC;;;OAGG;IACH,aAAa,EAAE,sCAAsC,CAAA;IAErD;;;;;;;OAOG;IACH,cAAc,EAAE,uCAAuC,CAAA;CACxD;AAED,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,QAAQ,EAAE,gCAAgC,GAAG,cAAc,CAAA;IAC3D;;;OAGG;IACH,OAAO,EAAE,uCAAuC,CAAA;IAChD;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAA;IACrE;;OAEG;IACH,MAAM,EAAE,WAAW,CAAA;IACnB;;OAEG;IACH,UAAU,EAAE,gCAAgC,CAAA;CAC7C;AAED,MAAM,WAAW,kCAAkC;IACjD;;OAEG;IACH,QAAQ,EAAE,gCAAgC,GAAG,cAAc,CAAA;IAC3D;;OAEG;IACH,OAAO,EAAE,uCAAuC,CAAA;IAChD;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAA;IACrE;;OAEG;IACH,MAAM,EAAE,WAAW,CAAA;IACnB;;OAEG;IACH,YAAY,EAAE,gCAAgC,CAAA;IAC9C;;;OAGG;IACH,GAAG,EAAE,CAAC,gCAAgC,CAAC,CAAA;CACxC;AAED,wBAAgB,kCAAkC,CAAC,EAAE,EAAE,2BAA2B,GAAG,EAAE,IAAI,gCAAgC,CAE1H;AAED,wBAAgB,oCAAoC,CAAC,EAAE,EAAE,6BAA6B,GAAG,EAAE,IAAI,kCAAkC,CAEhI;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,UAAU,CAAA;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;AAE5E;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,gCAAgC,CAoB9G;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAoBvI"}
|
package/dist/types/sd-jwt-vc.js
CHANGED
|
@@ -27,16 +27,20 @@ exports.isWrappedSdJwtVerifiablePresentation = isWrappedSdJwtVerifiablePresentat
|
|
|
27
27
|
* this method hides the actual implementation of SD-JWT (which is currently based on @sd-jwt/core)
|
|
28
28
|
*/
|
|
29
29
|
function decodeSdJwtVc(compactSdJwtVc, hasher) {
|
|
30
|
-
const {
|
|
30
|
+
const { jwt, disclosures } = (0, decode_1.decodeSdJwtSync)(compactSdJwtVc, hasher);
|
|
31
|
+
const signedPayload = jwt.payload;
|
|
32
|
+
const decodedPayload = (0, decode_1.getClaimsSync)(signedPayload, disclosures, hasher);
|
|
31
33
|
return {
|
|
32
34
|
compactSdJwtVc,
|
|
33
35
|
decodedPayload: decodedPayload,
|
|
34
36
|
disclosures: disclosures.map((d) => {
|
|
35
37
|
const decoded = d.key ? [d.salt, d.key, d.value] : [d.salt, d.value];
|
|
38
|
+
if (!d._digest)
|
|
39
|
+
throw new Error('Implementation error: digest not present in disclosure');
|
|
36
40
|
return {
|
|
37
41
|
decoded: decoded,
|
|
38
|
-
digest: d.
|
|
39
|
-
encoded: d.
|
|
42
|
+
digest: d._digest,
|
|
43
|
+
encoded: d.encode(),
|
|
40
44
|
};
|
|
41
45
|
}),
|
|
42
46
|
signedPayload: signedPayload,
|
|
@@ -52,16 +56,20 @@ exports.decodeSdJwtVc = decodeSdJwtVc;
|
|
|
52
56
|
*/
|
|
53
57
|
function decodeSdJwtVcAsync(compactSdJwtVc, hasher) {
|
|
54
58
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
const {
|
|
59
|
+
const { jwt, disclosures } = yield (0, decode_1.decodeSdJwt)(compactSdJwtVc, hasher);
|
|
60
|
+
const signedPayload = jwt.payload;
|
|
61
|
+
const decodedPayload = yield (0, decode_1.getClaims)(signedPayload, disclosures, hasher);
|
|
56
62
|
return {
|
|
57
63
|
compactSdJwtVc,
|
|
58
64
|
decodedPayload: decodedPayload,
|
|
59
65
|
disclosures: disclosures.map((d) => {
|
|
60
66
|
const decoded = d.key ? [d.salt, d.key, d.value] : [d.salt, d.value];
|
|
67
|
+
if (!d._digest)
|
|
68
|
+
throw new Error('Implementation error: digest not present in disclosure');
|
|
61
69
|
return {
|
|
62
70
|
decoded: decoded,
|
|
63
|
-
digest: d.
|
|
64
|
-
encoded: d.
|
|
71
|
+
digest: d._digest,
|
|
72
|
+
encoded: d.encode(),
|
|
65
73
|
};
|
|
66
74
|
}),
|
|
67
75
|
signedPayload: signedPayload,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-jwt-vc.js","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"sd-jwt-vc.js","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2CAAuF;AA2KvF,SAAgB,kCAAkC,CAAC,EAA+B;IAChF,OAAO,EAAE,CAAC,MAAM,KAAK,WAAW,CAAA;AAClC,CAAC;AAFD,gFAEC;AAED,SAAgB,oCAAoC,CAAC,EAAiC;IACpF,OAAO,EAAE,CAAC,MAAM,KAAK,WAAW,CAAA;AAClC,CAAC;AAFD,oFAEC;AAKD;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,cAA8B,EAAE,MAAc;IAC1E,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAA,wBAAe,EAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IAEpE,MAAM,aAAa,GAAG,GAAG,CAAC,OAAiD,CAAA;IAC3E,MAAM,cAAc,GAAG,IAAA,sBAAa,EAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IAExE,OAAO;QACL,cAAc;QACd,cAAc,EAAE,cAAyD;QACzE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACjC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;YACpE,IAAI,CAAC,CAAC,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;YACzF,OAAO;gBACL,OAAO,EAAE,OAAiC;gBAC1C,MAAM,EAAE,CAAC,CAAC,OAAO;gBACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;aACM,CAAA;QAC7B,CAAC,CAAC;QACF,aAAa,EAAE,aAAuD;KACvE,CAAA;AACH,CAAC;AApBD,sCAoBC;AAED;;;;;;GAMG;AACH,SAAsB,kBAAkB,CAAC,cAA8B,EAAE,MAAmB;;QAC1F,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,oBAAW,EAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAEtE,MAAM,aAAa,GAAG,GAAG,CAAC,OAAiD,CAAA;QAC3E,MAAM,cAAc,GAAG,MAAM,IAAA,kBAAS,EAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QAE1E,OAAO;YACL,cAAc;YACd,cAAc,EAAE,cAAyD;YACzE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;gBACpE,IAAI,CAAC,CAAC,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;gBACzF,OAAO;oBACL,OAAO,EAAE,OAAiC;oBAC1C,MAAM,EAAE,CAAC,CAAC,OAAO;oBACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;iBACM,CAAA;YAC7B,CAAC,CAAC;YACF,aAAa,EAAE,aAAuD;SACvE,CAAA;IACH,CAAC;CAAA;AApBD,gDAoBC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-types",
|
|
3
3
|
"description": "SSI Common Types",
|
|
4
|
-
"version": "0.19.1-next.
|
|
4
|
+
"version": "0.19.1-next.125+9569c877",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"build:clean": "tsc --build --clean && tsc --build"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@sd-jwt/decode": "^0.
|
|
12
|
+
"@sd-jwt/decode": "^0.6.0",
|
|
13
13
|
"jwt-decode": "^3.1.2"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"Verifiable Credentials",
|
|
43
43
|
"DIDs"
|
|
44
44
|
],
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "9569c877a2dec6a019a3ba9a422cf42cc2f44bf0"
|
|
46
46
|
}
|
package/src/types/sd-jwt-vc.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OriginalType, WrappedVerifiableCredential, WrappedVerifiablePresentation } from './vc'
|
|
2
|
-
import {
|
|
2
|
+
import { decodeSdJwtSync, decodeSdJwt, getClaims, getClaimsSync } from '@sd-jwt/decode'
|
|
3
3
|
|
|
4
4
|
type JsonValue = string | number | boolean | { [x: string]: JsonValue | undefined } | Array<JsonValue>
|
|
5
5
|
|
|
@@ -189,20 +189,24 @@ export type AsyncHasher = (data: string, alg: string) => Promise<Uint8Array>
|
|
|
189
189
|
* this method hides the actual implementation of SD-JWT (which is currently based on @sd-jwt/core)
|
|
190
190
|
*/
|
|
191
191
|
export function decodeSdJwtVc(compactSdJwtVc: CompactSdJwtVc, hasher: Hasher): SdJwtDecodedVerifiableCredential {
|
|
192
|
-
const {
|
|
192
|
+
const { jwt, disclosures } = decodeSdJwtSync(compactSdJwtVc, hasher)
|
|
193
|
+
|
|
194
|
+
const signedPayload = jwt.payload as SdJwtSignedVerifiableCredentialPayload
|
|
195
|
+
const decodedPayload = getClaimsSync(signedPayload, disclosures, hasher)
|
|
193
196
|
|
|
194
197
|
return {
|
|
195
198
|
compactSdJwtVc,
|
|
196
199
|
decodedPayload: decodedPayload as SdJwtDecodedVerifiableCredentialPayload,
|
|
197
200
|
disclosures: disclosures.map((d) => {
|
|
198
201
|
const decoded = d.key ? [d.salt, d.key, d.value] : [d.salt, d.value]
|
|
202
|
+
if (!d._digest) throw new Error('Implementation error: digest not present in disclosure')
|
|
199
203
|
return {
|
|
200
204
|
decoded: decoded as SdJwtDecodedDisclosure,
|
|
201
|
-
digest: d.
|
|
202
|
-
encoded: d.
|
|
205
|
+
digest: d._digest,
|
|
206
|
+
encoded: d.encode(),
|
|
203
207
|
} satisfies SdJwtDisclosure
|
|
204
208
|
}),
|
|
205
|
-
signedPayload: signedPayload as
|
|
209
|
+
signedPayload: signedPayload as SdJwtSignedVerifiableCredentialPayload,
|
|
206
210
|
}
|
|
207
211
|
}
|
|
208
212
|
|
|
@@ -214,19 +218,23 @@ export function decodeSdJwtVc(compactSdJwtVc: CompactSdJwtVc, hasher: Hasher): S
|
|
|
214
218
|
* this method hides the actual implementation of SD-JWT (which is currently based on @sd-jwt/core)
|
|
215
219
|
*/
|
|
216
220
|
export async function decodeSdJwtVcAsync(compactSdJwtVc: CompactSdJwtVc, hasher: AsyncHasher): Promise<SdJwtDecodedVerifiableCredential> {
|
|
217
|
-
const {
|
|
221
|
+
const { jwt, disclosures } = await decodeSdJwt(compactSdJwtVc, hasher)
|
|
222
|
+
|
|
223
|
+
const signedPayload = jwt.payload as SdJwtSignedVerifiableCredentialPayload
|
|
224
|
+
const decodedPayload = await getClaims(signedPayload, disclosures, hasher)
|
|
218
225
|
|
|
219
226
|
return {
|
|
220
227
|
compactSdJwtVc,
|
|
221
228
|
decodedPayload: decodedPayload as SdJwtDecodedVerifiableCredentialPayload,
|
|
222
229
|
disclosures: disclosures.map((d) => {
|
|
223
230
|
const decoded = d.key ? [d.salt, d.key, d.value] : [d.salt, d.value]
|
|
231
|
+
if (!d._digest) throw new Error('Implementation error: digest not present in disclosure')
|
|
224
232
|
return {
|
|
225
233
|
decoded: decoded as SdJwtDecodedDisclosure,
|
|
226
|
-
digest: d.
|
|
227
|
-
encoded: d.
|
|
234
|
+
digest: d._digest,
|
|
235
|
+
encoded: d.encode(),
|
|
228
236
|
} satisfies SdJwtDisclosure
|
|
229
237
|
}),
|
|
230
|
-
signedPayload: signedPayload as
|
|
238
|
+
signedPayload: signedPayload as SdJwtSignedVerifiableCredentialPayload,
|
|
231
239
|
}
|
|
232
240
|
}
|