@pagopa/io-react-native-wallet 2.0.0-next.5 → 2.0.0-next.7

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.
Files changed (72) hide show
  1. package/lib/commonjs/credential/issuance/02-evaluate-issuer-trust.js +6 -1
  2. package/lib/commonjs/credential/issuance/02-evaluate-issuer-trust.js.map +1 -1
  3. package/lib/commonjs/credential/issuance/06-obtain-credential.js.map +1 -1
  4. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +186 -9
  5. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
  6. package/lib/commonjs/credential/issuance/README.md +7 -2
  7. package/lib/commonjs/mdoc/const.js +9 -0
  8. package/lib/commonjs/mdoc/const.js.map +1 -0
  9. package/lib/commonjs/mdoc/converter.js +26 -0
  10. package/lib/commonjs/mdoc/converter.js.map +1 -0
  11. package/lib/commonjs/mdoc/index.js +74 -0
  12. package/lib/commonjs/mdoc/index.js.map +1 -0
  13. package/lib/commonjs/mdoc/utils.js +14 -0
  14. package/lib/commonjs/mdoc/utils.js.map +1 -0
  15. package/lib/commonjs/trust/types.js +2 -1
  16. package/lib/commonjs/trust/types.js.map +1 -1
  17. package/lib/commonjs/utils/crypto.js +35 -1
  18. package/lib/commonjs/utils/crypto.js.map +1 -1
  19. package/lib/module/credential/issuance/02-evaluate-issuer-trust.js +6 -1
  20. package/lib/module/credential/issuance/02-evaluate-issuer-trust.js.map +1 -1
  21. package/lib/module/credential/issuance/06-obtain-credential.js.map +1 -1
  22. package/lib/module/credential/issuance/07-verify-and-parse-credential.js +187 -10
  23. package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
  24. package/lib/module/credential/issuance/README.md +7 -2
  25. package/lib/module/mdoc/const.js +2 -0
  26. package/lib/module/mdoc/const.js.map +1 -0
  27. package/lib/module/mdoc/converter.js +20 -0
  28. package/lib/module/mdoc/converter.js.map +1 -0
  29. package/lib/module/mdoc/index.js +67 -0
  30. package/lib/module/mdoc/index.js.map +1 -0
  31. package/lib/module/mdoc/utils.js +7 -0
  32. package/lib/module/mdoc/utils.js.map +1 -0
  33. package/lib/module/trust/types.js +2 -1
  34. package/lib/module/trust/types.js.map +1 -1
  35. package/lib/module/utils/crypto.js +32 -0
  36. package/lib/module/utils/crypto.js.map +1 -1
  37. package/lib/typescript/credential/issuance/02-evaluate-issuer-trust.d.ts.map +1 -1
  38. package/lib/typescript/credential/issuance/06-obtain-credential.d.ts +2 -1
  39. package/lib/typescript/credential/issuance/06-obtain-credential.d.ts.map +1 -1
  40. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts +8 -9
  41. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
  42. package/lib/typescript/mdoc/const.d.ts +2 -0
  43. package/lib/typescript/mdoc/const.d.ts.map +1 -0
  44. package/lib/typescript/mdoc/converter.d.ts +8 -0
  45. package/lib/typescript/mdoc/converter.d.ts.map +1 -0
  46. package/lib/typescript/mdoc/index.d.ts +5 -0
  47. package/lib/typescript/mdoc/index.d.ts.map +1 -0
  48. package/lib/typescript/mdoc/utils.d.ts +7 -0
  49. package/lib/typescript/mdoc/utils.d.ts.map +1 -0
  50. package/lib/typescript/trust/build-chain.d.ts +2 -2
  51. package/lib/typescript/trust/types.d.ts +161 -26
  52. package/lib/typescript/trust/types.d.ts.map +1 -1
  53. package/lib/typescript/utils/crypto.d.ts +16 -0
  54. package/lib/typescript/utils/crypto.d.ts.map +1 -1
  55. package/package.json +13 -11
  56. package/src/credential/issuance/02-evaluate-issuer-trust.ts +2 -1
  57. package/src/credential/issuance/06-obtain-credential.ts +2 -1
  58. package/src/credential/issuance/07-verify-and-parse-credential.ts +257 -22
  59. package/src/credential/issuance/README.md +7 -2
  60. package/src/mdoc/const.ts +1 -0
  61. package/src/mdoc/converter.ts +26 -0
  62. package/src/mdoc/index.ts +93 -0
  63. package/src/mdoc/utils.ts +7 -0
  64. package/src/trust/types.ts +5 -1
  65. package/src/utils/crypto.ts +39 -1
  66. package/lib/commonjs/credential/issuance/const.js +0 -14
  67. package/lib/commonjs/credential/issuance/const.js.map +0 -1
  68. package/lib/module/credential/issuance/const.js +0 -4
  69. package/lib/module/credential/issuance/const.js.map +0 -1
  70. package/lib/typescript/credential/issuance/const.d.ts +0 -5
  71. package/lib/typescript/credential/issuance/const.d.ts.map +0 -1
  72. package/src/credential/issuance/const.ts +0 -11
