@credo-ts/core 0.6.0-pr-2094-20241124155338 → 0.6.0-pr-2100-20241125134343
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/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 +140 -0
- package/build/modules/dcql/DcqlService.js +253 -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 +20 -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 +20 -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 +31 -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/utils/transform.d.ts +4 -2
- package/build/modules/dif-presentation-exchange/utils/transform.js +2 -19
- package/build/modules/dif-presentation-exchange/utils/transform.js.map +1 -1
- package/build/modules/mdoc/Mdoc.d.ts +14 -0
- package/build/modules/mdoc/Mdoc.js +23 -0
- package/build/modules/mdoc/Mdoc.js.map +1 -1
- package/build/modules/mdoc/MdocDeviceResponse.d.ts +14 -1
- package/build/modules/mdoc/MdocDeviceResponse.js +31 -4
- package/build/modules/mdoc/MdocDeviceResponse.js.map +1 -1
- package/build/modules/mdoc/MdocOptions.d.ts +12 -0
- package/build/modules/mdoc/mdocUtil.d.ts +1 -0
- package/build/modules/mdoc/mdocUtil.js +7 -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/SdJwtVcService.d.ts +12 -0
- package/build/modules/sd-jwt-vc/SdJwtVcService.js +29 -0
- 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 +3 -0
- package/build/modules/sd-jwt-vc/decodeSdJwtVc.js.map +1 -1
- package/build/modules/sd-jwt-vc/disclosureFrame.d.ts +5 -0
- package/build/modules/sd-jwt-vc/disclosureFrame.js +32 -0
- package/build/modules/sd-jwt-vc/disclosureFrame.js.map +1 -0
- package/build/modules/sd-jwt-vc/repository/SdJwtVcRecord.d.ts +8 -1
- package/build/modules/sd-jwt-vc/repository/SdJwtVcRecord.js +10 -1
- package/build/modules/sd-jwt-vc/repository/SdJwtVcRecord.js.map +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/package.json +3 -1
|
@@ -0,0 +1,18 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./DcqlCredentialsForRequest"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/dcql/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA2C"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { SdJwtVcRecord } from '../../sd-jwt-vc';
|
|
2
|
+
import type { DcqlCredentialsForRequest } from '../models';
|
|
3
|
+
import type { DcqlSdJwtVcCredential, DcqlMdocCredential, DcqlW3cVcCredential } from 'dcql';
|
|
4
|
+
import { MdocRecord } from '../../mdoc';
|
|
5
|
+
import { W3cCredentialRecord, ClaimFormat } from '../../vc';
|
|
6
|
+
export interface DcqlSdJwtVcPresentationToCreate {
|
|
7
|
+
claimFormat: ClaimFormat.SdJwtVc;
|
|
8
|
+
subjectIds: [];
|
|
9
|
+
credentialRecord: SdJwtVcRecord;
|
|
10
|
+
disclosedPayload: DcqlSdJwtVcCredential.Claims;
|
|
11
|
+
}
|
|
12
|
+
export interface DcqlJwtVpPresentationToCreate {
|
|
13
|
+
claimFormat: ClaimFormat.JwtVp;
|
|
14
|
+
subjectIds: [string];
|
|
15
|
+
credentialRecord: W3cCredentialRecord;
|
|
16
|
+
disclosedPayload: DcqlW3cVcCredential.Claims;
|
|
17
|
+
}
|
|
18
|
+
export interface DcqlLdpVpPresentationToCreate {
|
|
19
|
+
claimFormat: ClaimFormat.LdpVp;
|
|
20
|
+
subjectIds: undefined | [string];
|
|
21
|
+
credentialRecord: W3cCredentialRecord;
|
|
22
|
+
disclosedPayload: DcqlW3cVcCredential.Claims;
|
|
23
|
+
}
|
|
24
|
+
export interface DcqlMdocPresentationToCreate {
|
|
25
|
+
claimFormat: ClaimFormat.MsoMdoc;
|
|
26
|
+
subjectIds: [];
|
|
27
|
+
credentialRecord: MdocRecord;
|
|
28
|
+
disclosedPayload: DcqlMdocCredential.NameSpaces;
|
|
29
|
+
}
|
|
30
|
+
export type DcqlPresentationToCreate = Record<string, DcqlSdJwtVcPresentationToCreate | DcqlJwtVpPresentationToCreate | DcqlLdpVpPresentationToCreate | DcqlMdocPresentationToCreate>;
|
|
31
|
+
export declare function dcqlGetPresentationsToCreate(credentialsForInputDescriptor: DcqlCredentialsForRequest): DcqlPresentationToCreate;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dcqlGetPresentationsToCreate = dcqlGetPresentationsToCreate;
|
|
4
|
+
const mdoc_1 = require("../../mdoc");
|
|
5
|
+
const vc_1 = require("../../vc");
|
|
6
|
+
function dcqlGetPresentationsToCreate(credentialsForInputDescriptor) {
|
|
7
|
+
const presentationsToCreate = {};
|
|
8
|
+
for (const [credentialQueryId, match] of Object.entries(credentialsForInputDescriptor)) {
|
|
9
|
+
if (match.credentialRecord instanceof vc_1.W3cCredentialRecord) {
|
|
10
|
+
presentationsToCreate[credentialQueryId] = {
|
|
11
|
+
claimFormat: match.credentialRecord.credential.claimFormat === vc_1.ClaimFormat.JwtVc ? vc_1.ClaimFormat.JwtVp : vc_1.ClaimFormat.LdpVp,
|
|
12
|
+
subjectIds: [match.credentialRecord.credential.credentialSubjectIds[0]],
|
|
13
|
+
credentialRecord: match.credentialRecord,
|
|
14
|
+
disclosedPayload: match.disclosedPayload,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
else if (match.credentialRecord instanceof mdoc_1.MdocRecord) {
|
|
18
|
+
presentationsToCreate[credentialQueryId] = {
|
|
19
|
+
claimFormat: vc_1.ClaimFormat.MsoMdoc,
|
|
20
|
+
subjectIds: [],
|
|
21
|
+
credentialRecord: match.credentialRecord,
|
|
22
|
+
disclosedPayload: match.disclosedPayload,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
presentationsToCreate[credentialQueryId] = {
|
|
27
|
+
claimFormat: vc_1.ClaimFormat.SdJwtVc,
|
|
28
|
+
subjectIds: [],
|
|
29
|
+
credentialRecord: match.credentialRecord,
|
|
30
|
+
disclosedPayload: match.disclosedPayload,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return presentationsToCreate;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=DcqlPresentationsToCreate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DcqlPresentationsToCreate.js","sourceRoot":"","sources":["../../../../src/modules/dcql/utils/DcqlPresentationsToCreate.ts"],"names":[],"mappings":";;AA8CA,oEA+BC;AAzED,qCAAuC;AACvC,iCAA2D;AAyC3D,SAAgB,4BAA4B,CAC1C,6BAAwD;IAExD,MAAM,qBAAqB,GAA6B,EAAE,CAAA;IAC1D,KAAK,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,EAAE,CAAC;QACvF,IAAI,KAAK,CAAC,gBAAgB,YAAY,wBAAmB,EAAE,CAAC;YAC1D,qBAAqB,CAAC,iBAAiB,CAAC,GAAG;gBACzC,WAAW,EACT,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,KAAK,gBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAW,CAAC,KAAK;gBAC7G,UAAU,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACvE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,gBAAgB,EAAE,KAAK,CAAC,gBAA8C;aACvE,CAAA;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,gBAAgB,YAAY,iBAAU,EAAE,CAAC;YACxD,qBAAqB,CAAC,iBAAiB,CAAC,GAAG;gBACzC,WAAW,EAAE,gBAAW,CAAC,OAAO;gBAChC,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,gBAAgB,EAAE,KAAK,CAAC,gBAAiD;aAC1E,CAAA;QACH,CAAC;aAAM,CAAC;YACN,qBAAqB,CAAC,iBAAiB,CAAC,GAAG;gBACzC,WAAW,EAAE,gBAAW,CAAC,OAAO;gBAChC,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,gBAAgB,EAAE,KAAK,CAAC,gBAA8C;aACvE,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,qBAAqB,CAAA;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './DcqlPresentationsToCreate';
|
|
@@ -0,0 +1,18 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./DcqlPresentationsToCreate"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/dcql/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA2C"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { AgentContext } from '../../../agent';
|
|
2
|
+
import type { MdocRecord } from '../../mdoc';
|
|
2
3
|
import type { SdJwtVcRecord } from '../../sd-jwt-vc';
|
|
4
|
+
import type { W3cCredentialRecord } from '../../vc';
|
|
3
5
|
import type { W3cJsonPresentation } from '../../vc/models/presentation/W3cJsonPresentation';
|
|
4
6
|
import type { VerifiablePresentation } from '../models';
|
|
5
7
|
import type { OriginalVerifiableCredential as SphereonOriginalVerifiableCredential, OriginalVerifiablePresentation as SphereonOriginalVerifiablePresentation, W3CVerifiablePresentation as SphereonW3CVerifiablePresentation } from '@sphereon/ssi-types';
|
|
6
|
-
import { MdocDeviceResponse
|
|
7
|
-
import {
|
|
8
|
+
import { MdocDeviceResponse } from '../../mdoc';
|
|
9
|
+
import { W3cJsonLdVerifiablePresentation, W3cJwtVerifiablePresentation } from '../../vc';
|
|
8
10
|
export declare function getSphereonOriginalVerifiableCredential(credentialRecord: W3cCredentialRecord | SdJwtVcRecord | MdocRecord): SphereonOriginalVerifiableCredential;
|
|
9
11
|
export declare function getSphereonOriginalVerifiablePresentation(verifiablePresentation: VerifiablePresentation): SphereonOriginalVerifiablePresentation;
|
|
10
12
|
export declare function getVerifiablePresentationFromEncoded(agentContext: AgentContext, encodedVerifiablePresentation: string | W3cJsonPresentation | SphereonW3CVerifiablePresentation): MdocDeviceResponse | import("../../sd-jwt-vc").SdJwtVc<import("../../sd-jwt-vc").SdJwtVcHeader, import("../../sd-jwt-vc").SdJwtVcPayload> | W3cJsonLdVerifiablePresentation | W3cJwtVerifiablePresentation;
|
|
@@ -9,27 +9,10 @@ const mdoc_1 = require("../../mdoc");
|
|
|
9
9
|
const sd_jwt_vc_1 = require("../../sd-jwt-vc");
|
|
10
10
|
const vc_1 = require("../../vc");
|
|
11
11
|
function getSphereonOriginalVerifiableCredential(credentialRecord) {
|
|
12
|
-
|
|
13
|
-
return credentialRecord.credential.encoded;
|
|
14
|
-
}
|
|
15
|
-
else if (credentialRecord instanceof mdoc_1.MdocRecord) {
|
|
16
|
-
return credentialRecord.base64Url;
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
return credentialRecord.compactSdJwtVc;
|
|
20
|
-
}
|
|
12
|
+
return credentialRecord.encoded;
|
|
21
13
|
}
|
|
22
14
|
function getSphereonOriginalVerifiablePresentation(verifiablePresentation) {
|
|
23
|
-
|
|
24
|
-
verifiablePresentation instanceof vc_1.W3cJsonLdVerifiablePresentation) {
|
|
25
|
-
return verifiablePresentation.encoded;
|
|
26
|
-
}
|
|
27
|
-
else if (verifiablePresentation instanceof mdoc_1.MdocDeviceResponse) {
|
|
28
|
-
return verifiablePresentation.base64Url;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return verifiablePresentation.compact;
|
|
32
|
-
}
|
|
15
|
+
return verifiablePresentation.encoded;
|
|
33
16
|
}
|
|
34
17
|
// TODO: we might want to move this to some generic vc transformation util
|
|
35
18
|
function getVerifiablePresentationFromEncoded(agentContext, encodedVerifiablePresentation) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/modules/dif-presentation-exchange/utils/transform.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/modules/dif-presentation-exchange/utils/transform.ts"],"names":[],"mappings":";;AAkBA,0FAIC;AAED,8FAIC;AAGD,oFAcC;AAjCD,4CAAqC;AACrC,0CAAgD;AAChD,qCAA+C;AAC/C,+CAA4C;AAC5C,iCAAwF;AAExF,SAAgB,uCAAuC,CACrD,gBAAkE;IAElE,OAAO,gBAAgB,CAAC,OAA+C,CAAA;AACzE,CAAC;AAED,SAAgB,yCAAyC,CACvD,sBAA8C;IAE9C,OAAO,sBAAsB,CAAC,OAAiD,CAAA;AACjF,CAAC;AAED,0EAA0E;AAC1E,SAAgB,oCAAoC,CAClD,YAA0B,EAC1B,6BAA+F;IAE/F,IAAI,OAAO,6BAA6B,KAAK,QAAQ,IAAI,6BAA6B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrG,MAAM,UAAU,GAAG,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,sBAAU,CAAC,CAAA;QACrE,OAAO,UAAU,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAA;IAC9D,CAAC;SAAM,IAAI,OAAO,6BAA6B,KAAK,QAAQ,IAAI,YAAG,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC;QAC/G,OAAO,iCAA4B,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,CAAA;IACtF,CAAC;SAAM,IAAI,OAAO,6BAA6B,KAAK,QAAQ,IAAI,UAAU,IAAI,6BAA6B,EAAE,CAAC;QAC5G,OAAO,uBAAe,CAAC,QAAQ,CAAC,6BAA6B,EAAE,oCAA+B,CAAC,CAAA;IACjG,CAAC;SAAM,CAAC;QACN,OAAO,yBAAkB,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAA;IACxE,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { MdocSignOptions, MdocNameSpaces, MdocVerifyOptions } from './MdocOptions';
|
|
2
2
|
import type { AgentContext } from '../../agent';
|
|
3
|
+
import type { Key } from '../../crypto';
|
|
3
4
|
import { JwaSignatureAlgorithm } from '../../crypto';
|
|
5
|
+
import { ClaimFormat } from '../vc';
|
|
4
6
|
/**
|
|
5
7
|
* This class represents a IssuerSigned Mdoc Document,
|
|
6
8
|
* which are the actual credentials being issued to holders.
|
|
@@ -9,10 +11,22 @@ export declare class Mdoc {
|
|
|
9
11
|
private issuerSignedDocument;
|
|
10
12
|
base64Url: string;
|
|
11
13
|
private constructor();
|
|
14
|
+
/**
|
|
15
|
+
* claim format is convenience method added to all credential instances
|
|
16
|
+
*/
|
|
17
|
+
get claimFormat(): ClaimFormat.MsoMdoc;
|
|
18
|
+
/**
|
|
19
|
+
* Encoded is convenience method added to all credential instances
|
|
20
|
+
*/
|
|
21
|
+
get encoded(): string;
|
|
12
22
|
static fromBase64Url(mdocBase64Url: string, expectedDocType?: string): Mdoc;
|
|
13
23
|
static fromIssuerSignedDocument(issuerSignedBase64Url: string, expectedDocType?: string): Mdoc;
|
|
14
24
|
static fromDeviceSignedDocument(issuerSignedBase64Url: string, deviceSignedBase64Url: string, expectedDocType?: string): Mdoc;
|
|
15
25
|
get docType(): string;
|
|
26
|
+
/**
|
|
27
|
+
* Get the device key to which the mdoc is bound
|
|
28
|
+
*/
|
|
29
|
+
get deviceKey(): Key | null;
|
|
16
30
|
get alg(): JwaSignatureAlgorithm;
|
|
17
31
|
get validityInfo(): import("@animo-id/mdoc").ValidityInfo;
|
|
18
32
|
get deviceSignedNamespaces(): MdocNameSpaces;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Mdoc = void 0;
|
|
4
4
|
const mdoc_1 = require("@animo-id/mdoc");
|
|
5
5
|
const crypto_1 = require("../../crypto");
|
|
6
|
+
const vc_1 = require("../vc");
|
|
6
7
|
const x509_1 = require("../x509");
|
|
7
8
|
const utils_1 = require("./../../utils");
|
|
8
9
|
const MdocContext_1 = require("./MdocContext");
|
|
@@ -17,6 +18,18 @@ class Mdoc {
|
|
|
17
18
|
const issuerSigned = issuerSignedDocument.prepare().get('issuerSigned');
|
|
18
19
|
this.base64Url = utils_1.TypedArrayEncoder.toBase64URL((0, mdoc_1.cborEncode)(issuerSigned));
|
|
19
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* claim format is convenience method added to all credential instances
|
|
23
|
+
*/
|
|
24
|
+
get claimFormat() {
|
|
25
|
+
return vc_1.ClaimFormat.MsoMdoc;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Encoded is convenience method added to all credential instances
|
|
29
|
+
*/
|
|
30
|
+
get encoded() {
|
|
31
|
+
return this.base64Url;
|
|
32
|
+
}
|
|
20
33
|
static fromBase64Url(mdocBase64Url, expectedDocType) {
|
|
21
34
|
const issuerSignedDocument = (0, mdoc_1.parseIssuerSigned)(utils_1.TypedArrayEncoder.fromBase64(mdocBase64Url), expectedDocType);
|
|
22
35
|
return new Mdoc(issuerSignedDocument);
|
|
@@ -32,6 +45,16 @@ class Mdoc {
|
|
|
32
45
|
get docType() {
|
|
33
46
|
return this.issuerSignedDocument.docType;
|
|
34
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Get the device key to which the mdoc is bound
|
|
50
|
+
*/
|
|
51
|
+
get deviceKey() {
|
|
52
|
+
var _a;
|
|
53
|
+
const deviceKeyRaw = (_a = this.issuerSignedDocument.issuerSigned.issuerAuth.decodedPayload.deviceKeyInfo) === null || _a === void 0 ? void 0 : _a.deviceKey;
|
|
54
|
+
if (!deviceKeyRaw)
|
|
55
|
+
return null;
|
|
56
|
+
return (0, crypto_1.getJwkFromJson)(mdoc_1.COSEKey.import(deviceKeyRaw).toJWK()).key;
|
|
57
|
+
}
|
|
35
58
|
get alg() {
|
|
36
59
|
const algName = this.issuerSignedDocument.issuerSigned.issuerAuth.algName;
|
|
37
60
|
if (!algName) {
|
|
@@ -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
|
-
import type { MdocDeviceResponseOpenId4VpOptions, MdocDeviceResponseVerifyOptions } from './MdocOptions';
|
|
1
|
+
import type { MdocDcqlDeviceResponseOpenId4VpOptions, MdocDeviceResponseOpenId4VpOptions, MdocDeviceResponseVerifyOptions } from './MdocOptions';
|
|
2
2
|
import type { AgentContext } from '../../agent';
|
|
3
3
|
import type { DifPresentationExchangeDefinition } from '../dif-presentation-exchange';
|
|
4
4
|
import type { InputDescriptorV2 } from '@sphereon/pex-models';
|
|
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,6 +102,10 @@ export declare class MdocDeviceResponse {
|
|
|
93
102
|
[k: string]: unknown;
|
|
94
103
|
};
|
|
95
104
|
};
|
|
105
|
+
private static createDeviceResponse;
|
|
106
|
+
static createOpenId4VpDcqlDeviceResponse(agentContext: AgentContext, options: MdocDcqlDeviceResponseOpenId4VpOptions): Promise<{
|
|
107
|
+
deviceResponseBase64Url: string;
|
|
108
|
+
}>;
|
|
96
109
|
static createOpenId4VpDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseOpenId4VpOptions): Promise<{
|
|
97
110
|
deviceResponseBase64Url: string;
|
|
98
111
|
presentationSubmission: {
|
|
@@ -5,17 +5,31 @@ exports.MdocDeviceResponse = void 0;
|
|
|
5
5
|
const mdoc_1 = require("@animo-id/mdoc");
|
|
6
6
|
const error_1 = require("../../error");
|
|
7
7
|
const uuid_1 = require("../../utils/uuid");
|
|
8
|
+
const vc_1 = require("../vc");
|
|
8
9
|
const X509Certificate_1 = require("../x509/X509Certificate");
|
|
9
10
|
const X509ModuleConfig_1 = require("../x509/X509ModuleConfig");
|
|
10
11
|
const utils_1 = require("./../../utils");
|
|
11
12
|
const Mdoc_1 = require("./Mdoc");
|
|
12
13
|
const MdocContext_1 = require("./MdocContext");
|
|
13
14
|
const MdocError_1 = require("./MdocError");
|
|
15
|
+
const mdocUtil_1 = require("./mdocUtil");
|
|
14
16
|
class MdocDeviceResponse {
|
|
15
17
|
constructor(base64Url, documents) {
|
|
16
18
|
this.base64Url = base64Url;
|
|
17
19
|
this.documents = documents;
|
|
18
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* claim format is convenience method added to all credential instances
|
|
23
|
+
*/
|
|
24
|
+
get claimFormat() {
|
|
25
|
+
return vc_1.ClaimFormat.MsoMdoc;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Encoded is convenience method added to all credential instances
|
|
29
|
+
*/
|
|
30
|
+
get encoded() {
|
|
31
|
+
return this.base64Url;
|
|
32
|
+
}
|
|
19
33
|
static fromBase64Url(base64Url) {
|
|
20
34
|
const parsed = (0, mdoc_1.parseDeviceResponse)(utils_1.TypedArrayEncoder.fromBase64(base64Url));
|
|
21
35
|
if (parsed.status !== mdoc_1.MDocStatus.OK) {
|
|
@@ -81,10 +95,9 @@ class MdocDeviceResponse {
|
|
|
81
95
|
}));
|
|
82
96
|
return disclosedPayloadAsRecord;
|
|
83
97
|
}
|
|
84
|
-
static async
|
|
98
|
+
static async createDeviceResponse(agentContext, options) {
|
|
85
99
|
var _b;
|
|
86
100
|
const { sessionTranscriptOptions } = options;
|
|
87
|
-
const presentationDefinition = this.partitionPresentationDefinition(options.presentationDefinition).mdocPresentationDefinition;
|
|
88
101
|
const issuerSignedDocuments = options.mdocs.map((mdoc) => (0, mdoc_1.parseIssuerSigned)(utils_1.TypedArrayEncoder.fromBase64(mdoc.base64Url), mdoc.docType));
|
|
89
102
|
const mdoc = new mdoc_1.MDoc(issuerSignedDocuments);
|
|
90
103
|
// TODO: we need to implement this differently.
|
|
@@ -96,15 +109,29 @@ class MdocDeviceResponse {
|
|
|
96
109
|
}
|
|
97
110
|
const publicDeviceJwk = mdoc_1.COSEKey.import(deviceKeyInfo.deviceKey).toJWK();
|
|
98
111
|
const deviceResponseBuilder = mdoc_1.DeviceResponse.from(mdoc)
|
|
99
|
-
.usingPresentationDefinition(presentationDefinition)
|
|
100
112
|
.usingSessionTranscriptForOID4VP(sessionTranscriptOptions)
|
|
101
113
|
.authenticateWithSignature(publicDeviceJwk, 'ES256');
|
|
114
|
+
if (options.presentationDefinition) {
|
|
115
|
+
deviceResponseBuilder.usingPresentationDefinition(options.presentationDefinition);
|
|
116
|
+
}
|
|
117
|
+
else if (options.docRequests) {
|
|
118
|
+
const deviceRequest = mdoc_1.DeviceRequest.from('1.0', options.docRequests.map((r) => (Object.assign(Object.assign({}, r), { itemsRequestData: Object.assign(Object.assign({}, r.itemsRequestData), { nameSpaces: (0, mdocUtil_1.nameSpacesRecordToMap)(r.itemsRequestData.nameSpaces) }) }))));
|
|
119
|
+
deviceResponseBuilder.usingDeviceRequest(deviceRequest);
|
|
120
|
+
}
|
|
102
121
|
for (const [nameSpace, nameSpaceValue] of Object.entries((_b = options.deviceNameSpaces) !== null && _b !== void 0 ? _b : {})) {
|
|
103
122
|
deviceResponseBuilder.addDeviceNameSpace(nameSpace, nameSpaceValue);
|
|
104
123
|
}
|
|
105
124
|
const deviceResponseMdoc = await deviceResponseBuilder.sign((0, MdocContext_1.getMdocContext)(agentContext));
|
|
125
|
+
return { deviceResponseBase64Url: utils_1.TypedArrayEncoder.toBase64URL(deviceResponseMdoc.encode()) };
|
|
126
|
+
}
|
|
127
|
+
static async createOpenId4VpDcqlDeviceResponse(agentContext, options) {
|
|
128
|
+
return this.createDeviceResponse(agentContext, Object.assign(Object.assign({}, options), { docRequests: [options.docRequest], mdocs: [options.mdoc] }));
|
|
129
|
+
}
|
|
130
|
+
static async createOpenId4VpDeviceResponse(agentContext, options) {
|
|
131
|
+
const presentationDefinition = this.partitionPresentationDefinition(options.presentationDefinition).mdocPresentationDefinition;
|
|
132
|
+
const { deviceResponseBase64Url } = await this.createDeviceResponse(agentContext, Object.assign(Object.assign({}, options), { presentationDefinition }));
|
|
106
133
|
return {
|
|
107
|
-
deviceResponseBase64Url
|
|
134
|
+
deviceResponseBase64Url,
|
|
108
135
|
presentationSubmission: _a.createPresentationSubmission({
|
|
109
136
|
id: 'MdocPresentationSubmission ' + (0, uuid_1.uuid)(),
|
|
110
137
|
presentationDefinition,
|
|
@@ -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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"}
|
|
@@ -26,6 +26,18 @@ export type MdocDeviceResponseOpenId4VpOptions = {
|
|
|
26
26
|
deviceNameSpaces?: MdocNameSpaces;
|
|
27
27
|
sessionTranscriptOptions: MdocOpenId4VpSessionTranscriptOptions;
|
|
28
28
|
};
|
|
29
|
+
export type MdocDocRequest = {
|
|
30
|
+
itemsRequestData: {
|
|
31
|
+
docType: string;
|
|
32
|
+
nameSpaces: Record<string, Record<string, boolean>>;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export type MdocDcqlDeviceResponseOpenId4VpOptions = {
|
|
36
|
+
mdoc: Mdoc;
|
|
37
|
+
docRequest: MdocDocRequest;
|
|
38
|
+
deviceNameSpaces?: MdocNameSpaces;
|
|
39
|
+
sessionTranscriptOptions: MdocOpenId4VpSessionTranscriptOptions;
|
|
40
|
+
};
|
|
29
41
|
export type MdocDeviceResponseVerifyOptions = {
|
|
30
42
|
trustedCertificates?: [string, ...string[]];
|
|
31
43
|
sessionTranscriptOptions: MdocOpenId4VpSessionTranscriptOptions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function nameSpacesRecordToMap<NamespaceValue extends unknown, NameSpaces extends Record<string, Record<string, NamespaceValue>>>(nameSpaces: NameSpaces): Map<string, Map<string, NamespaceValue>>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nameSpacesRecordToMap = nameSpacesRecordToMap;
|
|
4
|
+
function nameSpacesRecordToMap(nameSpaces) {
|
|
5
|
+
return new Map(Object.entries(nameSpaces).map(([key, value]) => [key, new Map(Object.entries(value))]));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=mdocUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdocUtil.js","sourceRoot":"","sources":["../../../src/modules/mdoc/mdocUtil.ts"],"names":[],"mappings":";;AAAA,sDAMC;AAND,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"}
|
|
@@ -21,6 +21,14 @@ export declare class MdocRecord extends BaseRecord<DefaultMdocRecordTags> {
|
|
|
21
21
|
readonly type = "MdocRecord";
|
|
22
22
|
base64Url: string;
|
|
23
23
|
constructor(props: MdocRecordStorageProps);
|
|
24
|
+
/**
|
|
25
|
+
* credential is convenience method added to all credential records
|
|
26
|
+
*/
|
|
27
|
+
get credential(): Mdoc;
|
|
28
|
+
/**
|
|
29
|
+
* encoded is convenience method added to all credential records
|
|
30
|
+
*/
|
|
31
|
+
get encoded(): string;
|
|
24
32
|
getTags(): {
|
|
25
33
|
docType: string;
|
|
26
34
|
alg: JwaSignatureAlgorithm;
|
|
@@ -17,6 +17,18 @@ class MdocRecord extends BaseRecord_1.BaseRecord {
|
|
|
17
17
|
this._tags = (_c = props.tags) !== null && _c !== void 0 ? _c : {};
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* credential is convenience method added to all credential records
|
|
22
|
+
*/
|
|
23
|
+
get credential() {
|
|
24
|
+
return Mdoc_1.Mdoc.fromBase64Url(this.base64Url);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* encoded is convenience method added to all credential records
|
|
28
|
+
*/
|
|
29
|
+
get encoded() {
|
|
30
|
+
return this.base64Url;
|
|
31
|
+
}
|
|
20
32
|
getTags() {
|
|
21
33
|
const mdoc = Mdoc_1.Mdoc.fromBase64Url(this.base64Url);
|
|
22
34
|
const docType = mdoc.docType;
|
|
@@ -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,MAAA,KAAK,CAAC,EAAE,mCAAI,IAAA,WAAI,GAAE,CAAA;YAC5B,IAAI,CAAC,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,IAAI,IAAI,EAAE,CAAA;YAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAA;YACrC,IAAI,CAAC,KAAK,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,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,uCACK,IAAI,CAAC,KAAK,KACb,OAAO;YACP,GAAG,IACJ;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,MAAA,KAAK,CAAC,EAAE,mCAAI,IAAA,WAAI,GAAE,CAAA;YAC5B,IAAI,CAAC,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,IAAI,IAAI,EAAE,CAAA;YAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAA;YACrC,IAAI,CAAC,KAAK,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAA;QAC/B,CAAC;IACH,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;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,uCACK,IAAI,CAAC,KAAK,KACb,OAAO;YACP,GAAG,IACJ;IACH,CAAC;IAEM,KAAK;QACV,OAAO,uBAAe,CAAC,QAAQ,CAAC,uBAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAkC,CAAC,CAAA;IACxG,CAAC;;AA5CH,gCA6CC;AA5CwB,eAAI,GAAG,YAAY,AAAf,CAAe"}
|
|
@@ -2,9 +2,18 @@ import type { SdJwtVcSignOptions, SdJwtVcPresentOptions, SdJwtVcVerifyOptions, S
|
|
|
2
2
|
import type { JwkJson } from '../../crypto';
|
|
3
3
|
import type { Query, QueryOptions } from '../../storage/StorageService';
|
|
4
4
|
import { AgentContext } from '../../agent';
|
|
5
|
+
import { ClaimFormat } from '../vc';
|
|
5
6
|
import { SdJwtVcRecord, SdJwtVcRepository } from './repository';
|
|
6
7
|
import { SdJwtVcTypeMetadata } from './typeMetadata';
|
|
7
8
|
export interface SdJwtVc<Header extends SdJwtVcHeader = SdJwtVcHeader, Payload extends SdJwtVcPayload = SdJwtVcPayload> {
|
|
9
|
+
/**
|
|
10
|
+
* claim format is convenience method added to all credential instances
|
|
11
|
+
*/
|
|
12
|
+
claimFormat: ClaimFormat.SdJwtVc;
|
|
13
|
+
/**
|
|
14
|
+
* encoded is convenience method added to all credential instances
|
|
15
|
+
*/
|
|
16
|
+
encoded: string;
|
|
8
17
|
compact: string;
|
|
9
18
|
header: Header;
|
|
10
19
|
payload: Payload;
|
|
@@ -43,8 +52,11 @@ export declare class SdJwtVcService {
|
|
|
43
52
|
readonly x5c: string[] | undefined;
|
|
44
53
|
};
|
|
45
54
|
payload: Payload;
|
|
55
|
+
claimFormat: ClaimFormat.SdJwtVc;
|
|
56
|
+
encoded: string;
|
|
46
57
|
}>;
|
|
47
58
|
fromCompact<Header extends SdJwtVcHeader = SdJwtVcHeader, Payload extends SdJwtVcPayload = SdJwtVcPayload>(compactSdJwtVc: string, typeMetadata?: SdJwtVcTypeMetadata): SdJwtVc<Header, Payload>;
|
|
59
|
+
applyDisclosuresForPayload(compactSdJwtVc: string, requestedPayload: Record<string, unknown>): SdJwtVc;
|
|
48
60
|
present<Payload extends SdJwtVcPayload = SdJwtVcPayload>(agentContext: AgentContext, { compactSdJwtVc, presentationFrame, verifierMetadata }: SdJwtVcPresentOptions<Payload>): Promise<string>;
|
|
49
61
|
private assertValidX5cJwtIssuer;
|
|
50
62
|
verify<Header extends SdJwtVcHeader = SdJwtVcHeader, Payload extends SdJwtVcPayload = SdJwtVcPayload>(agentContext: AgentContext, { compactSdJwtVc, keyBinding, requiredClaimKeys, fetchTypeMetadata }: SdJwtVcVerifyOptions): Promise<{
|
|
@@ -21,6 +21,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
23
|
exports.SdJwtVcService = void 0;
|
|
24
|
+
const decode_1 = require("@sd-jwt/decode");
|
|
25
|
+
const present_1 = require("@sd-jwt/present");
|
|
24
26
|
const sd_jwt_vc_1 = require("@sd-jwt/sd-jwt-vc");
|
|
25
27
|
const utils_1 = require("@sd-jwt/utils");
|
|
26
28
|
const tsyringe_1 = require("tsyringe");
|
|
@@ -31,9 +33,11 @@ const utils_2 = require("../../utils");
|
|
|
31
33
|
const domain_1 = require("../../utils/domain");
|
|
32
34
|
const fetch_1 = require("../../utils/fetch");
|
|
33
35
|
const dids_1 = require("../dids");
|
|
36
|
+
const vc_1 = require("../vc");
|
|
34
37
|
const x509_1 = require("../x509");
|
|
35
38
|
const SdJwtVcError_1 = require("./SdJwtVcError");
|
|
36
39
|
const decodeSdJwtVc_1 = require("./decodeSdJwtVc");
|
|
40
|
+
const disclosureFrame_1 = require("./disclosureFrame");
|
|
37
41
|
const repository_1 = require("./repository");
|
|
38
42
|
/**
|
|
39
43
|
* @internal
|
|
@@ -76,11 +80,34 @@ let SdJwtVcService = class SdJwtVcService {
|
|
|
76
80
|
prettyClaims,
|
|
77
81
|
header: header,
|
|
78
82
|
payload: sdjwtPayload,
|
|
83
|
+
claimFormat: vc_1.ClaimFormat.SdJwtVc,
|
|
84
|
+
encoded: compact,
|
|
79
85
|
};
|
|
80
86
|
}
|
|
81
87
|
fromCompact(compactSdJwtVc, typeMetadata) {
|
|
82
88
|
return (0, decodeSdJwtVc_1.decodeSdJwtVc)(compactSdJwtVc, typeMetadata);
|
|
83
89
|
}
|
|
90
|
+
applyDisclosuresForPayload(compactSdJwtVc, requestedPayload) {
|
|
91
|
+
var _a;
|
|
92
|
+
const decoded = (0, decode_1.decodeSdJwtSync)(compactSdJwtVc, crypto_1.Hasher.hash);
|
|
93
|
+
const presentationFrame = (_a = (0, disclosureFrame_1.buildDisclosureFrameFromPayload)(requestedPayload)) !== null && _a !== void 0 ? _a : {};
|
|
94
|
+
if (decoded.kbJwt) {
|
|
95
|
+
throw new SdJwtVcError_1.SdJwtVcError('Cannot apply limit disclosure on an sd-jwt with key binding jwt');
|
|
96
|
+
}
|
|
97
|
+
const requiredDisclosures = (0, present_1.selectDisclosures)(decoded.jwt.payload,
|
|
98
|
+
// Map to sd-jwt disclosure format
|
|
99
|
+
decoded.disclosures.map((d) => ({
|
|
100
|
+
digest: d.digestSync({ alg: 'sha-256', hasher: crypto_1.Hasher.hash }),
|
|
101
|
+
encoded: d.encode(),
|
|
102
|
+
key: d.key,
|
|
103
|
+
salt: d.salt,
|
|
104
|
+
value: d.value,
|
|
105
|
+
})), presentationFrame);
|
|
106
|
+
const [jwt] = compactSdJwtVc.split('~');
|
|
107
|
+
const sdJwt = `${jwt}~${requiredDisclosures.map((d) => d.encoded).join('~')}~`;
|
|
108
|
+
const disclosedDecoded = (0, decodeSdJwtVc_1.decodeSdJwtVc)(sdJwt);
|
|
109
|
+
return disclosedDecoded;
|
|
110
|
+
}
|
|
84
111
|
async present(agentContext, { compactSdJwtVc, presentationFrame, verifierMetadata }) {
|
|
85
112
|
const sdjwt = new sd_jwt_vc_1.SDJwtVcInstance(this.getBaseSdJwtConfig(agentContext));
|
|
86
113
|
const sdJwtVc = await sdjwt.decode(compactSdJwtVc);
|
|
@@ -140,6 +167,8 @@ let SdJwtVcService = class SdJwtVcService {
|
|
|
140
167
|
header: sdJwtVc.jwt.header,
|
|
141
168
|
compact: compactSdJwtVc,
|
|
142
169
|
prettyClaims: await sdJwtVc.getClaims(decodeSdJwtVc_1.sdJwtVcHasher),
|
|
170
|
+
claimFormat: vc_1.ClaimFormat.SdJwtVc,
|
|
171
|
+
encoded: compactSdJwtVc,
|
|
143
172
|
};
|
|
144
173
|
try {
|
|
145
174
|
const credentialIssuer = await this.parseIssuerFromCredential(agentContext, sdJwtVc);
|