@sphereon/ssi-sdk.sd-jwt 0.32.0 → 0.32.1-next.12

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,9 +1,9 @@
1
1
  import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc';
2
2
  import { Signer } from '@sd-jwt/types';
3
3
  import { X509CertificateChainValidationOpts } from '@sphereon/ssi-sdk-ext.x509-utils';
4
+ import { SdJwtTypeMetadata } from '@sphereon/ssi-types';
4
5
  import { IAgentPlugin } from '@veramo/core';
5
- import { SignKeyArgs, SignKeyResult } from './index';
6
- import { ICreateSdJwtPresentationArgs, ICreateSdJwtPresentationResult, ICreateSdJwtVcArgs, ICreateSdJwtVcResult, IRequiredContext, ISDJwtPlugin, IVerifySdJwtPresentationArgs, IVerifySdJwtPresentationResult, IVerifySdJwtVcArgs, IVerifySdJwtVcResult, SdJWTImplementation } from './types';
6
+ import { FetchSdJwtTypeMetadataFromVctUrlArgs, ICreateSdJwtPresentationArgs, ICreateSdJwtPresentationResult, ICreateSdJwtVcArgs, ICreateSdJwtVcResult, IRequiredContext, ISDJwtPlugin, IVerifySdJwtPresentationArgs, IVerifySdJwtPresentationResult, IVerifySdJwtVcArgs, IVerifySdJwtVcResult, SdJWTImplementation, SignKeyArgs, SignKeyResult } from './types';
7
7
  /**
8
8
  * @beta
9
9
  * SD-JWT plugin
@@ -57,8 +57,6 @@ export declare class SDJwtPlugin implements IAgentPlugin {
57
57
  * @returns
58
58
  */
59
59
  private verifyKb;
60
- private getJwk;
61
- private extractBase64FromDIDJwk;
62
60
  /**
63
61
  * Validates the signature of a SD-JWT
64
62
  * @param sdjwt - SD-JWT instance
@@ -77,6 +75,15 @@ export declare class SDJwtPlugin implements IAgentPlugin {
77
75
  * @returns
78
76
  */
79
77
  verifySdJwtPresentation(args: IVerifySdJwtPresentationArgs, context: IRequiredContext): Promise<IVerifySdJwtPresentationResult>;
78
+ /**
79
+ * Fetch and validate Type Metadata.
80
+ * @param args - Arguments necessary for fetching and validating the type metadata.
81
+ * @param context - This reserved param is automatically added and handled by the framework, *do not override*
82
+ * @returns
83
+ */
84
+ fetchSdJwtTypeMetadataFromVctUrl(args: FetchSdJwtTypeMetadataFromVctUrlArgs, context: IRequiredContext): Promise<SdJwtTypeMetadata>;
80
85
  private verifySignatureCallback;
86
+ private getJwk;
87
+ private extractBase64FromDIDJwk;
81
88
  }
82
89
  //# sourceMappingURL=action-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-handler.d.ts","sourceRoot":"","sources":["../src/action-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAkB,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAA8D,MAAM,EAAY,MAAM,eAAe,CAAA;AAE5G,OAAO,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAA;AAErF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,OAAO,EAAwB,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE1E,OAAO,EAEL,4BAA4B,EAC5B,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,4BAA4B,EAC5B,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,SAAS,CAAA;AAKhB;;;GAGG;AACH,qBAAa,WAAY,YAAW,YAAY;IAE9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAqB;IAC/D,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAQ;gBAG7B,yBAAyB,CAAC,EAAE,mBAAmB,GAAG;QAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,EACD,iBAAiB,CAAC,EAAE,MAAM,EAAE;IAoB9B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAK7B;YAEa,sBAAsB;IAuBpC;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwBvG;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IA8CtF;;;;;OAKG;IACG,uBAAuB,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,8BAA8B,CAAC;IA8BrI;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASvG;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,uBAAuB;IAQ/B;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAC,aAAa,CAAC,EAAE,kCAAkC,CAAA;KAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAgE/K;;;;;OAKG;IACG,uBAAuB,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAcrI,OAAO,CAAC,uBAAuB;CAOhC"}