@@ -3,10 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.withEphemeralKey = exports.createCryptoContextFor = void 0;
6
+ exports.withEphemeralKey = exports.getSigninJwkFromCert = exports.createCryptoContextFor = exports.convertBase64DerToPem = void 0;
7
7
  var _ioReactNativeCrypto = require("@pagopa/io-react-native-crypto");
8
8
  var _uuid = require("uuid");
9
9
  var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
10
+ var _jwk = require("./jwk");
11
+ var _jsrsasign = require("jsrsasign");
12
+ var _errors = require("./errors");
10
13
  /**
11
14
  * Create a CryptoContext bound to a key pair.
12
15
  * Key pair is supposed to exist already in the device's keychain.
@@ -54,5 +57,36 @@ const withEphemeralKey = async fn => {
54
57
  const ephemeralContext = createCryptoContextFor(keytag);
55
58
  return fn(ephemeralContext).finally(() => (0, _ioReactNativeCrypto.deleteKey)(keytag));
56
59
  };
60
+ /**
61
+ * Converts a base64-encoded DER certificate to PEM format.
62
+ *
63
+ * @param certificate - The base64-encoded DER certificate.
64
+ * @returns The PEM-formatted certificate.
65
+ */
57
66
  exports.withEphemeralKey = withEphemeralKey;
67
+ const convertBase64DerToPem = certificate => `-----BEGIN CERTIFICATE-----\n${certificate}\n-----END CERTIFICATE-----`;
68
+
69
+ /**
70
+ * Retrieves the signing JWK from a PEM-formatted certificate.
71
+ *
72
+ * @param pemCert - The PEM-formatted certificate.
73
+ * @returns The signing JWK.
74
+ * @throws Will throw an error if the public key is unsupported.
75
+ */
76
+ exports.convertBase64DerToPem = convertBase64DerToPem;
77
+ const getSigninJwkFromCert = pemCert => {
78
+ const x509 = new _jsrsasign.X509();
79
+ x509.readCertPEM(pemCert);
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
+ if (publicKey instanceof _jsrsasign.RSAKey || publicKey instanceof _jsrsasign.KJUR.crypto.ECDSA) {
84
+ return {
85
+ ..._jwk.JWK.parse(_jsrsasign.KEYUTIL.getJWKFromKey(publicKey)),
86
+ use: "sig"
87
+ };
88
+ }
89
+ throw new _errors.IoWalletError("Unable to find the signing key inside the PEM certificate");
90
+ };
91
+ exports.getSigninJwkFromCert = getSigninJwkFromCert;
58
92
  //# sourceMappingURL=crypto.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_ioReactNativeCrypto","require","_uuid","_ioReactNativeJwt","createCryptoContextFor","keytag","getPublicKey","getPublicKeyFixed","then","jwk","kid","thumbprint","getSignature","value","sign","exports","withEphemeralKey","fn","uuidv4","generate","ephemeralContext","finally","deleteKey"],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAMA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,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;AAACU,OAAA,CAAAC,gBAAA,GAAAA,gBAAA"}
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"}
@@ -12,7 +12,12 @@ export const evaluateIssuerTrust = async function (issuerUrl) {
12
12
  let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
13
13
  const issuerConf = await getCredentialIssuerEntityConfiguration(issuerUrl, {
14
14
  appFetch: context.appFetch
15
- }).then(_ => _.payload.metadata);
15
+ }).then(_ref => {
16
+ let {
17
+ payload
18
+ } = _ref;
19
+ return payload.metadata;
20
+ });
16
21
  return {
17
22
  issuerConf
18
23
  };
