@pagopa/io-react-native-wallet 2.0.0-next.7 → 2.0.0-next.9
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 +125 -66
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/commonjs/utils/crypto.js +0 -2
- package/lib/commonjs/utils/crypto.js.map +1 -1
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js +125 -66
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/module/utils/crypto.js +0 -2
- package/lib/module/utils/crypto.js.map +1 -1
- package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
- package/lib/typescript/utils/crypto.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/credential/issuance/07-verify-and-parse-credential.ts +143 -45
- package/src/utils/crypto.ts +0 -3
@@ -17,15 +17,96 @@ var _converter = require("../../mdoc/converter");
|
|
17
17
|
|
18
18
|
// handy alias
|
19
19
|
|
20
|
-
|
20
|
+
// The data used to create localized names
|
21
|
+
|
22
|
+
// The resulting object of localized names { en: "Name", it: "Nome" }
|
23
|
+
|
24
|
+
// The core structure being built: a node containing the actual value and its localized names
|
25
|
+
|
26
|
+
// A path can consist of object keys, array indices, or null for mapping
|
27
|
+
|
28
|
+
// A union of all possible shapes. It can be a custom PropertyNode or a standard object/array structure
|
29
|
+
|
30
|
+
// Helper to build localized names from the display data.
|
31
|
+
const buildName = display => display.reduce((names, _ref) => {
|
32
|
+
let {
|
33
|
+
locale,
|
34
|
+
name
|
35
|
+
} = _ref;
|
36
|
+
return {
|
37
|
+
...names,
|
38
|
+
[locale]: name
|
39
|
+
};
|
40
|
+
}, {});
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Recursively constructs a nested object with descriptive properties from a path.
|
44
|
+
*
|
45
|
+
* @param currentObject - The object or array being built upon.
|
46
|
+
* @param path - The path segments to follow.
|
47
|
+
* @param sourceValue - The raw value to place at the end of the path.
|
48
|
+
* @param displayData - The data for generating localized names.
|
49
|
+
* @returns The new object or array structure.
|
50
|
+
*/
|
51
|
+
const createNestedProperty = (currentObject, path, sourceValue, displayData) => {
|
52
|
+
const [key, ...rest] = path;
|
53
|
+
|
54
|
+
// Case 1: Map over an array (key is null)
|
55
|
+
if (key === null) {
|
56
|
+
if (!Array.isArray(sourceValue)) return currentObject;
|
57
|
+
|
58
|
+
// We assert the type here because we know this branch handles PropertyNodes
|
59
|
+
const node = currentObject;
|
60
|
+
const existingValue = Array.isArray(node.value) ? node.value : [];
|
61
|
+
const mappedArray = sourceValue.map((item, idx) => createNestedProperty(existingValue[idx] || {}, rest, item, displayData));
|
62
|
+
return {
|
63
|
+
...node,
|
64
|
+
value: mappedArray,
|
65
|
+
name: node.name ?? buildName(displayData)
|
66
|
+
};
|
67
|
+
}
|
68
|
+
|
69
|
+
// Case 2: Handle an object key (key is a string)
|
70
|
+
if (typeof key === "string") {
|
71
|
+
const nextSourceValue = typeof sourceValue === "object" && sourceValue !== null && !Array.isArray(sourceValue) && key in sourceValue ? sourceValue[key] : sourceValue;
|
72
|
+
|
73
|
+
// base case
|
74
|
+
if (rest.length === 0) {
|
75
|
+
return {
|
76
|
+
...currentObject,
|
77
|
+
[key]: {
|
78
|
+
value: nextSourceValue,
|
79
|
+
name: buildName(displayData)
|
80
|
+
}
|
81
|
+
};
|
82
|
+
}
|
83
|
+
|
84
|
+
// recursive step
|
85
|
+
const nextObject = currentObject[key] || {};
|
86
|
+
return {
|
87
|
+
...currentObject,
|
88
|
+
[key]: createNestedProperty(nextObject, rest, nextSourceValue, displayData)
|
89
|
+
};
|
90
|
+
}
|
91
|
+
|
92
|
+
// Case 3: Handle a specific array index (key is a number)
|
93
|
+
if (typeof key === "number") {
|
94
|
+
const newArray = Array.isArray(currentObject) ? [...currentObject] : [];
|
95
|
+
const nextValue = Array.isArray(sourceValue) ? sourceValue[key] : undefined;
|
96
|
+
newArray[key] = createNestedProperty(newArray[key] || {}, rest, nextValue, displayData);
|
97
|
+
return newArray;
|
98
|
+
}
|
99
|
+
return currentObject;
|
100
|
+
};
|
101
|
+
const parseCredentialSdJwt = function (credentialConfig, _ref2) {
|
21
102
|
let {
|
22
103
|
sdJwt,
|
23
104
|
disclosures
|
24
|
-
} =
|
105
|
+
} = _ref2;
|
25
106
|
let ignoreMissingAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
26
107
|
let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
27
108
|
if (credentialConfig.format !== sdJwt.header.typ) {
|
28
|
-
const message = `Received credential is of an
|
109
|
+
const message = `Received credential is of an unknown type. Expected one of [${credentialConfig.format}], received '${sdJwt.header.typ}'`;
|
29
110
|
_logging.Logger.log(_logging.LogLevel.ERROR, message);
|
30
111
|
throw new _errors.IoWalletError(message);
|
31
112
|
}
|
@@ -36,64 +117,39 @@ const parseCredentialSdJwt = function (credentialConfig, _ref) {
|
|
36
117
|
|
37
118
|
const attrDefinitions = credentialConfig.claims;
|
38
119
|
|
39
|
-
//
|
40
|
-
const attrsNotInDisclosures = attrDefinitions.filter(definition => !disclosures.some(
|
41
|
-
let [, name] =
|
120
|
+
// Validate that all attributes from the config exist in the disclosures
|
121
|
+
const attrsNotInDisclosures = attrDefinitions.filter(definition => !disclosures.some(_ref3 => {
|
122
|
+
let [, name] = _ref3;
|
42
123
|
return name === definition.path[0];
|
43
|
-
})
|
44
|
-
)
|
45
|
-
|
46
|
-
if (attrsNotInDisclosures.length > 0) {
|
124
|
+
}));
|
125
|
+
if (attrsNotInDisclosures.length > 0 && !ignoreMissingAttributes) {
|
47
126
|
const missing = attrsNotInDisclosures.map(_ => _.path[0]).join(", ");
|
48
|
-
const received = disclosures.map(_ => _[1
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
throw new _errors.IoWalletError(message);
|
53
|
-
}
|
127
|
+
const received = disclosures.map(_ => _[1]).join(", ");
|
128
|
+
const message = `Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`;
|
129
|
+
_logging.Logger.log(_logging.LogLevel.ERROR, message);
|
130
|
+
throw new _errors.IoWalletError(message);
|
54
131
|
}
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
.map(_ref3 => {
|
132
|
+
const definedValues = {};
|
133
|
+
for (const {
|
134
|
+
path,
|
135
|
+
display
|
136
|
+
} of attrDefinitions) {
|
61
137
|
var _disclosures$find;
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
// example: { "it-IT": "Nome", "en-EN": "Name", "es-ES": "Nombre" }
|
73
|
-
.map(_ref4 => {
|
74
|
-
let [attrKey, {
|
75
|
-
display,
|
76
|
-
...definition
|
77
|
-
}] = _ref4;
|
78
|
-
return [attrKey, {
|
79
|
-
...definition,
|
80
|
-
name: display.reduce((names, _ref5) => {
|
81
|
-
let {
|
82
|
-
locale,
|
83
|
-
name
|
84
|
-
} = _ref5;
|
85
|
-
return {
|
86
|
-
...names,
|
87
|
-
[locale]: name
|
88
|
-
};
|
89
|
-
}, {})
|
90
|
-
}];
|
91
|
-
}));
|
138
|
+
const attrKey = path[0];
|
139
|
+
const disclosureValue = (_disclosures$find = disclosures.find(_ref4 => {
|
140
|
+
let [, name] = _ref4;
|
141
|
+
return name === attrKey;
|
142
|
+
})) === null || _disclosures$find === void 0 ? void 0 : _disclosures$find[2];
|
143
|
+
if (disclosureValue !== undefined) {
|
144
|
+
const enriched = createNestedProperty(definedValues, path, disclosureValue, display);
|
145
|
+
Object.assign(definedValues, enriched);
|
146
|
+
}
|
147
|
+
}
|
92
148
|
if (includeUndefinedAttributes) {
|
93
149
|
// attributes that are in the disclosure set
|
94
150
|
// but are not defined in the issuer configuration
|
95
|
-
const undefinedValues = Object.fromEntries(disclosures.filter(_ => !Object.keys(definedValues).includes(_[1])).map(
|
96
|
-
let [, key, value] =
|
151
|
+
const undefinedValues = Object.fromEntries(disclosures.filter(_ => !Object.keys(definedValues).includes(_[1])).map(_ref5 => {
|
152
|
+
let [, key, value] = _ref5;
|
97
153
|
return [key, {
|
98
154
|
value,
|
99
155
|
name: key
|
@@ -106,10 +162,10 @@ const parseCredentialSdJwt = function (credentialConfig, _ref) {
|
|
106
162
|
}
|
107
163
|
return definedValues;
|
108
164
|
};
|
109
|
-
const parseCredentialMDoc = function (credentialConfig,
|
165
|
+
const parseCredentialMDoc = function (credentialConfig, _ref6) {
|
110
166
|
let {
|
111
167
|
issuerSigned
|
112
|
-
} =
|
168
|
+
} = _ref6;
|
113
169
|
let ignoreMissingAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
114
170
|
let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
115
171
|
if (!credentialConfig) {
|
@@ -118,36 +174,39 @@ const parseCredentialMDoc = function (credentialConfig, _ref7) {
|
|
118
174
|
if (!credentialConfig.claims) {
|
119
175
|
throw new _errors.IoWalletError("Missing claims in the credential subject");
|
120
176
|
}
|
121
|
-
const attrDefinitions = credentialConfig.claims.map(
|
177
|
+
const attrDefinitions = credentialConfig.claims.map(_ref7 => {
|
122
178
|
let {
|
123
179
|
path: [namespace, attribute],
|
124
180
|
display
|
125
|
-
} =
|
181
|
+
} = _ref7;
|
126
182
|
return [namespace, attribute, display];
|
127
183
|
});
|
128
184
|
if (!issuerSigned.nameSpaces) {
|
129
185
|
throw new _errors.IoWalletError("Missing claims in the credential");
|
130
186
|
}
|
131
|
-
const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(
|
132
|
-
let [namespace, values] =
|
187
|
+
const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref8 => {
|
188
|
+
let [namespace, values] = _ref8;
|
133
189
|
return values.map(v => [namespace, v.elementIdentifier, v.elementValue]);
|
134
190
|
});
|
135
191
|
|
136
192
|
// Check that all mandatory attributes defined in the issuer configuration are present in the disclosure set
|
137
193
|
// and filter the non present ones
|
138
|
-
const attrsNotInDisclosures = attrDefinitions.filter(
|
139
|
-
let [attrDefNamespace, attrKey] =
|
140
|
-
return flatNamespaces.some(
|
141
|
-
let [namespace, claim] =
|
194
|
+
const attrsNotInDisclosures = attrDefinitions.filter(_ref9 => {
|
195
|
+
let [attrDefNamespace, attrKey] = _ref9;
|
196
|
+
return !flatNamespaces.some(_ref10 => {
|
197
|
+
let [namespace, claim] = _ref10;
|
142
198
|
return attrDefNamespace === namespace && attrKey === claim;
|
143
199
|
});
|
144
200
|
});
|
145
201
|
if (attrsNotInDisclosures.length > 0) {
|
146
|
-
const missing = attrsNotInDisclosures.map(
|
202
|
+
const missing = attrsNotInDisclosures.map(_ref11 => {
|
203
|
+
let [, attrKey] = _ref11;
|
204
|
+
return attrKey;
|
205
|
+
}).join(", ");
|
206
|
+
const received = flatNamespaces.map(_ref12 => {
|
147
207
|
let [, attrKey] = _ref12;
|
148
208
|
return attrKey;
|
149
209
|
}).join(", ");
|
150
|
-
const received = Object.keys(Object.values(flatNamespaces));
|
151
210
|
if (!ignoreMissingAttributes) {
|
152
211
|
throw new _errors.IoWalletError(`Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`);
|
153
212
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_errors","require","_sdJwt","_converters","_jwk","_mdoc","_const","_utils","_logging","_converter","parseCredentialSdJwt","credentialConfig","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","format","header","typ","message","Logger","log","LogLevel","ERROR","IoWalletError","claims","attrDefinitions","attrsNotInDisclosures","filter","definition","some","_ref2","name","path","missing","map","_","join","received","definedValues","Object","fromEntries","_ref3","_disclosures$find","value","find","_ref4","attrKey","display","reduce","names","_ref5","locale","undefinedValues","keys","includes","_ref6","key","parseCredentialMDoc","_ref7","issuerSigned","_ref8","namespace","attribute","nameSpaces","flatNamespaces","entries","flatMap","_ref9","values","v","elementIdentifier","elementValue","_ref10","attrDefNamespace","_ref11","claim","_ref12","_ref13","_flatNamespaces$find","_ref14","_ref15","__","acc","_ref16","getParsedCredentialClaimKey","_ref17","_ref18","_ref19","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","verifySdJwt","SdJwt4VC","getPublicKey","cnf","payload","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","_converters","_jwk","_mdoc","_const","_utils","_logging","_converter","buildName","display","reduce","names","_ref","locale","name","createNestedProperty","currentObject","path","sourceValue","displayData","key","rest","Array","isArray","node","existingValue","value","mappedArray","map","item","idx","nextSourceValue","length","nextObject","newArray","nextValue","undefined","parseCredentialSdJwt","credentialConfig","_ref2","sdJwt","disclosures","ignoreMissingAttributes","arguments","includeUndefinedAttributes","format","header","typ","message","Logger","log","LogLevel","ERROR","IoWalletError","claims","attrDefinitions","attrsNotInDisclosures","filter","definition","some","_ref3","missing","_","join","received","definedValues","_disclosures$find","attrKey","disclosureValue","find","_ref4","enriched","Object","assign","undefinedValues","fromEntries","keys","includes","_ref5","parseCredentialMDoc","_ref6","issuerSigned","_ref7","namespace","attribute","nameSpaces","flatNamespaces","entries","flatMap","_ref8","values","v","elementIdentifier","elementValue","_ref9","attrDefNamespace","_ref10","claim","_ref11","_ref12","_ref13","_flatNamespaces$find","_ref14","_ref15","__","acc","_ref16","getParsedCredentialClaimKey","_ref17","_ref18","_ref19","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","verifySdJwt","SdJwt4VC","getPublicKey","cnf","payload","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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"}
|
@@ -78,8 +78,6 @@ const getSigninJwkFromCert = pemCert => {
|
|
78
78
|
const x509 = new _jsrsasign.X509();
|
79
79
|
x509.readCertPEM(pemCert);
|
80
80
|
const publicKey = x509.getPublicKey();
|
81
|
-
console.log("INSTANCE OF RSA", publicKey instanceof _jsrsasign.RSAKey);
|
82
|
-
console.log("INSTANCE OF ECDSA", publicKey instanceof _jsrsasign.KJUR.crypto.ECDSA);
|
83
81
|
if (publicKey instanceof _jsrsasign.RSAKey || publicKey instanceof _jsrsasign.KJUR.crypto.ECDSA) {
|
84
82
|
return {
|
85
83
|
..._jwk.JWK.parse(_jsrsasign.KEYUTIL.getJWKFromKey(publicKey)),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_ioReactNativeCrypto","require","_uuid","_ioReactNativeJwt","_jwk","_jsrsasign","_errors","createCryptoContextFor","keytag","getPublicKey","getPublicKeyFixed","then","jwk","kid","thumbprint","getSignature","value","sign","exports","withEphemeralKey","fn","uuidv4","generate","ephemeralContext","finally","deleteKey","convertBase64DerToPem","certificate","getSigninJwkFromCert","pemCert","x509","X509","readCertPEM","publicKey","
|
1
|
+
{"version":3,"names":["_ioReactNativeCrypto","require","_uuid","_ioReactNativeJwt","_jwk","_jsrsasign","_errors","createCryptoContextFor","keytag","getPublicKey","getPublicKeyFixed","then","jwk","kid","thumbprint","getSignature","value","sign","exports","withEphemeralKey","fn","uuidv4","generate","ephemeralContext","finally","deleteKey","convertBase64DerToPem","certificate","getSigninJwkFromCert","pemCert","x509","X509","readCertPEM","publicKey","RSAKey","KJUR","crypto","ECDSA","JWK","parse","KEYUTIL","getJWKFromKey","use","IoWalletError"],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAMA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMM,sBAAsB,GAAIC,MAAc,IAAoB;EACvE,OAAO;IACL,MAAMC,YAAYA,CAAA,EAAG;MACnB,OAAO,IAAAC,sCAAiB,EAACF,MAAM,CAAC,CAACG,IAAI,CAAC,MAAOC,GAAG,KAAM;QACpD,GAAGA,GAAG;QACN;QACA;QACA;QACA;QACAC,GAAG,EAAE,MAAM,IAAAC,4BAAU,EAACF,GAAG;MAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IACD;AACJ;AACA;AACA;AACA;AACA;IACI,MAAMG,YAAYA,CAACC,KAAa,EAAE;MAChC,OAAO,IAAAC,yBAAI,EAACD,KAAK,EAAER,MAAM,CAAC;IAC5B;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAU,OAAA,CAAAX,sBAAA,GAAAA,sBAAA;AAQO,MAAMY,gBAAgB,GAAG,MAC9BC,EAAmD,IACpC;EACf;EACA,MAAMZ,MAAM,GAAI,aAAY,IAAAa,QAAM,EAAC,CAAE,EAAC;EACtC,MAAM,IAAAC,6BAAQ,EAACd,MAAM,CAAC;EACtB,MAAMe,gBAAgB,GAAGhB,sBAAsB,CAACC,MAAM,CAAC;EACvD,OAAOY,EAAE,CAACG,gBAAgB,CAAC,CAACC,OAAO,CAAC,MAAM,IAAAC,8BAAS,EAACjB,MAAM,CAAC,CAAC;AAC9D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AALAU,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAMO,MAAMO,qBAAqB,GAAIC,WAAmB,IACtD,gCAA+BA,WAAY,6BAA4B;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AANAT,OAAA,CAAAQ,qBAAA,GAAAA,qBAAA;AAOO,MAAME,oBAAoB,GAAIC,OAAe,IAAU;EAC5D,MAAMC,IAAI,GAAG,IAAIC,eAAI,CAAC,CAAC;EACvBD,IAAI,CAACE,WAAW,CAACH,OAAO,CAAC;EACzB,MAAMI,SAAS,GAAGH,IAAI,CAACrB,YAAY,CAAC,CAAC;EAErC,IAAIwB,SAAS,YAAYC,iBAAM,IAAID,SAAS,YAAYE,eAAI,CAACC,MAAM,CAACC,KAAK,EAAE;IACzE,OAAO;MACL,GAAGC,QAAG,CAACC,KAAK,CAACC,kBAAO,CAACC,aAAa,CAACR,SAAS,CAAC,CAAC;MAC9CS,GAAG,EAAE;IACP,CAAC;EACH;EAEA,MAAM,IAAIC,qBAAa,CACrB,2DACF,CAAC;AACH,CAAC;AAACzB,OAAA,CAAAU,oBAAA,GAAAA,oBAAA"}
|
@@ -12,15 +12,96 @@ import { extractElementValueAsDate } from "../../mdoc/converter";
|
|
12
12
|
|
13
13
|
// handy alias
|
14
14
|
|
15
|
-
|
15
|
+
// The data used to create localized names
|
16
|
+
|
17
|
+
// The resulting object of localized names { en: "Name", it: "Nome" }
|
18
|
+
|
19
|
+
// The core structure being built: a node containing the actual value and its localized names
|
20
|
+
|
21
|
+
// A path can consist of object keys, array indices, or null for mapping
|
22
|
+
|
23
|
+
// A union of all possible shapes. It can be a custom PropertyNode or a standard object/array structure
|
24
|
+
|
25
|
+
// Helper to build localized names from the display data.
|
26
|
+
const buildName = display => display.reduce((names, _ref) => {
|
27
|
+
let {
|
28
|
+
locale,
|
29
|
+
name
|
30
|
+
} = _ref;
|
31
|
+
return {
|
32
|
+
...names,
|
33
|
+
[locale]: name
|
34
|
+
};
|
35
|
+
}, {});
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Recursively constructs a nested object with descriptive properties from a path.
|
39
|
+
*
|
40
|
+
* @param currentObject - The object or array being built upon.
|
41
|
+
* @param path - The path segments to follow.
|
42
|
+
* @param sourceValue - The raw value to place at the end of the path.
|
43
|
+
* @param displayData - The data for generating localized names.
|
44
|
+
* @returns The new object or array structure.
|
45
|
+
*/
|
46
|
+
const createNestedProperty = (currentObject, path, sourceValue, displayData) => {
|
47
|
+
const [key, ...rest] = path;
|
48
|
+
|
49
|
+
// Case 1: Map over an array (key is null)
|
50
|
+
if (key === null) {
|
51
|
+
if (!Array.isArray(sourceValue)) return currentObject;
|
52
|
+
|
53
|
+
// We assert the type here because we know this branch handles PropertyNodes
|
54
|
+
const node = currentObject;
|
55
|
+
const existingValue = Array.isArray(node.value) ? node.value : [];
|
56
|
+
const mappedArray = sourceValue.map((item, idx) => createNestedProperty(existingValue[idx] || {}, rest, item, displayData));
|
57
|
+
return {
|
58
|
+
...node,
|
59
|
+
value: mappedArray,
|
60
|
+
name: node.name ?? buildName(displayData)
|
61
|
+
};
|
62
|
+
}
|
63
|
+
|
64
|
+
// Case 2: Handle an object key (key is a string)
|
65
|
+
if (typeof key === "string") {
|
66
|
+
const nextSourceValue = typeof sourceValue === "object" && sourceValue !== null && !Array.isArray(sourceValue) && key in sourceValue ? sourceValue[key] : sourceValue;
|
67
|
+
|
68
|
+
// base case
|
69
|
+
if (rest.length === 0) {
|
70
|
+
return {
|
71
|
+
...currentObject,
|
72
|
+
[key]: {
|
73
|
+
value: nextSourceValue,
|
74
|
+
name: buildName(displayData)
|
75
|
+
}
|
76
|
+
};
|
77
|
+
}
|
78
|
+
|
79
|
+
// recursive step
|
80
|
+
const nextObject = currentObject[key] || {};
|
81
|
+
return {
|
82
|
+
...currentObject,
|
83
|
+
[key]: createNestedProperty(nextObject, rest, nextSourceValue, displayData)
|
84
|
+
};
|
85
|
+
}
|
86
|
+
|
87
|
+
// Case 3: Handle a specific array index (key is a number)
|
88
|
+
if (typeof key === "number") {
|
89
|
+
const newArray = Array.isArray(currentObject) ? [...currentObject] : [];
|
90
|
+
const nextValue = Array.isArray(sourceValue) ? sourceValue[key] : undefined;
|
91
|
+
newArray[key] = createNestedProperty(newArray[key] || {}, rest, nextValue, displayData);
|
92
|
+
return newArray;
|
93
|
+
}
|
94
|
+
return currentObject;
|
95
|
+
};
|
96
|
+
const parseCredentialSdJwt = function (credentialConfig, _ref2) {
|
16
97
|
let {
|
17
98
|
sdJwt,
|
18
99
|
disclosures
|
19
|
-
} =
|
100
|
+
} = _ref2;
|
20
101
|
let ignoreMissingAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
21
102
|
let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
22
103
|
if (credentialConfig.format !== sdJwt.header.typ) {
|
23
|
-
const message = `Received credential is of an
|
104
|
+
const message = `Received credential is of an unknown type. Expected one of [${credentialConfig.format}], received '${sdJwt.header.typ}'`;
|
24
105
|
Logger.log(LogLevel.ERROR, message);
|
25
106
|
throw new IoWalletError(message);
|
26
107
|
}
|
@@ -31,64 +112,39 @@ const parseCredentialSdJwt = function (credentialConfig, _ref) {
|
|
31
112
|
|
32
113
|
const attrDefinitions = credentialConfig.claims;
|
33
114
|
|
34
|
-
//
|
35
|
-
const attrsNotInDisclosures = attrDefinitions.filter(definition => !disclosures.some(
|
36
|
-
let [, name] =
|
115
|
+
// Validate that all attributes from the config exist in the disclosures
|
116
|
+
const attrsNotInDisclosures = attrDefinitions.filter(definition => !disclosures.some(_ref3 => {
|
117
|
+
let [, name] = _ref3;
|
37
118
|
return name === definition.path[0];
|
38
|
-
})
|
39
|
-
)
|
40
|
-
|
41
|
-
if (attrsNotInDisclosures.length > 0) {
|
119
|
+
}));
|
120
|
+
if (attrsNotInDisclosures.length > 0 && !ignoreMissingAttributes) {
|
42
121
|
const missing = attrsNotInDisclosures.map(_ => _.path[0]).join(", ");
|
43
|
-
const received = disclosures.map(_ => _[1
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
throw new IoWalletError(message);
|
48
|
-
}
|
122
|
+
const received = disclosures.map(_ => _[1]).join(", ");
|
123
|
+
const message = `Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`;
|
124
|
+
Logger.log(LogLevel.ERROR, message);
|
125
|
+
throw new IoWalletError(message);
|
49
126
|
}
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
.map(_ref3 => {
|
127
|
+
const definedValues = {};
|
128
|
+
for (const {
|
129
|
+
path,
|
130
|
+
display
|
131
|
+
} of attrDefinitions) {
|
56
132
|
var _disclosures$find;
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
// example: { "it-IT": "Nome", "en-EN": "Name", "es-ES": "Nombre" }
|
68
|
-
.map(_ref4 => {
|
69
|
-
let [attrKey, {
|
70
|
-
display,
|
71
|
-
...definition
|
72
|
-
}] = _ref4;
|
73
|
-
return [attrKey, {
|
74
|
-
...definition,
|
75
|
-
name: display.reduce((names, _ref5) => {
|
76
|
-
let {
|
77
|
-
locale,
|
78
|
-
name
|
79
|
-
} = _ref5;
|
80
|
-
return {
|
81
|
-
...names,
|
82
|
-
[locale]: name
|
83
|
-
};
|
84
|
-
}, {})
|
85
|
-
}];
|
86
|
-
}));
|
133
|
+
const attrKey = path[0];
|
134
|
+
const disclosureValue = (_disclosures$find = disclosures.find(_ref4 => {
|
135
|
+
let [, name] = _ref4;
|
136
|
+
return name === attrKey;
|
137
|
+
})) === null || _disclosures$find === void 0 ? void 0 : _disclosures$find[2];
|
138
|
+
if (disclosureValue !== undefined) {
|
139
|
+
const enriched = createNestedProperty(definedValues, path, disclosureValue, display);
|
140
|
+
Object.assign(definedValues, enriched);
|
141
|
+
}
|
142
|
+
}
|
87
143
|
if (includeUndefinedAttributes) {
|
88
144
|
// attributes that are in the disclosure set
|
89
145
|
// but are not defined in the issuer configuration
|
90
|
-
const undefinedValues = Object.fromEntries(disclosures.filter(_ => !Object.keys(definedValues).includes(_[1])).map(
|
91
|
-
let [, key, value] =
|
146
|
+
const undefinedValues = Object.fromEntries(disclosures.filter(_ => !Object.keys(definedValues).includes(_[1])).map(_ref5 => {
|
147
|
+
let [, key, value] = _ref5;
|
92
148
|
return [key, {
|
93
149
|
value,
|
94
150
|
name: key
|
@@ -101,10 +157,10 @@ const parseCredentialSdJwt = function (credentialConfig, _ref) {
|
|
101
157
|
}
|
102
158
|
return definedValues;
|
103
159
|
};
|
104
|
-
const parseCredentialMDoc = function (credentialConfig,
|
160
|
+
const parseCredentialMDoc = function (credentialConfig, _ref6) {
|
105
161
|
let {
|
106
162
|
issuerSigned
|
107
|
-
} =
|
163
|
+
} = _ref6;
|
108
164
|
let ignoreMissingAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
109
165
|
let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
110
166
|
if (!credentialConfig) {
|
@@ -113,36 +169,39 @@ const parseCredentialMDoc = function (credentialConfig, _ref7) {
|
|
113
169
|
if (!credentialConfig.claims) {
|
114
170
|
throw new IoWalletError("Missing claims in the credential subject");
|
115
171
|
}
|
116
|
-
const attrDefinitions = credentialConfig.claims.map(
|
172
|
+
const attrDefinitions = credentialConfig.claims.map(_ref7 => {
|
117
173
|
let {
|
118
174
|
path: [namespace, attribute],
|
119
175
|
display
|
120
|
-
} =
|
176
|
+
} = _ref7;
|
121
177
|
return [namespace, attribute, display];
|
122
178
|
});
|
123
179
|
if (!issuerSigned.nameSpaces) {
|
124
180
|
throw new IoWalletError("Missing claims in the credential");
|
125
181
|
}
|
126
|
-
const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(
|
127
|
-
let [namespace, values] =
|
182
|
+
const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref8 => {
|
183
|
+
let [namespace, values] = _ref8;
|
128
184
|
return values.map(v => [namespace, v.elementIdentifier, v.elementValue]);
|
129
185
|
});
|
130
186
|
|
131
187
|
// Check that all mandatory attributes defined in the issuer configuration are present in the disclosure set
|
132
188
|
// and filter the non present ones
|
133
|
-
const attrsNotInDisclosures = attrDefinitions.filter(
|
134
|
-
let [attrDefNamespace, attrKey] =
|
135
|
-
return flatNamespaces.some(
|
136
|
-
let [namespace, claim] =
|
189
|
+
const attrsNotInDisclosures = attrDefinitions.filter(_ref9 => {
|
190
|
+
let [attrDefNamespace, attrKey] = _ref9;
|
191
|
+
return !flatNamespaces.some(_ref10 => {
|
192
|
+
let [namespace, claim] = _ref10;
|
137
193
|
return attrDefNamespace === namespace && attrKey === claim;
|
138
194
|
});
|
139
195
|
});
|
140
196
|
if (attrsNotInDisclosures.length > 0) {
|
141
|
-
const missing = attrsNotInDisclosures.map(
|
197
|
+
const missing = attrsNotInDisclosures.map(_ref11 => {
|
198
|
+
let [, attrKey] = _ref11;
|
199
|
+
return attrKey;
|
200
|
+
}).join(", ");
|
201
|
+
const received = flatNamespaces.map(_ref12 => {
|
142
202
|
let [, attrKey] = _ref12;
|
143
203
|
return attrKey;
|
144
204
|
}).join(", ");
|
145
|
-
const received = Object.keys(Object.values(flatNamespaces));
|
146
205
|
if (!ignoreMissingAttributes) {
|
147
206
|
throw new IoWalletError(`Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`);
|
148
207
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","getValueFromDisclosures","isSameThumbprint","verifyMdoc","MDOC_DEFAULT_NAMESPACE","getParsedCredentialClaimKey","LogLevel","Logger","extractElementValueAsDate","parseCredentialSdJwt","credentialConfig","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","format","header","typ","message","log","ERROR","claims","attrDefinitions","attrsNotInDisclosures","filter","definition","some","_ref2","name","path","missing","map","_","join","received","definedValues","Object","fromEntries","_ref3","_disclosures$find","value","find","_ref4","attrKey","display","reduce","names","_ref5","locale","undefinedValues","keys","includes","_ref6","key","parseCredentialMDoc","_ref7","issuerSigned","_ref8","namespace","attribute","nameSpaces","flatNamespaces","entries","flatMap","_ref9","values","v","elementIdentifier","elementValue","_ref10","attrDefNamespace","_ref11","claim","_ref12","_ref13","_flatNamespaces$find","_ref14","_ref15","__","acc","_ref16","_ref17","_ref18","_ref19","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","payload","jwk","kid","verifyCredentialMDoc","x509CertRoot","issuerAuth","deviceKeyInfo","deviceKey","verifyAndParseCredentialSdJwt","issuerConf","credential","credentialConfigurationId","_ref20","credentialCryptoContext","decoded","openid_credential_issuer","jwks","DEBUG","JSON","stringify","credential_configurations_supported","parsedCredential","maybeIssuedAt","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","_ref21","_parsedCredential$get","_parsedCredential$get2","expirationDate","setDate","getDate","verifyAndParseCredential","context","_issuerConf$openid_cr"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","getValueFromDisclosures","isSameThumbprint","verifyMdoc","MDOC_DEFAULT_NAMESPACE","getParsedCredentialClaimKey","LogLevel","Logger","extractElementValueAsDate","buildName","display","reduce","names","_ref","locale","name","createNestedProperty","currentObject","path","sourceValue","displayData","key","rest","Array","isArray","node","existingValue","value","mappedArray","map","item","idx","nextSourceValue","length","nextObject","newArray","nextValue","undefined","parseCredentialSdJwt","credentialConfig","_ref2","sdJwt","disclosures","ignoreMissingAttributes","arguments","includeUndefinedAttributes","format","header","typ","message","log","ERROR","claims","attrDefinitions","attrsNotInDisclosures","filter","definition","some","_ref3","missing","_","join","received","definedValues","_disclosures$find","attrKey","disclosureValue","find","_ref4","enriched","Object","assign","undefinedValues","fromEntries","keys","includes","_ref5","parseCredentialMDoc","_ref6","issuerSigned","_ref7","namespace","attribute","nameSpaces","flatNamespaces","entries","flatMap","_ref8","values","v","elementIdentifier","elementValue","_ref9","attrDefNamespace","_ref10","claim","_ref11","_ref12","_ref13","_flatNamespaces$find","_ref14","_ref15","__","acc","_ref16","_ref17","_ref18","_ref19","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","payload","jwk","kid","verifyCredentialMDoc","x509CertRoot","issuerAuth","deviceKeyInfo","deviceKey","verifyAndParseCredentialSdJwt","issuerConf","credential","credentialConfigurationId","_ref20","credentialCryptoContext","decoded","openid_credential_issuer","jwks","DEBUG","JSON","stringify","credential_configurations_supported","parsedCredential","maybeIssuedAt","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","_ref21","_parsedCredential$get","_parsedCredential$get2","expirationDate","setDate","getDate","verifyAndParseCredential","context","_issuerConf$openid_cr"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
|
@@ -70,8 +70,6 @@ export const getSigninJwkFromCert = pemCert => {
|
|
70
70
|
const x509 = new X509();
|
71
71
|
x509.readCertPEM(pemCert);
|
72
72
|
const publicKey = x509.getPublicKey();
|
73
|
-
console.log("INSTANCE OF RSA", publicKey instanceof RSAKey);
|
74
|
-
console.log("INSTANCE OF ECDSA", publicKey instanceof KJUR.crypto.ECDSA);
|
75
73
|
if (publicKey instanceof RSAKey || publicKey instanceof KJUR.crypto.ECDSA) {
|
76
74
|
return {
|
77
75
|
...JWK.parse(KEYUTIL.getJWKFromKey(publicKey)),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["deleteKey","generate","getPublicKeyFixed","sign","v4","uuidv4","thumbprint","JWK","KEYUTIL","KJUR","RSAKey","X509","IoWalletError","createCryptoContextFor","keytag","getPublicKey","then","jwk","kid","getSignature","value","withEphemeralKey","fn","ephemeralContext","finally","convertBase64DerToPem","certificate","getSigninJwkFromCert","pemCert","x509","readCertPEM","publicKey","
|
1
|
+
{"version":3,"names":["deleteKey","generate","getPublicKeyFixed","sign","v4","uuidv4","thumbprint","JWK","KEYUTIL","KJUR","RSAKey","X509","IoWalletError","createCryptoContextFor","keytag","getPublicKey","then","jwk","kid","getSignature","value","withEphemeralKey","fn","ephemeralContext","finally","convertBase64DerToPem","certificate","getSigninJwkFromCert","pemCert","x509","readCertPEM","publicKey","crypto","ECDSA","parse","getJWKFromKey","use"],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":"AAAA,SACEA,SAAS,EACTC,QAAQ,EACRC,iBAAiB,EACjBC,IAAI,QACC,gCAAgC;AACvC,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AACnC,SAASC,UAAU,QAA4B,6BAA6B;AAC5E,SAASC,GAAG,QAAQ,OAAO;AAC3B,SAASC,OAAO,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,QAAQ,WAAW;AACvD,SAASC,aAAa,QAAQ,UAAU;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAIC,MAAc,IAAoB;EACvE,OAAO;IACL,MAAMC,YAAYA,CAAA,EAAG;MACnB,OAAOb,iBAAiB,CAACY,MAAM,CAAC,CAACE,IAAI,CAAC,MAAOC,GAAG,KAAM;QACpD,GAAGA,GAAG;QACN;QACA;QACA;QACA;QACAC,GAAG,EAAE,MAAMZ,UAAU,CAACW,GAAG;MAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IACD;AACJ;AACA;AACA;AACA;AACA;IACI,MAAME,YAAYA,CAACC,KAAa,EAAE;MAChC,OAAOjB,IAAI,CAACiB,KAAK,EAAEN,MAAM,CAAC;IAC5B;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,gBAAgB,GAAG,MAC9BC,EAAmD,IACpC;EACf;EACA,MAAMR,MAAM,GAAI,aAAYT,MAAM,CAAC,CAAE,EAAC;EACtC,MAAMJ,QAAQ,CAACa,MAAM,CAAC;EACtB,MAAMS,gBAAgB,GAAGV,sBAAsB,CAACC,MAAM,CAAC;EACvD,OAAOQ,EAAE,CAACC,gBAAgB,CAAC,CAACC,OAAO,CAAC,MAAMxB,SAAS,CAACc,MAAM,CAAC,CAAC;AAC9D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMW,qBAAqB,GAAIC,WAAmB,IACtD,gCAA+BA,WAAY,6BAA4B;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAAe,IAAU;EAC5D,MAAMC,IAAI,GAAG,IAAIlB,IAAI,CAAC,CAAC;EACvBkB,IAAI,CAACC,WAAW,CAACF,OAAO,CAAC;EACzB,MAAMG,SAAS,GAAGF,IAAI,CAACd,YAAY,CAAC,CAAC;EAErC,IAAIgB,SAAS,YAAYrB,MAAM,IAAIqB,SAAS,YAAYtB,IAAI,CAACuB,MAAM,CAACC,KAAK,EAAE;IACzE,OAAO;MACL,GAAG1B,GAAG,CAAC2B,KAAK,CAAC1B,OAAO,CAAC2B,aAAa,CAACJ,SAAS,CAAC,CAAC;MAC9CK,GAAG,EAAE;IACP,CAAC;EACH;EAEA,MAAM,IAAIxB,aAAa,CACrB,2DACF,CAAC;AACH,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"07-verify-and-parse-credential.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/07-verify-and-parse-credential.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAKtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS/D,KAAK,UAAU,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,CAAC;AAQzD,MAAM,MAAM,wBAAwB,GAAG,CACrC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,EAC/C,yBAAyB,EAAE,MAAM,EACjC,OAAO,EAAE;IACP,uBAAuB,EAAE,aAAa,CAAC;IACvC;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,EACD,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC;IACX,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;CAC5B,CAAC,CAAC;AAGH,KAAK,gBAAgB,GAAG;IACtB,oBAAoB;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG;QACf,IAAI,EACA,yBAAyB,CAAC,MAAM,CAC9B,MAAM,EACN,MAAM,CACP,GACD,4BAA4B,CAAC,MAAM,GACnC,SAAS,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH,CAAC;
|
1
|
+
{"version":3,"file":"07-verify-and-parse-credential.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/07-verify-and-parse-credential.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAKtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS/D,KAAK,UAAU,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,CAAC;AAQzD,MAAM,MAAM,wBAAwB,GAAG,CACrC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,EAC/C,yBAAyB,EAAE,MAAM,EACjC,OAAO,EAAE;IACP,uBAAuB,EAAE,aAAa,CAAC;IACvC;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,EACD,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC;IACX,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;CAC5B,CAAC,CAAC;AAGH,KAAK,gBAAgB,GAAG;IACtB,oBAAoB;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG;QACf,IAAI,EACA,yBAAyB,CAAC,MAAM,CAC9B,MAAM,EACN,MAAM,CACP,GACD,4BAA4B,CAAC,MAAM,GACnC,SAAS,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH,CAAC;AA4eF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,EAAE,wBAuCtC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/utils/crypto.ts"],"names":[],"mappings":"AAOA,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAI5B;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,WAAY,MAAM,KAAG,aAsBvD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,6BACJ,aAAa,8BAOrC,CAAC;AACF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,gBAAiB,MAAM,KAAG,MACc,CAAC;AAE3E;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,YAAa,MAAM,KAAG,
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/utils/crypto.ts"],"names":[],"mappings":"AAOA,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAI5B;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,WAAY,MAAM,KAAG,aAsBvD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,6BACJ,aAAa,8BAOrC,CAAC;AACF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,gBAAiB,MAAM,KAAG,MACc,CAAC;AAE3E;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,YAAa,MAAM,KAAG,GAetD,CAAC"}
|
package/package.json
CHANGED
@@ -64,6 +64,117 @@ type DecodedSdJwtCredential = Out<typeof verifySdJwt> & {
|
|
64
64
|
sdJwt: SdJwt4VC;
|
65
65
|
};
|
66
66
|
|
67
|
+
// The data used to create localized names
|
68
|
+
type DisplayData = { locale: string; name: string }[];
|
69
|
+
|
70
|
+
// The resulting object of localized names { en: "Name", it: "Nome" }
|
71
|
+
type LocalizedNames = Record<string, string>;
|
72
|
+
|
73
|
+
// The core structure being built: a node containing the actual value and its localized names
|
74
|
+
type PropertyNode<T> = {
|
75
|
+
value: T;
|
76
|
+
name: LocalizedNames;
|
77
|
+
};
|
78
|
+
|
79
|
+
// A path can consist of object keys, array indices, or null for mapping
|
80
|
+
type Path = (string | number | null)[];
|
81
|
+
|
82
|
+
// A union of all possible shapes. It can be a custom PropertyNode or a standard object/array structure
|
83
|
+
type NodeOrStructure = Partial<PropertyNode<any>> | Record<string, any> | any[];
|
84
|
+
|
85
|
+
// Helper to build localized names from the display data.
|
86
|
+
const buildName = (display: DisplayData): LocalizedNames =>
|
87
|
+
display.reduce(
|
88
|
+
(names, { locale, name }) => ({ ...names, [locale]: name }),
|
89
|
+
{}
|
90
|
+
);
|
91
|
+
|
92
|
+
/**
|
93
|
+
* Recursively constructs a nested object with descriptive properties from a path.
|
94
|
+
*
|
95
|
+
* @param currentObject - The object or array being built upon.
|
96
|
+
* @param path - The path segments to follow.
|
97
|
+
* @param sourceValue - The raw value to place at the end of the path.
|
98
|
+
* @param displayData - The data for generating localized names.
|
99
|
+
* @returns The new object or array structure.
|
100
|
+
*/
|
101
|
+
const createNestedProperty = (
|
102
|
+
currentObject: NodeOrStructure,
|
103
|
+
path: Path,
|
104
|
+
sourceValue: unknown, // Use `unknown` for type-safe input
|
105
|
+
displayData: DisplayData
|
106
|
+
): NodeOrStructure => {
|
107
|
+
const [key, ...rest] = path;
|
108
|
+
|
109
|
+
// Case 1: Map over an array (key is null)
|
110
|
+
if (key === null) {
|
111
|
+
if (!Array.isArray(sourceValue)) return currentObject;
|
112
|
+
|
113
|
+
// We assert the type here because we know this branch handles PropertyNodes
|
114
|
+
const node = currentObject as Partial<PropertyNode<unknown[]>>;
|
115
|
+
const existingValue = Array.isArray(node.value) ? node.value : [];
|
116
|
+
|
117
|
+
const mappedArray = sourceValue.map((item, idx) =>
|
118
|
+
createNestedProperty(existingValue[idx] || {}, rest, item, displayData)
|
119
|
+
);
|
120
|
+
|
121
|
+
return {
|
122
|
+
...node,
|
123
|
+
value: mappedArray,
|
124
|
+
name: node.name ?? buildName(displayData),
|
125
|
+
};
|
126
|
+
}
|
127
|
+
|
128
|
+
// Case 2: Handle an object key (key is a string)
|
129
|
+
if (typeof key === "string") {
|
130
|
+
const nextSourceValue =
|
131
|
+
typeof sourceValue === "object" &&
|
132
|
+
sourceValue !== null &&
|
133
|
+
!Array.isArray(sourceValue) &&
|
134
|
+
key in sourceValue
|
135
|
+
? (sourceValue as Record<string, unknown>)[key]
|
136
|
+
: sourceValue;
|
137
|
+
|
138
|
+
// base case
|
139
|
+
if (rest.length === 0) {
|
140
|
+
return {
|
141
|
+
...currentObject,
|
142
|
+
[key]: { value: nextSourceValue, name: buildName(displayData) },
|
143
|
+
};
|
144
|
+
}
|
145
|
+
|
146
|
+
// recursive step
|
147
|
+
const nextObject =
|
148
|
+
(currentObject as Record<string, NodeOrStructure>)[key] || {};
|
149
|
+
|
150
|
+
return {
|
151
|
+
...currentObject,
|
152
|
+
[key]: createNestedProperty(
|
153
|
+
nextObject,
|
154
|
+
rest,
|
155
|
+
nextSourceValue,
|
156
|
+
displayData
|
157
|
+
),
|
158
|
+
};
|
159
|
+
}
|
160
|
+
|
161
|
+
// Case 3: Handle a specific array index (key is a number)
|
162
|
+
if (typeof key === "number") {
|
163
|
+
const newArray = Array.isArray(currentObject) ? [...currentObject] : [];
|
164
|
+
const nextValue = Array.isArray(sourceValue) ? sourceValue[key] : undefined;
|
165
|
+
|
166
|
+
newArray[key] = createNestedProperty(
|
167
|
+
newArray[key] || {},
|
168
|
+
rest,
|
169
|
+
nextValue,
|
170
|
+
displayData
|
171
|
+
);
|
172
|
+
return newArray;
|
173
|
+
}
|
174
|
+
|
175
|
+
return currentObject;
|
176
|
+
};
|
177
|
+
|
67
178
|
const parseCredentialSdJwt = (
|
68
179
|
// The credential configuration to use to parse the provided credential
|
69
180
|
credentialConfig: CredentialConf,
|
@@ -72,7 +183,7 @@ const parseCredentialSdJwt = (
|
|
72
183
|
includeUndefinedAttributes: boolean = false
|
73
184
|
): ParsedCredential => {
|
74
185
|
if (credentialConfig.format !== sdJwt.header.typ) {
|
75
|
-
const message = `Received credential is of an
|
186
|
+
const message = `Received credential is of an unknown type. Expected one of [${credentialConfig.format}], received '${sdJwt.header.typ}'`;
|
76
187
|
Logger.log(LogLevel.ERROR, message);
|
77
188
|
throw new IoWalletError(message);
|
78
189
|
}
|
@@ -81,55 +192,40 @@ const parseCredentialSdJwt = (
|
|
81
192
|
Logger.log(LogLevel.ERROR, "Missing claims in the credential subject");
|
82
193
|
throw new IoWalletError("Missing claims in the credential subject"); // TODO [SIW-1268]: should not be optional
|
83
194
|
}
|
195
|
+
|
84
196
|
const attrDefinitions = credentialConfig.claims;
|
85
197
|
|
86
|
-
//
|
198
|
+
// Validate that all attributes from the config exist in the disclosures
|
87
199
|
const attrsNotInDisclosures = attrDefinitions.filter(
|
88
|
-
(definition) => !disclosures.some(([, name]) => name === definition.path[0])
|
200
|
+
(definition) => !disclosures.some(([, name]) => name === definition.path[0])
|
89
201
|
);
|
90
|
-
|
202
|
+
|
203
|
+
if (attrsNotInDisclosures.length > 0 && !ignoreMissingAttributes) {
|
91
204
|
const missing = attrsNotInDisclosures.map((_) => _.path[0]).join(", ");
|
92
|
-
const received = disclosures.map((_) => _[1
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
throw new IoWalletError(message);
|
97
|
-
}
|
205
|
+
const received = disclosures.map((_) => _[1]).join(", ");
|
206
|
+
const message = `Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`;
|
207
|
+
Logger.log(LogLevel.ERROR, message);
|
208
|
+
throw new IoWalletError(message);
|
98
209
|
}
|
99
210
|
|
100
|
-
|
101
|
-
|
102
|
-
const
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
// example: { "it-IT": "Nome", "en-EN": "Name", "es-ES": "Nombre" }
|
119
|
-
.map(
|
120
|
-
([attrKey, { display, ...definition }]) =>
|
121
|
-
[
|
122
|
-
attrKey,
|
123
|
-
{
|
124
|
-
...definition,
|
125
|
-
name: display.reduce(
|
126
|
-
(names, { locale, name }) => ({ ...names, [locale]: name }),
|
127
|
-
{} as Record<string, string>
|
128
|
-
),
|
129
|
-
},
|
130
|
-
] as const
|
131
|
-
)
|
132
|
-
);
|
211
|
+
const definedValues: ParsedCredential = {};
|
212
|
+
|
213
|
+
for (const { path, display } of attrDefinitions) {
|
214
|
+
const attrKey = path[0];
|
215
|
+
const disclosureValue = disclosures.find(
|
216
|
+
([, name]) => name === attrKey
|
217
|
+
)?.[2];
|
218
|
+
|
219
|
+
if (disclosureValue !== undefined) {
|
220
|
+
const enriched = createNestedProperty(
|
221
|
+
definedValues,
|
222
|
+
path,
|
223
|
+
disclosureValue,
|
224
|
+
display
|
225
|
+
);
|
226
|
+
Object.assign(definedValues, enriched);
|
227
|
+
}
|
228
|
+
}
|
133
229
|
|
134
230
|
if (includeUndefinedAttributes) {
|
135
231
|
// attributes that are in the disclosure set
|
@@ -139,6 +235,7 @@ const parseCredentialSdJwt = (
|
|
139
235
|
.filter((_) => !Object.keys(definedValues).includes(_[1]))
|
140
236
|
.map(([, key, value]) => [key, { value, name: key }])
|
141
237
|
);
|
238
|
+
|
142
239
|
return {
|
143
240
|
...definedValues,
|
144
241
|
...undefinedValues,
|
@@ -188,16 +285,17 @@ const parseCredentialMDoc = (
|
|
188
285
|
// and filter the non present ones
|
189
286
|
const attrsNotInDisclosures = attrDefinitions.filter(
|
190
287
|
([attrDefNamespace, attrKey]) =>
|
191
|
-
flatNamespaces.some(
|
288
|
+
!flatNamespaces.some(
|
192
289
|
([namespace, claim]) =>
|
193
290
|
attrDefNamespace === namespace && attrKey === claim
|
194
291
|
)
|
195
292
|
);
|
293
|
+
|
196
294
|
if (attrsNotInDisclosures.length > 0) {
|
197
295
|
const missing = attrsNotInDisclosures
|
198
296
|
.map(([, attrKey]) => attrKey)
|
199
297
|
.join(", ");
|
200
|
-
const received =
|
298
|
+
const received = flatNamespaces.map(([, attrKey]) => attrKey).join(", ");
|
201
299
|
|
202
300
|
if (!ignoreMissingAttributes) {
|
203
301
|
throw new IoWalletError(
|
package/src/utils/crypto.ts
CHANGED
@@ -79,9 +79,6 @@ export const getSigninJwkFromCert = (pemCert: string): JWK => {
|
|
79
79
|
x509.readCertPEM(pemCert);
|
80
80
|
const publicKey = x509.getPublicKey();
|
81
81
|
|
82
|
-
console.log("INSTANCE OF RSA", publicKey instanceof RSAKey);
|
83
|
-
console.log("INSTANCE OF ECDSA", publicKey instanceof KJUR.crypto.ECDSA);
|
84
|
-
|
85
82
|
if (publicKey instanceof RSAKey || publicKey instanceof KJUR.crypto.ECDSA) {
|
86
83
|
return {
|
87
84
|
...JWK.parse(KEYUTIL.getJWKFromKey(publicKey)),
|