@sphereon/ssi-types 0.22.0 → 0.23.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.
@@ -1,4 +1,5 @@
1
1
  import { OriginalType, WrappedVerifiableCredential, WrappedVerifiablePresentation } from './vc';
2
+ import { CompactJWT } from './w3c-vc';
2
3
  type JsonValue = string | number | boolean | {
3
4
  [x: string]: JsonValue | undefined;
4
5
  } | Array<JsonValue>;
@@ -96,6 +97,20 @@ export interface SdJwtDecodedVerifiableCredential {
96
97
  * for querying the contents of the SD JWT VC using a PEX presentation definition path.
97
98
  */
98
99
  decodedPayload: SdJwtDecodedVerifiableCredentialPayload;
100
+ /**
101
+ * Key binding JWT
102
+ */
103
+ kbJwt?: {
104
+ compact: CompactJWT;
105
+ payload: SdJwtVcKbJwtPayload;
106
+ };
107
+ }
108
+ interface SdJwtVcKbJwtPayload {
109
+ iat: number;
110
+ aud: string;
111
+ nonce: string;
112
+ sd_hash: string;
113
+ [key: string]: unknown;
99
114
  }
100
115
  export interface WrappedSdJwtVerifiableCredential {
101
116
  /**
@@ -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":"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"}
@@ -27,9 +27,10 @@ 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 { jwt, disclosures } = (0, decode_1.decodeSdJwtSync)(compactSdJwtVc, hasher);
30
+ const { jwt, disclosures, kbJwt } = (0, decode_1.decodeSdJwtSync)(compactSdJwtVc, hasher);
31
31
  const signedPayload = jwt.payload;
32
32
  const decodedPayload = (0, decode_1.getClaimsSync)(signedPayload, disclosures, hasher);
33
+ const compactKeyBindingJwt = kbJwt ? compactSdJwtVc.split('~').pop() : undefined;
33
34
  return {
34
35
  compactSdJwtVc,
35
36
  decodedPayload: decodedPayload,
@@ -44,6 +45,12 @@ function decodeSdJwtVc(compactSdJwtVc, hasher) {
44
45
  };
45
46
  }),
46
47
  signedPayload: signedPayload,
48
+ kbJwt: compactKeyBindingJwt && kbJwt
49
+ ? {
50
+ compact: compactKeyBindingJwt,
51
+ payload: kbJwt.payload,
52
+ }
53
+ : undefined,
47
54
  };
48
55
  }
49
56
  exports.decodeSdJwtVc = decodeSdJwtVc;
@@ -56,9 +63,10 @@ exports.decodeSdJwtVc = decodeSdJwtVc;
56
63
  */
57
64
  function decodeSdJwtVcAsync(compactSdJwtVc, hasher) {
58
65
  return __awaiter(this, void 0, void 0, function* () {
59
- const { jwt, disclosures } = yield (0, decode_1.decodeSdJwt)(compactSdJwtVc, hasher);
66
+ const { jwt, disclosures, kbJwt } = yield (0, decode_1.decodeSdJwt)(compactSdJwtVc, hasher);
60
67
  const signedPayload = jwt.payload;
61
68
  const decodedPayload = yield (0, decode_1.getClaims)(signedPayload, disclosures, hasher);
69
+ const compactKeyBindingJwt = kbJwt ? compactSdJwtVc.split('~').pop() : undefined;
62
70
  return {
63
71
  compactSdJwtVc,
64
72
  decodedPayload: decodedPayload,
@@ -73,6 +81,12 @@ function decodeSdJwtVcAsync(compactSdJwtVc, hasher) {
73
81
  };
74
82
  }),
75
83
  signedPayload: signedPayload,
84
+ kbJwt: compactKeyBindingJwt && kbJwt
85
+ ? {
86
+ compact: compactKeyBindingJwt,
87
+ payload: kbJwt.payload,
88
+ }
89
+ : undefined,
76
90
  };
77
91
  });
78
92
  }
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"sd-jwt-vc.js","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":"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"}
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.22.0",
4
+ "version": "0.23.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
@@ -42,5 +42,5 @@
42
42
  "Verifiable Credentials",
43
43
  "DIDs"
44
44
  ],
45
- "gitHead": "cff5ae59d16bf499c3cf825b8841fb3aaddeeb70"
45
+ "gitHead": "5b7c05b77d8037f879e9505c80caf2bc640d7cdf"
46
46
  }
@@ -1,5 +1,6 @@
1
1
  import { OriginalType, WrappedVerifiableCredential, WrappedVerifiablePresentation } from './vc'