1
+ {"version":3,"file":"action-handler.d.ts","sourceRoot":"","sources":["../src/action-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAkB,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAA8D,MAAM,EAAY,MAAM,eAAe,CAAA;AAE5G,OAAO,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAA;AACrF,OAAO,EAAO,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAU3C,OAAO,EAEL,oCAAoC,EAGpC,4BAA4B,EAC5B,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,4BAA4B,EAC5B,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EAEnB,WAAW,EACX,aAAa,EACd,MAAM,SAAS,CAAA;AAIhB;;;GAGG;AACH,qBAAa,WAAY,YAAW,YAAY;IAE9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAqB;IAC/D,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAQ;gBAG7B,yBAAyB,CAAC,EAAE,mBAAmB,GAAG;QAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,EACD,iBAAiB,CAAC,EAAE,MAAM,EAAE;IAoB9B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAM7B;YAEa,sBAAsB;IAiBpC;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwBvG;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IA8CtF;;;;;OAKG;IACG,uBAAuB,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,8BAA8B,CAAC;IA8BrI;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASvG;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ;IAOhB;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAC,aAAa,CAAC,EAAE,kCAAkC,CAAA;KAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAgE/K;;;;;OAKG;IACG,uBAAuB,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAcrI;;;;;OAKG;IACG,gCAAgC,CAAC,IAAI,EAAE,oCAAoC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiBzI,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,uBAAuB;CAQhC"}
@@ -20,6 +20,7 @@ const utils_1 = require("@veramo/utils");
20
20
  const debug_1 = __importDefault(require("debug"));
21
21
  const defaultCallbacks_1 = require("./defaultCallbacks");
22
22
  const trustAnchors_1 = require("./trustAnchors");
23
+ const utils_2 = require("./utils");
23
24
  const debug = (0, debug_1.default)('@sphereon/ssi-sdk.sd-jwt');
24
25
  /**
25
26
  * @beta
@@ -34,6 +35,7 @@ class SDJwtPlugin {
34
35
  createSdJwtPresentation: this.createSdJwtPresentation.bind(this),
35
36
  verifySdJwtVc: this.verifySdJwtVc.bind(this),
36
37
  verifySdJwtPresentation: this.verifySdJwtPresentation.bind(this),
38
+ fetchSdJwtTypeMetadataFromVctUrl: this.fetchSdJwtTypeMetadataFromVctUrl.bind(this),
37
39
  };
38
40
  this.trustAnchorsInPEM = trustAnchorsInPEM !== null && trustAnchorsInPEM !== void 0 ? trustAnchorsInPEM : [];
39
41
  if (!registeredImplementations) {
@@ -50,8 +52,9 @@ class SDJwtPlugin {
50
52
  this._defaultSigner = registeredImplementations === null || registeredImplementations === void 0 ? void 0 : registeredImplementations.defaultSigner;
51
53
  // Verify signature default is used below in the methods if not provided here, as it needs the context of the agent
52
54
  }
53
- getSignerForIdentifier(_a, context_1) {
54
- return __awaiter(this, arguments, void 0, function* ({ identifier, resolution }, context) {
55
+ getSignerForIdentifier(args, context) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const { identifier, resolution } = args;
55
58
  if (Object.keys(this._signers).includes(identifier) && typeof this._signers[identifier] === 'function') {
56
59
  return { signer: this._signers[identifier] };
57
60
  }
@@ -221,28 +224,6 @@ class SDJwtPlugin {
221
224
  }
222
225
  return this.verifySignatureCallback(context)(data, signature, this.getJwk(payload));
223
226
  }
224
- getJwk(payload) {
225
- var _a;
226
- if (((_a = payload.cnf) === null || _a === void 0 ? void 0 : _a.jwk) !== undefined) {
227
- return payload.cnf.jwk;
228
- }
229
- else if (payload.cnf !== undefined && 'kid' in payload.cnf && typeof payload.cnf.kid === 'string' && payload.cnf.kid.startsWith('did:jwk:')) {
230
- // extract JWK from kid FIXME isn't there a did function for this already? Otherwise create one
231
- // FIXME this is a quick-fix to make verification but we need a real solution
232
- const encoded = this.extractBase64FromDIDJwk(payload.cnf.kid);
233
- const decoded = (0, utils_1.decodeBase64url)(encoded);
234
- const jwt = JSON.parse(decoded);
235
- return jwt;
236
- }
237
- throw Error('Unable to extract JWK from SD-JWT payload');
238
- }
239
- extractBase64FromDIDJwk(did) {
240
- const parts = did.split(':');
241
- if (parts.length < 3) {
242
- throw new Error('Invalid DID format');
243
- }
244
- return parts[2].split('#')[0];
245
- }
246
227
  /**
247
228
  * Validates the signature of a SD-JWT
248
229
  * @param sdjwt - SD-JWT instance
@@ -331,12 +312,55 @@ class SDJwtPlugin {
331
312
  return sdjwt.verify(args.presentation, args.requiredClaimKeys, args.kb);
332
313
  });
333
314
  }
315
+ /**
316
+ * Fetch and validate Type Metadata.
317
+ * @param args - Arguments necessary for fetching and validating the type metadata.
318
+ * @param context - This reserved param is automatically added and handled by the framework, *do not override*
319
+ * @returns
320
+ */
321
+ fetchSdJwtTypeMetadataFromVctUrl(args, context) {
322
+ return __awaiter(this, void 0, void 0, function* () {
323
+ const { vct, opts } = args;
324
+ const url = new URL(vct);
325
+ const response = yield (0, utils_2.fetchUrlWithErrorHandling)(url.toString());
326
+ const metadata = yield response.json();
327
+ (0, utils_2.assertValidTypeMetadata)(metadata, vct);
328
+ if ((opts === null || opts === void 0 ? void 0 : opts.integrity) && opts.hasher) {
329
+ if (!(yield (0, utils_2.validateIntegrity)(metadata, opts.integrity, opts.hasher))) {
330
+ throw new Error(`Integrity check failed. vct: ${vct}`);
331
+ }
332
+ }
333
+ return metadata;
334
+ });
335
+ }
334
336
  verifySignatureCallback(context) {
335
337
  if (typeof this.registeredImplementations.verifySignature === 'function') {
336
338
  return this.registeredImplementations.verifySignature;
337
339
  }
338
340
  return (0, defaultCallbacks_1.defaultVerifySignature)(context);
339
341
  }
342
+ getJwk(payload) {
343
+ var _a;
344
+ if (((_a = payload.cnf) === null || _a === void 0 ? void 0 : _a.jwk) !== undefined) {
345
+ return payload.cnf.jwk;
346
+ }
347
+ else if (payload.cnf !== undefined && 'kid' in payload.cnf && typeof payload.cnf.kid === 'string' && payload.cnf.kid.startsWith('did:jwk:')) {
348
+ // extract JWK from kid FIXME isn't there a did function for this already? Otherwise create one
349
+ // FIXME this is a quick-fix to make verification but we need a real solution
350
+ const encoded = this.extractBase64FromDIDJwk(payload.cnf.kid);
351
+ const decoded = (0, utils_1.decodeBase64url)(encoded);
352
+ const jwt = JSON.parse(decoded);
353
+ return jwt;
354
+ }
355
+ throw Error('Unable to extract JWK from SD-JWT payload');
356
+ }
357
+ extractBase64FromDIDJwk(did) {
358
+ const parts = did.split(':');
359
+ if (parts.length < 3) {
360
+ throw new Error('Invalid DID format');
361
+ }
362
+ return parts[2].split('#')[0];
363
+ }
340
364
  }
