@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.
- package/dist/action-handler.d.ts +11 -4
- package/dist/action-handler.d.ts.map +1 -1
- package/dist/action-handler.js +48 -24
- package/dist/action-handler.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +25 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +5 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +60 -0
- package/dist/utils.js.map +1 -0
- package/package.json +5 -5
- package/src/action-handler.ts +61 -33
- package/src/index.ts +1 -0
- package/src/types.ts +30 -2
- package/src/utils.ts +22 -0
package/dist/action-handler.d.ts
CHANGED
|
@@ -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 './
|
|
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;
|
|
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"}
|
package/dist/action-handler.js
CHANGED
|
@@ -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(
|
|
54
|
-
return __awaiter(this,
|
|
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
package/dist/index.d.ts.map
CHANGED
|
@@ -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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC7F,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAA;AAC5G,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAA;AAErF,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5F,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEvH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,MAAM,CAA4F,CAAA;AAEhJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD;;;;;;;OAOG;IACH;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAEjG;;;;OAIG;IACH,uBAAuB,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAA;IAE/H;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAEjG;;;;OAIG;IACH,uBAAuB,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAA;IAE/H;;;;OAIG;IACH,gCAAgC,CAAC,IAAI,EAAE,oCAAoC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;CACpI;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC,CAEtH;AAED;;;;GAIG;AAEH,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,cAAc,CAAA;IAGjC,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAElC,UAAU,CAAC,EAAE,uBAAuB,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAA;CAC9D;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAOpB,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;IAEtC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,EAAE,CAAC,EAAE,SAAS,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,kBAAkB,CAAA;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE;QACL,aAAa,CAAC,EAAE,kCAAkC,CAAA;KACnD,CAAA;CACF;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,EAAE,CAAC,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,CAAA;CAC9C,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAA;IAEpB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE5B,EAAE,CAAC,EAAE,OAAO,CAAA;CACb;AAED;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC3C,EAAE,CAAC,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,CAAA;CAC9C,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,kBAAkB,CAAA;IAClC,UAAU,CAAC,EAAE,uBAAuB,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,sBAAsB,CAAA;IAC3B,GAAG,EAAE;QACH,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,SAAS,EAAE,MAAM,CAAA;QACjB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;QACd,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,CAAA;CACF,CAAA;AACD;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,WAAW,GAAG,qBAAqB,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAA;AAEpI,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAC/G,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,oBAAoB,CAAA;CACvC;AAED,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE;QACJ,GAAG,CAAC,EAAE,UAAU,CAAA;QAChB,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;IAED,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,oCAAoC,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,uBAAuB,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,aAAa,CAAA;CAC3B,CAAA"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -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.
|
|
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.
|
|
25
|
-
"@sphereon/ssi-sdk.mdl-mdoc": "0.32.
|
|
26
|
-
"@sphereon/ssi-types": "0.32.
|
|
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": "
|
|
75
|
+
"gitHead": "cd321acb679d70af853b7bad5548baa2345a4291"
|
|
76
76
|
}
|
package/src/action-handler.ts
CHANGED
|
@@ -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 }
|
|
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
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
|
+
}
|