@@ -1 +1 @@
1
- {"version":3,"names":["getCredentialIssuerEntityConfiguration","evaluateIssuerTrust","issuerUrl","context","arguments","length","undefined","issuerConf","appFetch","then","_","payload","metadata"],"sourceRoot":"../../../../src","sources":["credential/issuance/02-evaluate-issuer-trust.ts"],"mappings":"AAGA,SAASA,sCAAsC,QAAQ,yBAAyB;AAWhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAwC,GAAG,eAAAA,CACtDC,SAAS,EAEN;EAAA,IADHC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEZ,MAAMG,UAAU,GAAG,MAAMP,sCAAsC,CAACE,SAAS,EAAE;IACzEM,QAAQ,EAAEL,OAAO,CAACK;EACpB,CAAC,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,OAAO,CAACC,QAAQ,CAAC;EAClC,OAAO;IAAEL;EAAW,CAAC;AACvB,CAAC"}
1
+ {"version":3,"names":["getCredentialIssuerEntityConfiguration","evaluateIssuerTrust","issuerUrl","context","arguments","length","undefined","issuerConf","appFetch","then","_ref","payload","metadata"],"sourceRoot":"../../../../src","sources":["credential/issuance/02-evaluate-issuer-trust.ts"],"mappings":"AAGA,SAASA,sCAAsC,QAAQ,yBAAyB;AAWhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAwC,GAAG,eAAAA,CACtDC,SAAS,EAEN;EAAA,IADHC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEZ,MAAMG,UAAU,GAAG,MAAMP,sCAAsC,CAACE,SAAS,EAAE;IACzEM,QAAQ,EAAEL,OAAO,CAACK;EACpB,CAAC,CAAC,CAACC,IAAI,CAACC,IAAA;IAAA,IAAC;MAAEC;IAAQ,CAAC,GAAAD,IAAA;IAAA,OAAKC,OAAO,CAACC,QAAQ;EAAA,EAAC;EAE1C,OAAO;IAAEL;EAAW,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["sha256ToBase64","SignJWT","hasStatusOrThrow","IssuerResponseError","IssuerResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","ValidationFailed","CredentialResponse","NonceResponse","createDPopToken","v4","uuidv4","LogLevel","Logger","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","operationType","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credential_configuration_id","credential_identifier","credentialUrl","openid_credential_issuer","credential_endpoint","issuerUrl","oauth_authorization_server","nonceUrl","nonce_endpoint","c_nonce","method","headers","then","res","json","body","parse","signedNonceProof","log","DEBUG","containsCredentialDefinition","authorization_details","some","c","credential_identifiers","includes","ERROR","message","credentialRequestFormBody","proof","jwt","proof_type","JSON","stringify","tokenRequestSignedDPop","htm","htu","jti","ath","access_token","credentialRes","DPoP","Authorization","token_type","safeParse","catch","handleObtainCredentialError","success","error","reason","data","issuerCredentialConfig","credential_configurations_supported","credential","credentials","at","format","e","handle","code","CredentialIssuingNotSynchronous","CredentialInvalidStatus","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":"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"}
1
+ {"version":3,"names":["sha256ToBase64","SignJWT","hasStatusOrThrow","IssuerResponseError","IssuerResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","ValidationFailed","CredentialResponse","NonceResponse","createDPopToken","v4","uuidv4","LogLevel","Logger","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","operationType","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credential_configuration_id","credential_identifier","credentialUrl","openid_credential_issuer","credential_endpoint","issuerUrl","oauth_authorization_server","nonceUrl","nonce_endpoint","c_nonce","method","headers","then","res","json","body","parse","signedNonceProof","log","DEBUG","containsCredentialDefinition","authorization_details","some","c","credential_identifiers","includes","ERROR","message","credentialRequestFormBody","proof","jwt","proof_type","JSON","stringify","tokenRequestSignedDPop","htm","htu","jti","ath","access_token","credentialRes","DPoP","Authorization","token_type","safeParse","catch","handleObtainCredentialError","success","error","reason","data","issuerCredentialConfig","credential_configurations_supported","credential","credentials","at","format","e","handle","code","CredentialIssuingNotSynchronous","CredentialInvalidStatus","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":"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"}
@@ -2,7 +2,11 @@ import { IoWalletError } from "../../utils/errors";
2
2
  import { SdJwt4VC, verify as verifySdJwt } from "../../sd-jwt";
3
3
  import { getValueFromDisclosures } from "../../sd-jwt/converters";
4
4
  import { isSameThumbprint } from "../../utils/jwk";
5
- import { Logger, LogLevel } from "../../utils/logging";
5
+ import { verify as verifyMdoc } from "../../mdoc";
6
+ import { MDOC_DEFAULT_NAMESPACE } from "../../mdoc/const";
7
+ import { getParsedCredentialClaimKey } from "../../mdoc/utils";
8
+ import { LogLevel, Logger } from "../../utils/logging";
9
+ import { extractElementValueAsDate } from "../../mdoc/converter";
6
10
 
7
11
  // The credential as a collection of attributes in plain value
8
12
 
@@ -97,7 +101,114 @@ const parseCredentialSdJwt = function (credentialConfig, _ref) {
97
101
  }
98
102
  return definedValues;
99
103
  };
104
+ const parseCredentialMDoc = function (credentialConfig, _ref7) {
105
+ let {
106
+ issuerSigned
107
+ } = _ref7;
108
+ let ignoreMissingAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
109
+ let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
110
+ if (!credentialConfig) {
111
+ throw new IoWalletError("Credential type not supported by the issuer");
112
+ }
113
+ if (!credentialConfig.claims) {
114
+ throw new IoWalletError("Missing claims in the credential subject");
115
+ }
116
+ const attrDefinitions = credentialConfig.claims.map(_ref8 => {
117
+ let {
118
+ path: [namespace, attribute],
119
+ display
120
+ } = _ref8;
121
+ return [namespace, attribute, display];
122
+ });
123
+ if (!issuerSigned.nameSpaces) {
124
+ throw new IoWalletError("Missing claims in the credential");
125
+ }
126
+ const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref9 => {
127
+ let [namespace, values] = _ref9;
128
+ return values.map(v => [namespace, v.elementIdentifier, v.elementValue]);
129
+ });
130
+
131
+ // Check that all mandatory attributes defined in the issuer configuration are present in the disclosure set
132
+ // 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;
137
+ return attrDefNamespace === namespace && attrKey === claim;
138
+ });
139
+ });
140
+ if (attrsNotInDisclosures.length > 0) {
141
+ const missing = attrsNotInDisclosures.map(_ref12 => {
142
+ let [, attrKey] = _ref12;
143
+ return attrKey;
144
+ }).join(", ");
145
+ const received = Object.keys(Object.values(flatNamespaces));
146
+ if (!ignoreMissingAttributes) {
147
+ throw new IoWalletError(`Some attributes are missing in the credential. Missing: [${missing}], received: [${received}]`);
148
+ }
149
+ }
100
150
 