341
365
  exports.SDJwtPlugin = SDJwtPlugin;
342
366
  //# sourceMappingURL=action-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-handler.js","sourceRoot":"","sources":["../src/action-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-handler.js","sourceRoot":"","sources":["../src/action-handler.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { SDJwtPlugin } from './action-handler';
2
+ export * from './utils';
2
3
  export * from './types';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
package/dist/index.js CHANGED
@@ -17,5 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.SDJwtPlugin = void 0;
18
18
  var action_handler_1 = require("./action-handler");
19
19
  Object.defineProperty(exports, "SDJwtPlugin", { enumerable: true, get: function () { return action_handler_1.SDJwtPlugin; } });
20
+ __exportStar(require("./utils"), exports);
20
21
  __exportStar(require("./types"), exports);
21
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAA8C;AAArC,6GAAA,WAAW,OAAA;AACpB,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAA8C;AAArC,6GAAA,WAAW,OAAA;AACpB,0CAAuB;AACvB,0CAAuB"}
package/dist/types.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { SdJwtVcPayload as SdJwtPayload } from '@sd-jwt/sd-jwt-vc';
2
- import { Hasher, kbHeader, KBOptions, kbPayload, SaltGenerator } from '@sd-jwt/types';
2
+ import { Hasher, kbHeader, KBOptions, kbPayload, SaltGenerator, Signer } from '@sd-jwt/types';
3
3
  import { IIdentifierResolution, ManagedIdentifierResult } from '@sphereon/ssi-sdk-ext.identifier-resolution';