2
2
  import { decodeSdJwtSync, decodeSdJwt, getClaims, getClaimsSync } from '@sd-jwt/decode'
3
+ import { CompactJWT } from './w3c-vc'
3
4
 
4
5
  type JsonValue = string | number | boolean | { [x: string]: JsonValue | undefined } | Array<JsonValue>
5
6
 
@@ -116,6 +117,22 @@ export interface SdJwtDecodedVerifiableCredential {
116
117
  * for querying the contents of the SD JWT VC using a PEX presentation definition path.
117
118
  */
118
119
  decodedPayload: SdJwtDecodedVerifiableCredentialPayload
120
+
121
+ /**
122
+ * Key binding JWT
123
+ */
124
+ kbJwt?: {
125
+ compact: CompactJWT
126
+ payload: SdJwtVcKbJwtPayload
127
+ }
128
+ }
129
+
130
+ interface SdJwtVcKbJwtPayload {
131
+ iat: number
132
+ aud: string
133
+ nonce: string
134
+ sd_hash: string
135
+ [key: string]: unknown
119
136
  }
120
137
 
121
138
  export interface WrappedSdJwtVerifiableCredential {
@@ -189,10 +206,11 @@ export type AsyncHasher = (data: string, alg: string) => Promise<Uint8Array>
189
206
  * this method hides the actual implementation of SD-JWT (which is currently based on @sd-jwt/core)
190
207
  */
191
208
  export function decodeSdJwtVc(compactSdJwtVc: CompactSdJwtVc, hasher: Hasher): SdJwtDecodedVerifiableCredential {
192
- const { jwt, disclosures } = decodeSdJwtSync(compactSdJwtVc, hasher)
209
+ const { jwt, disclosures, kbJwt } = decodeSdJwtSync(compactSdJwtVc, hasher)
193
210
 
194
211
  const signedPayload = jwt.payload as SdJwtSignedVerifiableCredentialPayload
195
212
  const decodedPayload = getClaimsSync(signedPayload, disclosures, hasher)
213
+ const compactKeyBindingJwt = kbJwt ? compactSdJwtVc.split('~').pop() : undefined
196
214
 
197
215
  return {
198
216
  compactSdJwtVc,
@@ -207,6 +225,13 @@ export function decodeSdJwtVc(compactSdJwtVc: CompactSdJwtVc, hasher: Hasher): S
207
225
  } satisfies SdJwtDisclosure
208
226
  }),
209
227
  signedPayload: signedPayload as SdJwtSignedVerifiableCredentialPayload,
228
+ kbJwt:
229
+ compactKeyBindingJwt && kbJwt
230
+ ? {
231
+ compact: compactKeyBindingJwt,
232
+ payload: kbJwt.payload as SdJwtVcKbJwtPayload,
233
+ }
234
+ : undefined,
210
235
  }
211
236
  }
212
237
 
@@ -218,10 +243,11 @@ export function decodeSdJwtVc(compactSdJwtVc: CompactSdJwtVc, hasher: Hasher): S
218
243
  * this method hides the actual implementation of SD-JWT (which is currently based on @sd-jwt/core)
219
244
  */
220
245
  export async function decodeSdJwtVcAsync(compactSdJwtVc: CompactSdJwtVc, hasher: AsyncHasher): Promise<SdJwtDecodedVerifiableCredential> {
221
- const { jwt, disclosures } = await decodeSdJwt(compactSdJwtVc, hasher)
246
+ const { jwt, disclosures, kbJwt } = await decodeSdJwt(compactSdJwtVc, hasher)
222
247
 
223
248
  const signedPayload = jwt.payload as SdJwtSignedVerifiableCredentialPayload
224
249
  const decodedPayload = await getClaims(signedPayload, disclosures, hasher)
250
+ const compactKeyBindingJwt = kbJwt ? compactSdJwtVc.split('~').pop() : undefined
225
251
 
226
252
  return {
227
253
  compactSdJwtVc,
@@ -236,5 +262,12 @@ export async function decodeSdJwtVcAsync(compactSdJwtVc: CompactSdJwtVc, hasher:
236
262
  } satisfies SdJwtDisclosure
237
263
  }),
238
264
  signedPayload: signedPayload as SdJwtSignedVerifiableCredentialPayload,
265
+ kbJwt:
266
+ compactKeyBindingJwt && kbJwt
267
+ ? {
268
+ compact: compactKeyBindingJwt,
269
+ payload: kbJwt.payload as SdJwtVcKbJwtPayload,
270
+ }
271
+ : undefined,
239
272
  }
240
273
  }