151
+ // Attributes defined in the issuer configuration and present in the disclosure set
152
+ const definedValues = attrDefinitions
153
+ // Retrieve the value from the corresponding disclosure
154
+ .map(_ref13 => {
155
+ var _flatNamespaces$find;
156
+ let [attrDefNamespace, attrKey, display] = _ref13;
157
+ return [attrDefNamespace, attrKey, {
158
+ display,
159
+ value: (_flatNamespaces$find = flatNamespaces.find(_ref14 => {
160
+ let [namespace, name] = _ref14;
161
+ return attrDefNamespace === namespace && name === attrKey;
162
+ })) === null || _flatNamespaces$find === void 0 ? void 0 : _flatNamespaces$find[2]
163
+ }];
164
+ })
165
+ //filter the not found elements
166
+ .filter(_ref15 => {
167
+ let [_, __, definition] = _ref15;
168
+ return definition.value !== undefined;
169
+ })
170
+ // Add a human-readable attribute name, with i18n, in the form { locale: name }
171
+ // Example: { "it-IT": "Nome", "en-EN": "Name", "es-ES": "Nombre" }
172
+ .reduce((acc, _ref16) => {
173
+ let [attrDefNamespace, attrKey, {
174
+ display,
175
+ value
176
+ }] = _ref16;
177
+ return {
178
+ ...acc,
179
+ [getParsedCredentialClaimKey(attrDefNamespace, attrKey)]: {
180
+ value,
181
+ name: display.reduce((names, _ref17) => {
182
+ let {
183
+ locale,
184
+ name
185
+ } = _ref17;
186
+ return {
187
+ ...names,
188
+ [locale]: name
189
+ };
190
+ }, {})
191
+ }
192
+ };
193
+ }, {});
194
+ if (includeUndefinedAttributes) {
195
+ const undefinedValues = Object.fromEntries(Object.values(flatNamespaces).filter(_ref18 => {
196
+ let [namespace, key] = _ref18;
197
+ return !definedValues[getParsedCredentialClaimKey(namespace, key)];
198
+ }).map(_ref19 => {
199
+ let [namespace, key, value] = _ref19;
200
+ return [getParsedCredentialClaimKey(namespace, key), {
201
+ value,
202
+ name: key
203
+ }];
204
+ }));
205
+ return {
206
+ ...definedValues,
207
+ ...undefinedValues
208
+ };
209
+ }
210
+ return definedValues;
211
+ };
101
212
  /**
102
213
  * Given a credential, verify it's in the supported format
103
214
  * and the credential is correctly signed
@@ -127,12 +238,40 @@ async function verifyCredentialSdJwt(rawCredential, issuerKeys, holderBindingCon
127
238
  }
128
239
  return decodedCredential;
129
240
  }
130
- const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialConfigurationId, _ref7) => {
241
+ /**
242
+ * Given a credential, verify it's in the supported format
243
+ * and the credential is correctly signed
244
+ * and it's bound to the given key
245
+ *
246
+ * @param rawCredential The received credential
247
+ * @param issuerKeys The set of public keys of the issuer,
248
+ * which will be used to verify the signature
249
+ * @param holderBindingContext The access to the holder's key
250
+ *
251
+ * @throws If the signature verification fails
252
+ * @throws If the credential is not in the SdJwt4VC format
253
+ * @throws If the holder binding is not properly configured
254
+ *
255
+ */
256
+ async function verifyCredentialMDoc(rawCredential, x509CertRoot, holderBindingContext) {
257
+ const [decodedCredential, holderBindingKey] =
258
+ // parallel for optimization
259
+ await Promise.all([verifyMdoc(rawCredential, x509CertRoot), holderBindingContext.getPublicKey()]);
260
+ if (!decodedCredential) {
261
+ throw new IoWalletError("No MDOC credentials found!");
262
+ }
263
+ const key = decodedCredential.issuerSigned.issuerAuth.payload.deviceKeyInfo.deviceKey;
264
+ if (!(await isSameThumbprint(key, holderBindingKey))) {
265
+ throw new IoWalletError(`Failed to verify holder binding, holder binding key and mDoc deviceKey don't match`);
266
+ }
267
+ return decodedCredential;
268
+ }
269
+ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialConfigurationId, _ref20) => {
131
270
  let {
132
271
  credentialCryptoContext,
133
272
  ignoreMissingAttributes,
134
273
  includeUndefinedAttributes
135
- } = _ref7;
274
+ } = _ref20;
136
275
  const decoded = await verifyCredentialSdJwt(credential, issuerConf.openid_credential_issuer.jwks.keys, credentialCryptoContext);