4
4
  import { IJwtService } from '@sphereon/ssi-sdk-ext.jwt-service';
5
5
  import { X509CertificateChainValidationOpts } from '@sphereon/ssi-sdk-ext.x509-utils';
6
6
  import { ImDLMdoc } from '@sphereon/ssi-sdk.mdl-mdoc';
7
- import { JoseSignatureAlgorithm } from '@sphereon/ssi-types';
7
+ import { AsyncHasher, JoseSignatureAlgorithm, SdJwtTypeMetadata } from '@sphereon/ssi-types';
8
8
  import { DIDDocumentSection, IAgentContext, IDIDManager, IKeyManager, IPluginMethodMap, IResolver } from '@veramo/core';
9
9
  export declare const sdJwtPluginContextMethods: Array<string>;
10
10
  /**
@@ -60,6 +60,12 @@ export interface ISDJwtPlugin extends IPluginMethodMap {
60
60
  * @param context - This reserved param is automatically added and handled by the framework, *do not override*
61
61
  */
62
62
  verifySdJwtPresentation(args: IVerifySdJwtPresentationArgs, context: IRequiredContext): Promise<IVerifySdJwtPresentationResult>;
63
+ /**
64
+ * Fetch and validate Type Metadata.
65
+ * @param args - Arguments necessary for fetching and validating the type metadata.
66
+ * @param context - This reserved param is automatically added and handled by the framework, *do not override*
67
+ */
68
+ fetchSdJwtTypeMetadataFromVctUrl(args: FetchSdJwtTypeMetadataFromVctUrlArgs, context: IRequiredContext): Promise<SdJwtTypeMetadata>;
63
69
  }
64
70
  export declare function contextHasSDJwtPlugin(context: IAgentContext<IPluginMethodMap>): context is IAgentContext<ISDJwtPlugin>;
