@pagopa/io-react-native-wallet 2.4.1 → 2.5.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 +148 -123
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/commonjs/credential/issuance/mrtd-pop/02-init-challenge.js +12 -1
- package/lib/commonjs/credential/issuance/mrtd-pop/02-init-challenge.js.map +1 -1
- package/lib/commonjs/sd-jwt/index.js.map +1 -1
- package/lib/commonjs/utils/error-codes.js +5 -1
- package/lib/commonjs/utils/error-codes.js.map +1 -1
- package/lib/commonjs/utils/parser.js +20 -0
- package/lib/commonjs/utils/parser.js.map +1 -0
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js +144 -119
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/module/credential/issuance/mrtd-pop/02-init-challenge.js +13 -2
- package/lib/module/credential/issuance/mrtd-pop/02-init-challenge.js.map +1 -1
- package/lib/module/sd-jwt/__test__/index.test.js +1 -1
- package/lib/module/sd-jwt/__test__/index.test.js.map +1 -1
- package/lib/module/sd-jwt/index.js +1 -3
- package/lib/module/sd-jwt/index.js.map +1 -1
- package/lib/module/utils/error-codes.js +5 -1
- package/lib/module/utils/error-codes.js.map +1 -1
- package/lib/module/utils/parser.js +12 -0
- package/lib/module/utils/parser.js.map +1 -0
- package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/mrtd-pop/02-init-challenge.d.ts.map +1 -1
- package/lib/typescript/sd-jwt/index.d.ts +1 -1
- package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
- package/lib/typescript/utils/error-codes.d.ts +4 -0
- package/lib/typescript/utils/error-codes.d.ts.map +1 -1
- package/lib/typescript/utils/parser.d.ts +9 -0
- package/lib/typescript/utils/parser.d.ts.map +1 -0
- package/package.json +8 -3
- package/src/credential/issuance/07-verify-and-parse-credential.ts +138 -94
- package/src/credential/issuance/mrtd-pop/02-init-challenge.ts +25 -3
- package/src/sd-jwt/__test__/index.test.ts +1 -1
- package/src/sd-jwt/index.ts +7 -5
- package/src/utils/error-codes.ts +4 -0
- package/src/utils/parser.ts +18 -0
- package/lib/commonjs/utils/nestedProperty.js +0 -153
- package/lib/commonjs/utils/nestedProperty.js.map +0 -1
- package/lib/module/utils/nestedProperty.js +0 -147
- package/lib/module/utils/nestedProperty.js.map +0 -1
- package/lib/typescript/utils/nestedProperty.d.ts +0 -24
- package/lib/typescript/utils/nestedProperty.d.ts.map +0 -1
- package/src/utils/nestedProperty.ts +0 -223
|
@@ -6,110 +6,125 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.verifyAndParseCredential = void 0;
|
|
7
7
|
var _errors = require("../../utils/errors");
|
|
8
8
|
var _sdJwt = require("../../sd-jwt");
|
|
9
|
-
var _converters = require("../../sd-jwt/converters");
|
|
10
9
|
var _jwk = require("../../utils/jwk");
|
|
11
10
|
var _mdoc = require("../../mdoc");
|
|
12
11
|
var _const = require("../../mdoc/const");
|
|
13
|
-
var _utils = require("../../mdoc/utils");
|
|
14
12
|
var _logging = require("../../utils/logging");
|
|
15
13
|
var _converter = require("../../mdoc/converter");
|
|
16
|
-
var
|
|
14
|
+
var _core = require("@sd-jwt/core");
|
|
15
|
+
var _cryptoNodejs = require("@sd-jwt/crypto-nodejs");
|
|
16
|
+
var _parser = require("../../utils/parser");
|
|
17
17
|
// The credential as a collection of attributes in plain value
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Parse a Sd-Jwt credential according to the issuer configuration
|
|
21
|
+
* @param credentialConfig - the list of supported credentials, as defined in the issuer configuration with their claims metadata
|
|
22
|
+
* @param parsedCredentialRaw - the raw parsed credential
|
|
23
|
+
* @param ignoreMissingAttributes - skip error when attributes declared in the issuer configuration are not found within disclosures
|
|
24
|
+
* @param includeUndefinedAttributes - include attributes not explicitly declared in the issuer configuration
|
|
25
|
+
* @returns The parsed credential with attributes in plain value
|
|
26
|
+
*/
|
|
27
|
+
const parseCredentialSdJwt = function (credentialConfig, parsedCredentialRaw) {
|
|
26
28
|
let ignoreMissingAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
27
29
|
let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
28
|
-
|
|
29
|
-
const message = `Received credential is of an unknown type. Expected one of [${credentialConfig.format}], received '${sdJwt.header.typ}'`;
|
|
30
|
-
_logging.Logger.log(_logging.LogLevel.ERROR, message);
|
|
31
|
-
throw new _errors.IoWalletError(message);
|
|
32
|
-
}
|
|
33
|
-
if (!credentialConfig.claims) {
|
|
34
|
-
_logging.Logger.log(_logging.LogLevel.ERROR, "Missing claims in the credential subject");
|
|
35
|
-
throw new _errors.IoWalletError("Missing claims in the credential subject"); // TODO [SIW-1268]: should not be optional
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const attrDefinitions = credentialConfig.claims;
|
|
30
|
+
const claimsMetadata = credentialConfig.claims || [];
|
|
39
31
|
|
|
40
|
-
//
|
|
32
|
+
// Check that all mandatory attributes defined in the issuer configuration are present in the credential
|
|
41
33
|
if (!ignoreMissingAttributes) {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (
|
|
50
|
-
|
|
34
|
+
const missingPaths = [];
|
|
35
|
+
const rootKeysToVerify = new Set(claimsMetadata.map(c => c.path[0]).filter(p => typeof p === "string"));
|
|
36
|
+
for (const rootKey of rootKeysToVerify) {
|
|
37
|
+
if (!(rootKey in parsedCredentialRaw)) {
|
|
38
|
+
missingPaths.push(rootKey);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (missingPaths.length > 0) {
|
|
42
|
+
const missing = missingPaths.join(", ");
|
|
43
|
+
const received = Object.keys(parsedCredentialRaw).join(", ");
|
|
44
|
+
throw new _errors.IoWalletError(`Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`);
|
|
51
45
|
}
|
|
52
46
|
}
|
|
53
|
-
const definedValues = {};
|
|
54
47
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Helper to find display metadata for any given path
|
|
50
|
+
*/
|
|
51
|
+
const getDisplayNames = path => {
|
|
52
|
+
const match = claimsMetadata.find(c => (0, _parser.isPathEqual)(c.path, path));
|
|
53
|
+
if (!match) return undefined;
|
|
54
|
+
const nameMap = {};
|
|
55
|
+
for (const entry of match.display) {
|
|
56
|
+
nameMap[entry.locale] = entry.name;
|
|
63
57
|
}
|
|
64
|
-
return
|
|
65
|
-
}
|
|
58
|
+
return nameMap;
|
|
59
|
+
};
|
|
66
60
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Recursive function to build the localized structure
|
|
63
|
+
*/
|
|
64
|
+
const processLevel = (currentData, currentPath) => {
|
|
65
|
+
// Handle Arrays
|
|
66
|
+
if (Array.isArray(currentData)) {
|
|
67
|
+
return currentData.map(item => processLevel(item, [...currentPath, null]));
|
|
72
68
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (!disclosureForThisKey) {
|
|
78
|
-
continue;
|
|
69
|
+
|
|
70
|
+
// Handle Objects
|
|
71
|
+
if (typeof currentData !== "object" || currentData === null) {
|
|
72
|
+
return currentData;
|
|
79
73
|
}
|
|
80
|
-
const
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
path,
|
|
84
|
-
display
|
|
85
|
-
} = _ref4;
|
|
86
|
-
return (0, _nestedProperty.createNestedProperty)(acc, path, disclosureValue, display);
|
|
87
|
-
}, {});
|
|
74
|
+
const dataObj = currentData;
|
|
75
|
+
const result = {};
|
|
76
|
+
const processedKeys = new Set();
|
|
88
77
|
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
78
|
+
// Identify unique keys in config at this level
|
|
79
|
+
const configKeysAtThisLevel = [];
|
|
80
|
+
for (const claim of claimsMetadata) {
|
|
81
|
+
// Check if the claim path starts with the current path
|
|
82
|
+
if ((0, _parser.isPrefixOf)(currentPath, claim.path)) {
|
|
83
|
+
const nextPart = claim.path[currentPath.length];
|
|
84
|
+
if ((typeof nextPart === "string" || typeof nextPart === "number") && !configKeysAtThisLevel.includes(nextPart)) {
|
|
85
|
+
configKeysAtThisLevel.push(nextPart);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Process keys
|
|
91
|
+
for (const key of configKeysAtThisLevel) {
|
|
92
|
+
const stringKey = key.toString();
|
|
93
|
+
const dataValue = dataObj[stringKey];
|
|
94
|
+
if (dataValue === undefined) continue;
|
|
95
|
+
const newPath = [...currentPath, key];
|
|
96
|
+
let localizedNames = getDisplayNames(newPath);
|
|
97
|
+
|
|
98
|
+
// Fallback for arrays
|
|
99
|
+
if (!localizedNames && Array.isArray(dataValue)) {
|
|
100
|
+
localizedNames = getDisplayNames([...newPath, null]);
|
|
101
|
+
}
|
|
102
|
+
result[stringKey] = {
|
|
103
|
+
name: localizedNames || stringKey,
|
|
104
|
+
value: processLevel(dataValue, newPath)
|
|
105
|
+
};
|
|
106
|
+
processedKeys.add(key);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Handle Undefined Attributes
|
|
110
|
+
if (includeUndefinedAttributes) {
|
|
111
|
+
for (const [key, value] of Object.entries(dataObj)) {
|
|
112
|
+
if (!processedKeys.has(key)) {
|
|
113
|
+
result[key] = {
|
|
114
|
+
name: key,
|
|
115
|
+
value: value
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return result;
|
|
121
|
+
};
|
|
122
|
+
return processLevel(parsedCredentialRaw, []);
|
|
108
123
|
};
|
|
109
|
-
const parseCredentialMDoc = function (credentialConfig,
|
|
124
|
+
const parseCredentialMDoc = function (credentialConfig, _ref) {
|
|
110
125
|
let {
|
|
111
126
|
issuerSigned
|
|
112
|
-
} =
|
|
127
|
+
} = _ref;
|
|
113
128
|
let ignoreMissingAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
114
129
|
let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
115
130
|
if (!credentialConfig) {
|
|
@@ -118,37 +133,37 @@ const parseCredentialMDoc = function (credentialConfig, _ref6) {
|
|
|
118
133
|
if (!credentialConfig.claims) {
|
|
119
134
|
throw new _errors.IoWalletError("Missing claims in the credential subject");
|
|
120
135
|
}
|
|
121
|
-
const attrDefinitions = credentialConfig.claims.map(
|
|
136
|
+
const attrDefinitions = credentialConfig.claims.map(_ref2 => {
|
|
122
137
|
let {
|
|
123
138
|
path: [namespace, attribute],
|
|
124
139
|
display
|
|
125
|
-
} =
|
|
140
|
+
} = _ref2;
|
|
126
141
|
return [namespace, attribute, display];
|
|
127
142
|
});
|
|
128
143
|
if (!issuerSigned.nameSpaces) {
|
|
129
144
|
throw new _errors.IoWalletError("Missing claims in the credential");
|
|
130
145
|
}
|
|
131
|
-
const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(
|
|
132
|
-
let [namespace, values] =
|
|
146
|
+
const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref3 => {
|
|
147
|
+
let [namespace, values] = _ref3;
|
|
133
148
|
return values.map(v => [namespace, v.elementIdentifier, v.elementValue]);
|
|
134
149
|
});
|
|
135
150
|
|
|
136
151
|
// Check that all mandatory attributes defined in the issuer configuration are present in the disclosure set
|
|
137
152
|
// and filter the non present ones
|
|
138
|
-
const attrsNotInDisclosures = attrDefinitions.filter(
|
|
139
|
-
let [attrDefNamespace, attrKey] =
|
|
140
|
-
return !flatNamespaces.some(
|
|
141
|
-
let [namespace, claim] =
|
|
153
|
+
const attrsNotInDisclosures = attrDefinitions.filter(_ref4 => {
|
|
154
|
+
let [attrDefNamespace, attrKey] = _ref4;
|
|
155
|
+
return !flatNamespaces.some(_ref5 => {
|
|
156
|
+
let [namespace, claim] = _ref5;
|
|
142
157
|
return attrDefNamespace === namespace && attrKey === claim;
|
|
143
158
|
});
|
|
144
159
|
});
|
|
145
160
|
if (attrsNotInDisclosures.length > 0) {
|
|
146
|
-
const missing = attrsNotInDisclosures.map(
|
|
147
|
-
let [, attrKey] =
|
|
161
|
+
const missing = attrsNotInDisclosures.map(_ref6 => {
|
|
162
|
+
let [, attrKey] = _ref6;
|
|
148
163
|
return attrKey;
|
|
149
164
|
}).join(", ");
|
|
150
|
-
const received = flatNamespaces.map(
|
|
151
|
-
let [, attrKey] =
|
|
165
|
+
const received = flatNamespaces.map(_ref7 => {
|
|
166
|
+
let [, attrKey] = _ref7;
|
|
152
167
|
return attrKey;
|
|
153
168
|
}).join(", ");
|
|
154
169
|
if (!ignoreMissingAttributes) {
|
|
@@ -159,38 +174,38 @@ const parseCredentialMDoc = function (credentialConfig, _ref6) {
|
|
|
159
174
|
// Attributes defined in the issuer configuration and present in the disclosure set
|
|
160
175
|
const definedValues = attrDefinitions
|
|
161
176
|
// Retrieve the value from the corresponding disclosure
|
|
162
|
-
.map(
|
|
177
|
+
.map(_ref8 => {
|
|
163
178
|
var _flatNamespaces$find;
|
|
164
|
-
let [attrDefNamespace, attrKey, display] =
|
|
179
|
+
let [attrDefNamespace, attrKey, display] = _ref8;
|
|
165
180
|
return [attrDefNamespace, attrKey, {
|
|
166
181
|
display,
|
|
167
|
-
value: (_flatNamespaces$find = flatNamespaces.find(
|
|
168
|
-
let [namespace, name] =
|
|
182
|
+
value: (_flatNamespaces$find = flatNamespaces.find(_ref9 => {
|
|
183
|
+
let [namespace, name] = _ref9;
|
|
169
184
|
return attrDefNamespace === namespace && name === attrKey;
|
|
170
185
|
})) === null || _flatNamespaces$find === void 0 ? void 0 : _flatNamespaces$find[2]
|
|
171
186
|
}];
|
|
172
187
|
})
|
|
173
188
|
//filter the not found elements
|
|
174
|
-
.filter(
|
|
175
|
-
let [_, __, definition] =
|
|
189
|
+
.filter(_ref10 => {
|
|
190
|
+
let [_, __, definition] = _ref10;
|
|
176
191
|
return definition.value !== undefined;
|
|
177
192
|
})
|
|
178
193
|
// Add a human-readable attribute name, with i18n, in the form { locale: name }
|
|
179
194
|
// Example: { "it-IT": "Nome", "en-EN": "Name", "es-ES": "Nombre" }
|
|
180
|
-
.reduce((acc,
|
|
195
|
+
.reduce((acc, _ref11) => {
|
|
181
196
|
let [attrDefNamespace, attrKey, {
|
|
182
197
|
display,
|
|
183
198
|
value
|
|
184
|
-
}] =
|
|
199
|
+
}] = _ref11;
|
|
185
200
|
return {
|
|
186
201
|
...acc,
|
|
187
|
-
[(0,
|
|
202
|
+
[(0, _mdoc.getParsedCredentialClaimKey)(attrDefNamespace, attrKey)]: {
|
|
188
203
|
value,
|
|
189
|
-
name: display.reduce((names,
|
|
204
|
+
name: display.reduce((names, _ref12) => {
|
|
190
205
|
let {
|
|
191
206
|
locale,
|
|
192
207
|
name
|
|
193
|
-
} =
|
|
208
|
+
} = _ref12;
|
|
194
209
|
return {
|
|
195
210
|
...names,
|
|
196
211
|
[locale]: name
|
|
@@ -200,12 +215,12 @@ const parseCredentialMDoc = function (credentialConfig, _ref6) {
|
|
|
200
215
|
};
|
|
201
216
|
}, {});
|
|
202
217
|
if (includeUndefinedAttributes) {
|
|
203
|
-
const undefinedValues = Object.fromEntries(Object.values(flatNamespaces).filter(
|
|
204
|
-
let [namespace, key] =
|
|
205
|
-
return !definedValues[(0,
|
|
206
|
-
}).map(
|
|
207
|
-
let [namespace, key, value] =
|
|
208
|
-
return [(0,
|
|
218
|
+
const undefinedValues = Object.fromEntries(Object.values(flatNamespaces).filter(_ref13 => {
|
|
219
|
+
let [namespace, key] = _ref13;
|
|
220
|
+
return !definedValues[(0, _mdoc.getParsedCredentialClaimKey)(namespace, key)];
|
|
221
|
+
}).map(_ref14 => {
|
|
222
|
+
let [namespace, key, value] = _ref14;
|
|
223
|
+
return [(0, _mdoc.getParsedCredentialClaimKey)(namespace, key), {
|
|
209
224
|
value,
|
|
210
225
|
name: key
|
|
211
226
|
}];
|
|
@@ -233,6 +248,7 @@ const parseCredentialMDoc = function (credentialConfig, _ref6) {
|
|
|
233
248
|
*
|
|
234
249
|
*/
|
|
235
250
|
async function verifyCredentialSdJwt(rawCredential, issuerKeys, holderBindingContext) {
|
|
251
|
+
// TODO: change verification using sd-jwt library with 1.3.x update
|
|
236
252
|
const [decodedCredential, holderBindingKey] =
|
|
237
253
|
// parallel for optimization
|
|
238
254
|
await Promise.all([(0, _sdJwt.verify)(rawCredential, issuerKeys, _sdJwt.SdJwt4VC), holderBindingContext.getPublicKey()]);
|
|
@@ -244,8 +260,12 @@ async function verifyCredentialSdJwt(rawCredential, issuerKeys, holderBindingCon
|
|
|
244
260
|
_logging.Logger.log(_logging.LogLevel.ERROR, message);
|
|
245
261
|
throw new _errors.IoWalletError(message);
|
|
246
262
|
}
|
|
247
|
-
|
|
263
|
+
const sdJwtInstance = new _core.SDJwtInstance({
|
|
264
|
+
hasher: _cryptoNodejs.digest
|
|
265
|
+
});
|
|
266
|
+
return await sdJwtInstance.decode(rawCredential);
|
|
248
267
|
}
|
|
268
|
+
|
|
249
269
|
/**
|
|
250
270
|
* Given a credential, verify it's in the supported format
|
|
251
271
|
* and the credential is correctly signed
|
|
@@ -274,12 +294,12 @@ async function verifyCredentialMDoc(rawCredential, x509CertRoot, holderBindingCo
|
|
|
274
294
|
}
|
|
275
295
|
return decodedCredential;
|
|
276
296
|
}
|
|
277
|
-
const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialConfigurationId,
|
|
297
|
+
const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialConfigurationId, _ref15) => {
|
|
278
298
|
let {
|
|
279
299
|
credentialCryptoContext,
|
|
280
300
|
ignoreMissingAttributes,
|
|
281
301
|
includeUndefinedAttributes
|
|
282
|
-
} =
|
|
302
|
+
} = _ref15;
|
|
283
303
|
const decoded = await verifyCredentialSdJwt(credential, issuerConf.openid_credential_issuer.jwks.keys, credentialCryptoContext);
|
|
284
304
|
_logging.Logger.log(_logging.LogLevel.DEBUG, `Decoded credential: ${JSON.stringify(decoded)}`);
|
|
285
305
|
const credentialConfig = issuerConf.openid_credential_issuer.credential_configurations_supported[credentialConfigurationId];
|
|
@@ -287,33 +307,38 @@ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialC
|
|
|
287
307
|
_logging.Logger.log(_logging.LogLevel.ERROR, `Credential type not supported by the issuer: ${credentialConfigurationId}`);
|
|
288
308
|
throw new _errors.IoWalletError("Credential type not supported by the issuer");
|
|
289
309
|
}
|
|
290
|
-
const
|
|
291
|
-
const
|
|
292
|
-
|
|
310
|
+
const parsedCredentialRaw = await decoded.getClaims(_cryptoNodejs.digest);
|
|
311
|
+
const parsedCredential = parseCredentialSdJwt(credentialConfig, parsedCredentialRaw, ignoreMissingAttributes, includeUndefinedAttributes);
|
|
312
|
+
const issuedAt = typeof parsedCredentialRaw.iat === "number" ? new Date(parsedCredentialRaw.iat * 1000) : undefined;
|
|
313
|
+
if (typeof parsedCredentialRaw.exp !== "number") {
|
|
314
|
+
throw new _errors.IoWalletError("Invalid or missing expiration claim (exp)");
|
|
315
|
+
}
|
|
316
|
+
const expiration = new Date(parsedCredentialRaw.exp * 1000);
|
|
317
|
+
_logging.Logger.log(_logging.LogLevel.DEBUG, `Parsed credential: ${JSON.stringify(parsedCredential)}\nIssued at: ${issuedAt}`);
|
|
293
318
|
return {
|
|
294
319
|
parsedCredential,
|
|
295
|
-
expiration
|
|
296
|
-
issuedAt
|
|
320
|
+
expiration,
|
|
321
|
+
issuedAt
|
|
297
322
|
};
|
|
298
323
|
};
|
|
299
|
-
const verifyAndParseCredentialMDoc = async (issuerConf, credential, credentialConfigurationId,
|
|
324
|
+
const verifyAndParseCredentialMDoc = async (issuerConf, credential, credentialConfigurationId, _ref16, x509CertRoot) => {
|
|
300
325
|
var _parsedCredential$get, _parsedCredential$get2;
|
|
301
326
|
let {
|
|
302
327
|
credentialCryptoContext,
|
|
303
328
|
ignoreMissingAttributes
|
|
304
|
-
} =
|
|
329
|
+
} = _ref16;
|
|
305
330
|
if (!x509CertRoot) {
|
|
306
331
|
throw new _errors.IoWalletError("Missing x509CertRoot");
|
|
307
332
|
}
|
|
308
333
|
const decoded = await verifyCredentialMDoc(credential, x509CertRoot, credentialCryptoContext);
|
|
309
334
|
const credentialConfig = issuerConf.openid_credential_issuer.credential_configurations_supported[credentialConfigurationId];
|
|
310
335
|
const parsedCredential = parseCredentialMDoc(credentialConfig, decoded, ignoreMissingAttributes, ignoreMissingAttributes);
|
|
311
|
-
const expirationDate = (0, _converter.extractElementValueAsDate)(parsedCredential === null || parsedCredential === void 0 || (_parsedCredential$get = parsedCredential[(0,
|
|
336
|
+
const expirationDate = (0, _converter.extractElementValueAsDate)(parsedCredential === null || parsedCredential === void 0 || (_parsedCredential$get = parsedCredential[(0, _mdoc.getParsedCredentialClaimKey)(_const.MDOC_DEFAULT_NAMESPACE, "expiry_date")]) === null || _parsedCredential$get === void 0 ? void 0 : _parsedCredential$get.value);
|
|
312
337
|
if (!expirationDate) {
|
|
313
338
|
throw new _errors.IoWalletError(`expirationDate must be present!!`);
|
|
314
339
|
}
|
|
315
340
|
expirationDate.setDate(expirationDate.getDate() + 1);
|
|
316
|
-
const maybeIssuedAt = (0, _converter.extractElementValueAsDate)(parsedCredential === null || parsedCredential === void 0 || (_parsedCredential$get2 = parsedCredential[(0,
|
|
341
|
+
const maybeIssuedAt = (0, _converter.extractElementValueAsDate)(parsedCredential === null || parsedCredential === void 0 || (_parsedCredential$get2 = parsedCredential[(0, _mdoc.getParsedCredentialClaimKey)(_const.MDOC_DEFAULT_NAMESPACE, "issue_date")]) === null || _parsedCredential$get2 === void 0 ? void 0 : _parsedCredential$get2.value);
|
|
317
342
|
maybeIssuedAt === null || maybeIssuedAt === void 0 ? void 0 : maybeIssuedAt.setDate(maybeIssuedAt.getDate() + 1);
|
|
318
343
|
return {
|
|
319
344
|
parsedCredential,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_errors","require","_sdJwt","_converters","_jwk","_mdoc","_const","_utils","_logging","_converter","_nestedProperty","parseCredentialSdJwt","credentialConfig","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","format","header","typ","message","Logger","log","LogLevel","ERROR","IoWalletError","claims","attrDefinitions","disclosedKeys","Set","map","_ref2","name","payloadKeys","Object","keys","payload","definedTopLevelKeys","def","path","missingKeys","filter","key","has","join","definedValues","groupedDefinitions","reduce","acc","group","push","topLevelKey","definitionsForThisKey","disclosureForThisKey","find","_ref3","disclosureValue","tempObjectForGroup","_ref4","display","createNestedProperty","assign","undefinedValues","fromEntries","_","includes","_ref5","value","parseCredentialMDoc","_ref6","issuerSigned","_ref7","namespace","attribute","nameSpaces","flatNamespaces","entries","flatMap","_ref8","values","v","elementIdentifier","elementValue","attrsNotInDisclosures","_ref9","attrDefNamespace","attrKey","some","_ref10","claim","missing","_ref11","received","_ref12","_ref13","_flatNamespaces$find","_ref14","_ref15","__","definition","_ref16","getParsedCredentialClaimKey","names","_ref17","locale","_ref18","_ref19","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","verifySdJwt","SdJwt4VC","getPublicKey","cnf","isSameThumbprint","jwk","kid","verifyCredentialMDoc","x509CertRoot","verifyMdoc","issuerAuth","deviceKeyInfo","deviceKey","verifyAndParseCredentialSdJwt","issuerConf","credential","credentialConfigurationId","_ref20","credentialCryptoContext","decoded","openid_credential_issuer","jwks","DEBUG","JSON","stringify","credential_configurations_supported","parsedCredential","maybeIssuedAt","getValueFromDisclosures","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","_ref21","_parsedCredential$get","_parsedCredential$get2","expirationDate","extractElementValueAsDate","MDOC_DEFAULT_NAMESPACE","setDate","getDate","verifyAndParseCredential","context","_issuerConf$openid_cr","exports"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_errors","require","_sdJwt","_jwk","_mdoc","_const","_logging","_converter","_core","_cryptoNodejs","_parser","parseCredentialSdJwt","credentialConfig","parsedCredentialRaw","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","claimsMetadata","claims","missingPaths","rootKeysToVerify","Set","map","c","path","filter","p","rootKey","push","missing","join","received","Object","keys","IoWalletError","getDisplayNames","match","find","isPathEqual","nameMap","entry","display","locale","name","processLevel","currentData","currentPath","Array","isArray","item","dataObj","result","processedKeys","configKeysAtThisLevel","claim","isPrefixOf","nextPart","includes","key","stringKey","toString","dataValue","newPath","localizedNames","value","add","entries","has","parseCredentialMDoc","_ref","issuerSigned","attrDefinitions","_ref2","namespace","attribute","nameSpaces","flatNamespaces","flatMap","_ref3","values","v","elementIdentifier","elementValue","attrsNotInDisclosures","_ref4","attrDefNamespace","attrKey","some","_ref5","_ref6","_ref7","definedValues","_ref8","_flatNamespaces$find","_ref9","_ref10","_","__","definition","reduce","acc","_ref11","getParsedCredentialClaimKey","names","_ref12","undefinedValues","fromEntries","_ref13","_ref14","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","verifySdJwt","SdJwt4VC","getPublicKey","cnf","sdJwt","payload","isSameThumbprint","jwk","message","kid","Logger","log","LogLevel","ERROR","sdJwtInstance","SDJwtInstance","hasher","digest","decode","verifyCredentialMDoc","x509CertRoot","verifyMdoc","issuerAuth","deviceKeyInfo","deviceKey","verifyAndParseCredentialSdJwt","issuerConf","credential","credentialConfigurationId","_ref15","credentialCryptoContext","decoded","openid_credential_issuer","jwks","DEBUG","JSON","stringify","credential_configurations_supported","getClaims","parsedCredential","issuedAt","iat","Date","exp","expiration","verifyAndParseCredentialMDoc","_ref16","_parsedCredential$get","_parsedCredential$get2","expirationDate","extractElementValueAsDate","MDOC_DEFAULT_NAMESPACE","setDate","getDate","maybeIssuedAt","verifyAndParseCredential","context","_issuerConf$openid_cr","format","exports"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ exports.initChallenge = void 0;
|
|
|
7
7
|
var _misc = require("../../../utils/misc");
|
|
8
8
|
var _uuid = require("uuid");
|
|
9
9
|
var _pop = require("../../../utils/pop");
|
|
10
|
+
var _logging = require("../../../utils/logging");
|
|
10
11
|
var WalletInstanceAttestation = _interopRequireWildcard(require("../../../wallet-instance-attestation"));
|
|
11
12
|
var _errors = require("../../../utils/errors");
|
|
12
13
|
var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
|
|
@@ -50,7 +51,7 @@ const initChallenge = async (issuerConf, initUrl, mrtd_auth_session, mrtd_pop_jw
|
|
|
50
51
|
"OAuth-Client-Attestation-PoP": signedWiaPoP
|
|
51
52
|
},
|
|
52
53
|
body: JSON.stringify(requestBody)
|
|
53
|
-
}).then((0, _misc.hasStatusOrThrow)(202
|
|
54
|
+
}).then((0, _misc.hasStatusOrThrow)(202)).then(res => res.text()).catch(handleInitChallengeError);
|
|
54
55
|
const mrtdPoPChallengeDecoded = (0, _ioReactNativeJwt.decode)(mrtdPoPChallengeJwt);
|
|
55
56
|
const {
|
|
56
57
|
payload
|
|
@@ -58,4 +59,14 @@ const initChallenge = async (issuerConf, initUrl, mrtd_auth_session, mrtd_pop_jw
|
|
|
58
59
|
return payload;
|
|
59
60
|
};
|
|
60
61
|
exports.initChallenge = initChallenge;
|
|
62
|
+
const handleInitChallengeError = e => {
|
|
63
|
+
_logging.Logger.log(_logging.LogLevel.ERROR, `Failed to get MRTD challenge: ${e}`);
|
|
64
|
+
if (!(e instanceof _errors.UnexpectedStatusCodeError)) {
|
|
65
|
+
throw e;
|
|
66
|
+
}
|
|
67
|
+
throw new _errors.ResponseErrorBuilder(_errors.IssuerResponseError).handle("*", {
|
|
68
|
+
code: _errors.IssuerResponseErrorCodes.MrtdChallengeInitRequestFailed,
|
|
69
|
+
message: "Unable to initialize MRTD challenge"
|
|
70
|
+
}).buildFrom(e);
|
|
71
|
+
};
|
|
61
72
|
//# sourceMappingURL=02-init-challenge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_misc","require","_uuid","_pop","WalletInstanceAttestation","_interopRequireWildcard","_errors","_ioReactNativeJwt","_types","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","initChallenge","issuerConf","initUrl","mrtd_auth_session","mrtd_pop_jwt_nonce","context","appFetch","fetch","walletInstanceAttestation","wiaCryptoContext","aud","openid_credential_issuer","credential_issuer","iss","decode","payload","cnf","jwk","kid","signedWiaPoP","createPopToken","jti","uuidv4","requestBody","mrtdPoPChallengeJwt","method","headers","body","JSON","stringify","then","hasStatusOrThrow","
|
|
1
|
+
{"version":3,"names":["_misc","require","_uuid","_pop","_logging","WalletInstanceAttestation","_interopRequireWildcard","_errors","_ioReactNativeJwt","_types","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","initChallenge","issuerConf","initUrl","mrtd_auth_session","mrtd_pop_jwt_nonce","context","appFetch","fetch","walletInstanceAttestation","wiaCryptoContext","aud","openid_credential_issuer","credential_issuer","iss","decode","payload","cnf","jwk","kid","signedWiaPoP","createPopToken","jti","uuidv4","requestBody","mrtdPoPChallengeJwt","method","headers","body","JSON","stringify","then","hasStatusOrThrow","res","text","catch","handleInitChallengeError","mrtdPoPChallengeDecoded","decodeJwt","MrtdPoPChallenge","parse","exports","e","Logger","log","LogLevel","ERROR","UnexpectedStatusCodeError","ResponseErrorBuilder","IssuerResponseError","handle","code","IssuerResponseErrorCodes","MrtdChallengeInitRequestFailed","message","buildFrom"],"sourceRoot":"../../../../../src","sources":["credential/issuance/mrtd-pop/02-init-challenge.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ioReactNativeJwt","require","_types","_verifier","Errors","_interopRequireWildcard","exports","_jsBase","_utils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","defineProperty","enumerable","get","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","decodeDisclosure","encoded","utf8String","Base64","decode","decoded","Disclosure","parse","JSON","token","customSchema","slice","rawSdJwt","rawDisclosures","split","decodedJwt","decodeJwt","parser","SdJwt4VC","sdJwt","header","protectedHeader","payload","disclosures","map","disclose","claims","paths","Promise","all","claim","disclosure","find","_ref","name","ClaimsNotFoundBetweenDisclosures","hash","sha256ToBase64","_sd","includes","index","indexOf","path","ClaimsNotFoundInToken","filteredDisclosures","filter","Boolean","d","disclosedToken","join","verify","publicKey","verifyJwt","verifyDisclosure","prepareVpToken","nonce","client_id","_ref2","verifiableCredential","requestedClaims","cryptoContext","vp","sd_hash","kbJwt","SignJWT","setProtectedHeader","typ","alg","setPayload","setAudience","setIssuedAt","sign","vp_token"],"sourceRoot":"../../../src","sources":["sd-jwt/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_ioReactNativeJwt","require","_types","_verifier","Errors","_interopRequireWildcard","exports","_jsBase","_utils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","defineProperty","enumerable","get","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","decodeDisclosure","encoded","utf8String","Base64","decode","decoded","Disclosure","parse","JSON","token","customSchema","slice","rawSdJwt","rawDisclosures","split","decodedJwt","decodeJwt","parser","SdJwt4VC","sdJwt","header","protectedHeader","payload","disclosures","map","disclose","claims","paths","Promise","all","claim","disclosure","find","_ref","name","ClaimsNotFoundBetweenDisclosures","hash","sha256ToBase64","_sd","includes","index","indexOf","path","ClaimsNotFoundInToken","filteredDisclosures","filter","Boolean","d","disclosedToken","join","verify","publicKey","verifyJwt","verifyDisclosure","prepareVpToken","nonce","client_id","_ref2","verifiableCredential","requestedClaims","cryptoContext","vp","sd_hash","kbJwt","SignJWT","setProtectedHeader","typ","alg","setPayload","setAudience","setIssuedAt","sign","vp_token"],"sourceRoot":"../../../src","sources":["sd-jwt/index.ts"],"mappings":"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"}
|
|
@@ -21,7 +21,11 @@ const IssuerResponseErrorCodes = {
|
|
|
21
21
|
/**
|
|
22
22
|
* Error code thrown when an error occurs while obtaining a status attestation for a credential.
|
|
23
23
|
*/
|
|
24
|
-
StatusAttestationRequestFailed: "ERR_STATUS_ATTESTATION_REQUEST_FAILED"
|
|
24
|
+
StatusAttestationRequestFailed: "ERR_STATUS_ATTESTATION_REQUEST_FAILED",
|
|
25
|
+
/**
|
|
26
|
+
* Error code thrown when an error occurs while initializing the MRTD challenge.
|
|
27
|
+
*/
|
|
28
|
+
MrtdChallengeInitRequestFailed: "ERR_MRTD_CHALLENGE_INIT_REQUEST_FAILED"
|
|
25
29
|
};
|
|
26
30
|
exports.IssuerResponseErrorCodes = IssuerResponseErrorCodes;
|
|
27
31
|
const WalletProviderResponseErrorCodes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IssuerResponseErrorCodes","IssuerGenericError","CredentialIssuingNotSynchronous","CredentialRequestFailed","CredentialInvalidStatus","StatusAttestationRequestFailed","exports","WalletProviderResponseErrorCodes","WalletProviderGenericError","WalletInstanceCreationFailed","WalletInstanceAttestationIssuingFailed","WalletInstanceIntegrityFailed","WalletInstanceRevoked","WalletInstanceNotFound","RelyingPartyResponseErrorCodes","RelyingPartyGenericError","InvalidAuthorizationResponse"],"sourceRoot":"../../../src","sources":["utils/error-codes.ts"],"mappings":";;;;;;AAAO,MAAMA,wBAAwB,GAAG;EACtCC,kBAAkB,EAAE,0BAA0B;EAC9C;AACF;AACA;EACEC,+BAA+B,EAAE,wCAAwC;EACzE;AACF;AACA;EACEC,uBAAuB,EAAE,+BAA+B;EACxD;AACF;AACA;EACEC,uBAAuB,EAAE,+BAA+B;EACxD;AACF;AACA;EACEC,8BAA8B,EAAE;AAClC,CAAU;AAACC,OAAA,
|
|
1
|
+
{"version":3,"names":["IssuerResponseErrorCodes","IssuerGenericError","CredentialIssuingNotSynchronous","CredentialRequestFailed","CredentialInvalidStatus","StatusAttestationRequestFailed","MrtdChallengeInitRequestFailed","exports","WalletProviderResponseErrorCodes","WalletProviderGenericError","WalletInstanceCreationFailed","WalletInstanceAttestationIssuingFailed","WalletInstanceIntegrityFailed","WalletInstanceRevoked","WalletInstanceNotFound","RelyingPartyResponseErrorCodes","RelyingPartyGenericError","InvalidAuthorizationResponse"],"sourceRoot":"../../../src","sources":["utils/error-codes.ts"],"mappings":";;;;;;AAAO,MAAMA,wBAAwB,GAAG;EACtCC,kBAAkB,EAAE,0BAA0B;EAC9C;AACF;AACA;EACEC,+BAA+B,EAAE,wCAAwC;EACzE;AACF;AACA;EACEC,uBAAuB,EAAE,+BAA+B;EACxD;AACF;AACA;EACEC,uBAAuB,EAAE,+BAA+B;EACxD;AACF;AACA;EACEC,8BAA8B,EAAE,uCAAuC;EACvE;AACF;AACA;EACEC,8BAA8B,EAAE;AAClC,CAAU;AAACC,OAAA,CAAAP,wBAAA,GAAAA,wBAAA;AAEJ,MAAMQ,gCAAgC,GAAG;EAC9CC,0BAA0B,EAAE,sCAAsC;EAClE;AACF;AACA;EACEC,4BAA4B,EAAE,wCAAwC;EACtE;AACF;AACA;EACEC,sCAAsC,EACpC,mDAAmD;EACrD;AACF;AACA;EACEC,6BAA6B,EAAE,yCAAyC;EACxE;AACF;AACA;EACEC,qBAAqB,EAAE,gCAAgC;EACvD;AACF;AACA;EACEC,sBAAsB,EAAE;AAC1B,CAAU;AAACP,OAAA,CAAAC,gCAAA,GAAAA,gCAAA;AAEJ,MAAMO,8BAA8B,GAAG;EAC5CC,wBAAwB,EAAE,sBAAsB;EAChD;AACF;AACA;EACEC,4BAA4B,EAAE;AAChC,CAAU;AAACV,OAAA,CAAAQ,8BAAA,GAAAA,8BAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isPrefixOf = exports.isPathEqual = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Helper to determine if two paths are equal (Supports string | number | null)
|
|
9
|
+
*/
|
|
10
|
+
const isPathEqual = (pathA, pathB) => pathA.length === pathB.length && pathA.every((v, i) => v === pathB[i]);
|
|
11
|
+
/**
|
|
12
|
+
* Helper to check if prefix is the start of fullPath
|
|
13
|
+
*/
|
|
14
|
+
exports.isPathEqual = isPathEqual;
|
|
15
|
+
const isPrefixOf = (prefix, fullPath) => {
|
|
16
|
+
if (prefix.length >= fullPath.length) return false;
|
|
17
|
+
return prefix.every((v, i) => v === fullPath[i]);
|
|
18
|
+
};
|
|
19
|
+
exports.isPrefixOf = isPrefixOf;
|
|
20
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isPathEqual","pathA","pathB","length","every","v","i","exports","isPrefixOf","prefix","fullPath"],"sourceRoot":"../../../src","sources":["utils/parser.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACO,MAAMA,WAAW,GAAGA,CACzBC,KAAiC,EACjCC,KAAiC,KAEjCD,KAAK,CAACE,MAAM,KAAKD,KAAK,CAACC,MAAM,IAAIF,KAAK,CAACG,KAAK,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,KAAKH,KAAK,CAACI,CAAC,CAAC,CAAC;AACxE;AACA;AACA;AAFAC,OAAA,CAAAP,WAAA,GAAAA,WAAA;AAGO,MAAMQ,UAAU,GAAGA,CACxBC,MAAkC,EAClCC,QAAoC,KACxB;EACZ,IAAID,MAAM,CAACN,MAAM,IAAIO,QAAQ,CAACP,MAAM,EAAE,OAAO,KAAK;EAClD,OAAOM,MAAM,CAACL,KAAK,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,KAAKK,QAAQ,CAACJ,CAAC,CAAC,CAAC;AAClD,CAAC;AAACC,OAAA,CAAAC,UAAA,GAAAA,UAAA"}
|