137
276
  Logger.log(LogLevel.DEBUG, `Decoded credential: ${JSON.stringify(decoded)}`);
138
277
  const credentialConfig = issuerConf.openid_credential_issuer.credential_configurations_supported[credentialConfigurationId];
@@ -149,6 +288,33 @@ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialC
149
288
  issuedAt: typeof maybeIssuedAt === "number" ? new Date(maybeIssuedAt * 1000) : undefined
150
289
  };
151
290
  };
291
+ const verifyAndParseCredentialMDoc = async (issuerConf, credential, credentialConfigurationId, _ref21, x509CertRoot) => {
292
+ var _parsedCredential$get, _parsedCredential$get2;
293
+ let {
294
+ credentialCryptoContext,
295
+ ignoreMissingAttributes
296
+ } = _ref21;
297
+ if (!x509CertRoot) {
298
+ throw new IoWalletError("Missing x509CertRoot");
299
+ }
300
+ const decoded = await verifyCredentialMDoc(credential, x509CertRoot, credentialCryptoContext);
301
+ const credentialConfig = issuerConf.openid_credential_issuer.credential_configurations_supported[credentialConfigurationId];
302
+ const parsedCredential = parseCredentialMDoc(credentialConfig, decoded, ignoreMissingAttributes, ignoreMissingAttributes);
303
+ const expirationDate = extractElementValueAsDate(parsedCredential === null || parsedCredential === void 0 || (_parsedCredential$get = parsedCredential[getParsedCredentialClaimKey(MDOC_DEFAULT_NAMESPACE, "expiry_date")]) === null || _parsedCredential$get === void 0 ? void 0 : _parsedCredential$get.value);
304
+ if (!expirationDate) {
305
+ throw new IoWalletError(`expirationDate must be present!!`);
306
+ }
307
+ expirationDate.setDate(expirationDate.getDate() + 1);
308
+ const maybeIssuedAt = extractElementValueAsDate(parsedCredential === null || parsedCredential === void 0 || (_parsedCredential$get2 = parsedCredential[getParsedCredentialClaimKey(MDOC_DEFAULT_NAMESPACE, "issue_date")]) === null || _parsedCredential$get2 === void 0 ? void 0 : _parsedCredential$get2.value);
309
+ maybeIssuedAt === null || maybeIssuedAt === void 0 ? void 0 : maybeIssuedAt.setDate(maybeIssuedAt.getDate() + 1);
310
+ return {
311
+ parsedCredential,
312
+ credential,
313
+ credentialConfigurationId,
314
+ expiration: expirationDate,
315
+ issuedAt: maybeIssuedAt ?? undefined
316
+ };
317
+ };
152
318
 
153
319
  /**
154
320
  * Verify and parse an encoded credential.
@@ -163,15 +329,26 @@ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, credentialC
163
329
  * @throws {IoWalletError} If the credential is not bound to the provided user key
164
330
  * @throws {IoWalletError} If the credential data fail to parse
165
331
  */