65
71
  /**
@@ -208,4 +214,21 @@ export interface Claims {
208
214
  };
209
215
  [key: string]: unknown;
210
216
  }
217
+ export type FetchSdJwtTypeMetadataFromVctUrlArgs = {
218
+ vct: string;
219
+ opts?: FetchSdJwtTypeMetadataFromVctUrlOpts;
220
+ };
221
+ export type FetchSdJwtTypeMetadataFromVctUrlOpts = {
222
+ hasher?: AsyncHasher;
223
+ integrity?: string;
224
+ };
225
+ export type GetSignerForIdentifierArgs = {
226
+ identifier: string;
227
+ resolution?: ManagedIdentifierResult;
228
+ };
229
+ export type GetSignerResult = {
230
+ signer: Signer;
231
+ alg?: string;
232
+ signingKey?: SignKeyResult;
233
+ };
211
234
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAsEA,sDAEC;AAnED,yEAAiE;AAKpD,QAAA,yBAAyB,GAAkB,CAAC,eAAe,EAAE,yBAAyB,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAA;AA4DhJ,SAAgB,qBAAqB,CAAC,OAAwC;IAC5E,OAAO,IAAA,uCAAgB,EAAC,OAAO,EAAE,eAAe,CAAC,CAAA;AACnD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA6EA,sDAEC;AA1ED,yEAAiE;AAKpD,QAAA,yBAAyB,GAAkB,CAAC,eAAe,EAAE,yBAAyB,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAA;AAmEhJ,SAAgB,qBAAqB,CAAC,OAAwC;IAC5E,OAAO,IAAA,uCAAgB,EAAC,OAAO,EAAE,eAAe,CAAC,CAAA;AACnD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { AsyncHasher, SdJwtTypeMetadata } from '@sphereon/ssi-types';
2
+ export declare function fetchUrlWithErrorHandling(url: string): Promise<Response>;
3
+ export declare function validateIntegrity(input: any, integrityValue: string, hasher: AsyncHasher, alg?: string): Promise<boolean>;
4
+ export declare function assertValidTypeMetadata(metadata: SdJwtTypeMetadata, vct: string): void;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAIpE,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAM9E;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/H;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAItF"}
package/dist/utils.js ADDED
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.fetchUrlWithErrorHandling = fetchUrlWithErrorHandling;
36
+ exports.validateIntegrity = validateIntegrity;
37
+ exports.assertValidTypeMetadata = assertValidTypeMetadata;
38
+ const u8a = __importStar(require("uint8arrays"));
39
+ // Helper function to fetch API with error handling
40
+ function fetchUrlWithErrorHandling(url) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const response = yield fetch(url);
43
+ if (!response.ok) {
44
+ throw new Error(`${response.status}: ${response.statusText}`);
45
+ }
46
+ return response;
47
+ });
48
+ }
49
+ function validateIntegrity(input, integrityValue, hasher, alg) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const hash = yield hasher(input, alg !== null && alg !== void 0 ? alg : 'sha256');
52
+ return u8a.toString(hash, 'utf-8') === integrityValue;
53
+ });
54
+ }
55
+ function assertValidTypeMetadata(metadata, vct) {
56
+ if (metadata.vct !== vct) {
57
+ throw new Error('VCT mismatch in metadata and credential');
58
+ }
59
+ }
60
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,8DAMC;AAED,8CAGC;AAED,0DAIC;AApBD,iDAAkC;AAElC,mDAAmD;AACnD,SAAsB,yBAAyB,CAAC,GAAW;;QACzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CAAA;AAED,SAAsB,iBAAiB,CAAC,KAAU,EAAE,cAAsB,EAAE,MAAmB,EAAE,GAAY;;QAC3G,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,QAAQ,CAAC,CAAA;QACjD,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,cAAc,CAAA;IACvD,CAAC;CAAA;AAED,SAAgB,uBAAuB,CAAC,QAA2B,EAAE,GAAW;IAC9E,IAAI,QAAQ,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.sd-jwt",
3
- "version": "0.32.0",
3
+ "version": "0.32.1-next.12+cd321acb",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,9 +21,9 @@
21
21
  "@sphereon/ssi-sdk-ext.jwt-service": "0.27.0",
22
22
  "@sphereon/ssi-sdk-ext.key-utils": "0.27.0",
23
23
  "@sphereon/ssi-sdk-ext.x509-utils": "0.27.0",
24
- "@sphereon/ssi-sdk.agent-config": "0.32.0",
25
- "@sphereon/ssi-sdk.mdl-mdoc": "0.32.0",
26
- "@sphereon/ssi-types": "0.32.0",
24
+ "@sphereon/ssi-sdk.agent-config": "0.32.1-next.12+cd321acb",
25
+ "@sphereon/ssi-sdk.mdl-mdoc": "0.32.1-next.12+cd321acb",
26
+ "@sphereon/ssi-types": "0.32.1-next.12+cd321acb",
27
27
  "@veramo/utils": "4.2.0",
28
28
  "debug": "^4.3.5",
29
29
  "uint8arrays": "3.1.1",
@@ -72,5 +72,5 @@
72
72
  "Verifiable Credential"
73
73
  ],
74
74
  "nx": {},
75
- "gitHead": "6585912cbda057506cc459b23285526e53a9bce9"
75
+ "gitHead": "cd321acb679d70af853b7bad5548baa2345a4291"
76
76
  }
@@ -3,15 +3,22 @@ import { SDJwtVcInstance, SdJwtVcPayload } from '@sd-jwt/sd-jwt-vc'
3
3
  import { DisclosureFrame, JwtPayload, KbVerifier, PresentationFrame, Signer, Verifier } from '@sd-jwt/types'
4
4
  import { calculateJwkThumbprint, signatureAlgorithmFromKey } from '@sphereon/ssi-sdk-ext.key-utils'
5
5
  import { X509CertificateChainValidationOpts } from '@sphereon/ssi-sdk-ext.x509-utils'
6
- import { JWK } from '@sphereon/ssi-types'
6
+ import { JWK, SdJwtTypeMetadata } from '@sphereon/ssi-types'
7
7
  import { IAgentPlugin } from '@veramo/core'
8
8
  import { decodeBase64url } from '@veramo/utils'
9
9
  import Debug from 'debug'
10
10
  import { defaultGenerateDigest, defaultGenerateSalt, defaultVerifySignature } from './defaultCallbacks'
11
- import { SdJwtVerifySignature, SignKeyArgs, SignKeyResult } from './index'
12
11
  import { funkeTestCA, sphereonCA } from './trustAnchors'
12
+ import {
13
+ assertValidTypeMetadata,
14
+ fetchUrlWithErrorHandling,
15
+ validateIntegrity
16
+ } from './utils'
13
17
  import {
14
18
  Claims,
19
+ FetchSdJwtTypeMetadataFromVctUrlArgs,
20
+ GetSignerForIdentifierArgs,
21
+ GetSignerResult,
15
22
  ICreateSdJwtPresentationArgs,
16
23
  ICreateSdJwtPresentationResult,
17
24
  ICreateSdJwtVcArgs,
@@ -23,8 +30,10 @@ import {
23
30
  IVerifySdJwtVcArgs,
24
31
  IVerifySdJwtVcResult,
25
32
  SdJWTImplementation,
33
+ SdJwtVerifySignature,
34
+ SignKeyArgs,
35
+ SignKeyResult
26
36
  } from './types'
27
- import { ManagedIdentifierResult } from '@sphereon/ssi-sdk-ext.identifier-resolution'
28
37
 
29
38
  const debug = Debug('@sphereon/ssi-sdk.sd-jwt')
30
39
 
@@ -69,16 +78,11 @@ export class SDJwtPlugin implements IAgentPlugin {
69
78
  createSdJwtPresentation: this.createSdJwtPresentation.bind(this),
70
79
  verifySdJwtVc: this.verifySdJwtVc.bind(this),
71
80
  verifySdJwtPresentation: this.verifySdJwtPresentation.bind(this),
81
+ fetchSdJwtTypeMetadataFromVctUrl: this.fetchSdJwtTypeMetadataFromVctUrl.bind(this),
72
82
  }
73
83
 
74
- private async getSignerForIdentifier(
75
- { identifier, resolution }: { identifier: string; resolution?: ManagedIdentifierResult },
76
- context: IRequiredContext,
77
- ): Promise<{
78
- signer: Signer
79
- alg?: string
80
- signingKey?: SignKeyResult
81
- }> {
84
+ private async getSignerForIdentifier(args: GetSignerForIdentifierArgs, context: IRequiredContext): Promise<GetSignerResult> {
85
+ const { identifier, resolution } = args
82
86
  if (Object.keys(this._signers).includes(identifier) && typeof this._signers[identifier] === 'function') {
83
87
  return { signer: this._signers[identifier] }
84
88
  } else if (typeof this._defaultSigner === 'function') {
@@ -243,28 +247,6 @@ export class SDJwtPlugin implements IAgentPlugin {
243
247
  return this.verifySignatureCallback(context)(data, signature, this.getJwk(payload))
244
248
  }
245
249
 
246
- private getJwk(payload: JwtPayload): JsonWebKey {
247
- if (payload.cnf?.jwk !== undefined) {
248
- return payload.cnf.jwk as JsonWebKey
249
- } else if (payload.cnf !== undefined && 'kid' in payload.cnf && typeof payload.cnf.kid === 'string' && payload.cnf.kid.startsWith('did:jwk:')) {
250
- // extract JWK from kid FIXME isn't there a did function for this already? Otherwise create one
251
- // FIXME this is a quick-fix to make verification but we need a real solution
252
- const encoded = this.extractBase64FromDIDJwk(payload.cnf.kid)
253
- const decoded = decodeBase64url(encoded)
254
- const jwt = JSON.parse(decoded)
255
- return jwt as JsonWebKey
256
- }
257
- throw Error('Unable to extract JWK from SD-JWT payload')
258
- }
259
-
260
- private extractBase64FromDIDJwk(did: string): string {
261
- const parts = did.split(':')
262
- if (parts.length < 3) {
263
- throw new Error('Invalid DID format')
264
- }
265
- return parts[2].split('#')[0]
266
- }
267
-
268
250
  /**
269
251
  * Validates the signature of a SD-JWT
270
252
  * @param sdjwt - SD-JWT instance
@@ -357,6 +339,29 @@ export class SDJwtPlugin implements IAgentPlugin {
357
339
  return sdjwt.verify(args.presentation, args.requiredClaimKeys, args.kb)
358
340
  }
359
341
 
342
+ /**
343
+ * Fetch and validate Type Metadata.
344
+ * @param args - Arguments necessary for fetching and validating the type metadata.
345
+ * @param context - This reserved param is automatically added and handled by the framework, *do not override*
346
+ * @returns
347
+ */
348
+ async fetchSdJwtTypeMetadataFromVctUrl(args: FetchSdJwtTypeMetadataFromVctUrlArgs, context: IRequiredContext): Promise<SdJwtTypeMetadata> {
349
+ const {vct, opts} = args
350
+ const url = new URL(vct)
351
+
352
+ const response = await fetchUrlWithErrorHandling(url.toString())
353
+ const metadata: SdJwtTypeMetadata = await response.json()
354
+ assertValidTypeMetadata(metadata, vct)
355
+
356
+ if (opts?.integrity && opts.hasher) {
357
+ if (!(await validateIntegrity(metadata, opts.integrity, opts.hasher))) {
358
+ throw new Error(`Integrity check failed. vct: ${vct}`)
359
+ }
360
+ }
361
+
362
+ return metadata
363
+ }
364
+
360
365
  private verifySignatureCallback(context: IRequiredContext): SdJwtVerifySignature {
361
366
  if (typeof this.registeredImplementations.verifySignature === 'function') {
362
367
  return this.registeredImplementations.verifySignature
@@ -364,4 +369,27 @@ export class SDJwtPlugin implements IAgentPlugin {
364
369
 
365
370
  return defaultVerifySignature(context)
366
371
  }
372
+
373
+ private getJwk(payload: JwtPayload): JsonWebKey {
374
+ if (payload.cnf?.jwk !== undefined) {
375
+ return payload.cnf.jwk as JsonWebKey
376
+ } else if (payload.cnf !== undefined && 'kid' in payload.cnf && typeof payload.cnf.kid === 'string' && payload.cnf.kid.startsWith('did:jwk:')) {
377
+ // extract JWK from kid FIXME isn't there a did function for this already? Otherwise create one
378
+ // FIXME this is a quick-fix to make verification but we need a real solution
379
+ const encoded = this.extractBase64FromDIDJwk(payload.cnf.kid)
380
+ const decoded = decodeBase64url(encoded)
381
+ const jwt = JSON.parse(decoded)
382
+ return jwt as JsonWebKey
383
+ }
384
+ throw Error('Unable to extract JWK from SD-JWT payload')
385
+ }
386
+
387
+ private extractBase64FromDIDJwk(did: string): string {
388
+ const parts = did.split(':')
389
+ if (parts.length < 3) {
390
+ throw new Error('Invalid DID format')
391
+ }
392
+ return parts[2].split('#')[0]
393
+ }
394
+
367
395
  }
package/src/index.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { SDJwtPlugin } from './action-handler'
2
+ export * from './utils'
2
3
  export * from './types'
package/src/types.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { SdJwtVcPayload as SdJwtPayload } from '@sd-jwt/sd-jwt-vc'
2
- import { Hasher, kbHeader, KBOptions, kbPayload, SaltGenerator } from '@sd-jwt/types'
2
+ import { Hasher, kbHeader, KBOptions, kbPayload, SaltGenerator, Signer } from '@sd-jwt/types'
3
3
  import { IIdentifierResolution, ManagedIdentifierResult } from '@sphereon/ssi-sdk-ext.identifier-resolution'
4
4
  import { IJwtService } from '@sphereon/ssi-sdk-ext.jwt-service'
5
5
  import { X509CertificateChainValidationOpts } from '@sphereon/ssi-sdk-ext.x509-utils'
6
6
  import { contextHasPlugin } from '@sphereon/ssi-sdk.agent-config'
7
7
  import { ImDLMdoc } from '@sphereon/ssi-sdk.mdl-mdoc'
8
- import { JoseSignatureAlgorithm } from '@sphereon/ssi-types'
8
+ import { AsyncHasher, JoseSignatureAlgorithm, SdJwtTypeMetadata } from '@sphereon/ssi-types'
9
9
  import { DIDDocumentSection, IAgentContext, IDIDManager, IKeyManager, IPluginMethodMap, IResolver } from '@veramo/core'
10
10
 
11
11
  export const sdJwtPluginContextMethods: Array<string> = ['createSdJwtVc', 'createSdJwtPresentation', 'verifySdJwtVc', 'verifySdJwtPresentation']
@@ -66,6 +66,13 @@ export interface ISDJwtPlugin extends IPluginMethodMap {
66
66
  * @param context - This reserved param is automatically added and handled by the framework, *do not override*
67
67
  */
68
68
  verifySdJwtPresentation(args: IVerifySdJwtPresentationArgs, context: IRequiredContext): Promise<IVerifySdJwtPresentationResult>
69
+
70
+ /**
71
+ * Fetch and validate Type Metadata.
72
+ * @param args - Arguments necessary for fetching and validating the type metadata.
73
+ * @param context - This reserved param is automatically added and handled by the framework, *do not override*
74
+ */
75
+ fetchSdJwtTypeMetadataFromVctUrl(args: FetchSdJwtTypeMetadataFromVctUrlArgs, context: IRequiredContext): Promise<SdJwtTypeMetadata>
69
76
  }
70
77
 
71
78
  export function contextHasSDJwtPlugin(context: IAgentContext<IPluginMethodMap>): context is IAgentContext<ISDJwtPlugin> {
@@ -242,3 +249,24 @@ export interface Claims {
242
249
 
243
250
  [key: string]: unknown
244
251
  }
252
+
253
+ export type FetchSdJwtTypeMetadataFromVctUrlArgs = {
254
+ vct: string
255
+ opts?: FetchSdJwtTypeMetadataFromVctUrlOpts
256
+ }
257
+
258
+ export type FetchSdJwtTypeMetadataFromVctUrlOpts = {
259
+ hasher?: AsyncHasher
260
+ integrity?: string
261
+ }
262
+
263
+ export type GetSignerForIdentifierArgs = {
264
+ identifier: string
265
+ resolution?: ManagedIdentifierResult
266
+ }
267
+
268
+ export type GetSignerResult = {
269
+ signer: Signer
270
+ alg?: string
271
+ signingKey?: SignKeyResult
272
+ }
package/src/utils.ts ADDED
@@ -0,0 +1,22 @@
1
+ import { AsyncHasher, SdJwtTypeMetadata } from '@sphereon/ssi-types'
2
+ import * as u8a from 'uint8arrays'
3
+
4
+ // Helper function to fetch API with error handling
5
+ export async function fetchUrlWithErrorHandling(url: string): Promise<Response> {
6
+ const response = await fetch(url)
7
+ if (!response.ok) {
8
+ throw new Error(`${response.status}: ${response.statusText}`)
9
+ }
10
+ return response
11
+ }
12
+
13
+ export async function validateIntegrity(input: any, integrityValue: string, hasher: AsyncHasher, alg?: string): Promise<boolean> {
14
+ const hash = await hasher(input, alg ?? 'sha256')
15
+ return u8a.toString(hash, 'utf-8') === integrityValue
16
+ }
17
+
18
+ export function assertValidTypeMetadata(metadata: SdJwtTypeMetadata, vct: string): void {
19
+ if (metadata.vct !== vct) {
20
+ throw new Error('VCT mismatch in metadata and credential')
21
+ }
22
+ }