@pagopa/io-react-native-wallet 1.6.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +69 -35
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/commonjs/credential/presentation/07-evaluate-dcql-query.js +181 -0
- package/lib/commonjs/credential/presentation/07-evaluate-dcql-query.js.map +1 -0
- package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js +3 -57
- package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
- package/lib/commonjs/credential/presentation/08-send-authorization-response.js +98 -2
- package/lib/commonjs/credential/presentation/08-send-authorization-response.js.map +1 -1
- package/lib/commonjs/credential/presentation/index.js +14 -1
- package/lib/commonjs/credential/presentation/index.js.map +1 -1
- package/lib/commonjs/credential/presentation/types.js +9 -2
- package/lib/commonjs/credential/presentation/types.js.map +1 -1
- package/lib/commonjs/mdoc/index.js +14 -6
- package/lib/commonjs/mdoc/index.js.map +1 -1
- package/lib/commonjs/sd-jwt/__test__/index.test.js +24 -21
- package/lib/commonjs/sd-jwt/__test__/index.test.js.map +1 -1
- package/lib/commonjs/sd-jwt/__test__/types.test.js +3 -0
- package/lib/commonjs/sd-jwt/__test__/types.test.js.map +1 -1
- package/lib/commonjs/sd-jwt/index.js +7 -1
- package/lib/commonjs/sd-jwt/index.js.map +1 -1
- package/lib/commonjs/sd-jwt/types.js +4 -1
- package/lib/commonjs/sd-jwt/types.js.map +1 -1
- package/lib/commonjs/utils/credential/issuance/07-verify-and-parse-credentials-inputs.js +469 -0
- package/lib/commonjs/utils/credential/issuance/07-verify-and-parse-credentials-inputs.js.map +1 -0
- package/lib/commonjs/utils/credential/issuance/07-verify-and-parse-credentials-utils.js +90 -0
- package/lib/commonjs/utils/credential/issuance/07-verify-and-parse-credentials-utils.js.map +1 -0
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js +67 -35
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/module/credential/presentation/07-evaluate-dcql-query.js +175 -0
- package/lib/module/credential/presentation/07-evaluate-dcql-query.js.map +1 -0
- package/lib/module/credential/presentation/07-evaluate-input-descriptor.js +3 -56
- package/lib/module/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
- package/lib/module/credential/presentation/08-send-authorization-response.js +97 -2
- package/lib/module/credential/presentation/08-send-authorization-response.js.map +1 -1
- package/lib/module/credential/presentation/index.js +4 -3
- package/lib/module/credential/presentation/index.js.map +1 -1
- package/lib/module/credential/presentation/types.js +9 -2
- package/lib/module/credential/presentation/types.js.map +1 -1
- package/lib/module/mdoc/index.js +14 -6
- package/lib/module/mdoc/index.js.map +1 -1
- package/lib/module/sd-jwt/__test__/index.test.js +24 -21
- package/lib/module/sd-jwt/__test__/index.test.js.map +1 -1
- package/lib/module/sd-jwt/__test__/types.test.js +3 -0
- package/lib/module/sd-jwt/__test__/types.test.js.map +1 -1
- package/lib/module/sd-jwt/index.js +7 -1
- package/lib/module/sd-jwt/index.js.map +1 -1
- package/lib/module/sd-jwt/types.js +4 -1
- package/lib/module/sd-jwt/types.js.map +1 -1
- package/lib/module/utils/credential/issuance/07-verify-and-parse-credentials-inputs.js +462 -0
- package/lib/module/utils/credential/issuance/07-verify-and-parse-credentials-inputs.js.map +1 -0
- package/lib/module/utils/credential/issuance/07-verify-and-parse-credentials-utils.js +83 -0
- package/lib/module/utils/credential/issuance/07-verify-and-parse-credentials-utils.js.map +1 -0
- package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts +12 -0
- package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/07-evaluate-dcql-query.d.ts +27 -0
- package/lib/typescript/credential/presentation/07-evaluate-dcql-query.d.ts.map +1 -0
- package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts +2 -32
- package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts +23 -1
- package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/index.d.ts +6 -4
- package/lib/typescript/credential/presentation/index.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/types.d.ts +32 -8
- package/lib/typescript/credential/presentation/types.d.ts.map +1 -1
- package/lib/typescript/mdoc/index.d.ts.map +1 -1
- package/lib/typescript/sd-jwt/index.d.ts +12 -0
- package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
- package/lib/typescript/sd-jwt/types.d.ts +15 -0
- package/lib/typescript/sd-jwt/types.d.ts.map +1 -1
- package/lib/typescript/utils/credential/issuance/07-verify-and-parse-credentials-inputs.d.ts +3 -0
- package/lib/typescript/utils/credential/issuance/07-verify-and-parse-credentials-inputs.d.ts.map +1 -0
- package/lib/typescript/utils/credential/issuance/07-verify-and-parse-credentials-utils.d.ts +42 -0
- package/lib/typescript/utils/credential/issuance/07-verify-and-parse-credentials-utils.d.ts.map +1 -0
- package/package.json +4 -3
- package/src/credential/issuance/07-verify-and-parse-credential.ts +35 -3
- package/src/credential/presentation/07-evaluate-dcql-query.ts +228 -0
- package/src/credential/presentation/07-evaluate-input-descriptor.ts +6 -108
- package/src/credential/presentation/08-send-authorization-response.ts +137 -2
- package/src/credential/presentation/index.ts +12 -2
- package/src/credential/presentation/types.ts +40 -4
- package/src/mdoc/index.ts +14 -4
- package/src/sd-jwt/__test__/index.test.ts +45 -36
- package/src/sd-jwt/__test__/types.test.ts +3 -0
- package/src/sd-jwt/index.ts +5 -1
- package/src/sd-jwt/types.ts +3 -0
- package/src/utils/credential/issuance/07-verify-and-parse-credentials-inputs.ts +615 -0
- package/src/utils/credential/issuance/07-verify-and-parse-credentials-utils.ts +171 -0
@@ -9,7 +9,8 @@ import { extractElementValueAsDate } from "../../mdoc/converters";
|
|
9
9
|
|
10
10
|
// handy alias
|
11
11
|
|
12
|
-
|
12
|
+
//Exported for testing purposes
|
13
|
+
export const parseCredentialSdJwt = function (credentials_supported, _ref) {
|
13
14
|
let {
|
14
15
|
sdJwt,
|
15
16
|
disclosures
|
@@ -34,11 +35,11 @@ const parseCredentialSdJwt = function (credentials_supported, _ref) {
|
|
34
35
|
|
35
36
|
// the key of the attribute defintion must match the disclosure's name
|
36
37
|
const attrsNotInDisclosures = attrDefinitions.filter(_ref2 => {
|
37
|
-
let [attrKey] = _ref2;
|
38
|
+
let [attrKey, definition] = _ref2;
|
38
39
|
return !disclosures.some(_ref3 => {
|
39
40
|
let [, name] = _ref3;
|
40
41
|
return name === attrKey;
|
41
|
-
});
|
42
|
+
}) && definition.mandatory;
|
42
43
|
});
|
43
44
|
if (attrsNotInDisclosures.length > 0) {
|
44
45
|
const missing = attrsNotInDisclosures.map(_ => _[0 /* key */]).join(", ");
|
@@ -60,20 +61,25 @@ const parseCredentialSdJwt = function (credentials_supported, _ref) {
|
|
60
61
|
value: (_disclosures$find = disclosures.find(_ => _[1 /* name */] === attrKey)) === null || _disclosures$find === void 0 ? void 0 : _disclosures$find[2 /* value */]
|
61
62
|
}];
|
62
63
|
})
|
64
|
+
//filter the not found elements
|
65
|
+
.filter(_ref5 => {
|
66
|
+
let [_, definition] = _ref5;
|
67
|
+
return definition.value !== undefined;
|
68
|
+
})
|
63
69
|
// add a human readable attribute name, with i18n, in the form { locale: name }
|
64
70
|
// example: { "it-IT": "Nome", "en-EN": "Name", "es-ES": "Nombre" }
|
65
|
-
.map(
|
71
|
+
.map(_ref6 => {
|
66
72
|
let [attrKey, {
|
67
73
|
display,
|
68
74
|
...definition
|
69
|
-
}] =
|
75
|
+
}] = _ref6;
|
70
76
|
return [attrKey, {
|
71
77
|
...definition,
|
72
|
-
name: display.reduce((names,
|
78
|
+
name: display.reduce((names, _ref7) => {
|
73
79
|
let {
|
74
80
|
locale,
|
75
81
|
name
|
76
|
-
} =
|
82
|
+
} = _ref7;
|
77
83
|
return {
|
78
84
|
...names,
|
79
85
|
[locale]: name
|
@@ -84,8 +90,8 @@ const parseCredentialSdJwt = function (credentials_supported, _ref) {
|
|
84
90
|
if (includeUndefinedAttributes) {
|
85
91
|
// attributes that are in the disclosure set
|
86
92
|
// but are not defined in the issuer configuration
|
87
|
-
const undefinedValues = Object.fromEntries(disclosures.filter(_ => !Object.keys(definedValues).includes(_[1])).map(
|
88
|
-
let [, key, value] =
|
93
|
+
const undefinedValues = Object.fromEntries(disclosures.filter(_ => !Object.keys(definedValues).includes(_[1])).map(_ref8 => {
|
94
|
+
let [, key, value] = _ref8;
|
89
95
|
return [key, {
|
90
96
|
value,
|
91
97
|
name: key
|
@@ -98,11 +104,14 @@ const parseCredentialSdJwt = function (credentials_supported, _ref) {
|
|
98
104
|
}
|
99
105
|
return definedValues;
|
100
106
|
};
|
101
|
-
|
107
|
+
|
108
|
+
//Exported for testing purposes
|
109
|
+
export const parseCredentialMDoc = function (credentials_supported, credential_type, _ref9) {
|
102
110
|
let {
|
103
111
|
issuerSigned
|
104
|
-
} =
|
105
|
-
let
|
112
|
+
} = _ref9;
|
113
|
+
let ignoreMissingAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
114
|
+
let includeUndefinedAttributes = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
106
115
|
const credentialSubject = credentials_supported[credential_type];
|
107
116
|
if (!credentialSubject) {
|
108
117
|
throw new IoWalletError("Credential type not supported by the issuer");
|
@@ -114,49 +123,72 @@ const parseCredentialMDoc = function (credentials_supported, credential_type, _r
|
|
114
123
|
}
|
115
124
|
|
116
125
|
const claims = credentialSubject.claims;
|
117
|
-
const attrDefinitions = Object.entries(claims).flatMap(
|
118
|
-
let [namespace, claimName] =
|
119
|
-
return Object.entries(claimName).map(
|
120
|
-
let [claimNameKey, definition] =
|
126
|
+
const attrDefinitions = Object.entries(claims).flatMap(_ref10 => {
|
127
|
+
let [namespace, claimName] = _ref10;
|
128
|
+
return Object.entries(claimName).map(_ref11 => {
|
129
|
+
let [claimNameKey, definition] = _ref11;
|
121
130
|
return [namespace, claimNameKey, definition];
|
122
131
|
});
|
123
132
|
});
|
124
133
|
if (!issuerSigned.nameSpaces) {
|
125
134
|
throw new IoWalletError("Missing claims in the credential");
|
126
135
|
}
|
127
|
-
const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(
|
128
|
-
let [namespace, values] =
|
136
|
+
const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref12 => {
|
137
|
+
let [namespace, values] = _ref12;
|
129
138
|
return values.map(v => [namespace, v.elementIdentifier, v.elementValue]);
|
130
139
|
});
|
131
140
|
|
141
|
+
// Check that all mandatory attributes defined in the issuer configuration are present in the disclosure set
|
142
|
+
// and filter the non present ones
|
143
|
+
const attrsNotInDisclosures = attrDefinitions.filter(_ref13 => {
|
144
|
+
let [attrDefNamespace, attrKey, definition] = _ref13;
|
145
|
+
const isClaimPresent = flatNamespaces.find(_ref14 => {
|
146
|
+
let [namespace, name] = _ref14;
|
147
|
+
return attrDefNamespace === namespace && name === attrKey;
|
148
|
+
});
|
149
|
+
return isClaimPresent === undefined && definition.mandatory;
|
150
|
+
});
|
151
|
+
if (attrsNotInDisclosures.length > 0) {
|
152
|
+
const missing = attrsNotInDisclosures.map(_ => _[1 /* claim key */]).join(", ");
|
153
|
+
const received = flatNamespaces.map(_ => _[1 /*name*/]);
|
154
|
+
if (!ignoreMissingAttributes) {
|
155
|
+
throw new IoWalletError(`Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`);
|
156
|
+
}
|
157
|
+
}
|
158
|
+
|
132
159
|
// Attributes defined in the issuer configuration and present in the disclosure set
|
133
160
|
const definedValues = Object.fromEntries(attrDefinitions
|
134
161
|
// Retrieve the value from the corresponding disclosure
|
135
|
-
.map(
|
162
|
+
.map(_ref15 => {
|
136
163
|
var _flatNamespaces$find;
|
137
|
-
let [attrDefNamespace, attrKey, definition] =
|
164
|
+
let [attrDefNamespace, attrKey, definition] = _ref15;
|
138
165
|
return [attrKey, {
|
139
166
|
...definition,
|
140
|
-
value: (_flatNamespaces$find = flatNamespaces.find(
|
141
|
-
let [namespace, name] =
|
167
|
+
value: (_flatNamespaces$find = flatNamespaces.find(_ref16 => {
|
168
|
+
let [namespace, name] = _ref16;
|
142
169
|
return attrDefNamespace === namespace && name === attrKey;
|
143
170
|
})) === null || _flatNamespaces$find === void 0 ? void 0 : _flatNamespaces$find[2]
|
144
171
|
}];
|
145
172
|
})
|
173
|
+
//filter the not found elements
|
174
|
+
.filter(_ref17 => {
|
175
|
+
let [_, definition] = _ref17;
|
176
|
+
return definition.value !== undefined;
|
177
|
+
})
|
146
178
|
// Add a human-readable attribute name, with i18n, in the form { locale: name }
|
147
179
|
// Example: { "it-IT": "Nome", "en-EN": "Name", "es-ES": "Nombre" }
|
148
|
-
.map(
|
180
|
+
.map(_ref18 => {
|
149
181
|
let [attrKey, {
|
150
182
|
display,
|
151
183
|
...definition
|
152
|
-
}] =
|
184
|
+
}] = _ref18;
|
153
185
|
return [attrKey, {
|
154
186
|
...definition,
|
155
|
-
name: display.reduce((names,
|
187
|
+
name: display.reduce((names, _ref19) => {
|
156
188
|
let {
|
157
189
|
locale,
|
158
190
|
name
|
159
|
-
} =
|
191
|
+
} = _ref19;
|
160
192
|
return {
|
161
193
|
...names,
|
162
194
|
[locale]: name
|
@@ -166,11 +198,11 @@ const parseCredentialMDoc = function (credentials_supported, credential_type, _r
|
|
166
198
|
}));
|
167
199
|
if (includeUndefinedAttributes) {
|
168
200
|
// Attributes that are present in the disclosure set but not defined in the issuer configuration
|
169
|
-
const undefinedValues = Object.fromEntries(flatNamespaces.filter(
|
170
|
-
let [, key] =
|
201
|
+
const undefinedValues = Object.fromEntries(flatNamespaces.filter(_ref20 => {
|
202
|
+
let [, key] = _ref20;
|
171
203
|
return !Object.keys(definedValues).includes(key);
|
172
|
-
}).map(
|
173
|
-
let [, key, value] =
|
204
|
+
}).map(_ref21 => {
|
205
|
+
let [, key, value] = _ref21;
|
174
206
|
return [key, {
|
175
207
|
value,
|
176
208
|
name: key
|
@@ -258,12 +290,12 @@ async function verifyCredentialMDoc(rawCredential, issuerKeys, holderBindingCont
|
|
258
290
|
|
259
291
|
// utility type that specialize VerifyAndParseCredential for given format
|
260
292
|
|
261
|
-
const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, __,
|
293
|
+
const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, __, _ref22) => {
|
262
294
|
let {
|
263
295
|
credentialCryptoContext,
|
264
296
|
ignoreMissingAttributes,
|
265
297
|
includeUndefinedAttributes
|
266
|
-
} =
|
298
|
+
} = _ref22;
|
267
299
|
const decoded = await verifyCredentialSdJwt(credential, issuerConf.keys, credentialCryptoContext);
|
268
300
|
const parsedCredential = parseCredentialSdJwt(issuerConf.credential_configurations_supported, decoded, ignoreMissingAttributes, includeUndefinedAttributes);
|
269
301
|
const maybeIssuedAt = getValueFromDisclosures(decoded.disclosures, "iat");
|
@@ -273,14 +305,14 @@ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, __, _ref
|
|
273
305
|
issuedAt: typeof maybeIssuedAt === "number" ? new Date(maybeIssuedAt * 1000) : undefined
|
274
306
|
};
|
275
307
|
};
|
276
|
-
const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, credentialType,
|
308
|
+
const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, credentialType, _ref23) => {
|
277
309
|
var _parsedCredential$exp, _parsedCredential$iss;
|
278
310
|
let {
|
279
311
|
credentialCryptoContext,
|
280
312
|
ignoreMissingAttributes
|
281
|
-
} =
|
313
|
+
} = _ref23;
|
282
314
|
const decoded = await verifyCredentialMDoc(credential, issuerConf.keys, credentialCryptoContext);
|
283
|
-
const parsedCredential = parseCredentialMDoc(issuerConf.credential_configurations_supported, credentialType, decoded, ignoreMissingAttributes);
|
315
|
+
const parsedCredential = parseCredentialMDoc(issuerConf.credential_configurations_supported, credentialType, decoded, undefined, ignoreMissingAttributes);
|
284
316
|
const expirationDate = extractElementValueAsDate(parsedCredential === null || parsedCredential === void 0 || (_parsedCredential$exp = parsedCredential.expiry_date) === null || _parsedCredential$exp === void 0 ? void 0 : _parsedCredential$exp.value);
|
285
317
|
if (!expirationDate) {
|
286
318
|
throw new IoWalletError(`expirationDate must be present!!`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","verifyMdoc","getValueFromDisclosures","extractElementValueAsDate","parseCredentialSdJwt","credentials_supported","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","credentialSubject","payload","vct","format","header","typ","claims","attrDefinitions","Object","entries","attrsNotInDisclosures","filter","_ref2","attrKey","some","_ref3","name","missing","map","_","join","received","definedValues","fromEntries","_ref4","_disclosures$find","definition","value","find","_ref5","display","reduce","names","_ref6","locale","undefinedValues","keys","includes","_ref7","key","parseCredentialMDoc","credential_type","_ref8","issuerSigned","flatMap","_ref9","namespace","claimName","_ref10","claimNameKey","nameSpaces","flatNamespaces","_ref11","values","v","elementIdentifier","elementValue","_ref12","_flatNamespaces$find","attrDefNamespace","_ref13","_ref14","_ref15","_ref16","_ref17","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","jwk","kid","verifyCredentialMDoc","verifyAndParseCredentialSdJwt","issuerConf","credential","__","_ref18","credentialCryptoContext","decoded","parsedCredential","credential_configurations_supported","maybeIssuedAt","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","credentialType","_ref19","_parsedCredential$exp","_parsedCredential$iss","expirationDate","expiry_date","setDate","getDate","issue_date","verifyAndParseCredential","context"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","verifyMdoc","getValueFromDisclosures","extractElementValueAsDate","parseCredentialSdJwt","credentials_supported","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","credentialSubject","payload","vct","format","header","typ","claims","attrDefinitions","Object","entries","attrsNotInDisclosures","filter","_ref2","attrKey","definition","some","_ref3","name","mandatory","missing","map","_","join","received","definedValues","fromEntries","_ref4","_disclosures$find","value","find","_ref5","_ref6","display","reduce","names","_ref7","locale","undefinedValues","keys","includes","_ref8","key","parseCredentialMDoc","credential_type","_ref9","issuerSigned","flatMap","_ref10","namespace","claimName","_ref11","claimNameKey","nameSpaces","flatNamespaces","_ref12","values","v","elementIdentifier","elementValue","_ref13","attrDefNamespace","isClaimPresent","_ref14","_ref15","_flatNamespaces$find","_ref16","_ref17","_ref18","_ref19","_ref20","_ref21","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","jwk","kid","verifyCredentialMDoc","verifyAndParseCredentialSdJwt","issuerConf","credential","__","_ref22","credentialCryptoContext","decoded","parsedCredential","credential_configurations_supported","maybeIssuedAt","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","credentialType","_ref23","_parsedCredential$exp","_parsedCredential$iss","expirationDate","expiry_date","setDate","getDate","issue_date","verifyAndParseCredential","context"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
|
@@ -0,0 +1,175 @@
|
|
1
|
+
import { DcqlQuery, DcqlError, DcqlCredentialSetError } from "dcql";
|
2
|
+
import { isValiError } from "valibot";
|
3
|
+
import { decode } from "../../sd-jwt";
|
4
|
+
import { ValidationFailed } from "../../utils/errors";
|
5
|
+
import { CredentialNotFoundError } from "./errors";
|
6
|
+
import { CBOR } from "@pagopa/io-react-native-cbor";
|
7
|
+
|
8
|
+
/**
|
9
|
+
* The purpose for the credential request by the RP.
|
10
|
+
*/
|
11
|
+
|
12
|
+
/**
|
13
|
+
* Convert a credential in SD-JWT format to an object with claims
|
14
|
+
* for correct parsing by the `dcql` library.
|
15
|
+
*/
|
16
|
+
const mapCredentialSdJwtToObj = credentials => credentials.map(_ref => {
|
17
|
+
let [,, jwt] = _ref;
|
18
|
+
const {
|
19
|
+
sdJwt,
|
20
|
+
disclosures
|
21
|
+
} = decode(jwt);
|
22
|
+
const credentialFormat = sdJwt.header.typ;
|
23
|
+
return {
|
24
|
+
vct: sdJwt.payload.vct,
|
25
|
+
credential_format: credentialFormat,
|
26
|
+
claims: disclosures.reduce((acc, disclosure) => ({
|
27
|
+
...acc,
|
28
|
+
[disclosure.decoded[1]]: disclosure.decoded
|
29
|
+
}), {})
|
30
|
+
};
|
31
|
+
});
|
32
|
+
|
33
|
+
/**
|
34
|
+
* Convert a credential in Mdoc format to an object with claims
|
35
|
+
* for correct parsing by the `dcql` library.
|
36
|
+
*/
|
37
|
+
const mapCredentialsMdocToObj = async credentialsMdoc => {
|
38
|
+
return await Promise.all(credentialsMdoc === null || credentialsMdoc === void 0 ? void 0 : credentialsMdoc.map(async _ref2 => {
|
39
|
+
let [type, _, credential] = _ref2;
|
40
|
+
const issuerSigned = credential ? await CBOR.decodeIssuerSigned(credential) : undefined;
|
41
|
+
if (!issuerSigned) {
|
42
|
+
throw new CredentialNotFoundError("mso_mdoc credential is not present.");
|
43
|
+
}
|
44
|
+
const namespaces = Object.entries(issuerSigned.nameSpaces).reduce((acc, _ref3) => {
|
45
|
+
let [ns, nsClaims] = _ref3;
|
46
|
+
const flattenNsClaims = Object.entries(nsClaims).reduce((ac, _ref4) => {
|
47
|
+
let [, el] = _ref4;
|
48
|
+
return {
|
49
|
+
...ac,
|
50
|
+
[el.elementIdentifier]: el.elementValue
|
51
|
+
};
|
52
|
+
}, {});
|
53
|
+
return {
|
54
|
+
...acc,
|
55
|
+
[ns]: flattenNsClaims
|
56
|
+
};
|
57
|
+
}, {});
|
58
|
+
return {
|
59
|
+
credential_format: "mso_mdoc",
|
60
|
+
doctype: type,
|
61
|
+
namespaces
|
62
|
+
};
|
63
|
+
}));
|
64
|
+
};
|
65
|
+
|
66
|
+
/**
|
67
|
+
* Extract only successful matches from the DCQL query result.
|
68
|
+
*/
|
69
|
+
const getDcqlQueryMatches = result => Object.entries(result.credential_matches).filter(_ref5 => {
|
70
|
+
let [, match] = _ref5;
|
71
|
+
return match.success === true;
|
72
|
+
});
|
73
|
+
export const evaluateDcqlQuery = async (query, credentialsSdJwt, credentialsMdoc) => {
|
74
|
+
const credentials = [];
|
75
|
+
credentials.push(...mapCredentialSdJwtToObj(credentialsSdJwt));
|
76
|
+
credentials.push(...(await mapCredentialsMdocToObj(credentialsMdoc)));
|
77
|
+
try {
|
78
|
+
// Validate the query
|
79
|
+
const parsedQuery = DcqlQuery.parse(query);
|
80
|
+
DcqlQuery.validate(parsedQuery);
|
81
|
+
const queryResult = DcqlQuery.query(parsedQuery, credentials);
|
82
|
+
if (!queryResult.canBeSatisfied) {
|
83
|
+
throw new Error("No credential can satisfy the provided DCQL query");
|
84
|
+
}
|
85
|
+
return getDcqlQueryMatches(queryResult).map(_ref6 => {
|
86
|
+
var _queryResult$credenti;
|
87
|
+
let [id, match] = _ref6;
|
88
|
+
const purposes = (_queryResult$credenti = queryResult.credential_sets) === null || _queryResult$credenti === void 0 || (_queryResult$credenti = _queryResult$credenti.filter(set => {
|
89
|
+
var _set$matching_options;
|
90
|
+
return (_set$matching_options = set.matching_options) === null || _set$matching_options === void 0 ? void 0 : _set$matching_options.flat().includes(id);
|
91
|
+
})) === null || _queryResult$credenti === void 0 ? void 0 : _queryResult$credenti.map(credentialSet => {
|
92
|
+
var _credentialSet$purpos;
|
93
|
+
return {
|
94
|
+
description: (_credentialSet$purpos = credentialSet.purpose) === null || _credentialSet$purpos === void 0 ? void 0 : _credentialSet$purpos.toString(),
|
95
|
+
required: Boolean(credentialSet.required)
|
96
|
+
};
|
97
|
+
});
|
98
|
+
if (match.output.credential_format === "vc+sd-jwt") {
|
99
|
+
const {
|
100
|
+
vct,
|
101
|
+
claims
|
102
|
+
} = match.output;
|
103
|
+
const [, keyTag, credential] = credentialsSdJwt.find(_ref7 => {
|
104
|
+
let [type] = _ref7;
|
105
|
+
return type === vct;
|
106
|
+
});
|
107
|
+
const requiredDisclosures = Object.values(claims);
|
108
|
+
return {
|
109
|
+
id,
|
110
|
+
vct,
|
111
|
+
keyTag,
|
112
|
+
format: match.output.credential_format,
|
113
|
+
credential,
|
114
|
+
requiredDisclosures,
|
115
|
+
// When it is a match but no credential_sets are found, the credential is required by default
|
116
|
+
// See https://openid.net/specs/openid-4-verifiable-presentations-1_0-24.html#section-6.3.1.2-2.1
|
117
|
+
purposes: purposes ?? [{
|
118
|
+
required: true
|
119
|
+
}]
|
120
|
+
};
|
121
|
+
}
|
122
|
+
if (match.output.credential_format === "mso_mdoc") {
|
123
|
+
const {
|
124
|
+
doctype,
|
125
|
+
namespaces
|
126
|
+
} = match.output;
|
127
|
+
const [, keyTag, credential] = credentialsMdoc.find(_ref8 => {
|
128
|
+
let [type] = _ref8;
|
129
|
+
return type === doctype;
|
130
|
+
});
|
131
|
+
const requiredDisclosures = Object.entries(namespaces).reduce((acc, _ref9) => {
|
132
|
+
let [ns, nsClaims] = _ref9;
|
133
|
+
return [...acc, ...Object.entries(nsClaims).map(_ref10 => {
|
134
|
+
let [claimName] = _ref10;
|
135
|
+
return {
|
136
|
+
namespace: ns,
|
137
|
+
name: claimName,
|
138
|
+
value: nsClaims[claimName]
|
139
|
+
};
|
140
|
+
})];
|
141
|
+
}, []);
|
142
|
+
return {
|
143
|
+
id,
|
144
|
+
keyTag,
|
145
|
+
format: match.output.credential_format,
|
146
|
+
credential,
|
147
|
+
requiredDisclosures,
|
148
|
+
// When it is a match but no credential_sets are found, the credential is required by default
|
149
|
+
// See https://openid.net/specs/openid-4-verifiable-presentations-1_0-24.html#section-6.3.1.2-2.1
|
150
|
+
purposes: purposes ?? [{
|
151
|
+
required: true
|
152
|
+
}],
|
153
|
+
doctype
|
154
|
+
};
|
155
|
+
}
|
156
|
+
throw new Error(`Unsupported credential format: ${match.output.credential_format}`);
|
157
|
+
});
|
158
|
+
} catch (error) {
|
159
|
+
// Invalid DCQL query structure
|
160
|
+
if (isValiError(error)) {
|
161
|
+
throw new ValidationFailed({
|
162
|
+
message: "Invalid DCQL query",
|
163
|
+
reason: error.issues.map(issue => issue.message).join(", ")
|
164
|
+
});
|
165
|
+
}
|
166
|
+
if (error instanceof DcqlError) {
|
167
|
+
// TODO [SIW-2110]: handle invalid DQCL query or let the error propagate
|
168
|
+
}
|
169
|
+
if (error instanceof DcqlCredentialSetError) {
|
170
|
+
// TODO [SIW-2110]: handle missing credentials or let the error propagate
|
171
|
+
}
|
172
|
+
throw error;
|
173
|
+
}
|
174
|
+
};
|
175
|
+
//# sourceMappingURL=07-evaluate-dcql-query.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["DcqlQuery","DcqlError","DcqlCredentialSetError","isValiError","decode","ValidationFailed","CredentialNotFoundError","CBOR","mapCredentialSdJwtToObj","credentials","map","_ref","jwt","sdJwt","disclosures","credentialFormat","header","typ","vct","payload","credential_format","claims","reduce","acc","disclosure","decoded","mapCredentialsMdocToObj","credentialsMdoc","Promise","all","_ref2","type","_","credential","issuerSigned","decodeIssuerSigned","undefined","namespaces","Object","entries","nameSpaces","_ref3","ns","nsClaims","flattenNsClaims","ac","_ref4","el","elementIdentifier","elementValue","doctype","getDcqlQueryMatches","result","credential_matches","filter","_ref5","match","success","evaluateDcqlQuery","query","credentialsSdJwt","push","parsedQuery","parse","validate","queryResult","canBeSatisfied","Error","_ref6","_queryResult$credenti","id","purposes","credential_sets","set","_set$matching_options","matching_options","flat","includes","credentialSet","_credentialSet$purpos","description","purpose","toString","required","Boolean","output","keyTag","find","_ref7","requiredDisclosures","values","format","_ref8","_ref9","_ref10","claimName","namespace","name","value","error","message","reason","issues","issue","join"],"sourceRoot":"../../../../src","sources":["credential/presentation/07-evaluate-dcql-query.ts"],"mappings":"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"}
|
@@ -1,11 +1,8 @@
|
|
1
|
-
import { decode
|
2
|
-
import { createCryptoContextFor } from "../../utils/crypto";
|
1
|
+
import { decode } from "../../sd-jwt";
|
3
2
|
import { JSONPath } from "jsonpath-plus";
|
4
3
|
import { MissingDataError, CredentialNotFoundError } from "./errors";
|
5
4
|
import Ajv from "ajv";
|
6
5
|
import { CBOR } from "@pagopa/io-react-native-cbor";
|
7
|
-
import { prepareVpTokenMdoc } from "../../mdoc";
|
8
|
-
import { generateRandomAlphaNumericString } from "../../utils/misc";
|
9
6
|
const ajv = new Ajv({
|
10
7
|
allErrors: true
|
11
8
|
});
|
@@ -336,7 +333,7 @@ export const findCredentialMDoc = (inputDescriptor, decodedMDocCredentials) => {
|
|
336
333
|
export const evaluateInputDescriptors = async (inputDescriptors, credentialsSdJwt, credentialsMdoc) => {
|
337
334
|
// We need decode SD-JWT credentials for evaluation
|
338
335
|
const decodedSdJwtCredentials = (credentialsSdJwt === null || credentialsSdJwt === void 0 ? void 0 : credentialsSdJwt.map(_ref3 => {
|
339
|
-
let [keyTag, credential] = _ref3;
|
336
|
+
let [, keyTag, credential] = _ref3;
|
340
337
|
const {
|
341
338
|
sdJwt,
|
342
339
|
disclosures
|
@@ -351,7 +348,7 @@ export const evaluateInputDescriptors = async (inputDescriptors, credentialsSdJw
|
|
351
348
|
|
352
349
|
// We need decode Mdoc credentials for evaluation
|
353
350
|
const decodedMdocCredentials = (await Promise.all(credentialsMdoc === null || credentialsMdoc === void 0 ? void 0 : credentialsMdoc.map(async _ref4 => {
|
354
|
-
let [keyTag, credential] = _ref4;
|
351
|
+
let [, keyTag, credential] = _ref4;
|
355
352
|
const issuerSigned = await CBOR.decodeIssuerSigned(credential);
|
356
353
|
if (!issuerSigned) {
|
357
354
|
throw new CredentialNotFoundError("mso_mdoc credential is not present.");
|
@@ -400,54 +397,4 @@ export const evaluateInputDescriptors = async (inputDescriptors, credentialsSdJw
|
|
400
397
|
}));
|
401
398
|
return results;
|
402
399
|
};
|
403
|
-
|
404
|
-
/**
|
405
|
-
* Prepares remote presentations for a set of credentials based on input descriptors.
|
406
|
-
*
|
407
|
-
* For each credential and its corresponding input descriptor, this function:
|
408
|
-
* - Validates the credential format.
|
409
|
-
* - Generates a verifiable presentation token (vpToken) using the provided nonce and client identifier.
|
410
|
-
*
|
411
|
-
* @param credentialAndDescriptors - An array containing objects with requested claims,
|
412
|
-
* input descriptor, credential, and keyTag.
|
413
|
-
* @param nonce - A unique nonce for the verifiable presentation token.
|
414
|
-
* @param client_id - The client identifier.
|
415
|
-
* @returns A promise that resolves to an array of RemotePresentation objects.
|
416
|
-
* @throws {CredentialNotFoundError} When the credential format is unsupported.
|
417
|
-
*/
|
418
|
-
export const prepareRemotePresentations = async (credentialAndDescriptors, authRequestObject) => {
|
419
|
-
/* In case of ISO 18013-7 we need a nonce, it shall have a minimum entropy of 16 */
|
420
|
-
const generatedNonce = generateRandomAlphaNumericString(16);
|
421
|
-
const presentations = await Promise.all(credentialAndDescriptors.map(async item => {
|
422
|
-
var _descriptor$format3, _descriptor$format4;
|
423
|
-
const descriptor = item.inputDescriptor;
|
424
|
-
if ((_descriptor$format3 = descriptor.format) !== null && _descriptor$format3 !== void 0 && _descriptor$format3.mso_mdoc) {
|
425
|
-
const {
|
426
|
-
vp_token
|
427
|
-
} = await prepareVpTokenMdoc(authRequestObject.nonce, generatedNonce, authRequestObject.clientId, authRequestObject.responseUri, descriptor.id, item.keyTag, [item.credential, item.requestedClaims, createCryptoContextFor(item.keyTag)]);
|
428
|
-
return {
|
429
|
-
requestedClaims: item.requestedClaims,
|
430
|
-
inputDescriptor: descriptor,
|
431
|
-
vpToken: vp_token,
|
432
|
-
format: "mso_mdoc"
|
433
|
-
};
|
434
|
-
}
|
435
|
-
if ((_descriptor$format4 = descriptor.format) !== null && _descriptor$format4 !== void 0 && _descriptor$format4["vc+sd-jwt"]) {
|
436
|
-
const {
|
437
|
-
vp_token
|
438
|
-
} = await prepareVpToken(authRequestObject.nonce, authRequestObject.clientId, [item.credential, item.requestedClaims, createCryptoContextFor(item.keyTag)]);
|
439
|
-
return {
|
440
|
-
requestedClaims: item.requestedClaims,
|
441
|
-
inputDescriptor: descriptor,
|
442
|
-
vpToken: vp_token,
|
443
|
-
format: "vc+sd-jwt"
|
444
|
-
};
|
445
|
-
}
|
446
|
-
throw new CredentialNotFoundError(`${descriptor.format} format is not supported.`);
|
447
|
-
}));
|
448
|
-
return {
|
449
|
-
presentations,
|
450
|
-
generatedNonce
|
451
|
-
};
|
452
|
-
};
|
453
400
|
//# sourceMappingURL=07-evaluate-input-descriptor.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["decode","prepareVpToken","createCryptoContextFor","JSONPath","MissingDataError","CredentialNotFoundError","Ajv","CBOR","prepareVpTokenMdoc","generateRandomAlphaNumericString","ajv","allErrors","disclosureWithEncodedToEvaluatedDisclosure","disclosure","claimName","claimValue","decoded","name","value","mapDisclosuresToObject","disclosures","reduce","obj","_ref","mapNamespacesToObject","namespaces","Object","entries","_ref2","namespace","elements","fromEntries","map","element","elementIdentifier","elementValue","findMatchedClaim","paths","payload","matchedPath","matchedValue","some","singlePath","result","path","json","length","error","extractClaimName","regex","match","Error","extractNamespaceAndClaimName","nameSpace","propertyName","evaluateInputDescriptorForMdoc","inputDescriptor","issuerSigned","_inputDescriptor$cons","constraints","fields","requiredDisclosures","optionalDisclosures","namespacesAsPayload","nameSpaces","allFieldsValid","every","field","undefined","optional","push","filter","validateSchema","compile","evaluateInputDescriptorForSdJwt4VC","payloadCredential","_inputDescriptor$cons2","disclosuresAsPayload","findCredentialSdJwt","decodedSdJwtCredentials","keyTag","credential","sdJwt","evaluatedDisclosure","matchedEvaluation","matchedKeyTag","matchedCredential","findCredentialMDoc","decodedMDocCredentials","evaluateInputDescriptors","inputDescriptors","credentialsSdJwt","credentialsMdoc","_ref3","decodedMdocCredentials","Promise","all","_ref4","decodeIssuerSigned","results","descriptor","_descriptor$format","_descriptor$format2","format","mso_mdoc","prepareRemotePresentations","credentialAndDescriptors","authRequestObject","generatedNonce","presentations","item","_descriptor$format3","_descriptor$format4","vp_token","nonce","clientId","responseUri","id","requestedClaims","vpToken"],"sourceRoot":"../../../../src","sources":["credential/presentation/07-evaluate-input-descriptor.ts"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["decode","JSONPath","MissingDataError","CredentialNotFoundError","Ajv","CBOR","ajv","allErrors","disclosureWithEncodedToEvaluatedDisclosure","disclosure","claimName","claimValue","decoded","name","value","mapDisclosuresToObject","disclosures","reduce","obj","_ref","mapNamespacesToObject","namespaces","Object","entries","_ref2","namespace","elements","fromEntries","map","element","elementIdentifier","elementValue","findMatchedClaim","paths","payload","matchedPath","matchedValue","some","singlePath","result","path","json","length","error","extractClaimName","regex","match","Error","extractNamespaceAndClaimName","nameSpace","propertyName","evaluateInputDescriptorForMdoc","inputDescriptor","issuerSigned","_inputDescriptor$cons","constraints","fields","requiredDisclosures","optionalDisclosures","namespacesAsPayload","nameSpaces","allFieldsValid","every","field","undefined","optional","push","filter","validateSchema","compile","evaluateInputDescriptorForSdJwt4VC","payloadCredential","_inputDescriptor$cons2","disclosuresAsPayload","findCredentialSdJwt","decodedSdJwtCredentials","keyTag","credential","sdJwt","evaluatedDisclosure","matchedEvaluation","matchedKeyTag","matchedCredential","findCredentialMDoc","decodedMDocCredentials","evaluateInputDescriptors","inputDescriptors","credentialsSdJwt","credentialsMdoc","_ref3","decodedMdocCredentials","Promise","all","_ref4","decodeIssuerSigned","results","descriptor","_descriptor$format","_descriptor$format2","format","mso_mdoc"],"sourceRoot":"../../../../src","sources":["credential/presentation/07-evaluate-input-descriptor.ts"],"mappings":"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"}
|