@pagopa/io-react-native-wallet 1.5.0 → 1.6.1
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/06-obtain-credential.js +5 -1
- package/lib/commonjs/credential/issuance/06-obtain-credential.js.map +1 -1
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +33 -21
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js +192 -58
- package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
- package/lib/commonjs/credential/presentation/08-send-authorization-response.js +45 -18
- package/lib/commonjs/credential/presentation/08-send-authorization-response.js.map +1 -1
- package/lib/commonjs/credential/presentation/types.js +1 -1
- package/lib/commonjs/credential/presentation/types.js.map +1 -1
- package/lib/commonjs/entity/trust/chain.js.map +1 -1
- package/lib/commonjs/mdoc/index.js +45 -13
- package/lib/commonjs/mdoc/index.js.map +1 -1
- package/lib/commonjs/utils/crypto.js +70 -4
- package/lib/commonjs/utils/crypto.js.map +1 -1
- package/lib/commonjs/utils/string.js +4 -4
- package/lib/commonjs/utils/string.js.map +1 -1
- package/lib/module/credential/issuance/06-obtain-credential.js +5 -1
- package/lib/module/credential/issuance/06-obtain-credential.js.map +1 -1
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js +33 -21
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/module/credential/presentation/07-evaluate-input-descriptor.js +186 -55
- package/lib/module/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
- package/lib/module/credential/presentation/08-send-authorization-response.js +45 -18
- package/lib/module/credential/presentation/08-send-authorization-response.js.map +1 -1
- package/lib/module/credential/presentation/types.js +1 -1
- package/lib/module/credential/presentation/types.js.map +1 -1
- package/lib/module/entity/trust/chain.js.map +1 -1
- package/lib/module/mdoc/index.js +43 -12
- package/lib/module/mdoc/index.js.map +1 -1
- package/lib/module/utils/crypto.js +67 -2
- package/lib/module/utils/crypto.js.map +1 -1
- package/lib/module/utils/string.js +4 -4
- package/lib/module/utils/string.js.map +1 -1
- package/lib/typescript/credential/issuance/06-obtain-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts +1 -1
- package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts +49 -13
- 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 +6 -2
- package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/types.d.ts +10 -7
- package/lib/typescript/credential/presentation/types.d.ts.map +1 -1
- package/lib/typescript/entity/trust/chain.d.ts.map +1 -1
- package/lib/typescript/mdoc/index.d.ts +6 -2
- package/lib/typescript/mdoc/index.d.ts.map +1 -1
- package/lib/typescript/utils/crypto.d.ts +8 -0
- package/lib/typescript/utils/crypto.d.ts.map +1 -1
- package/lib/typescript/utils/errors.d.ts.map +1 -1
- package/lib/typescript/utils/misc.d.ts.map +1 -1
- package/lib/typescript/utils/string.d.ts +3 -3
- package/lib/typescript/utils/string.d.ts.map +1 -1
- package/package.json +14 -12
- package/src/credential/issuance/06-obtain-credential.ts +3 -1
- package/src/credential/issuance/07-verify-and-parse-credential.ts +37 -16
- package/src/credential/presentation/07-evaluate-input-descriptor.ts +278 -97
- package/src/credential/presentation/08-send-authorization-response.ts +50 -27
- package/src/credential/presentation/types.ts +9 -6
- package/src/entity/trust/chain.ts +14 -10
- package/src/mdoc/index.ts +72 -15
- package/src/utils/crypto.ts +61 -2
- package/src/utils/errors.ts +2 -2
- package/src/utils/misc.ts +2 -2
- package/src/utils/string.ts +4 -4
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["sha256ToBase64","SignJWT","hasStatusOrThrow","IssuerResponseError","IssuerResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","ValidationFailed","CredentialResponse","createDPopToken","uuid","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credentialUrl","credential_endpoint","signedNonceProof","c_nonce","containsCredentialDefinition","authorization_details","some","detail","credential_configuration_id","type","message","credential","credential_configurations_supported","format","credentialRequestFormBody","vct","proof","jwt","proof_type","tokenRequestSignedDPop","htm","htu","jti","v4","ath","access_token","credentialRes","method","headers","DPoP","Authorization","token_type","body","JSON","stringify","then","res","json","safeParse","catch","handleObtainCredentialError","success","reason","error","data","e","handle","code","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":"AAAA,SAEEA,cAAc,EACdC,OAAO,QACF,6BAA6B;AAGpC,SAASC,gBAAgB,QAAkB,kBAAkB;AAE7D,SACEC,mBAAmB,EACnBC,wBAAwB,EACxBC,oBAAoB,EACpBC,yBAAyB,EACzBC,gBAAgB,QACX,oBAAoB;AAC3B,SAASC,kBAAkB,QAAQ,SAAS;AAC5C,SAASC,eAAe,QAAQ,kBAAkB;AAClD,OAAOC,IAAI,MAAM,mBAAmB;AAcpC,OAAO,MAAMC,gBAAgB,GAAG,MAAAA,CAC9BC,KAAa,EACbC,MAAc,EACdC,QAAgB,EAChBC,GAAkB,KACE;EACpB,MAAMC,GAAG,GAAG,MAAMD,GAAG,CAACE,YAAY,CAAC,CAAC;EACpC,OAAO,IAAIhB,OAAO,CAACc,GAAG,CAAC,CACpBG,UAAU,CAAC;IACVN;EACF,CAAC,CAAC,CACDO,kBAAkB,CAAC;IAClBC,GAAG,EAAE,sBAAsB;IAC3BJ;EACF,CAAC,CAAC,CACDK,WAAW,CAACP,QAAQ,CAAC,CACrBQ,SAAS,CAACT,MAAM,CAAC,CACjBU,WAAW,CAAC,CAAC,CACbC,iBAAiB,CAAC,MAAM,CAAC,CACzBC,IAAI,CAAC,CAAC;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAkC,GAAG,MAAAA,CAChDC,UAAU,EACVC,WAAW,EACXC,QAAQ,EACRC,oBAAoB,EACpBC,OAAO,KACJ;EACH,MAAM;IACJC,uBAAuB;IACvBC,QAAQ,GAAGC,KAAK;IAChBC;EACF,CAAC,GAAGJ,OAAO;EAEX,MAAMK,aAAa,GAAGT,UAAU,CAACU,mBAAmB;;EAEpD;AACF;AACA;AACA;AACA;EACE,MAAMC,gBAAgB,GAAG,MAAM3B,gBAAgB,CAC7CiB,WAAW,CAACW,OAAO,EACnBV,QAAQ,EACRO,aAAa,EACbJ,uBACF,CAAC;EAED,MAAMQ,4BAA4B,GAAGZ,WAAW,CAACa,qBAAqB,CAACC,IAAI,CACxEC,MAAM,IACLA,MAAM,CAACC,2BAA2B,KAChCd,oBAAoB,CAACc,2BAA2B,IAClDD,MAAM,CAACE,IAAI,KAAKf,oBAAoB,CAACe,IACzC,CAAC;EAED,IAAI,CAACL,4BAA4B,EAAE;IACjC,MAAM,IAAIjC,gBAAgB,CAAC;MACzBuC,OAAO,EACL;IACJ,CAAC,CAAC;EACJ;EAEA,MAAMC,UAAU,GACdpB,UAAU,CAACqB,mCAAmC,CAC5ClB,oBAAoB,CAACc,2BAA2B,CACjD;EAEH,IAAI,CAACG,UAAU,EAAE;IACf,MAAM,IAAIxC,gBAAgB,CAAC;MACzBuC,OAAO,EAAE;IACX,CAAC,CAAC;EACJ;EAEA,MAAMG,MAAM,GAAGF,UAAU,CAACE,MAAM;EAEhC,IAAI,CAACA,MAAM,EAAE;IACX,MAAM,IAAI1C,gBAAgB,CAAC;MACzBuC,OAAO,EACL;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,MAAMI,yBAAyB,GAAG;
|
1
|
+
{"version":3,"names":["sha256ToBase64","SignJWT","hasStatusOrThrow","IssuerResponseError","IssuerResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","ValidationFailed","CredentialResponse","createDPopToken","uuid","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credentialUrl","credential_endpoint","signedNonceProof","c_nonce","containsCredentialDefinition","authorization_details","some","detail","credential_configuration_id","type","message","credential","credential_configurations_supported","format","credentialRequestFormBody","doctype","vct","proof","jwt","proof_type","tokenRequestSignedDPop","htm","htu","jti","v4","ath","access_token","credentialRes","method","headers","DPoP","Authorization","token_type","body","JSON","stringify","then","res","json","safeParse","catch","handleObtainCredentialError","success","reason","error","data","e","handle","code","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":"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"}
|
@@ -98,12 +98,12 @@ const parseCredentialSdJwt = function (credentials_supported, _ref) {
|
|
98
98
|
}
|
99
99
|
return definedValues;
|
100
100
|
};
|
101
|
-
const parseCredentialMDoc = function (credentials_supported, _ref8) {
|
101
|
+
const parseCredentialMDoc = function (credentials_supported, credential_type, _ref8) {
|
102
102
|
let {
|
103
|
-
|
103
|
+
issuerSigned
|
104
104
|
} = _ref8;
|
105
|
-
let includeUndefinedAttributes = arguments.length >
|
106
|
-
const credentialSubject = credentials_supported[
|
105
|
+
let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
106
|
+
const credentialSubject = credentials_supported[credential_type];
|
107
107
|
if (!credentialSubject) {
|
108
108
|
throw new IoWalletError("Credential type not supported by the issuer");
|
109
109
|
}
|
@@ -121,10 +121,10 @@ const parseCredentialMDoc = function (credentials_supported, _ref8) {
|
|
121
121
|
return [namespace, claimNameKey, definition];
|
122
122
|
});
|
123
123
|
});
|
124
|
-
if (!
|
124
|
+
if (!issuerSigned.nameSpaces) {
|
125
125
|
throw new IoWalletError("Missing claims in the credential");
|
126
126
|
}
|
127
|
-
const flatNamespaces = Object.entries(
|
127
|
+
const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref11 => {
|
128
128
|
let [namespace, values] = _ref11;
|
129
129
|
return values.map(v => [namespace, v.elementIdentifier, v.elementValue]);
|
130
130
|
});
|
@@ -228,25 +228,37 @@ async function verifyCredentialSdJwt(rawCredential, issuerKeys, holderBindingCon
|
|
228
228
|
*
|
229
229
|
*/
|
230
230
|
async function verifyCredentialMDoc(rawCredential, issuerKeys, holderBindingContext) {
|
231
|
-
|
231
|
+
/**
|
232
|
+
* For the moment, being that issues in the crypto key generation
|
233
|
+
* have been found on Android, the check for the deviceKey inside
|
234
|
+
* of the mDoc is skipped, so we are not interested in the holderBindingKey
|
235
|
+
*/
|
236
|
+
const [decodedCredential, _] =
|
232
237
|
// parallel for optimization
|
233
238
|
await Promise.all([verifyMdoc(rawCredential, issuerKeys), holderBindingContext.getPublicKey()]);
|
234
|
-
|
235
|
-
// TODO Implement the holder binding verification for MDOC
|
236
|
-
|
237
|
-
// Get only the first decoded credential
|
238
|
-
|
239
239
|
if (!decodedCredential) {
|
240
240
|
throw new IoWalletError("No MDOC credentials found!");
|
241
241
|
}
|
242
|
-
|
243
|
-
|
244
|
-
|
242
|
+
|
243
|
+
/**
|
244
|
+
* For the moment, being that issues in the crypto key generation
|
245
|
+
* have been found on Android, the check for the deviceKey inside
|
246
|
+
* of the mDoc is skipped.
|
247
|
+
*/
|
248
|
+
//const key = decodedCredential.mDoc.issuerSigned.issuerAuth.payload.deviceKeyInfo.deviceKey;
|
249
|
+
//
|
250
|
+
//if (!compareKeysByThumbprint(key, holderBindingKey as PublicKey)) {
|
251
|
+
// throw new IoWalletError(
|
252
|
+
// `Failed to verify holder binding, holder binding key and mDoc deviceKey don't match`
|
253
|
+
// );
|
254
|
+
//}
|
255
|
+
|
256
|
+
return decodedCredential;
|
245
257
|
}
|
246
258
|
|
247
259
|
// utility type that specialize VerifyAndParseCredential for given format
|
248
260
|
|
249
|
-
const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, _ref18) => {
|
261
|
+
const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, __, _ref18) => {
|
250
262
|
let {
|
251
263
|
credentialCryptoContext,
|
252
264
|
ignoreMissingAttributes,
|
@@ -261,14 +273,14 @@ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, _ref18)
|
|
261
273
|
issuedAt: typeof maybeIssuedAt === "number" ? new Date(maybeIssuedAt * 1000) : undefined
|
262
274
|
};
|
263
275
|
};
|
264
|
-
const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, _ref19) => {
|
276
|
+
const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, credentialType, _ref19) => {
|
265
277
|
var _parsedCredential$exp, _parsedCredential$iss;
|
266
278
|
let {
|
267
279
|
credentialCryptoContext,
|
268
280
|
ignoreMissingAttributes
|
269
281
|
} = _ref19;
|
270
282
|
const decoded = await verifyCredentialMDoc(credential, issuerConf.keys, credentialCryptoContext);
|
271
|
-
const parsedCredential = parseCredentialMDoc(issuerConf.credential_configurations_supported, decoded, ignoreMissingAttributes);
|
283
|
+
const parsedCredential = parseCredentialMDoc(issuerConf.credential_configurations_supported, credentialType, decoded, ignoreMissingAttributes);
|
272
284
|
const expirationDate = extractElementValueAsDate(parsedCredential === null || parsedCredential === void 0 || (_parsedCredential$exp = parsedCredential.expiry_date) === null || _parsedCredential$exp === void 0 ? void 0 : _parsedCredential$exp.value);
|
273
285
|
if (!expirationDate) {
|
274
286
|
throw new IoWalletError(`expirationDate must be present!!`);
|
@@ -296,12 +308,12 @@ const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, _ref19) =
|
|
296
308
|
* @throws {IoWalletError} If the credential is not bound to the provided user key
|
297
309
|
* @throws {IoWalletError} If the credential data fail to parse
|
298
310
|
*/
|
299
|
-
export const verifyAndParseCredential = async (issuerConf, credential, format, context) => {
|
311
|
+
export const verifyAndParseCredential = async (issuerConf, credential, format, credentialType, context) => {
|
300
312
|
if (format === "vc+sd-jwt") {
|
301
|
-
return verifyAndParseCredentialSdJwt(issuerConf, credential, format, context);
|
313
|
+
return verifyAndParseCredentialSdJwt(issuerConf, credential, format, credentialType, context);
|
302
314
|
}
|
303
315
|
if (format === "mso_mdoc") {
|
304
|
-
return verifyAndParseCredentialMDoc(issuerConf, credential, format, context);
|
316
|
+
return verifyAndParseCredentialMDoc(issuerConf, credential, format, credentialType, context);
|
305
317
|
}
|
306
318
|
throw new IoWalletError(`Unsupported credential format: ${format}`);
|
307
319
|
};
|
@@ -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","_ref8","mDoc","docType","flatMap","_ref9","namespace","claimName","_ref10","claimNameKey","issuerSigned","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","_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","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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"}
|
@@ -3,12 +3,19 @@ import { createCryptoContextFor } from "../../utils/crypto";
|
|
3
3
|
import { JSONPath } from "jsonpath-plus";
|
4
4
|
import { MissingDataError, CredentialNotFoundError } from "./errors";
|
5
5
|
import Ajv from "ajv";
|
6
|
-
import { base64ToBase64Url } from "../../utils/string";
|
7
6
|
import { CBOR } from "@pagopa/io-react-native-cbor";
|
7
|
+
import { prepareVpTokenMdoc } from "../../mdoc";
|
8
|
+
import { generateRandomAlphaNumericString } from "../../utils/misc";
|
8
9
|
const ajv = new Ajv({
|
9
10
|
allErrors: true
|
10
11
|
});
|
11
|
-
const
|
12
|
+
export const disclosureWithEncodedToEvaluatedDisclosure = disclosure => {
|
13
|
+
const [, claimName, claimValue] = disclosure.decoded;
|
14
|
+
return {
|
15
|
+
name: claimName,
|
16
|
+
value: claimValue
|
17
|
+
};
|
18
|
+
};
|
12
19
|
/**
|
13
20
|
* Transforms an array of DisclosureWithEncoded objects into a key-value map.
|
14
21
|
* @param disclosures - An array of DisclosureWithEncoded, each containing a decoded property with [?, claimName, claimValue].
|
@@ -25,6 +32,22 @@ const mapDisclosuresToObject = disclosures => {
|
|
25
32
|
}, {});
|
26
33
|
};
|
27
34
|
|
35
|
+
/**
|
36
|
+
* Transforms the issuer's namespaces from a CBOR structure into a plain JavaScript object.
|
37
|
+
*
|
38
|
+
* @param namespaces - The CBOR-based namespaces object where each key corresponds to a namespace,
|
39
|
+
* and each value is an array of elements containing identifiers and values.
|
40
|
+
* @returns A record (plain object) where each key is a namespace, and its value is another object
|
41
|
+
* mapping element identifiers to their corresponding element values.
|
42
|
+
*/
|
43
|
+
const mapNamespacesToObject = namespaces => {
|
44
|
+
return Object.entries(namespaces).reduce((obj, _ref2) => {
|
45
|
+
let [namespace, elements] = _ref2;
|
46
|
+
obj[namespace] = Object.fromEntries(elements.map(element => [element.elementIdentifier, element.elementValue]));
|
47
|
+
return obj;
|
48
|
+
}, {});
|
49
|
+
};
|
50
|
+
|
28
51
|
/**
|
29
52
|
* Finds a claim within the payload based on provided JSONPath expressions.
|
30
53
|
* @param paths - An array of JSONPath expressions to search for in the payload.
|
@@ -72,10 +95,91 @@ const extractClaimName = path => {
|
|
72
95
|
// match[2] corresponds to the second capture group (\w+) inside [""] or ['']
|
73
96
|
return match[1] || match[2];
|
74
97
|
}
|
98
|
+
throw new Error(`Invalid input format: "${path}". Expected formats are "$.propertyName", "$['propertyName']", or '$["propertyName"]'.`);
|
99
|
+
};
|
75
100
|
|
76
|
-
|
101
|
+
/**
|
102
|
+
* Extracts the namespace and claim name from a path in the following format:
|
103
|
+
* $['nameSpace']['propertyName']
|
104
|
+
*
|
105
|
+
* @param path - The path string containing the claim reference.
|
106
|
+
* @returns An object with the extracted namespace and claim name.
|
107
|
+
* @throws An error if the input format is invalid.
|
108
|
+
*/
|
109
|
+
const extractNamespaceAndClaimName = path => {
|
110
|
+
const regex = /^\$\[(?:'|")([^'"\]]+)(?:'|")\]\[(?:'|")([^'"\]]+)(?:'|")\]$/;
|
111
|
+
const match = path.match(regex);
|
112
|
+
if (match) {
|
113
|
+
return {
|
114
|
+
nameSpace: match[1],
|
115
|
+
propertyName: match[2]
|
116
|
+
};
|
117
|
+
}
|
118
|
+
throw new Error(`Invalid input format: "${path}". Expected format is "$['nameSpace']['propertyName']".`);
|
119
|
+
};
|
120
|
+
/**
|
121
|
+
* Evaluates the input descriptor for an mDoc by verifying that the issuerSigned claims meet
|
122
|
+
* the constraints defined in the input descriptor. It categorizes disclosures as either required
|
123
|
+
* or optional based on the field definitions.
|
124
|
+
*
|
125
|
+
* @param inputDescriptor - Contains constraints and field definitions specifying required/optional claims.
|
126
|
+
* @param issuerSigned - Contains the issuerSigned with namespaces and their associated claims.
|
127
|
+
* @returns An object with two arrays: one for required disclosures and one for optional disclosures.
|
128
|
+
* @throws MissingDataError - If a required field is missing or if a claim fails JSON Schema validation.
|
129
|
+
*/
|
130
|
+
export const evaluateInputDescriptorForMdoc = (inputDescriptor, issuerSigned) => {
|
131
|
+
var _inputDescriptor$cons;
|
132
|
+
if (!(inputDescriptor !== null && inputDescriptor !== void 0 && (_inputDescriptor$cons = inputDescriptor.constraints) !== null && _inputDescriptor$cons !== void 0 && _inputDescriptor$cons.fields)) {
|
133
|
+
// No validation, no field are required
|
134
|
+
return {
|
135
|
+
requiredDisclosures: [],
|
136
|
+
optionalDisclosures: []
|
137
|
+
};
|
138
|
+
}
|
139
|
+
const requiredDisclosures = [];
|
140
|
+
const optionalDisclosures = [];
|
77
141
|
|
78
|
-
|
142
|
+
// Convert issuer's namespaces into an object for easier lookup of claim values.
|
143
|
+
const namespacesAsPayload = mapNamespacesToObject(issuerSigned.nameSpaces);
|
144
|
+
const allFieldsValid = inputDescriptor.constraints.fields.every(field => {
|
145
|
+
const [matchedPath, matchedValue] = findMatchedClaim(field.path, namespacesAsPayload);
|
146
|
+
|
147
|
+
// If no matching claim is found, the field is valid only if it's marked as optional.
|
148
|
+
if (matchedValue === undefined || !matchedPath) {
|
149
|
+
return field === null || field === void 0 ? void 0 : field.optional;
|
150
|
+
} else {
|
151
|
+
// Extract the namespace and property name from the matched path.
|
152
|
+
const {
|
153
|
+
nameSpace,
|
154
|
+
propertyName
|
155
|
+
} = extractNamespaceAndClaimName(matchedPath);
|
156
|
+
if (nameSpace && propertyName) {
|
157
|
+
(field !== null && field !== void 0 && field.optional ? optionalDisclosures : requiredDisclosures).push({
|
158
|
+
namespace: nameSpace,
|
159
|
+
name: propertyName,
|
160
|
+
value: matchedValue
|
161
|
+
});
|
162
|
+
}
|
163
|
+
}
|
164
|
+
if (field.filter) {
|
165
|
+
try {
|
166
|
+
const validateSchema = ajv.compile(field.filter);
|
167
|
+
if (!validateSchema(matchedValue)) {
|
168
|
+
throw new MissingDataError(`Claim value "${matchedValue}" for path "${matchedPath}" does not match the provided JSON Schema.`);
|
169
|
+
}
|
170
|
+
} catch (error) {
|
171
|
+
return false;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
return true;
|
175
|
+
});
|
176
|
+
if (!allFieldsValid) {
|
177
|
+
throw new MissingDataError("Credential validation failed: Required fields are missing or do not match the input descriptor.");
|
178
|
+
}
|
179
|
+
return {
|
180
|
+
requiredDisclosures,
|
181
|
+
optionalDisclosures
|
182
|
+
};
|
79
183
|
};
|
80
184
|
|
81
185
|
/**
|
@@ -86,30 +190,27 @@ const extractClaimName = path => {
|
|
86
190
|
* - Validates whether required fields are present (unless marked optional)
|
87
191
|
* and match any specified JSONPath.
|
88
192
|
* - If a field includes a JSON Schema filter, validates the claim value against that schema.
|
89
|
-
* - Enforces `limit_disclosure` rules by returning only disclosures, required and optional, matching the specified fields
|
90
|
-
* if set to "required". Otherwise also return the array unrequestedDisclosures with disclosures which can be passed for a particular use case.
|
91
193
|
* - Throws an error if a required field is invalid or missing.
|
92
194
|
*
|
93
195
|
* @param inputDescriptor - Describes constraints (fields, filters, etc.) that must be satisfied.
|
94
196
|
* @param payloadCredential - The credential payload to check against.
|
95
197
|
* @param disclosures - An array of DisclosureWithEncoded objects representing selective disclosures.
|
96
|
-
* @returns
|
198
|
+
* @returns An object with two arrays: one for required disclosures and one for optional disclosures.
|
97
199
|
* @throws Will throw an error if any required constraint fails or if JSONPath lookups are invalid.
|
98
200
|
*/
|
99
201
|
export const evaluateInputDescriptorForSdJwt4VC = (inputDescriptor, payloadCredential, disclosures) => {
|
100
|
-
var _inputDescriptor$
|
101
|
-
if (!(inputDescriptor !== null && inputDescriptor !== void 0 && (_inputDescriptor$
|
202
|
+
var _inputDescriptor$cons2;
|
203
|
+
if (!(inputDescriptor !== null && inputDescriptor !== void 0 && (_inputDescriptor$cons2 = inputDescriptor.constraints) !== null && _inputDescriptor$cons2 !== void 0 && _inputDescriptor$cons2.fields)) {
|
102
204
|
// No validation, all field are optional
|
103
205
|
return {
|
104
206
|
requiredDisclosures: [],
|
105
|
-
optionalDisclosures: []
|
106
|
-
unrequestedDisclosures: disclosures
|
207
|
+
optionalDisclosures: []
|
107
208
|
};
|
108
209
|
}
|
109
|
-
const
|
110
|
-
const
|
210
|
+
const requiredDisclosures = [];
|
211
|
+
const optionalDisclosures = [];
|
111
212
|
|
112
|
-
// Transform disclosures
|
213
|
+
// Transform disclosures into an object for easier lookup of claim values.
|
113
214
|
const disclosuresAsPayload = mapDisclosuresToObject(disclosures);
|
114
215
|
|
115
216
|
// For each field, we need at least one matching path
|
@@ -129,7 +230,10 @@ export const evaluateInputDescriptorForSdJwt4VC = (inputDescriptor, payloadCrede
|
|
129
230
|
// if match a disclouse we save which is required or optional
|
130
231
|
const claimName = extractClaimName(matchedPath);
|
131
232
|
if (claimName) {
|
132
|
-
(field !== null && field !== void 0 && field.optional ?
|
233
|
+
(field !== null && field !== void 0 && field.optional ? optionalDisclosures : requiredDisclosures).push({
|
234
|
+
value: matchedValue,
|
235
|
+
name: claimName
|
236
|
+
});
|
133
237
|
}
|
134
238
|
}
|
135
239
|
|
@@ -153,19 +257,12 @@ export const evaluateInputDescriptorForSdJwt4VC = (inputDescriptor, payloadCrede
|
|
153
257
|
if (!allFieldsValid) {
|
154
258
|
throw new MissingDataError("Credential validation failed: Required fields are missing or do not match the input descriptor.");
|
155
259
|
}
|
156
|
-
|
157
|
-
// Categorizes disclosures into required and optional based on claim names and disclosure constraints.
|
158
|
-
|
159
|
-
const requiredDisclosures = disclosures.filter(disclosure => requiredClaimNames.includes(disclosure.decoded[INDEX_CLAIM_NAME]));
|
160
|
-
const optionalDisclosures = disclosures.filter(disclosure => optionalClaimNames.includes(disclosure.decoded[INDEX_CLAIM_NAME]));
|
161
|
-
const isNotLimitDisclosure = !(inputDescriptor.constraints.limit_disclosure === "required");
|
162
|
-
const unrequestedDisclosures = isNotLimitDisclosure ? disclosures.filter(disclosure => !optionalClaimNames.includes(disclosure.decoded[INDEX_CLAIM_NAME]) && !requiredClaimNames.includes(disclosure.decoded[INDEX_CLAIM_NAME])) : [];
|
163
260
|
return {
|
164
261
|
requiredDisclosures,
|
165
|
-
optionalDisclosures
|
166
|
-
unrequestedDisclosures
|
262
|
+
optionalDisclosures
|
167
263
|
};
|
168
264
|
};
|
265
|
+
|
169
266
|
/**
|
170
267
|
* Finds the first credential that satisfies the input descriptor constraints.
|
171
268
|
* @param inputDescriptor The input descriptor to evaluate.
|
@@ -194,6 +291,33 @@ export const findCredentialSdJwt = (inputDescriptor, decodedSdJwtCredentials) =>
|
|
194
291
|
throw new CredentialNotFoundError("None of the vc+sd-jwt credentials satisfy the requirements.");
|
195
292
|
};
|
196
293
|
|
294
|
+
/**
|
295
|
+
* Finds the first credential that satisfies the input descriptor constraints.
|
296
|
+
* @param inputDescriptor The input descriptor to evaluate.
|
297
|
+
* @param decodedMdocCredentials An array of decoded MDOC credentials.
|
298
|
+
* @returns An object containing the matched evaluation, keyTag, and credential.
|
299
|
+
*/
|
300
|
+
export const findCredentialMDoc = (inputDescriptor, decodedMDocCredentials) => {
|
301
|
+
for (const {
|
302
|
+
keyTag,
|
303
|
+
credential,
|
304
|
+
issuerSigned
|
305
|
+
} of decodedMDocCredentials) {
|
306
|
+
try {
|
307
|
+
const evaluatedDisclosure = evaluateInputDescriptorForMdoc(inputDescriptor, issuerSigned);
|
308
|
+
return {
|
309
|
+
matchedEvaluation: evaluatedDisclosure,
|
310
|
+
matchedKeyTag: keyTag,
|
311
|
+
matchedCredential: credential
|
312
|
+
};
|
313
|
+
} catch {
|
314
|
+
// skip to next credential
|
315
|
+
continue;
|
316
|
+
}
|
317
|
+
}
|
318
|
+
throw new CredentialNotFoundError("None of the mso_mdoc credentials satisfy the requirements.");
|
319
|
+
};
|
320
|
+
|
197
321
|
/**
|
198
322
|
* Evaluates multiple input descriptors against provided SD-JWT and MDOC credentials.
|
199
323
|
*
|
@@ -211,8 +335,8 @@ export const findCredentialSdJwt = (inputDescriptor, decodedSdJwtCredentials) =>
|
|
211
335
|
*/
|
212
336
|
export const evaluateInputDescriptors = async (inputDescriptors, credentialsSdJwt, credentialsMdoc) => {
|
213
337
|
// We need decode SD-JWT credentials for evaluation
|
214
|
-
const decodedSdJwtCredentials = (credentialsSdJwt === null || credentialsSdJwt === void 0 ? void 0 : credentialsSdJwt.map(
|
215
|
-
let [keyTag, credential] =
|
338
|
+
const decodedSdJwtCredentials = (credentialsSdJwt === null || credentialsSdJwt === void 0 ? void 0 : credentialsSdJwt.map(_ref3 => {
|
339
|
+
let [keyTag, credential] = _ref3;
|
216
340
|
const {
|
217
341
|
sdJwt,
|
218
342
|
disclosures
|
@@ -224,38 +348,36 @@ export const evaluateInputDescriptors = async (inputDescriptors, credentialsSdJw
|
|
224
348
|
disclosures
|
225
349
|
};
|
226
350
|
})) || [];
|
351
|
+
|
352
|
+
// We need decode Mdoc credentials for evaluation
|
353
|
+
const decodedMdocCredentials = (await Promise.all(credentialsMdoc === null || credentialsMdoc === void 0 ? void 0 : credentialsMdoc.map(async _ref4 => {
|
354
|
+
let [keyTag, credential] = _ref4;
|
355
|
+
const issuerSigned = await CBOR.decodeIssuerSigned(credential);
|
356
|
+
if (!issuerSigned) {
|
357
|
+
throw new CredentialNotFoundError("mso_mdoc credential is not present.");
|
358
|
+
}
|
359
|
+
return {
|
360
|
+
keyTag,
|
361
|
+
credential,
|
362
|
+
issuerSigned
|
363
|
+
};
|
364
|
+
}))) || [];
|
227
365
|
const results = Promise.all(inputDescriptors.map(async descriptor => {
|
228
366
|
var _descriptor$format, _descriptor$format2;
|
229
367
|
if ((_descriptor$format = descriptor.format) !== null && _descriptor$format !== void 0 && _descriptor$format.mso_mdoc) {
|
230
|
-
if (!credentialsMdoc
|
368
|
+
if (!credentialsMdoc.length) {
|
231
369
|
throw new CredentialNotFoundError("mso_mdoc credential is not supported.");
|
232
370
|
}
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
const mdoc = await CBOR.decodeDocuments(credential);
|
239
|
-
if (!mdoc || !mdoc.documents || !mdoc.documents[0]) {
|
240
|
-
throw new CredentialNotFoundError("mso_mdoc credential is not present.");
|
241
|
-
}
|
242
|
-
const document = mdoc.documents[0];
|
243
|
-
// We set requiredDisclosures to all the elements in the document, as we don't have a real implementation for this yet.
|
371
|
+
const {
|
372
|
+
matchedEvaluation,
|
373
|
+
matchedKeyTag,
|
374
|
+
matchedCredential
|
375
|
+
} = findCredentialMDoc(descriptor, decodedMdocCredentials);
|
244
376
|
return {
|
245
|
-
evaluatedDisclosure:
|
246
|
-
requiredDisclosures: Object.entries(document.issuerSigned.nameSpaces).flatMap(_ref3 => {
|
247
|
-
let [, elements] = _ref3;
|
248
|
-
return elements.map(element => ({
|
249
|
-
encoded: "",
|
250
|
-
decoded: ["", element.elementIdentifier, element.elementValue]
|
251
|
-
}));
|
252
|
-
}),
|
253
|
-
optionalDisclosures: [],
|
254
|
-
unrequestedDisclosures: []
|
255
|
-
},
|
377
|
+
evaluatedDisclosure: matchedEvaluation,
|
256
378
|
inputDescriptor: descriptor,
|
257
|
-
credential,
|
258
|
-
keyTag
|
379
|
+
credential: matchedCredential,
|
380
|
+
keyTag: matchedKeyTag
|
259
381
|
};
|
260
382
|
}
|
261
383
|
if ((_descriptor$format2 = descriptor.format) !== null && _descriptor$format2 !== void 0 && _descriptor$format2["vc+sd-jwt"]) {
|
@@ -293,22 +415,27 @@ export const evaluateInputDescriptors = async (inputDescriptors, credentialsSdJw
|
|
293
415
|
* @returns A promise that resolves to an array of RemotePresentation objects.
|
294
416
|
* @throws {CredentialNotFoundError} When the credential format is unsupported.
|
295
417
|
*/
|
296
|
-
export const prepareRemotePresentations = async (credentialAndDescriptors,
|
297
|
-
|
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 => {
|
298
422
|
var _descriptor$format3, _descriptor$format4;
|
299
423
|
const descriptor = item.inputDescriptor;
|
300
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)]);
|
301
428
|
return {
|
302
429
|
requestedClaims: item.requestedClaims,
|
303
430
|
inputDescriptor: descriptor,
|
304
|
-
vpToken:
|
431
|
+
vpToken: vp_token,
|
305
432
|
format: "mso_mdoc"
|
306
433
|
};
|
307
434
|
}
|
308
435
|
if ((_descriptor$format4 = descriptor.format) !== null && _descriptor$format4 !== void 0 && _descriptor$format4["vc+sd-jwt"]) {
|
309
436
|
const {
|
310
437
|
vp_token
|
311
|
-
} = await prepareVpToken(nonce,
|
438
|
+
} = await prepareVpToken(authRequestObject.nonce, authRequestObject.clientId, [item.credential, item.requestedClaims, createCryptoContextFor(item.keyTag)]);
|
312
439
|
return {
|
313
440
|
requestedClaims: item.requestedClaims,
|
314
441
|
inputDescriptor: descriptor,
|
@@ -318,5 +445,9 @@ export const prepareRemotePresentations = async (credentialAndDescriptors, nonce
|
|
318
445
|
}
|
319
446
|
throw new CredentialNotFoundError(`${descriptor.format} format is not supported.`);
|
320
447
|
}));
|
448
|
+
return {
|
449
|
+
presentations,
|
450
|
+
generatedNonce
|
451
|
+
};
|
321
452
|
};
|
322
453
|
//# sourceMappingURL=07-evaluate-input-descriptor.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["decode","prepareVpToken","createCryptoContextFor","JSONPath","MissingDataError","CredentialNotFoundError","Ajv","base64ToBase64Url","CBOR","ajv","allErrors","INDEX_CLAIM_NAME","mapDisclosuresToObject","disclosures","reduce","obj","_ref","decoded","claimName","claimValue","findMatchedClaim","paths","payload","matchedPath","matchedValue","some","singlePath","result","path","json","length","error","extractClaimName","regex","match","Error","evaluateInputDescriptorForSdJwt4VC","inputDescriptor","payloadCredential","_inputDescriptor$cons","constraints","fields","requiredDisclosures","optionalDisclosures","unrequestedDisclosures","requiredClaimNames","optionalClaimNames","disclosuresAsPayload","allFieldsValid","every","field","optional","push","filter","validateSchema","compile","disclosure","includes","isNotLimitDisclosure","limit_disclosure","findCredentialSdJwt","decodedSdJwtCredentials","keyTag","credential","sdJwt","evaluatedDisclosure","matchedEvaluation","matchedKeyTag","matchedCredential","evaluateInputDescriptors","inputDescriptors","credentialsSdJwt","credentialsMdoc","map","_ref2","results","Promise","all","descriptor","_descriptor$format","_descriptor$format2","format","mso_mdoc","mdoc","decodeDocuments","documents","document","Object","entries","issuerSigned","nameSpaces","flatMap","_ref3","elements","element","encoded","elementIdentifier","elementValue","prepareRemotePresentations","credentialAndDescriptors","nonce","client_id","item","_descriptor$format3","_descriptor$format4","requestedClaims","vpToken","vp_token"],"sourceRoot":"../../../../src","sources":["credential/presentation/07-evaluate-input-descriptor.ts"],"mappings":"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"}
|
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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"}
|