@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.
@@ -17,15 +17,96 @@ var _converter = require("../../mdoc/converter");
17
17
 
18
18
  // handy alias
19
19
 
20
- const parseCredentialSdJwt = function (credentialConfig, _ref) {
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
- } = _ref;
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 unknwown type. Expected one of [${credentialConfig.format}], received '${sdJwt.header.typ}'`;
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
- // the key of the attribute defintion must match the disclosure's name
40
- const attrsNotInDisclosures = attrDefinitions.filter(definition => !disclosures.some(_ref2 => {
41
- let [, name] = _ref2;
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
- }) // Ignore nested paths for now, see https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0-15.html#name-claims-path-pointer
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 /* name */]).join(", ");
49
- if (!ignoreMissingAttributes) {
50
- const message = `Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`;
51
- _logging.Logger.log(_logging.LogLevel.ERROR, message);
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
- // attributes that are defined in the issuer configuration
57
- // and are present in the disclosure set
58
- const definedValues = Object.fromEntries(attrDefinitions
59
- // retrieve the value from the disclosure set
60
- .map(_ref3 => {
132
+ const definedValues = {};
133
+ for (const {
134
+ path,
135
+ display
136
+ } of attrDefinitions) {
61
137
  var _disclosures$find;
62
- let {
63
- path,
64
- ...definition
65
- } = _ref3;
66
- return [path[0], {
67
- ...definition,
68
- value: (_disclosures$find = disclosures.find(_ => _[1 /* name */] === path[0])) === null || _disclosures$find === void 0 ? void 0 : _disclosures$find[2 /* value */]
69
- }];
70
- })
71
- // add a human readable attribute name, with i18n, in the form { locale: name }
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(_ref6 => {
96
- let [, key, value] = _ref6;
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, _ref7) {
165
+ const parseCredentialMDoc = function (credentialConfig, _ref6) {
110
166
  let {
111
167
  issuerSigned
112
- } = _ref7;
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(_ref8 => {
177
+ const attrDefinitions = credentialConfig.claims.map(_ref7 => {
122
178
  let {
123
179
  path: [namespace, attribute],
124
180
  display
125
- } = _ref8;
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(_ref9 => {
132
- let [namespace, values] = _ref9;
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(_ref10 => {
139
- let [attrDefNamespace, attrKey] = _ref10;
140
- return flatNamespaces.some(_ref11 => {
141
- let [namespace, claim] = _ref11;
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(_ref12 => {
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","console","log","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;EAErCyB,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEF,SAAS,YAAYG,iBAAM,CAAC;EAC3DF,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEF,SAAS,YAAYI,eAAI,CAACC,MAAM,CAACC,KAAK,CAAC;EAExE,IAAIN,SAAS,YAAYG,iBAAM,IAAIH,SAAS,YAAYI,eAAI,CAACC,MAAM,CAACC,KAAK,EAAE;IACzE,OAAO;MACL,GAAGC,QAAG,CAACC,KAAK,CAACC,kBAAO,CAACC,aAAa,CAACV,SAAS,CAAC,CAAC;MAC9CW,GAAG,EAAE;IACP,CAAC;EACH;EAEA,MAAM,IAAIC,qBAAa,CACrB,2DACF,CAAC;AACH,CAAC;AAAC3B,OAAA,CAAAU,oBAAA,GAAAA,oBAAA"}
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
- const parseCredentialSdJwt = function (credentialConfig, _ref) {
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
- } = _ref;
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 unknwown type. Expected one of [${credentialConfig.format}], received '${sdJwt.header.typ}'`;
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
- // the key of the attribute defintion must match the disclosure's name
35
- const attrsNotInDisclosures = attrDefinitions.filter(definition => !disclosures.some(_ref2 => {
36
- let [, name] = _ref2;
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
- }) // Ignore nested paths for now, see https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0-15.html#name-claims-path-pointer
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 /* name */]).join(", ");
44
- if (!ignoreMissingAttributes) {
45
- const message = `Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`;
46
- Logger.log(LogLevel.ERROR, message);
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
- // attributes that are defined in the issuer configuration
52
- // and are present in the disclosure set
53
- const definedValues = Object.fromEntries(attrDefinitions
54
- // retrieve the value from the disclosure set
55
- .map(_ref3 => {
127
+ const definedValues = {};
128
+ for (const {
129
+ path,
130
+ display
131
+ } of attrDefinitions) {
56
132
  var _disclosures$find;
57
- let {
58
- path,
59
- ...definition
60
- } = _ref3;
61
- return [path[0], {
62
- ...definition,
63
- value: (_disclosures$find = disclosures.find(_ => _[1 /* name */] === path[0])) === null || _disclosures$find === void 0 ? void 0 : _disclosures$find[2 /* value */]
64
- }];
65
- })
66
- // add a human readable attribute name, with i18n, in the form { locale: name }
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(_ref6 => {
91
- let [, key, value] = _ref6;
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, _ref7) {
160
+ const parseCredentialMDoc = function (credentialConfig, _ref6) {
105
161
  let {
106
162
  issuerSigned
107
- } = _ref7;
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(_ref8 => {
172
+ const attrDefinitions = credentialConfig.claims.map(_ref7 => {
117
173
  let {
118
174
  path: [namespace, attribute],
119
175
  display
120
- } = _ref8;
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(_ref9 => {
127
- let [namespace, values] = _ref9;
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(_ref10 => {
134
- let [attrDefNamespace, attrKey] = _ref10;
135
- return flatNamespaces.some(_ref11 => {
136
- let [namespace, claim] = _ref11;
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(_ref12 => {
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":"AAGA,SAASA,aAAa,QAAQ,oBAAoB;AAClD,SAASC,QAAQ,EAAEC,MAAM,IAAIC,WAAW,QAAQ,cAAc;AAC9D,SAASC,uBAAuB,QAAQ,yBAAyB;AACjE,SAASC,gBAAgB,QAAkB,iBAAiB;AAE5D,SAASH,MAAM,IAAII,UAAU,QAAQ,YAAY;AACjD,SAASC,sBAAsB,QAAQ,kBAAkB;AACzD,SAASC,2BAA2B,QAAQ,kBAAkB;AAC9D,SAASC,QAAQ,EAAEC,MAAM,QAAQ,qBAAqB;AACtD,SAASC,yBAAyB,QAAQ,sBAAsB;;AAkChE;;AAeA;;AAKA;;AAGA;;AAGA;;AAMA;;AAGA;;AAGA;AACA,MAAMC,SAAS,GAAIC,OAAoB,IACrCA,OAAO,CAACC,MAAM,CACZ,CAACC,KAAK,EAAAC,IAAA;EAAA,IAAE;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAAF,IAAA;EAAA,OAAM;IAAE,GAAGD,KAAK;IAAE,CAACE,MAAM,GAAGC;EAAK,CAAC;AAAA,CAAC,EAC3D,CAAC,CACH,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,GAAGA,CAC3BC,aAA8B,EAC9BC,IAAU,EACVC,WAAoB,EACpBC,WAAwB,KACJ;EACpB,MAAM,CAACC,GAAG,EAAE,GAAGC,IAAI,CAAC,GAAGJ,IAAI;;EAE3B;EACA,IAAIG,GAAG,KAAK,IAAI,EAAE;IAChB,IAAI,CAACE,KAAK,CAACC,OAAO,CAACL,WAAW,CAAC,EAAE,OAAOF,aAAa;;IAErD;IACA,MAAMQ,IAAI,GAAGR,aAAiD;IAC9D,MAAMS,aAAa,GAAGH,KAAK,CAACC,OAAO,CAACC,IAAI,CAACE,KAAK,CAAC,GAAGF,IAAI,CAACE,KAAK,GAAG,EAAE;IAEjE,MAAMC,WAAW,GAAGT,WAAW,CAACU,GAAG,CAAC,CAACC,IAAI,EAAEC,GAAG,KAC5Cf,oBAAoB,CAACU,aAAa,CAACK,GAAG,CAAC,IAAI,CAAC,CAAC,EAAET,IAAI,EAAEQ,IAAI,EAAEV,WAAW,CACxE,CAAC;IAED,OAAO;MACL,GAAGK,IAAI;MACPE,KAAK,EAAEC,WAAW;MAClBb,IAAI,EAAEU,IAAI,CAACV,IAAI,IAAIN,SAAS,CAACW,WAAW;IAC1C,CAAC;EACH;;EAEA;EACA,IAAI,OAAOC,GAAG,KAAK,QAAQ,EAAE;IAC3B,MAAMW,eAAe,GACnB,OAAOb,WAAW,KAAK,QAAQ,IAC/BA,WAAW,KAAK,IAAI,IACpB,CAACI,KAAK,CAACC,OAAO,CAACL,WAAW,CAAC,IAC3BE,GAAG,IAAIF,WAAW,GACbA,WAAW,CAA6BE,GAAG,CAAC,GAC7CF,WAAW;;IAEjB;IACA,IAAIG,IAAI,CAACW,MAAM,KAAK,CAAC,EAAE;MACrB,OAAO;QACL,GAAGhB,aAAa;QAChB,CAACI,GAAG,GAAG;UAAEM,KAAK,EAAEK,eAAe;UAAEjB,IAAI,EAAEN,SAAS,CAACW,WAAW;QAAE;MAChE,CAAC;IACH;;IAEA;IACA,MAAMc,UAAU,GACbjB,aAAa,CAAqCI,GAAG,CAAC,IAAI,CAAC,CAAC;IAE/D,OAAO;MACL,GAAGJ,aAAa;MAChB,CAACI,GAAG,GAAGL,oBAAoB,CACzBkB,UAAU,EACVZ,IAAI,EACJU,eAAe,EACfZ,WACF;IACF,CAAC;EACH;;EAEA;EACA,IAAI,OAAOC,GAAG,KAAK,QAAQ,EAAE;IAC3B,MAAMc,QAAQ,GAAGZ,KAAK,CAACC,OAAO,CAACP,aAAa,CAAC,GAAG,CAAC,GAAGA,aAAa,CAAC,GAAG,EAAE;IACvE,MAAMmB,SAAS,GAAGb,KAAK,CAACC,OAAO,CAACL,WAAW,CAAC,GAAGA,WAAW,CAACE,GAAG,CAAC,GAAGgB,SAAS;IAE3EF,QAAQ,CAACd,GAAG,CAAC,GAAGL,oBAAoB,CAClCmB,QAAQ,CAACd,GAAG,CAAC,IAAI,CAAC,CAAC,EACnBC,IAAI,EACJc,SAAS,EACThB,WACF,CAAC;IACD,OAAOe,QAAQ;EACjB;EAEA,OAAOlB,aAAa;AACtB,CAAC;AAED,MAAMqB,oBAAoB,GAAG,SAAAA,CAE3BC,gBAAgC,EAAAC,KAAA,EAIX;EAAA,IAHrB;IAAEC,KAAK;IAAEC;EAAoC,CAAC,GAAAF,KAAA;EAAA,IAC9CG,uBAAgC,GAAAC,SAAA,CAAAX,MAAA,QAAAW,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,KAAK;EAAA,IACxCC,0BAAmC,GAAAD,SAAA,CAAAX,MAAA,QAAAW,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,KAAK;EAE3C,IAAIL,gBAAgB,CAACO,MAAM,KAAKL,KAAK,CAACM,MAAM,CAACC,GAAG,EAAE;IAChD,MAAMC,OAAO,GAAI,+DAA8DV,gBAAgB,CAACO,MAAO,gBAAeL,KAAK,CAACM,MAAM,CAACC,GAAI,GAAE;IACzIzC,MAAM,CAAC2C,GAAG,CAAC5C,QAAQ,CAAC6C,KAAK,EAAEF,OAAO,CAAC;IACnC,MAAM,IAAIpD,aAAa,CAACoD,OAAO,CAAC;EAClC;EAEA,IAAI,CAACV,gBAAgB,CAACa,MAAM,EAAE;IAC5B7C,MAAM,CAAC2C,GAAG,CAAC5C,QAAQ,CAAC6C,KAAK,EAAE,0CAA0C,CAAC;IACtE,MAAM,IAAItD,aAAa,CAAC,0CAA0C,CAAC,CAAC,CAAC;EACvE;;EAEA,MAAMwD,eAAe,GAAGd,gBAAgB,CAACa,MAAM;;EAE/C;EACA,MAAME,qBAAqB,GAAGD,eAAe,CAACE,MAAM,CACjDC,UAAU,IAAK,CAACd,WAAW,CAACe,IAAI,CAACC,KAAA;IAAA,IAAC,GAAG3C,IAAI,CAAC,GAAA2C,KAAA;IAAA,OAAK3C,IAAI,KAAKyC,UAAU,CAACtC,IAAI,CAAC,CAAC,CAAC;EAAA,EAC7E,CAAC;EAED,IAAIoC,qBAAqB,CAACrB,MAAM,GAAG,CAAC,IAAI,CAACU,uBAAuB,EAAE;IAChE,MAAMgB,OAAO,GAAGL,qBAAqB,CAACzB,GAAG,CAAE+B,CAAC,IAAKA,CAAC,CAAC1C,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC2C,IAAI,CAAC,IAAI,CAAC;IACtE,MAAMC,QAAQ,GAAGpB,WAAW,CAACb,GAAG,CAAE+B,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IACxD,MAAMZ,OAAO,GAAI,4DAA2DU,OAAQ,iBAAgBG,QAAS,GAAE;IAC/GvD,MAAM,CAAC2C,GAAG,CAAC5C,QAAQ,CAAC6C,KAAK,EAAEF,OAAO,CAAC;IACnC,MAAM,IAAIpD,aAAa,CAACoD,OAAO,CAAC;EAClC;EAEA,MAAMc,aAA+B,GAAG,CAAC,CAAC;EAE1C,KAAK,MAAM;IAAE7C,IAAI;IAAER;EAAQ,CAAC,IAAI2C,eAAe,EAAE;IAAA,IAAAW,iBAAA;IAC/C,MAAMC,OAAO,GAAG/C,IAAI,CAAC,CAAC,CAAC;IACvB,MAAMgD,eAAe,IAAAF,iBAAA,GAAGtB,WAAW,CAACyB,IAAI,CACtCC,KAAA;MAAA,IAAC,GAAGrD,IAAI,CAAC,GAAAqD,KAAA;MAAA,OAAKrD,IAAI,KAAKkD,OAAO;IAAA,CAChC,CAAC,cAAAD,iBAAA,uBAFuBA,iBAAA,CAEpB,CAAC,CAAC;IAEN,IAAIE,eAAe,KAAK7B,SAAS,EAAE;MACjC,MAAMgC,QAAQ,GAAGrD,oBAAoB,CACnC+C,aAAa,EACb7C,IAAI,EACJgD,eAAe,EACfxD,OACF,CAAC;MACD4D,MAAM,CAACC,MAAM,CAACR,aAAa,EAAEM,QAAQ,CAAC;IACxC;EACF;EAEA,IAAIxB,0BAA0B,EAAE;IAC9B;IACA;IACA,MAAM2B,eAAe,GAAGF,MAAM,CAACG,WAAW,CACxC/B,WAAW,CACRa,MAAM,CAAEK,CAAC,IAAK,CAACU,MAAM,CAACI,IAAI,CAACX,aAAa,CAAC,CAACY,QAAQ,CAACf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzD/B,GAAG,CAAC+C,KAAA;MAAA,IAAC,GAAGvD,GAAG,EAAEM,KAAK,CAAC,GAAAiD,KAAA;MAAA,OAAK,CAACvD,GAAG,EAAE;QAAEM,KAAK;QAAEZ,IAAI,EAAEM;MAAI,CAAC,CAAC;IAAA,EACxD,CAAC;IAED,OAAO;MACL,GAAG0C,aAAa;MAChB,GAAGS;IACL,CAAC;EACH;EAEA,OAAOT,aAAa;AACtB,CAAC;AACD,MAAMc,mBAAmB,GAAG,SAAAA,CAE1BtC,gBAAgC,EAAAuC,KAAA,EAKX;EAAA,IAHrB;IAAEC;EAAoC,CAAC,GAAAD,KAAA;EAAA,IACvCnC,uBAAgC,GAAAC,SAAA,CAAAX,MAAA,QAAAW,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,KAAK;EAAA,IACxCC,0BAAmC,GAAAD,SAAA,CAAAX,MAAA,QAAAW,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,KAAK;EAE3C,IAAI,CAACL,gBAAgB,EAAE;IACrB,MAAM,IAAI1C,aAAa,CAAC,6CAA6C,CAAC;EACxE;EAEA,IAAI,CAAC0C,gBAAgB,CAACa,MAAM,EAAE;IAC5B,MAAM,IAAIvD,aAAa,CAAC,0CAA0C,CAAC;EACrE;EAEA,MAAMwD,eAAe,GAAGd,gBAAgB,CAACa,MAAM,CAACvB,GAAG,CAEjDmD,KAAA;IAAA,IAAC;MAAE9D,IAAI,EAAE,CAAC+D,SAAS,EAAEC,SAAS,CAAC;MAAExE;IAAQ,CAAC,GAAAsE,KAAA;IAAA,OAAK,CAC/CC,SAAS,EACTC,SAAS,EACTxE,OAAO,CACR;EAAA,EAAC;EAEF,IAAI,CAACqE,YAAY,CAACI,UAAU,EAAE;IAC5B,MAAM,IAAItF,aAAa,CAAC,kCAAkC,CAAC;EAC7D;EAEA,MAAMuF,cAAc,GAAGd,MAAM,CAACe,OAAO,CAACN,YAAY,CAACI,UAAU,CAAC,CAACG,OAAO,CACpEC,KAAA;IAAA,IAAC,CAACN,SAAS,EAAEO,MAAM,CAAC,GAAAD,KAAA;IAAA,OAClBC,MAAM,CAAC3D,GAAG,CAA4B4D,CAAC,IAAK,CAC1CR,SAAS,EACTQ,CAAC,CAACC,iBAAiB,EACnBD,CAAC,CAACE,YAAY,CACf,CAAC;EAAA,CACN,CAAC;;EAED;EACA;EACA,MAAMrC,qBAAqB,GAAGD,eAAe,CAACE,MAAM,CAClDqC,KAAA;IAAA,IAAC,CAACC,gBAAgB,EAAE5B,OAAO,CAAC,GAAA2B,KAAA;IAAA,OAC1B,CAACR,cAAc,CAAC3B,IAAI,CAClBqC,MAAA;MAAA,IAAC,CAACb,SAAS,EAAEc,KAAK,CAAC,GAAAD,MAAA;MAAA,OACjBD,gBAAgB,KAAKZ,SAAS,IAAIhB,OAAO,KAAK8B,KAAK;IAAA,CACvD,CAAC;EAAA,CACL,CAAC;EAED,IAAIzC,qBAAqB,CAACrB,MAAM,GAAG,CAAC,EAAE;IACpC,MAAM0B,OAAO,GAAGL,qBAAqB,CAClCzB,GAAG,CAACmE,MAAA;MAAA,IAAC,GAAG/B,OAAO,CAAC,GAAA+B,MAAA;MAAA,OAAK/B,OAAO;IAAA,EAAC,CAC7BJ,IAAI,CAAC,IAAI,CAAC;IACb,MAAMC,QAAQ,GAAGsB,cAAc,CAACvD,GAAG,CAACoE,MAAA;MAAA,IAAC,GAAGhC,OAAO,CAAC,GAAAgC,MAAA;MAAA,OAAKhC,OAAO;IAAA,EAAC,CAACJ,IAAI,CAAC,IAAI,CAAC;IAExE,IAAI,CAAClB,uBAAuB,EAAE;MAC5B,MAAM,IAAI9C,aAAa,CACpB,4DAA2D8D,OAAQ,iBAAgBG,QAAS,GAC/F,CAAC;IACH;EACF;;EAEA;EACA,MAAMC,aAAa,GAAGV;EACpB;EAAA,CACCxB,GAAG,CACFqE,MAAA;IAAA,IAAAC,oBAAA;IAAA,IAAC,CAACN,gBAAgB,EAAE5B,OAAO,EAAEvD,OAAO,CAAC,GAAAwF,MAAA;IAAA,OACnC,CACEL,gBAAgB,EAChB5B,OAAO,EACP;MACEvD,OAAO;MACPiB,KAAK,GAAAwE,oBAAA,GAAEf,cAAc,CAACjB,IAAI,CACxBiC,MAAA;QAAA,IAAC,CAACnB,SAAS,EAAElE,IAAI,CAAC,GAAAqF,MAAA;QAAA,OAChBP,gBAAgB,KAAKZ,SAAS,IAAIlE,IAAI,KAAKkD,OAAO;MAAA,CACtD,CAAC,cAAAkC,oBAAA,uBAHMA,oBAAA,CAGH,CAAC;IACP,CAAC,CACF;EAAA,CACL;EACA;EAAA,CACC5C,MAAM,CAAC8C,MAAA;IAAA,IAAC,CAACzC,CAAC,EAAE0C,EAAE,EAAE9C,UAAU,CAAC,GAAA6C,MAAA;IAAA,OAAK7C,UAAU,CAAC7B,KAAK,KAAKU,SAAS;EAAA;EAC/D;EACA;EAAA,CACC1B,MAAM,CACL,CAAC4F,GAAG,EAAAC,MAAA;IAAA,IAAE,CAACX,gBAAgB,EAAE5B,OAAO,EAAE;MAAEvD,OAAO;MAAEiB;IAAM,CAAC,CAAC,GAAA6E,MAAA;IAAA,OAAM;MACzD,GAAGD,GAAG;MACN,CAAClG,2BAA2B,CAACwF,gBAAgB,EAAE5B,OAAO,CAAC,GAAG;QACxDtC,KAAK;QACLZ,IAAI,EAAEL,OAAO,CAACC,MAAM,CAClB,CAACC,KAAK,EAAA6F,MAAA;UAAA,IAAE;YAAE3F,MAAM;YAAEC;UAAK,CAAC,GAAA0F,MAAA;UAAA,OAAM;YAC5B,GAAG7F,KAAK;YACR,CAACE,MAAM,GAAGC;UACZ,CAAC;QAAA,CAAC,EACF,CAAC,CACH;MACF;IACF,CAAC;EAAA,CAAC,EACF,CAAC,CACH,CAAC;EAEH,IAAI8B,0BAA0B,EAAE;IAC9B,MAAM2B,eAAiC,GAAGF,MAAM,CAACG,WAAW,CAC1DH,MAAM,CAACkB,MAAM,CAACJ,cAAc,CAAC,CAC1B7B,MAAM,CACLmD,MAAA;MAAA,IAAC,CAACzB,SAAS,EAAE5D,GAAG,CAAC,GAAAqF,MAAA;MAAA,OACf,CAAC3C,aAAa,CAAC1D,2BAA2B,CAAC4E,SAAS,EAAE5D,GAAG,CAAC,CAAC;IAAA,CAC/D,CAAC,CACAQ,GAAG,CAAC8E,MAAA;MAAA,IAAC,CAAC1B,SAAS,EAAE5D,GAAG,EAAEM,KAAK,CAAC,GAAAgF,MAAA;MAAA,OAAK,CAChCtG,2BAA2B,CAAC4E,SAAS,EAAE5D,GAAG,CAAC,EAC3C;QAAEM,KAAK;QAAEZ,IAAI,EAAEM;MAAI,CAAC,CACrB;IAAA,EACL,CAAC;IACD,OAAO;MACL,GAAG0C,aAAa;MAChB,GAAGS;IACL,CAAC;EACH;EAEA,OAAOT,aAAa;AACtB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe6C,qBAAqBA,CAClCC,aAAqB,EACrBC,UAAiB,EACjBC,oBAAmC,EACF;EACjC,MAAM,CAACC,iBAAiB,EAAEC,gBAAgB,CAAC;EACzC;EACA,MAAMC,OAAO,CAACC,GAAG,CAAC,CAChBnH,WAAW,CAAC6G,aAAa,EAAEC,UAAU,EAAEhH,QAAQ,CAAC,EAChDiH,oBAAoB,CAACK,YAAY,CAAC,CAAC,CACpC,CAAC;EAEJ,MAAM;IAAEC;EAAI,CAAC,GAAGL,iBAAiB,CAACvE,KAAK,CAAC6E,OAAO;EAC/C,IAAI,EAAE,MAAMpH,gBAAgB,CAACmH,GAAG,CAACE,GAAG,EAAEN,gBAAuB,CAAC,CAAC,EAAE;IAC/D,MAAMhE,OAAO,GAAI,kDAAiDgE,gBAAgB,CAACO,GAAI,UAASR,iBAAiB,CAACvE,KAAK,CAAC6E,OAAO,CAACD,GAAG,CAACE,GAAG,CAACC,GAAI,EAAC;IAC7IjH,MAAM,CAAC2C,GAAG,CAAC5C,QAAQ,CAAC6C,KAAK,EAAEF,OAAO,CAAC;IACnC,MAAM,IAAIpD,aAAa,CAACoD,OAAO,CAAC;EAClC;EAEA,OAAO+D,iBAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeS,oBAAoBA,CACjCZ,aAAqB,EACrBa,YAAoB,EACpBX,oBAAmC,EACH;EAChC,MAAM,CAACC,iBAAiB,EAAEC,gBAAgB,CAAC;EACzC;EACA,MAAMC,OAAO,CAACC,GAAG,CAAC,CAChBhH,UAAU,CAAC0G,aAAa,EAAEa,YAAY,CAAC,EACvCX,oBAAoB,CAACK,YAAY,CAAC,CAAC,CACpC,CAAC;EAEJ,IAAI,CAACJ,iBAAiB,EAAE;IACtB,MAAM,IAAInH,aAAa,CAAC,4BAA4B,CAAC;EACvD;EAEA,MAAMwB,GAAG,GACP2F,iBAAiB,CAACjC,YAAY,CAAC4C,UAAU,CAACL,OAAO,CAACM,aAAa,CAACC,SAAS;EAE3E,IAAI,EAAE,MAAM3H,gBAAgB,CAACmB,GAAG,EAAE4F,gBAA6B,CAAC,CAAC,EAAE;IACjE,MAAM,IAAIpH,aAAa,CACpB,oFACH,CAAC;EACH;EAEA,OAAOmH,iBAAiB;AAC1B;AAEA,MAAMc,6BAAuD,GAAG,MAAAA,CAC9DC,UAAU,EACVC,UAAU,EACVC,yBAAyB,EAAAC,MAAA,KAMtB;EAAA,IALH;IACEC,uBAAuB;IACvBxF,uBAAuB;IACvBE;EACF,CAAC,GAAAqF,MAAA;EAED,MAAME,OAAO,GAAG,MAAMxB,qBAAqB,CACzCoB,UAAU,EACVD,UAAU,CAACM,wBAAwB,CAACC,IAAI,CAAC5D,IAAI,EAC7CyD,uBACF,CAAC;EAED5H,MAAM,CAAC2C,GAAG,CAAC5C,QAAQ,CAACiI,KAAK,EAAG,uBAAsBC,IAAI,CAACC,SAAS,CAACL,OAAO,CAAE,EAAC,CAAC;EAE5E,MAAM7F,gBAAgB,GACpBwF,UAAU,CAACM,wBAAwB,CAACK,mCAAmC,CACrET,yBAAyB,CAC1B;EAEH,IAAI,CAAC1F,gBAAgB,EAAE;IACrBhC,MAAM,CAAC2C,GAAG,CACR5C,QAAQ,CAAC6C,KAAK,EACb,gDAA+C8E,yBAA0B,EAC5E,CAAC;IACD,MAAM,IAAIpI,aAAa,CAAC,6CAA6C,CAAC;EACxE;EAEA,MAAM8I,gBAAgB,GAAGrG,oBAAoB,CAC3CC,gBAAgB,EAChB6F,OAAO,EACPzF,uBAAuB,EACvBE,0BACF,CAAC;EACD,MAAM+F,aAAa,GAAG3I,uBAAuB,CAACmI,OAAO,CAAC1F,WAAW,EAAE,KAAK,CAAC;EAEzEnC,MAAM,CAAC2C,GAAG,CACR5C,QAAQ,CAACiI,KAAK,EACb,sBAAqBC,IAAI,CAACC,SAAS,CAACE,gBAAgB,CAAE,gBAAeC,aAAc,EACtF,CAAC;EAED,OAAO;IACLD,gBAAgB;IAChBE,UAAU,EAAE,IAAIC,IAAI,CAACV,OAAO,CAAC3F,KAAK,CAAC6E,OAAO,CAACyB,GAAG,GAAG,IAAI,CAAC;IACtDC,QAAQ,EACN,OAAOJ,aAAa,KAAK,QAAQ,GAC7B,IAAIE,IAAI,CAACF,aAAa,GAAG,IAAI,CAAC,GAC9BvG;EACR,CAAC;AACH,CAAC;AAED,MAAM4G,4BAAsD,GAAG,MAAAA,CAC7DlB,UAAU,EACVC,UAAU,EACVC,yBAAyB,EAAAiB,MAAA,EAEzBxB,YAAY,KACT;EAAA,IAAAyB,qBAAA,EAAAC,sBAAA;EAAA,IAFH;IAAEjB,uBAAuB;IAAExF;EAAwB,CAAC,GAAAuG,MAAA;EAGpD,IAAI,CAACxB,YAAY,EAAE;IACjB,MAAM,IAAI7H,aAAa,CAAC,sBAAsB,CAAC;EACjD;EAEA,MAAMuI,OAAO,GAAG,MAAMX,oBAAoB,CACxCO,UAAU,EACVN,YAAY,EACZS,uBACF,CAAC;EAED,MAAM5F,gBAAgB,GACpBwF,UAAU,CAACM,wBAAwB,CAACK,mCAAmC,CACrET,yBAAyB,CACzB;EACJ,MAAMU,gBAAgB,GAAG9D,mBAAmB,CAC1CtC,gBAAgB,EAChB6F,OAAO,EACPzF,uBAAuB,EACvBA,uBACF,CAAC;EAED,MAAM0G,cAAc,GAAG7I,yBAAyB,CAC9CmI,gBAAgB,aAAhBA,gBAAgB,gBAAAQ,qBAAA,GAAhBR,gBAAgB,CACdtI,2BAA2B,CAACD,sBAAsB,EAAE,aAAa,CAAC,CACnE,cAAA+I,qBAAA,uBAFDA,qBAAA,CAEGxH,KACL,CAAC;EACD,IAAI,CAAC0H,cAAc,EAAE;IACnB,MAAM,IAAIxJ,aAAa,CAAE,kCAAiC,CAAC;EAC7D;EACAwJ,cAAc,CAACC,OAAO,CAACD,cAAc,CAACE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;EAEpD,MAAMX,aAAa,GAAGpI,yBAAyB,CAC7CmI,gBAAgB,aAAhBA,gBAAgB,gBAAAS,sBAAA,GAAhBT,gBAAgB,CACdtI,2BAA2B,CAACD,sBAAsB,EAAE,YAAY,CAAC,CAClE,cAAAgJ,sBAAA,uBAFDA,sBAAA,CAEGzH,KACL,CAAC;EACDiH,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEU,OAAO,CAACV,aAAa,CAACW,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;EAEnD,OAAO;IACLZ,gBAAgB;IAChBX,UAAU;IACVC,yBAAyB;IACzBY,UAAU,EAAEQ,cAAc;IAC1BL,QAAQ,EAAEJ,aAAa,IAAIvG;EAC7B,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMmH,wBAAkD,GAAG,MAAAA,CAChEzB,UAAU,EACVC,UAAU,EACVC,yBAAyB,EACzBwB,OAAO,EACP/B,YAAY,KACT;EAAA,IAAAgC,qBAAA;EACH,MAAM5G,MAAM,IAAA4G,qBAAA,GACV3B,UAAU,CAACM,wBAAwB,CAACK,mCAAmC,CACrET,yBAAyB,CAC1B,cAAAyB,qBAAA,uBAFDA,qBAAA,CAEG5G,MAAM;EAEX,QAAQA,MAAM;IACZ,KAAK,WAAW;MAAE;QAChBvC,MAAM,CAAC2C,GAAG,CAAC5C,QAAQ,CAACiI,KAAK,EAAE,wCAAwC,CAAC;QACpE,OAAOT,6BAA6B,CAClCC,UAAU,EACVC,UAAU,EACVC,yBAAyB,EACzBwB,OACF,CAAC;MACH;IACA,KAAK,UAAU;MAAE;QACflJ,MAAM,CAAC2C,GAAG,CAAC5C,QAAQ,CAACiI,KAAK,EAAE,uCAAuC,CAAC;QACnE,OAAOU,4BAA4B,CACjClB,UAAU,EACVC,UAAU,EACVC,yBAAyB,EACzBwB,OAAO,EACP/B,YACF,CAAC;MACH;IAEA;MAAS;QACP,MAAMzE,OAAO,GAAI,kCAAiCH,MAAO,EAAC;QAC1DvC,MAAM,CAAC2C,GAAG,CAAC5C,QAAQ,CAAC6C,KAAK,EAAEF,OAAO,CAAC;QACnC,MAAM,IAAIpD,aAAa,CAACoD,OAAO,CAAC;MAClC;EACF;AACF,CAAC"}
@@ -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","console","log","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;EAErCiB,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEF,SAAS,YAAYrB,MAAM,CAAC;EAC3DsB,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEF,SAAS,YAAYtB,IAAI,CAACyB,MAAM,CAACC,KAAK,CAAC;EAExE,IAAIJ,SAAS,YAAYrB,MAAM,IAAIqB,SAAS,YAAYtB,IAAI,CAACyB,MAAM,CAACC,KAAK,EAAE;IACzE,OAAO;MACL,GAAG5B,GAAG,CAAC6B,KAAK,CAAC5B,OAAO,CAAC6B,aAAa,CAACN,SAAS,CAAC,CAAC;MAC9CO,GAAG,EAAE;IACP,CAAC;EACH;EAEA,MAAM,IAAI1B,aAAa,CACrB,2DACF,CAAC;AACH,CAAC"}
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;AA0YF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,EAAE,wBAuCtC,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,GAkBtD,CAAC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagopa/io-react-native-wallet",
3
- "version": "2.0.0-next.7",
3
+ "version": "2.0.0-next.9",
4
4
  "description": "Provide data structures, helpers and API for IO Wallet",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -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 unknwown type. Expected one of [${credentialConfig.format}], received '${sdJwt.header.typ}'`;
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
- // the key of the attribute defintion must match the disclosure's name
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]) // Ignore nested paths for now, see https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0-15.html#name-claims-path-pointer
200
+ (definition) => !disclosures.some(([, name]) => name === definition.path[0])
89
201
  );
90
- if (attrsNotInDisclosures.length > 0) {
202
+
203
+ if (attrsNotInDisclosures.length > 0 && !ignoreMissingAttributes) {
91
204
  const missing = attrsNotInDisclosures.map((_) => _.path[0]).join(", ");
92
- const received = disclosures.map((_) => _[1 /* name */]).join(", ");
93
- if (!ignoreMissingAttributes) {
94
- const message = `Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`;
95
- Logger.log(LogLevel.ERROR, message);
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
- // attributes that are defined in the issuer configuration
101
- // and are present in the disclosure set
102
- const definedValues = Object.fromEntries(
103
- attrDefinitions
104
- // retrieve the value from the disclosure set
105
- .map(
106
- ({ path, ...definition }) =>
107
- [
108
- path[0],
109
- {
110
- ...definition,
111
- value: disclosures.find(
112
- (_) => _[1 /* name */] === path[0]
113
- )?.[2 /* value */],
114
- },
115
- ] as const
116
- )
117
- // add a human readable attribute name, with i18n, in the form { locale: name }
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 = Object.keys(Object.values(flatNamespaces));
298
+ const received = flatNamespaces.map(([, attrKey]) => attrKey).join(", ");
201
299
 
202
300
  if (!ignoreMissingAttributes) {
203
301
  throw new IoWalletError(
@@ -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)),