@credo-ts/core 0.6.0-pr-2209-20250321171013 → 0.6.0-pr-2195-20250321180923
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/build/agent/AgentModules.d.ts +2 -0
- package/build/agent/AgentModules.js +2 -0
- package/build/agent/AgentModules.js.map +1 -1
- package/build/crypto/JwsService.js +1 -1
- package/build/crypto/JwsService.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/modules/dcql/DcqlError.d.ts +8 -0
- package/build/modules/dcql/DcqlError.js +12 -0
- package/build/modules/dcql/DcqlError.js.map +1 -0
- package/build/modules/dcql/DcqlModule.d.ts +10 -0
- package/build/modules/dcql/DcqlModule.js +23 -0
- package/build/modules/dcql/DcqlModule.js.map +1 -0
- package/build/modules/dcql/DcqlService.d.ts +336 -0
- package/build/modules/dcql/DcqlService.js +327 -0
- package/build/modules/dcql/DcqlService.js.map +1 -0
- package/build/modules/dcql/index.d.ts +5 -0
- package/build/modules/dcql/index.js +22 -0
- package/build/modules/dcql/index.js.map +1 -0
- package/build/modules/dcql/models/DcqlCredentialsForRequest.d.ts +25 -0
- package/build/modules/dcql/models/DcqlCredentialsForRequest.js +3 -0
- package/build/modules/dcql/models/DcqlCredentialsForRequest.js.map +1 -0
- package/build/modules/dcql/models/index.d.ts +32 -0
- package/build/modules/dcql/models/index.js +18 -0
- package/build/modules/dcql/models/index.js.map +1 -0
- package/build/modules/dcql/utils/DcqlPresentationsToCreate.d.ts +36 -0
- package/build/modules/dcql/utils/DcqlPresentationsToCreate.js +36 -0
- package/build/modules/dcql/utils/DcqlPresentationsToCreate.js.map +1 -0
- package/build/modules/dcql/utils/index.d.ts +1 -0
- package/build/modules/dcql/utils/index.js +18 -0
- package/build/modules/dcql/utils/index.js.map +1 -0
- package/build/modules/dif-presentation-exchange/DifPresentationExchangeService.d.ts +6 -4
- package/build/modules/dif-presentation-exchange/DifPresentationExchangeService.js +10 -5
- package/build/modules/dif-presentation-exchange/DifPresentationExchangeService.js.map +1 -1
- package/build/modules/dif-presentation-exchange/models/DifPexCredentialsForRequest.d.ts +11 -5
- package/build/modules/dif-presentation-exchange/models/index.d.ts +1 -1
- package/build/modules/dif-presentation-exchange/models/index.js.map +1 -1
- package/build/modules/dif-presentation-exchange/utils/credentialSelection.js +5 -5
- package/build/modules/dif-presentation-exchange/utils/credentialSelection.js.map +1 -1
- package/build/modules/dif-presentation-exchange/utils/presentationSelection.d.ts +4 -4
- package/build/modules/dif-presentation-exchange/utils/presentationSelection.js +3 -3
- package/build/modules/dif-presentation-exchange/utils/presentationSelection.js.map +1 -1
- package/build/modules/dif-presentation-exchange/utils/presentationsToCreate.d.ts +6 -1
- package/build/modules/dif-presentation-exchange/utils/presentationsToCreate.js +31 -20
- package/build/modules/dif-presentation-exchange/utils/presentationsToCreate.js.map +1 -1
- package/build/modules/dif-presentation-exchange/utils/transform.d.ts +5 -3
- package/build/modules/dif-presentation-exchange/utils/transform.js +2 -15
- package/build/modules/dif-presentation-exchange/utils/transform.js.map +1 -1
- package/build/modules/mdoc/Mdoc.d.ts +15 -1
- package/build/modules/mdoc/Mdoc.js +23 -1
- package/build/modules/mdoc/Mdoc.js.map +1 -1
- package/build/modules/mdoc/MdocDeviceResponse.d.ts +13 -2
- package/build/modules/mdoc/MdocDeviceResponse.js +60 -11
- package/build/modules/mdoc/MdocDeviceResponse.js.map +1 -1
- package/build/modules/mdoc/MdocOptions.d.ts +26 -9
- package/build/modules/mdoc/MdocOptions.js +3 -0
- package/build/modules/mdoc/MdocOptions.js.map +1 -1
- package/build/modules/mdoc/MdocService.d.ts +3 -2
- package/build/modules/mdoc/MdocService.js +2 -2
- package/build/modules/mdoc/MdocService.js.map +1 -1
- package/build/modules/mdoc/mdocUtil.d.ts +2 -0
- package/build/modules/mdoc/mdocUtil.js +11 -0
- package/build/modules/mdoc/mdocUtil.js.map +1 -0
- package/build/modules/mdoc/repository/MdocRecord.d.ts +8 -0
- package/build/modules/mdoc/repository/MdocRecord.js +12 -0
- package/build/modules/mdoc/repository/MdocRecord.js.map +1 -1
- package/build/modules/sd-jwt-vc/SdJwtVcApi.d.ts +2 -0
- package/build/modules/sd-jwt-vc/SdJwtVcOptions.d.ts +4 -0
- package/build/modules/sd-jwt-vc/SdJwtVcService.d.ts +18 -1
- package/build/modules/sd-jwt-vc/SdJwtVcService.js +36 -1
- package/build/modules/sd-jwt-vc/SdJwtVcService.js.map +1 -1
- package/build/modules/sd-jwt-vc/decodeSdJwtVc.d.ts +2 -7
- package/build/modules/sd-jwt-vc/decodeSdJwtVc.js +11 -2
- package/build/modules/sd-jwt-vc/decodeSdJwtVc.js.map +1 -1
- package/build/modules/sd-jwt-vc/disclosureFrame.d.ts +6 -0
- package/build/modules/sd-jwt-vc/disclosureFrame.js +19 -0
- package/build/modules/sd-jwt-vc/disclosureFrame.js.map +1 -0
- package/build/modules/sd-jwt-vc/repository/SdJwtVcRecord.d.ts +8 -0
- package/build/modules/sd-jwt-vc/repository/SdJwtVcRecord.js +12 -0
- package/build/modules/sd-jwt-vc/repository/SdJwtVcRecord.js.map +1 -1
- package/build/modules/vc/jwt-vc/W3cJwtVerifiablePresentation.d.ts +1 -1
- package/build/modules/vc/repository/W3cCredentialRecord.d.ts +4 -0
- package/build/modules/vc/repository/W3cCredentialRecord.js +6 -0
- package/build/modules/vc/repository/W3cCredentialRecord.js.map +1 -1
- package/build/utils/domain.js +1 -1
- package/build/utils/domain.js.map +1 -1
- package/build/wallet/Wallet.d.ts +1 -1
- package/package.json +7 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mdoc.js","sourceRoot":"","sources":["../../../src/modules/mdoc/Mdoc.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Mdoc.js","sourceRoot":"","sources":["../../../src/modules/mdoc/Mdoc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import type { InputDescriptorV2 } from '@sphereon/pex-models';
|
|
2
2
|
import type { AgentContext } from '../../agent';
|
|
3
3
|
import type { DifPresentationExchangeDefinition } from '../dif-presentation-exchange';
|
|
4
|
-
import type {
|
|
4
|
+
import type { MdocDeviceResponseOptions, MdocDeviceResponsePresentationDefinitionOptions, MdocDeviceResponseVerifyOptions } from './MdocOptions';
|
|
5
|
+
import { ClaimFormat } from '../vc';
|
|
5
6
|
import { Mdoc } from './Mdoc';
|
|
6
7
|
export declare class MdocDeviceResponse {
|
|
7
8
|
base64Url: string;
|
|
8
9
|
documents: Mdoc[];
|
|
9
10
|
private constructor();
|
|
11
|
+
/**
|
|
12
|
+
* claim format is convenience method added to all credential instances
|
|
13
|
+
*/
|
|
14
|
+
get claimFormat(): ClaimFormat.MsoMdoc;
|
|
15
|
+
/**
|
|
16
|
+
* Encoded is convenience method added to all credential instances
|
|
17
|
+
*/
|
|
18
|
+
get encoded(): string;
|
|
10
19
|
static fromBase64Url(base64Url: string): MdocDeviceResponse;
|
|
11
20
|
private static assertMdocInputDescriptor;
|
|
12
21
|
static partitionPresentationDefinition: (pd: DifPresentationExchangeDefinition) => {
|
|
@@ -93,7 +102,7 @@ export declare class MdocDeviceResponse {
|
|
|
93
102
|
[k: string]: unknown;
|
|
94
103
|
};
|
|
95
104
|
};
|
|
96
|
-
static
|
|
105
|
+
static createPresentationDefinitionDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponsePresentationDefinitionOptions): Promise<{
|
|
97
106
|
deviceResponseBase64Url: string;
|
|
98
107
|
presentationSubmission: {
|
|
99
108
|
id: string;
|
|
@@ -107,5 +116,7 @@ export declare class MdocDeviceResponse {
|
|
|
107
116
|
}>;
|
|
108
117
|
static createDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseOptions): Promise<Uint8Array>;
|
|
109
118
|
verify(agentContext: AgentContext, options: Omit<MdocDeviceResponseVerifyOptions, 'deviceResponse'>): Promise<Mdoc[]>;
|
|
119
|
+
private static getSessionTranscriptBytesForOptions;
|
|
120
|
+
private static usingSessionTranscript;
|
|
110
121
|
private static getAlgForDeviceKeyJwk;
|
|
111
122
|
}
|
|
@@ -4,16 +4,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.MdocDeviceResponse = void 0;
|
|
5
5
|
const mdoc_1 = require("@animo-id/mdoc");
|
|
6
6
|
const uuid_1 = require("../../utils/uuid");
|
|
7
|
+
const vc_1 = require("../vc");
|
|
7
8
|
const utils_1 = require("./../../utils");
|
|
8
9
|
const Mdoc_1 = require("./Mdoc");
|
|
9
10
|
const MdocContext_1 = require("./MdocContext");
|
|
10
11
|
const MdocError_1 = require("./MdocError");
|
|
11
12
|
const mdocSupportedAlgs_1 = require("./mdocSupportedAlgs");
|
|
13
|
+
const mdocUtil_1 = require("./mdocUtil");
|
|
12
14
|
class MdocDeviceResponse {
|
|
13
15
|
constructor(base64Url, documents) {
|
|
14
16
|
this.base64Url = base64Url;
|
|
15
17
|
this.documents = documents;
|
|
16
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* claim format is convenience method added to all credential instances
|
|
21
|
+
*/
|
|
22
|
+
get claimFormat() {
|
|
23
|
+
return vc_1.ClaimFormat.MsoMdoc;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Encoded is convenience method added to all credential instances
|
|
27
|
+
*/
|
|
28
|
+
get encoded() {
|
|
29
|
+
return this.base64Url;
|
|
30
|
+
}
|
|
17
31
|
static fromBase64Url(base64Url) {
|
|
18
32
|
const parsed = (0, mdoc_1.parseDeviceResponse)(utils_1.TypedArrayEncoder.fromBase64(base64Url));
|
|
19
33
|
if (parsed.status !== mdoc_1.MDocStatus.OK) {
|
|
@@ -88,8 +102,7 @@ class MdocDeviceResponse {
|
|
|
88
102
|
}));
|
|
89
103
|
return disclosedPayloadAsRecord;
|
|
90
104
|
}
|
|
91
|
-
static async
|
|
92
|
-
const { sessionTranscriptOptions } = options;
|
|
105
|
+
static async createPresentationDefinitionDeviceResponse(agentContext, options) {
|
|
93
106
|
const presentationDefinition = _a.partitionPresentationDefinition(options.presentationDefinition).mdocPresentationDefinition;
|
|
94
107
|
const docTypes = options.mdocs.map((i) => i.docType);
|
|
95
108
|
const combinedDeviceResponseMdoc = new mdoc_1.MDoc();
|
|
@@ -106,11 +119,12 @@ class MdocDeviceResponse {
|
|
|
106
119
|
const issuerSignedDocument = (0, mdoc_1.parseIssuerSigned)(utils_1.TypedArrayEncoder.fromBase64(document.base64Url), document.docType);
|
|
107
120
|
const deviceResponseBuilder = mdoc_1.DeviceResponse.from(new mdoc_1.MDoc([issuerSignedDocument]))
|
|
108
121
|
.usingPresentationDefinition(presentationDefinitionForDocument)
|
|
109
|
-
.usingSessionTranscriptForOID4VP(sessionTranscriptOptions)
|
|
122
|
+
// .usingSessionTranscriptForOID4VP(sessionTranscriptOptions)
|
|
110
123
|
.authenticateWithSignature(deviceKeyJwk.toJson(), alg);
|
|
111
124
|
for (const [nameSpace, nameSpaceValue] of Object.entries(options.deviceNameSpaces ?? {})) {
|
|
112
125
|
deviceResponseBuilder.addDeviceNameSpace(nameSpace, nameSpaceValue);
|
|
113
126
|
}
|
|
127
|
+
_a.usingSessionTranscript(deviceResponseBuilder, options.sessionTranscriptOptions);
|
|
114
128
|
const deviceResponseMdoc = await deviceResponseBuilder.sign((0, MdocContext_1.getMdocContext)(agentContext));
|
|
115
129
|
combinedDeviceResponseMdoc.addDocument(deviceResponseMdoc.documents[0]);
|
|
116
130
|
}
|
|
@@ -129,15 +143,23 @@ class MdocDeviceResponse {
|
|
|
129
143
|
const combinedDeviceResponseMdoc = new mdoc_1.MDoc();
|
|
130
144
|
for (const document of options.mdocs) {
|
|
131
145
|
const deviceKeyJwk = document.deviceKeyJwk;
|
|
146
|
+
document.deviceKey;
|
|
132
147
|
if (!deviceKeyJwk)
|
|
133
148
|
throw new MdocError_1.MdocError(`Device key is missing in mdoc with doctype ${document.docType}`);
|
|
134
149
|
const alg = _a.getAlgForDeviceKeyJwk(deviceKeyJwk);
|
|
135
150
|
const issuerSignedDocument = (0, mdoc_1.parseIssuerSigned)(utils_1.TypedArrayEncoder.fromBase64(document.base64Url), document.docType);
|
|
136
|
-
const deviceRequestForDocument =
|
|
151
|
+
const deviceRequestForDocument = mdoc_1.DeviceRequest.from('1.0', options.documentRequests
|
|
152
|
+
.filter((request) => request.docType === issuerSignedDocument.docType)
|
|
153
|
+
.map((request) => ({
|
|
154
|
+
itemsRequestData: {
|
|
155
|
+
docType: request.docType,
|
|
156
|
+
nameSpaces: (0, mdocUtil_1.nameSpacesRecordToMap)(request.nameSpaces),
|
|
157
|
+
},
|
|
158
|
+
})));
|
|
137
159
|
const deviceResponseBuilder = mdoc_1.DeviceResponse.from(new mdoc_1.MDoc([issuerSignedDocument]))
|
|
138
|
-
.
|
|
139
|
-
.usingDeviceRequest(deviceRequestForDocument)
|
|
140
|
-
|
|
160
|
+
.authenticateWithSignature(deviceKeyJwk.toJson(), alg)
|
|
161
|
+
.usingDeviceRequest(deviceRequestForDocument);
|
|
162
|
+
_a.usingSessionTranscript(deviceResponseBuilder, options.sessionTranscriptOptions);
|
|
141
163
|
for (const [nameSpace, nameSpaceValue] of Object.entries(options.deviceNameSpaces ?? {})) {
|
|
142
164
|
deviceResponseBuilder.addDeviceNameSpace(nameSpace, nameSpaceValue);
|
|
143
165
|
}
|
|
@@ -176,10 +198,7 @@ class MdocDeviceResponse {
|
|
|
176
198
|
continue;
|
|
177
199
|
}
|
|
178
200
|
await verifier.verifyDeviceSignature({
|
|
179
|
-
sessionTranscriptBytes: await
|
|
180
|
-
...options.sessionTranscriptOptions,
|
|
181
|
-
context: mdocContext,
|
|
182
|
-
}),
|
|
201
|
+
sessionTranscriptBytes: await _a.getSessionTranscriptBytesForOptions(mdocContext, options.sessionTranscriptOptions),
|
|
183
202
|
deviceSigned: rawDocument,
|
|
184
203
|
}, mdocContext);
|
|
185
204
|
}
|
|
@@ -191,6 +210,36 @@ class MdocDeviceResponse {
|
|
|
191
210
|
}
|
|
192
211
|
return this.documents;
|
|
193
212
|
}
|
|
213
|
+
static async getSessionTranscriptBytesForOptions(context, options) {
|
|
214
|
+
if (options.type === 'sesionTranscriptBytes') {
|
|
215
|
+
return options.sessionTranscriptBytes;
|
|
216
|
+
}
|
|
217
|
+
if (options.type === 'openId4Vp') {
|
|
218
|
+
return await mdoc_1.DeviceResponse.calculateSessionTranscriptBytesForOID4VP({
|
|
219
|
+
...options,
|
|
220
|
+
context,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
if (options.type === 'openId4VpDcApi') {
|
|
224
|
+
return await mdoc_1.DeviceResponse.calculateSessionTranscriptBytesForOID4VPDCApi({
|
|
225
|
+
...options,
|
|
226
|
+
context,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
throw new MdocError_1.MdocError('Unsupported session transcript option');
|
|
230
|
+
}
|
|
231
|
+
static usingSessionTranscript(deviceResponse, options) {
|
|
232
|
+
if (options.type === 'sesionTranscriptBytes') {
|
|
233
|
+
return deviceResponse.usingSessionTranscriptBytes(options.sessionTranscriptBytes);
|
|
234
|
+
}
|
|
235
|
+
if (options.type === 'openId4Vp') {
|
|
236
|
+
return deviceResponse.usingSessionTranscriptForOID4VP(options);
|
|
237
|
+
}
|
|
238
|
+
if (options.type === 'openId4VpDcApi') {
|
|
239
|
+
return deviceResponse.usingSessionTranscriptForForOID4VPDCApi(options);
|
|
240
|
+
}
|
|
241
|
+
throw new MdocError_1.MdocError('Unsupported session transcript option');
|
|
242
|
+
}
|
|
194
243
|
static getAlgForDeviceKeyJwk(jwk) {
|
|
195
244
|
const signatureAlgorithm = jwk.supportedSignatureAlgorithms.find(mdocSupportedAlgs_1.isMdocSupportedSignatureAlgorithm);
|
|
196
245
|
if (!signatureAlgorithm) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdocDeviceResponse.js","sourceRoot":"","sources":["../../../src/modules/mdoc/MdocDeviceResponse.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"MdocDeviceResponse.js","sourceRoot":"","sources":["../../../src/modules/mdoc/MdocDeviceResponse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,51 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ValidityInfo } from '@animo-id/mdoc';
|
|
2
2
|
import type { Key } from '../../crypto/Key';
|
|
3
3
|
import type { DifPresentationExchangeDefinition } from '../dif-presentation-exchange';
|
|
4
4
|
import type { EncodedX509Certificate } from '../x509';
|
|
5
|
-
import
|
|
5
|
+
import { Mdoc } from './Mdoc';
|
|
6
|
+
export { DateOnly } from '@animo-id/mdoc';
|
|
6
7
|
export type MdocNameSpaces = Record<string, Record<string, unknown>>;
|
|
7
8
|
export type MdocVerifyOptions = {
|
|
8
9
|
trustedCertificates?: EncodedX509Certificate[];
|
|
9
10
|
now?: Date;
|
|
10
11
|
};
|
|
11
12
|
export type MdocOpenId4VpSessionTranscriptOptions = {
|
|
13
|
+
type: 'openId4Vp';
|
|
12
14
|
responseUri: string;
|
|
13
15
|
clientId: string;
|
|
14
16
|
verifierGeneratedNonce: string;
|
|
15
17
|
mdocGeneratedNonce: string;
|
|
16
18
|
};
|
|
17
|
-
export type
|
|
19
|
+
export type MdocSessionTranscriptByteOptions = {
|
|
20
|
+
type: 'sesionTranscriptBytes';
|
|
21
|
+
sessionTranscriptBytes: Uint8Array;
|
|
22
|
+
};
|
|
23
|
+
export type MdocOpenId4VpDcApiSessionTranscriptOptions = {
|
|
24
|
+
type: 'openId4VpDcApi';
|
|
25
|
+
clientId: string;
|
|
26
|
+
origin: string;
|
|
27
|
+
verifierGeneratedNonce: string;
|
|
28
|
+
};
|
|
29
|
+
export type MdocSessionTranscriptOptions = MdocOpenId4VpSessionTranscriptOptions | MdocSessionTranscriptByteOptions | MdocOpenId4VpDcApiSessionTranscriptOptions;
|
|
30
|
+
export type MdocDocumentRequest = {
|
|
31
|
+
docType: string;
|
|
32
|
+
nameSpaces: Record<string, Record<string, boolean>>;
|
|
33
|
+
};
|
|
34
|
+
export type MdocDeviceResponseOptions = {
|
|
18
35
|
mdocs: [Mdoc, ...Mdoc[]];
|
|
19
|
-
|
|
36
|
+
documentRequests: MdocDocumentRequest[];
|
|
20
37
|
deviceNameSpaces?: MdocNameSpaces;
|
|
21
|
-
sessionTranscriptOptions:
|
|
38
|
+
sessionTranscriptOptions: MdocSessionTranscriptOptions;
|
|
22
39
|
};
|
|
23
|
-
export type
|
|
40
|
+
export type MdocDeviceResponsePresentationDefinitionOptions = {
|
|
24
41
|
mdocs: [Mdoc, ...Mdoc[]];
|
|
25
|
-
|
|
42
|
+
presentationDefinition: DifPresentationExchangeDefinition;
|
|
26
43
|
deviceNameSpaces?: MdocNameSpaces;
|
|
27
|
-
|
|
44
|
+
sessionTranscriptOptions: MdocSessionTranscriptOptions;
|
|
28
45
|
};
|
|
29
46
|
export type MdocDeviceResponseVerifyOptions = {
|
|
30
47
|
trustedCertificates?: EncodedX509Certificate[];
|
|
31
|
-
sessionTranscriptOptions:
|
|
48
|
+
sessionTranscriptOptions: MdocSessionTranscriptOptions;
|
|
32
49
|
/**
|
|
33
50
|
* The base64Url-encoded device response string.
|
|
34
51
|
*/
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateOnly = void 0;
|
|
4
|
+
var mdoc_1 = require("@animo-id/mdoc");
|
|
5
|
+
Object.defineProperty(exports, "DateOnly", { enumerable: true, get: function () { return mdoc_1.DateOnly; } });
|
|
3
6
|
//# sourceMappingURL=MdocOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdocOptions.js","sourceRoot":"","sources":["../../../src/modules/mdoc/MdocOptions.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"MdocOptions.js","sourceRoot":"","sources":["../../../src/modules/mdoc/MdocOptions.ts"],"names":[],"mappings":";;;AAMA,uCAAyC;AAAhC,gGAAA,QAAQ,OAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Query, QueryOptions } from '../../storage/StorageService';
|
|
2
|
-
import type {
|
|
2
|
+
import type { MdocDeviceResponsePresentationDefinitionOptions } from './MdocOptions';
|
|
3
|
+
import type { MdocDeviceResponseOptions, MdocDeviceResponseVerifyOptions, MdocSignOptions, MdocVerifyOptions } from './MdocOptions';
|
|
3
4
|
import { AgentContext } from '../../agent';
|
|
4
5
|
import { Mdoc } from './Mdoc';
|
|
5
6
|
import { MdocRecord, MdocRepository } from './repository';
|
|
@@ -18,7 +19,7 @@ export declare class MdocService {
|
|
|
18
19
|
error: string;
|
|
19
20
|
}>;
|
|
20
21
|
createDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseOptions): Promise<Uint8Array>;
|
|
21
|
-
|
|
22
|
+
createPresentationDefinitionDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponsePresentationDefinitionOptions): Promise<{
|
|
22
23
|
deviceResponseBase64Url: string;
|
|
23
24
|
presentationSubmission: {
|
|
24
25
|
id: string;
|
|
@@ -33,8 +33,8 @@ let MdocService = class MdocService {
|
|
|
33
33
|
async createDeviceResponse(agentContext, options) {
|
|
34
34
|
return MdocDeviceResponse_1.MdocDeviceResponse.createDeviceResponse(agentContext, options);
|
|
35
35
|
}
|
|
36
|
-
async
|
|
37
|
-
return MdocDeviceResponse_1.MdocDeviceResponse.
|
|
36
|
+
async createPresentationDefinitionDeviceResponse(agentContext, options) {
|
|
37
|
+
return MdocDeviceResponse_1.MdocDeviceResponse.createPresentationDefinitionDeviceResponse(agentContext, options);
|
|
38
38
|
}
|
|
39
39
|
async verifyDeviceResponse(agentContext, options) {
|
|
40
40
|
const deviceResponse = MdocDeviceResponse_1.MdocDeviceResponse.fromBase64Url(options.deviceResponse);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdocService.js","sourceRoot":"","sources":["../../../src/modules/mdoc/MdocService.ts"],"names":[],"mappings":";;;;;;;;;;;;AASA,uCAAqC;AAIrC,iCAA6B;AAC7B,6DAAyD;AACzD,6CAAyD;AAEzD;;GAEG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGtB,YAAmB,cAA8B;QAC/C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACtC,CAAC;IAEM,iBAAiB,CAAC,cAAsB;QAC7C,OAAO,WAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IAC3C,CAAC;IAEM,QAAQ,CAAC,YAA0B,EAAE,OAAwB;QAClE,OAAO,WAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,YAA0B,EAAE,IAAU,EAAE,OAA0B;QACxF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,YAA0B,EAAE,OAAkC;QAC9F,OAAO,uCAAkB,CAAC,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACvE,CAAC;IAEM,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"MdocService.js","sourceRoot":"","sources":["../../../src/modules/mdoc/MdocService.ts"],"names":[],"mappings":";;;;;;;;;;;;AASA,uCAAqC;AAIrC,iCAA6B;AAC7B,6DAAyD;AACzD,6CAAyD;AAEzD;;GAEG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGtB,YAAmB,cAA8B;QAC/C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACtC,CAAC;IAEM,iBAAiB,CAAC,cAAsB;QAC7C,OAAO,WAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IAC3C,CAAC;IAEM,QAAQ,CAAC,YAA0B,EAAE,OAAwB;QAClE,OAAO,WAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,YAA0B,EAAE,IAAU,EAAE,OAA0B;QACxF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,YAA0B,EAAE,OAAkC;QAC9F,OAAO,uCAAkB,CAAC,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACvE,CAAC;IAEM,KAAK,CAAC,0CAA0C,CACrD,YAA0B,EAC1B,OAAwD;QAExD,OAAO,uCAAkB,CAAC,0CAA0C,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC7F,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,YAA0B,EAAE,OAAwC;QACpG,MAAM,cAAc,GAAG,uCAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC/E,OAAO,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,YAA0B,EAAE,IAAU;QACvD,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;QAExD,OAAO,UAAU,CAAA;IACnB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,YAA0B,EAAE,EAAU;QACzD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC5D,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,YAA0B;QAC5C,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACvD,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,YAA0B,EAC1B,KAAwB,EACxB,YAA2B;QAE3B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;IACjF,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,YAA0B,EAAE,EAAU;QAC5D,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,YAA0B,EAAE,UAAsB;QACpE,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC5D,CAAC;CACF,CAAA;AAjEY,kCAAW;sBAAX,WAAW;IADvB,IAAA,qBAAU,GAAE;qCAIwB,2BAAc;GAHtC,WAAW,CAiEvB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare function nameSpacesRecordToMap<NamespaceValue, NameSpaces extends Record<string, Record<string, NamespaceValue>>>(nameSpaces: NameSpaces): Map<string, Map<string, NamespaceValue>>;
|
|
2
|
+
export declare function namespacesMapToRecord<NamespaceValue, NameSpaces extends Map<string, Map<string, NamespaceValue>>>(nameSpaces: NameSpaces): Record<string, Record<string, NamespaceValue>>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nameSpacesRecordToMap = nameSpacesRecordToMap;
|
|
4
|
+
exports.namespacesMapToRecord = namespacesMapToRecord;
|
|
5
|
+
function nameSpacesRecordToMap(nameSpaces) {
|
|
6
|
+
return new Map(Object.entries(nameSpaces).map(([key, value]) => [key, new Map(Object.entries(value))]));
|
|
7
|
+
}
|
|
8
|
+
function namespacesMapToRecord(nameSpaces) {
|
|
9
|
+
return Object.fromEntries(Array.from(nameSpaces.entries()).map(([key, value]) => [key, Object.fromEntries(Array.from(value.entries()))]));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=mdocUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdocUtil.js","sourceRoot":"","sources":["../../../src/modules/mdoc/mdocUtil.ts"],"names":[],"mappings":";;AAAA,sDAMC;AAED,sDAQC;AAhBD,SAAgB,qBAAqB,CAInC,UAAsB;IACtB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAU,CAAC,CAAC,CAAA;AAClH,CAAC;AAED,SAAgB,qBAAqB,CAInC,UAAsB;IACtB,OAAO,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAC/G,CAAA;AACH,CAAC"}
|
|
@@ -26,4 +26,12 @@ export declare class MdocRecord extends BaseRecord<DefaultMdocRecordTags> {
|
|
|
26
26
|
alg: JwaSignatureAlgorithm;
|
|
27
27
|
};
|
|
28
28
|
clone(): this;
|
|
29
|
+
/**
|
|
30
|
+
* credential is convenience method added to all credential records
|
|
31
|
+
*/
|
|
32
|
+
get credential(): Mdoc;
|
|
33
|
+
/**
|
|
34
|
+
* encoded is convenience method added to all credential records
|
|
35
|
+
*/
|
|
36
|
+
get encoded(): string;
|
|
29
37
|
}
|
|
@@ -29,6 +29,18 @@ class MdocRecord extends BaseRecord_1.BaseRecord {
|
|
|
29
29
|
clone() {
|
|
30
30
|
return utils_1.JsonTransformer.fromJSON(utils_1.JsonTransformer.toJSON(this), this.constructor);
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* credential is convenience method added to all credential records
|
|
34
|
+
*/
|
|
35
|
+
get credential() {
|
|
36
|
+
return Mdoc_1.Mdoc.fromBase64Url(this.base64Url);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* encoded is convenience method added to all credential records
|
|
40
|
+
*/
|
|
41
|
+
get encoded() {
|
|
42
|
+
return this.base64Url;
|
|
43
|
+
}
|
|
32
44
|
}
|
|
33
45
|
exports.MdocRecord = MdocRecord;
|
|
34
46
|
MdocRecord.type = 'MdocRecord';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdocRecord.js","sourceRoot":"","sources":["../../../../src/modules/mdoc/repository/MdocRecord.ts"],"names":[],"mappings":";;;AAIA,4DAAwD;AACxD,0CAAgD;AAChD,8CAA0C;AAC1C,kCAA8B;AAmB9B,MAAa,UAAW,SAAQ,uBAAiC;IAK/D,YAAmB,KAA6B;QAC9C,KAAK,EAAE,CAAA;QAJO,SAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAMpC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,IAAA,WAAI,GAAE,CAAA;YAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAA;YAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAA;YACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;QAC/B,CAAC;IACH,CAAC;IAEM,OAAO;QACZ,MAAM,IAAI,GAAG,WAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QAEpB,OAAO;YACL,GAAG,IAAI,CAAC,KAAK;YACb,OAAO;YACP,GAAG;SACJ,CAAA;IACH,CAAC;IAEM,KAAK;QACV,OAAO,uBAAe,CAAC,QAAQ,CAAC,uBAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAkC,CAAC,CAAA;IACxG,CAAC;;
|
|
1
|
+
{"version":3,"file":"MdocRecord.js","sourceRoot":"","sources":["../../../../src/modules/mdoc/repository/MdocRecord.ts"],"names":[],"mappings":";;;AAIA,4DAAwD;AACxD,0CAAgD;AAChD,8CAA0C;AAC1C,kCAA8B;AAmB9B,MAAa,UAAW,SAAQ,uBAAiC;IAK/D,YAAmB,KAA6B;QAC9C,KAAK,EAAE,CAAA;QAJO,SAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAMpC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,IAAA,WAAI,GAAE,CAAA;YAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAA;YAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAA;YACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;QAC/B,CAAC;IACH,CAAC;IAEM,OAAO;QACZ,MAAM,IAAI,GAAG,WAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QAEpB,OAAO;YACL,GAAG,IAAI,CAAC,KAAK;YACb,OAAO;YACP,GAAG;SACJ,CAAA;IACH,CAAC;IAEM,KAAK;QACV,OAAO,uBAAe,CAAC,QAAQ,CAAC,uBAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAkC,CAAC,CAAA;IACxG,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,WAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;;AA5CH,gCA6CC;AA5CwB,eAAI,GAAG,YAAY,AAAf,CAAe"}
|
|
@@ -71,6 +71,10 @@ export type SdJwtVcPresentOptions<_Payload extends SdJwtVcPayload = SdJwtVcPaylo
|
|
|
71
71
|
nonce: string;
|
|
72
72
|
issuedAt: number;
|
|
73
73
|
};
|
|
74
|
+
/**
|
|
75
|
+
* Additional payload to include in the KB JWT
|
|
76
|
+
*/
|
|
77
|
+
additionalPayload?: Record<string, unknown>;
|
|
74
78
|
};
|
|
75
79
|
export type SdJwtVcVerifyOptions = {
|
|
76
80
|
compactSdJwtVc: string;
|
|
@@ -2,13 +2,27 @@ import type { JwkJson } from '../../crypto';
|
|
|
2
2
|
import type { Query, QueryOptions } from '../../storage/StorageService';
|
|
3
3
|
import type { SdJwtVcHeader, SdJwtVcPayload, SdJwtVcPresentOptions, SdJwtVcSignOptions, SdJwtVcVerifyOptions } from './SdJwtVcOptions';
|
|
4
4
|
import { AgentContext } from '../../agent';
|
|
5
|
+
import { JsonObject } from '../../types';
|
|
6
|
+
import { ClaimFormat } from '../vc/index';
|
|
5
7
|
import { SdJwtVcRecord, SdJwtVcRepository } from './repository';
|
|
6
8
|
import { SdJwtVcTypeMetadata } from './typeMetadata';
|
|
7
9
|
export interface SdJwtVc<Header extends SdJwtVcHeader = SdJwtVcHeader, Payload extends SdJwtVcPayload = SdJwtVcPayload> {
|
|
10
|
+
/**
|
|
11
|
+
* claim format is convenience method added to all credential instances
|
|
12
|
+
*/
|
|
13
|
+
claimFormat: ClaimFormat.SdJwtVc;
|
|
14
|
+
/**
|
|
15
|
+
* encoded is convenience method added to all credential instances
|
|
16
|
+
*/
|
|
17
|
+
encoded: string;
|
|
8
18
|
compact: string;
|
|
9
19
|
header: Header;
|
|
10
20
|
payload: Payload;
|
|
11
21
|
prettyClaims: Payload;
|
|
22
|
+
kbJwt?: {
|
|
23
|
+
header: Record<string, unknown>;
|
|
24
|
+
payload: Record<string, unknown>;
|
|
25
|
+
};
|
|
12
26
|
typeMetadata?: SdJwtVcTypeMetadata;
|
|
13
27
|
}
|
|
14
28
|
export interface CnfPayload {
|
|
@@ -43,9 +57,12 @@ export declare class SdJwtVcService {
|
|
|
43
57
|
readonly x5c: string[] | undefined;
|
|
44
58
|
};
|
|
45
59
|
payload: Payload;
|
|
60
|
+
claimFormat: ClaimFormat.SdJwtVc;
|
|
61
|
+
encoded: string;
|
|
46
62
|
}>;
|
|
47
63
|
fromCompact<Header extends SdJwtVcHeader = SdJwtVcHeader, Payload extends SdJwtVcPayload = SdJwtVcPayload>(compactSdJwtVc: string, typeMetadata?: SdJwtVcTypeMetadata): SdJwtVc<Header, Payload>;
|
|
48
|
-
|
|
64
|
+
applyDisclosuresForPayload(compactSdJwtVc: string, requestedPayload: JsonObject): SdJwtVc;
|
|
65
|
+
present<Payload extends SdJwtVcPayload = SdJwtVcPayload>(agentContext: AgentContext, { compactSdJwtVc, presentationFrame, verifierMetadata, additionalPayload }: SdJwtVcPresentOptions<Payload>): Promise<string>;
|
|
49
66
|
private assertValidX5cJwtIssuer;
|
|
50
67
|
verify<Header extends SdJwtVcHeader = SdJwtVcHeader, Payload extends SdJwtVcPayload = SdJwtVcPayload>(agentContext: AgentContext, { compactSdJwtVc, keyBinding, requiredClaimKeys, fetchTypeMetadata, trustedCertificates }: SdJwtVcVerifyOptions): Promise<{
|
|
51
68
|
isValid: true;
|
|
@@ -10,6 +10,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.SdJwtVcService = void 0;
|
|
13
|
+
const decode_1 = require("@sd-jwt/decode");
|
|
14
|
+
const present_1 = require("@sd-jwt/present");
|
|
13
15
|
const sd_jwt_vc_1 = require("@sd-jwt/sd-jwt-vc");
|
|
14
16
|
const utils_1 = require("@sd-jwt/utils");
|
|
15
17
|
const tsyringe_1 = require("tsyringe");
|
|
@@ -20,9 +22,11 @@ const utils_2 = require("../../utils");
|
|
|
20
22
|
const domain_1 = require("../../utils/domain");
|
|
21
23
|
const fetch_1 = require("../../utils/fetch");
|
|
22
24
|
const dids_1 = require("../dids");
|
|
25
|
+
const index_1 = require("../vc/index");
|
|
23
26
|
const x509_1 = require("../x509");
|
|
24
27
|
const SdJwtVcError_1 = require("./SdJwtVcError");
|
|
25
28
|
const decodeSdJwtVc_1 = require("./decodeSdJwtVc");
|
|
29
|
+
const disclosureFrame_1 = require("./disclosureFrame");
|
|
26
30
|
const repository_1 = require("./repository");
|
|
27
31
|
/**
|
|
28
32
|
* @internal
|
|
@@ -75,12 +79,34 @@ let SdJwtVcService = class SdJwtVcService {
|
|
|
75
79
|
prettyClaims,
|
|
76
80
|
header: header,
|
|
77
81
|
payload: sdjwtPayload,
|
|
82
|
+
claimFormat: index_1.ClaimFormat.SdJwtVc,
|
|
83
|
+
encoded: compact,
|
|
78
84
|
};
|
|
79
85
|
}
|
|
80
86
|
fromCompact(compactSdJwtVc, typeMetadata) {
|
|
81
87
|
return (0, decodeSdJwtVc_1.decodeSdJwtVc)(compactSdJwtVc, typeMetadata);
|
|
82
88
|
}
|
|
83
|
-
|
|
89
|
+
applyDisclosuresForPayload(compactSdJwtVc, requestedPayload) {
|
|
90
|
+
const decoded = (0, decode_1.decodeSdJwtSync)(compactSdJwtVc, crypto_1.Hasher.hash);
|
|
91
|
+
const presentationFrame = (0, disclosureFrame_1.buildDisclosureFrameForPayload)(requestedPayload) ?? {};
|
|
92
|
+
if (decoded.kbJwt) {
|
|
93
|
+
throw new SdJwtVcError_1.SdJwtVcError('Cannot apply limit disclosure on an sd-jwt with key binding jwt');
|
|
94
|
+
}
|
|
95
|
+
const requiredDisclosures = (0, present_1.selectDisclosures)(decoded.jwt.payload,
|
|
96
|
+
// Map to sd-jwt disclosure format
|
|
97
|
+
decoded.disclosures.map((d) => ({
|
|
98
|
+
digest: d.digestSync({ alg: 'sha-256', hasher: crypto_1.Hasher.hash }),
|
|
99
|
+
encoded: d.encode(),
|
|
100
|
+
key: d.key,
|
|
101
|
+
salt: d.salt,
|
|
102
|
+
value: d.value,
|
|
103
|
+
})), presentationFrame);
|
|
104
|
+
const [jwt] = compactSdJwtVc.split('~');
|
|
105
|
+
const sdJwt = `${jwt}~${requiredDisclosures.map((d) => d.encoded).join('~')}~`;
|
|
106
|
+
const disclosedDecoded = (0, decodeSdJwtVc_1.decodeSdJwtVc)(sdJwt);
|
|
107
|
+
return disclosedDecoded;
|
|
108
|
+
}
|
|
109
|
+
async present(agentContext, { compactSdJwtVc, presentationFrame, verifierMetadata, additionalPayload }) {
|
|
84
110
|
const sdjwt = new sd_jwt_vc_1.SDJwtVcInstance(this.getBaseSdJwtConfig(agentContext));
|
|
85
111
|
const sdJwtVc = await sdjwt.decode(compactSdJwtVc);
|
|
86
112
|
const holderBinding = this.parseHolderBindingFromCredential(sdJwtVc);
|
|
@@ -99,6 +125,7 @@ let SdJwtVcService = class SdJwtVcService {
|
|
|
99
125
|
iat: verifierMetadata.issuedAt,
|
|
100
126
|
nonce: verifierMetadata.nonce,
|
|
101
127
|
aud: verifierMetadata.audience,
|
|
128
|
+
...additionalPayload,
|
|
102
129
|
},
|
|
103
130
|
}
|
|
104
131
|
: undefined,
|
|
@@ -142,6 +169,14 @@ let SdJwtVcService = class SdJwtVcService {
|
|
|
142
169
|
header: sdJwtVc.jwt.header,
|
|
143
170
|
compact: compactSdJwtVc,
|
|
144
171
|
prettyClaims: await sdJwtVc.getClaims(decodeSdJwtVc_1.sdJwtVcHasher),
|
|
172
|
+
kbJwt: sdJwtVc.kbJwt
|
|
173
|
+
? {
|
|
174
|
+
payload: sdJwtVc.kbJwt.payload,
|
|
175
|
+
header: sdJwtVc.kbJwt.header,
|
|
176
|
+
}
|
|
177
|
+
: undefined,
|
|
178
|
+
claimFormat: index_1.ClaimFormat.SdJwtVc,
|
|
179
|
+
encoded: compactSdJwtVc,
|
|
145
180
|
};
|
|
146
181
|
try {
|
|
147
182
|
const credentialIssuer = await this.parseIssuerFromCredential(agentContext, sdJwtVc, returnSdJwtVc, trustedCertificates);
|