166
- export const verifyAndParseCredential = async (issuerConf, credential, credentialConfigurationId, context) => {
332
+ export const verifyAndParseCredential = async (issuerConf, credential, credentialConfigurationId, context, x509CertRoot) => {
167
333
  var _issuerConf$openid_cr;
168
334
  const format = (_issuerConf$openid_cr = issuerConf.openid_credential_issuer.credential_configurations_supported[credentialConfigurationId]) === null || _issuerConf$openid_cr === void 0 ? void 0 : _issuerConf$openid_cr.format;
169
- if (format === "dc+sd-jwt") {
170
- Logger.log(LogLevel.DEBUG, "Parsing credential in dc+sd-jwt format");
171
- return verifyAndParseCredentialSdJwt(issuerConf, credential, credentialConfigurationId, context);
335
+ switch (format) {
336
+ case "dc+sd-jwt":
337
+ {
338
+ Logger.log(LogLevel.DEBUG, "Parsing credential in dc+sd-jwt format");
339
+ return verifyAndParseCredentialSdJwt(issuerConf, credential, credentialConfigurationId, context);
340
+ }
341
+ case "mso_mdoc":
342
+ {
343
+ Logger.log(LogLevel.DEBUG, "Parsing credential in mso_mdoc format");
344
+ return verifyAndParseCredentialMDoc(issuerConf, credential, credentialConfigurationId, context, x509CertRoot);
345
+ }
346
+ default:
347
+ {
348
+ const message = `Unsupported credential format: ${format}`;
349
+ Logger.log(LogLevel.ERROR, message);
350
+ throw new IoWalletError(message);
351
+ }
172
352
  }
173
- const message = `Unsupported credential format: ${format}`;
174
- Logger.log(LogLevel.ERROR, message);
175
- throw new IoWalletError(message);
176
353
  };
177
354
  //# sourceMappingURL=07-verify-and-parse-credential.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","getValueFromDisclosures","isSameThumbprint","Logger","LogLevel","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","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","payload","jwk","kid","verifyAndParseCredentialSdJwt","issuerConf","credential","credentialConfigurationId","_ref7","credentialCryptoContext","decoded","openid_credential_issuer","jwks","DEBUG","JSON","stringify","credential_configurations_supported","parsedCredential","maybeIssuedAt","expiration","Date","exp","issuedAt","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","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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"}
@@ -171,7 +171,7 @@ const { credential_configuration_id, credential_identifiers } =
171
171
  accessToken.authorization_details[0]!;
172
172
 
173
173
  // Obtain the credential
174
- const { credential } = await Credential.Issuance.obtainCredential(
174
+ const { credential, format } = await Credential.Issuance.obtainCredential(
175
175
  issuerConf,
176
176
  accessToken,
177
177
  clientId,
@@ -186,6 +186,10 @@ const { credential } = await Credential.Issuance.obtainCredential(
186
186
  }
187
187
  );
188
188
 
189
+ // The certificate below is required to perform the `x5chain` validation of credentials in `mdoc` format.
190
+ // In a real-world scenario, it must be obtained from the appropriate endpoint exposed by the Trust Anchor
191
+ const mockX509CertRoot = format === "mso_mdoc" ? "base64encodedX509CertRoot" : undefined
192
+
189
193
  /*
190
194
  * Parse and verify the credential. The ignoreMissingAttributes flag must be set to false or omitted in production.
191
195
  * WARNING: includeUndefinedAttributes should not be set to true in production in order to get only claims explicitly declared by the issuer.
@@ -199,7 +203,8 @@ const { parsedCredential } =
199
203
  credentialCryptoContext,
200
204
  ignoreMissingAttributes: true,
201
205
  includeUndefinedAttributes: false
202
- }
206
+ },
207
+ mockX509CertRoot
203
208
  );
204
209
 
205
210
  const credentialType =
@@ -0,0 +1,2 @@
1
+ export const MDOC_DEFAULT_NAMESPACE = "org.iso.18013.5.1";
2
+ //# sourceMappingURL=const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MDOC_DEFAULT_NAMESPACE"],"sourceRoot":"../../../src","sources":["mdoc/const.ts"],"mappings":"AAAA,OAAO,MAAMA,sBAAsB,GAAG,mBAAmB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Extracts the date value of a given elementIdentifier from an MDOC object.
3
+ * Searches through the issuerSigned namespaces and attempts to parse the value as a Date.
4
+ * The expected date format is "YYYY-MM-DD".
5
+ * Returns the Date object if found, otherwise returns null.
6
+ */
7
+ export function extractElementValueAsDate(elementValue) {
8
+ if (typeof elementValue === "string") {
9
+ const dateParts = elementValue.split("-");
10
+ if (dateParts.length === 3) {
11
+ const [year, month, day] = dateParts.map(Number);
12
+ if (day !== undefined && month !== undefined && year !== undefined && !isNaN(day) && !isNaN(month) && !isNaN(year)) {
13
+ return new Date(year, month - 1, day); // Month is zero-based in JS Date
14
+ }
15
+ }
16
+ }
17
+
18
+ return null; // Return null if no matching element is found or it's not a valid date
19
+ }
20
+ //# sourceMappingURL=converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["extractElementValueAsDate","elementValue","dateParts","split","length","year","month","day","map","Number","undefined","isNaN","Date"],"sourceRoot":"../../../src","sources":["mdoc/converter.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,yBAAyBA,CAACC,YAAoB,EAAe;EAC3E,IAAI,OAAOA,YAAY,KAAK,QAAQ,EAAE;IACpC,MAAMC,SAAS,GAAGD,YAAY,CAACE,KAAK,CAAC,GAAG,CAAC;IACzC,IAAID,SAAS,CAACE,MAAM,KAAK,CAAC,EAAE;MAC1B,MAAM,CAACC,IAAI,EAAEC,KAAK,EAAEC,GAAG,CAAC,GAAGL,SAAS,CAACM,GAAG,CAACC,MAAM,CAAC;MAChD,IACEF,GAAG,KAAKG,SAAS,IACjBJ,KAAK,KAAKI,SAAS,IACnBL,IAAI,KAAKK,SAAS,IAClB,CAACC,KAAK,CAACJ,GAAG,CAAC,IACX,CAACI,KAAK,CAACL,KAAK,CAAC,IACb,CAACK,KAAK,CAACN,IAAI,CAAC,EACZ;QACA,OAAO,IAAIO,IAAI,CAACP,IAAI,EAAEC,KAAK,GAAG,CAAC,EAAEC,GAAG,CAAC,CAAC,CAAC;MACzC;IACF;EACF;;EAEA,OAAO,IAAI,CAAC,CAAC;AACf"}
@@ -0,0 +1,67 @@
1
+ import { CBOR, COSE } from "@pagopa/io-react-native-iso18013";
2
+ import { b64utob64 } from "jsrsasign";
3
+ import { verifyCertificateChain } from "@pagopa/io-react-native-crypto";
4
+ import { MissingX509CertsError, X509ValidationError } from "../trust/errors";
5
+ import { IoWalletError } from "../utils/errors";
6
+ import { convertBase64DerToPem, getSigninJwkFromCert } from "../utils/crypto";
7
+ export const verify = async (token, x509CertRoot) => {
8
+ var _issuerSigned$issuerA;
9
+ // get decoded data
10
+ const issuerSigned = await CBOR.decodeIssuerSigned(token);
11
+ if (!issuerSigned) {
12
+ throw new IoWalletError("Invalid mDoc");
13
+ }
14
+ if (!((_issuerSigned$issuerA = issuerSigned.issuerAuth.unprotectedHeader) !== null && _issuerSigned$issuerA !== void 0 && _issuerSigned$issuerA.x5chain) && (!Array.isArray(issuerSigned.issuerAuth.unprotectedHeader.x5chain) || issuerSigned.issuerAuth.unprotectedHeader.x5chain.length === 0)) {
15
+ throw new MissingX509CertsError("Missing x509 certificates");
16
+ }
17
+ const x5chain = issuerSigned.issuerAuth.unprotectedHeader.x5chain.map(b64utob64);
18
+ // Verify the x5chain
19
+ await verifyX5chain(x5chain, x509CertRoot);
20
+ const coseSign1 = issuerSigned.issuerAuth.rawValue;
21
+ if (!coseSign1) {
22
+ throw new IoWalletError("Missing coseSign1");
23
+ }
24
+ // Once the x5chain is verified, the signatures verification can be performed
25
+ await verifyMdocSignature(coseSign1, x5chain[0]);
26
+ return {
27
+ issuerSigned
28
+ };
29
+ };
30
+
31
+ /**
32
+ * This function checks whether the x509 certificate chain is valid against a specified Certificate Authority (CA)
33
+ *
34
+ * @param x5chain The mdoc's x509 certificate chain
35
+ * @param x509CertRoot The Trust Anchor CA
36
+ * @param options Options for certificate validation
37
+ */
38
+ const verifyX5chain = async function (x5chain, x509CertRoot) {
39
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
40
+ connectTimeout: 10000,
41
+ readTimeout: 10000,
42
+ requireCrl: true
43
+ };
44
+ const x509ValidationResult = await verifyCertificateChain(x5chain, x509CertRoot, options);
45
+ if (!x509ValidationResult.isValid) {
46
+ throw new X509ValidationError(`X.509 certificate chain validation failed. Status: ${x509ValidationResult.validationStatus}. Error: ${x509ValidationResult.errorMessage}`, {
47
+ x509ValidationStatus: x509ValidationResult.validationStatus,
48
+ x509ErrorMessage: x509ValidationResult.errorMessage
49
+ });
50
+ }
51
+ };
52
+ /**
53
+ * This function verifies that the signature is valid for the given certificate.
54
+ * If not, it throws an error
55
+ *
56
+ * @param coseSign1 The COSE-Sign1 object encoded in base64 or base64url
57
+ * @param cert The `x5chain`'s leaf certificate
58
+ */
59
+ const verifyMdocSignature = async (coseSign1, cert) => {
60
+ const pemcert = convertBase64DerToPem(cert);
61
+ const jwk = getSigninJwkFromCert(pemcert);
62
+ jwk.x = b64utob64(jwk.x);
63
+ jwk.y = b64utob64(jwk.y);
64
+ const signatureCorrect = await COSE.verify(coseSign1, jwk);
65
+ if (!signatureCorrect) throw new Error("Invalid mDoc signature");
66
+ };
67
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CBOR","COSE","b64utob64","verifyCertificateChain","MissingX509CertsError","X509ValidationError","IoWalletError","convertBase64DerToPem","getSigninJwkFromCert","verify","token","x509CertRoot","_issuerSigned$issuerA","issuerSigned","decodeIssuerSigned","issuerAuth","unprotectedHeader","x5chain","Array","isArray","length","map","verifyX5chain","coseSign1","rawValue","verifyMdocSignature","options","arguments","undefined","connectTimeout","readTimeout","requireCrl","x509ValidationResult","isValid","validationStatus","errorMessage","x509ValidationStatus","x509ErrorMessage","cert","pemcert","jwk","x","y","signatureCorrect","Error"],"sourceRoot":"../../../src","sources":["mdoc/index.ts"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @param namespace The mdoc credential `namespace`
3
+ * @param key The claim attribute key
4
+ * @returns A string consisting of the concatenation of the namespace and the claim key, separated by a colon
5
+ */
6
+ export const getParsedCredentialClaimKey = (namespace, key) => `${namespace}:${key}`;
7
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getParsedCredentialClaimKey","namespace","key"],"sourceRoot":"../../../src","sources":["mdoc/utils.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,2BAA2B,GAAGA,CAACC,SAAiB,EAAEC,GAAW,KACvE,GAAED,SAAU,IAAGC,GAAI,EAAC"}
@@ -35,7 +35,8 @@ const CredentialIssuerDisplayMetadata = z.object({
35
35
  locale: z.string()
36
36
  });
37
37
  const ClaimsMetadata = z.object({
38
- path: z.array(z.string()),
38
+ path: z.array(z.union([z.string(), z.number(), z.null()])),
39
+ // https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0-15.html#name-claims-path-pointer
39
40
  display: z.array(CredentialDisplayMetadata)
40
41
  });
41
42
  const IssuanceErrorSupported = z.object({
@@ -1 +1 @@
1
- {"version":3,"names":["UnixTime","JWK","z","PresentationDefinition","TrustMark","object","id","string","trust_mark","RelyingPartyMetadata","application_type","optional","client_id","client_name","jwks","keys","array","contacts","presentation_definition","request_uris","authorization_signed_response_alg","authorization_encrypted_response_alg","authorization_encrypted_response_enc","CredentialDisplayMetadata","name","locale","CredentialIssuerDisplayMetadata","ClaimsMetadata","path","display","IssuanceErrorSupported","title","description","SupportedCredentialMetadata","intersection","discriminatedUnion","format","literal","vct","doctype","scope","claims","cryptographic_binding_methods_supported","credential_signing_alg_values_supported","authentic_source","issuance_errors_supported","record","EntityStatement","header","typ","alg","kid","payload","iss","sub","trust_marks","iat","number","exp","EntityConfigurationHeader","FederationEntityMetadata","federation_fetch_endpoint","federation_list_endpoint","federation_resolve_endpoint","federation_trust_mark_status_endpoint","federation_trust_mark_list_endpoint","federation_trust_mark_endpoint","federation_historical_keys_endpoint","endpoint_auth_signing_alg_values_supported","organization_name","homepage_uri","policy_uri","logo_uri","passthrough","BaseEntityConfiguration","authority_hints","metadata","federation_entity","TrustAnchorEntityConfiguration","CredentialIssuerEntityConfiguration","and","openid_credential_issuer","credential_issuer","credential_endpoint","revocation_endpoint","nonce_endpoint","status_attestation_endpoint","credential_configurations_supported","trust_frameworks_supported","evidence_supported","oauth_authorization_server","authorization_endpoint","pushed_authorization_request_endpoint","token_endpoint","client_registration_types_supported","code_challenge_methods_supported","acr_values_supported","grant_types_supported","issuer","scopes_supported","response_modes_supported","token_endpoint_auth_methods_supported","token_endpoint_auth_signing_alg_values_supported","request_object_signing_alg_values_supported","openid_credential_verifier","RelyingPartyEntityConfiguration","WalletProviderEntityConfiguration","wallet_provider","aal_values_supported","EntityConfiguration","union","FederationListResponse"],"sourceRoot":"../../../src","sources":["trust/types.ts"],"mappings":"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"}
1
+ {"version":3,"names":["UnixTime","JWK","z","PresentationDefinition","TrustMark","object","id","string","trust_mark","RelyingPartyMetadata","application_type","optional","client_id","client_name","jwks","keys","array","contacts","presentation_definition","request_uris","authorization_signed_response_alg","authorization_encrypted_response_alg","authorization_encrypted_response_enc","CredentialDisplayMetadata","name","locale","CredentialIssuerDisplayMetadata","ClaimsMetadata","path","union","number","null","display","IssuanceErrorSupported","title","description","SupportedCredentialMetadata","intersection","discriminatedUnion","format","literal","vct","doctype","scope","claims","cryptographic_binding_methods_supported","credential_signing_alg_values_supported","authentic_source","issuance_errors_supported","record","EntityStatement","header","typ","alg","kid","payload","iss","sub","trust_marks","iat","exp","EntityConfigurationHeader","FederationEntityMetadata","federation_fetch_endpoint","federation_list_endpoint","federation_resolve_endpoint","federation_trust_mark_status_endpoint","federation_trust_mark_list_endpoint","federation_trust_mark_endpoint","federation_historical_keys_endpoint","endpoint_auth_signing_alg_values_supported","organization_name","homepage_uri","policy_uri","logo_uri","passthrough","BaseEntityConfiguration","authority_hints","metadata","federation_entity","TrustAnchorEntityConfiguration","CredentialIssuerEntityConfiguration","and","openid_credential_issuer","credential_issuer","credential_endpoint","revocation_endpoint","nonce_endpoint","status_attestation_endpoint","credential_configurations_supported","trust_frameworks_supported","evidence_supported","oauth_authorization_server","authorization_endpoint","pushed_authorization_request_endpoint","token_endpoint","client_registration_types_supported","code_challenge_methods_supported","acr_values_supported","grant_types_supported","issuer","scopes_supported","response_modes_supported","token_endpoint_auth_methods_supported","token_endpoint_auth_signing_alg_values_supported","request_object_signing_alg_values_supported","openid_credential_verifier","RelyingPartyEntityConfiguration","WalletProviderEntityConfiguration","wallet_provider","aal_values_supported","EntityConfiguration","FederationListResponse"],"sourceRoot":"../../../src","sources":["trust/types.ts"],"mappings":"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"}