@pagopa/io-react-native-wallet 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/lib/commonjs/credential/issuance/06-obtain-credential.js +1 -5
  2. package/lib/commonjs/credential/issuance/06-obtain-credential.js.map +1 -1
  3. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +33 -21
  4. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
  5. package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js +318 -24
  6. package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
  7. package/lib/commonjs/credential/presentation/08-send-authorization-response.js +47 -83
  8. package/lib/commonjs/credential/presentation/08-send-authorization-response.js.map +1 -1
  9. package/lib/commonjs/credential/presentation/errors.js +18 -1
  10. package/lib/commonjs/credential/presentation/errors.js.map +1 -1
  11. package/lib/commonjs/credential/presentation/index.js +8 -2
  12. package/lib/commonjs/credential/presentation/index.js.map +1 -1
  13. package/lib/commonjs/credential/presentation/types.js +6 -2
  14. package/lib/commonjs/credential/presentation/types.js.map +1 -1
  15. package/lib/commonjs/entity/trust/chain.js.map +1 -1
  16. package/lib/commonjs/mdoc/index.js +45 -13
  17. package/lib/commonjs/mdoc/index.js.map +1 -1
  18. package/lib/commonjs/sd-jwt/index.js +41 -1
  19. package/lib/commonjs/sd-jwt/index.js.map +1 -1
  20. package/lib/commonjs/utils/crypto.js +70 -4
  21. package/lib/commonjs/utils/crypto.js.map +1 -1
  22. package/lib/commonjs/utils/string.js +6 -7
  23. package/lib/commonjs/utils/string.js.map +1 -1
  24. package/lib/module/credential/issuance/06-obtain-credential.js +1 -5
  25. package/lib/module/credential/issuance/06-obtain-credential.js.map +1 -1
  26. package/lib/module/credential/issuance/07-verify-and-parse-credential.js +33 -21
  27. package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
  28. package/lib/module/credential/presentation/07-evaluate-input-descriptor.js +311 -23
  29. package/lib/module/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
  30. package/lib/module/credential/presentation/08-send-authorization-response.js +46 -81
  31. package/lib/module/credential/presentation/08-send-authorization-response.js.map +1 -1
  32. package/lib/module/credential/presentation/errors.js +16 -0
  33. package/lib/module/credential/presentation/errors.js.map +1 -1
  34. package/lib/module/credential/presentation/index.js +2 -2
  35. package/lib/module/credential/presentation/index.js.map +1 -1
  36. package/lib/module/credential/presentation/types.js +6 -2
  37. package/lib/module/credential/presentation/types.js.map +1 -1
  38. package/lib/module/entity/trust/chain.js.map +1 -1
  39. package/lib/module/mdoc/index.js +43 -12
  40. package/lib/module/mdoc/index.js.map +1 -1
  41. package/lib/module/sd-jwt/index.js +40 -1
  42. package/lib/module/sd-jwt/index.js.map +1 -1
  43. package/lib/module/utils/crypto.js +67 -2
  44. package/lib/module/utils/crypto.js.map +1 -1
  45. package/lib/module/utils/string.js +4 -6
  46. package/lib/module/utils/string.js.map +1 -1
  47. package/lib/typescript/credential/issuance/06-obtain-credential.d.ts.map +1 -1
  48. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts +1 -1
  49. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
  50. package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts +106 -9
  51. package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts.map +1 -1
  52. package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts +4 -33
  53. package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts.map +1 -1
  54. package/lib/typescript/credential/presentation/errors.d.ts +11 -0
  55. package/lib/typescript/credential/presentation/errors.d.ts.map +1 -1
  56. package/lib/typescript/credential/presentation/index.d.ts +3 -3
  57. package/lib/typescript/credential/presentation/index.d.ts.map +1 -1
  58. package/lib/typescript/credential/presentation/types.d.ts +18 -6
  59. package/lib/typescript/credential/presentation/types.d.ts.map +1 -1
  60. package/lib/typescript/entity/trust/chain.d.ts.map +1 -1
  61. package/lib/typescript/mdoc/index.d.ts +6 -2
  62. package/lib/typescript/mdoc/index.d.ts.map +1 -1
  63. package/lib/typescript/sd-jwt/index.d.ts +19 -0
  64. package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
  65. package/lib/typescript/utils/crypto.d.ts +8 -0
  66. package/lib/typescript/utils/crypto.d.ts.map +1 -1
  67. package/lib/typescript/utils/errors.d.ts.map +1 -1
  68. package/lib/typescript/utils/misc.d.ts.map +1 -1
  69. package/lib/typescript/utils/string.d.ts +3 -3
  70. package/lib/typescript/utils/string.d.ts.map +1 -1
  71. package/package.json +16 -14
  72. package/src/credential/issuance/06-obtain-credential.ts +1 -7
  73. package/src/credential/issuance/07-verify-and-parse-credential.ts +37 -16
  74. package/src/credential/presentation/07-evaluate-input-descriptor.ts +459 -49
  75. package/src/credential/presentation/08-send-authorization-response.ts +57 -101
  76. package/src/credential/presentation/errors.ts +16 -0
  77. package/src/credential/presentation/index.ts +8 -4
  78. package/src/credential/presentation/types.ts +16 -3
  79. package/src/entity/trust/chain.ts +14 -10
  80. package/src/mdoc/index.ts +72 -15
  81. package/src/sd-jwt/index.ts +49 -1
  82. package/src/utils/crypto.ts +61 -2
  83. package/src/utils/errors.ts +2 -2
  84. package/src/utils/misc.ts +2 -2
  85. package/src/utils/string.ts +4 -6
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "SdJwt4VC", {
10
10
  return _types.SdJwt4VC;
11
11
  }
12
12
  });
13
- exports.verify = exports.disclose = exports.decode = void 0;
13
+ exports.verify = exports.prepareVpToken = exports.disclose = exports.decode = void 0;
14
14
  var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
15
15
  var _types = require("./types");
16
16
  var _verifier = require("./verifier");
@@ -165,5 +165,45 @@ const verify = async (token, publicKey, customSchema) => {
165
165
  disclosures: decoded.disclosures.map(d => d.decoded)
166
166
  };
167
167
  };
168
+
169
+ /**
170
+ * Prepares a Verified Presentation (VP) token to be sent as part of an
171
+ * authorization response in an OpenID 4 Verifiable Presentations flow.
172
+ *
173
+ * @param nonce - The nonce provided by the relying party.
174
+ * @param client_id - The client identifier of the relying party.
175
+ * @param presentation - An object containing the verifiable credential, the claims to disclose,
176
+ * and the cryptographic context for signing.
177
+ * @returns An object containing the signed VP token (`vp_token`).
178
+ *
179
+ * @remarks
180
+ * 1. The `disclose()` function is used to produce a token with only the requested claims.
181
+ * 2. A KB-JWT is then signed, including sd_hash and `nonce`.
182
+ * 3. The `vp_token` is composed of the disclosed VP and the KB-JWT.
183
+ */
168
184
  exports.verify = verify;
185
+ const prepareVpToken = async (nonce, client_id, _ref2) => {
186
+ let [verifiableCredential, requestedClaims, cryptoContext] = _ref2;
187
+ // Produce a VP token with only requested claims from the verifiable credential
188
+ const {
189
+ token: vp
190
+ } = await disclose(verifiableCredential, requestedClaims);
191
+
192
+ // <Issuer-signed JWT>~<Disclosure 1>~<Disclosure N>~
193
+ const sd_hash = await (0, _ioReactNativeJwt.sha256ToBase64)(`${vp}~`);
194
+ const kbJwt = await new _ioReactNativeJwt.SignJWT(cryptoContext).setProtectedHeader({
195
+ typ: "kb+jwt",
196
+ alg: "ES256"
197
+ }).setPayload({
198
+ sd_hash,
199
+ nonce: nonce
200
+ }).setAudience(client_id).setIssuedAt().sign();
201
+
202
+ // <Issuer-signed JWT>~<Disclosure 1>~...~<Disclosure N>~<KB-JWT>
203
+ const vp_token = [vp, kbJwt].join("~");
204
+ return {
205
+ vp_token
206
+ };
207
+ };
208
+ exports.prepareVpToken = prepareVpToken;
169
209
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_ioReactNativeJwt","require","_types","_verifier","Errors","_interopRequireWildcard","exports","_jsBase","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","decodeDisclosure","encoded","utf8String","Base64","decode","decoded","Disclosure","parse","JSON","token","customSchema","slice","rawSdJwt","rawDisclosures","split","decodedJwt","decodeJwt","parser","SdJwt4VC","sdJwt","header","protectedHeader","payload","disclosures","map","disclose","claims","paths","Promise","all","claim","disclosure","find","_ref","name","ClaimsNotFoundBetweenDisclosures","hash","sha256ToBase64","_sd","includes","index","indexOf","path","ClaimsNotFoundInToken","filteredDisclosures","filter","d","disclosedToken","join","verify","publicKey","verifyJwt","verifyDisclosure"],"sourceRoot":"../../../src","sources":["sd-jwt/index.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_ioReactNativeJwt","require","_types","_verifier","Errors","_interopRequireWildcard","exports","_jsBase","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","decodeDisclosure","encoded","utf8String","Base64","decode","decoded","Disclosure","parse","JSON","token","customSchema","slice","rawSdJwt","rawDisclosures","split","decodedJwt","decodeJwt","parser","SdJwt4VC","sdJwt","header","protectedHeader","payload","disclosures","map","disclose","claims","paths","Promise","all","claim","disclosure","find","_ref","name","ClaimsNotFoundBetweenDisclosures","hash","sha256ToBase64","_sd","includes","index","indexOf","path","ClaimsNotFoundInToken","filteredDisclosures","filter","d","disclosedToken","join","verify","publicKey","verifyJwt","verifyDisclosure","prepareVpToken","nonce","client_id","_ref2","verifiableCredential","requestedClaims","cryptoContext","vp","sd_hash","kbJwt","SignJWT","setProtectedHeader","typ","alg","setPayload","setAudience","setIssuedAt","sign","vp_token"],"sourceRoot":"../../../src","sources":["sd-jwt/index.ts"],"mappings":"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"}
@@ -3,12 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.withEphemeralKey = exports.parsePublicKey = exports.getSigningJwk = exports.createCryptoContextFor = exports.convertCertToPem = void 0;
6
+ exports.withEphemeralKey = exports.parsePublicKey = exports.getSigningJwk = exports.createCryptoContextFor = exports.convertCertToPem = exports.compareKeysByThumbprint = void 0;
7
7
  var _ioReactNativeCrypto = require("@pagopa/io-react-native-crypto");
8
8
  var _reactNativeUuid = _interopRequireDefault(require("react-native-uuid"));
9
9
  var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
10
- var _jwk = require("./jwk");
11
10
  var _jsrsasign = require("jsrsasign");
11
+ var _jwk = require("./jwk");
12
+ var _buffer = require("buffer");
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14
  /**
14
15
  * Create a CryptoContext bound to a key pair.
@@ -25,7 +26,7 @@ const createCryptoContextFor = keytag => {
25
26
  * @returns The public key.
26
27
  */
27
28
  async getPublicKey() {
28
- return (0, _ioReactNativeCrypto.getPublicKey)(keytag).then(_jwk.fixBase64EncodingOnKey).then(async jwk => ({
29
+ return (0, _ioReactNativeCrypto.getPublicKey)(keytag).then(fixBase64WithLeadingZero).then(async jwk => ({
29
30
  ...jwk,
30
31
  // Keys in the TEE are not stored with their KID, which is supposed to be assigned when they are included in JWK sets.
31
32
  // (that is, KID is not a propoerty of the key itself, but it's property used to identify a key in a set).
@@ -46,6 +47,59 @@ const createCryptoContextFor = keytag => {
46
47
  };
47
48
  };
48
49
 
50
+ /**
51
+ * This function takes a JSON Web Key (JWK) and returns a new JWK with its base64-url properties (x, y, e, n) processed.
52
+ * Each property is passed through the `removeLeadingZeroAndParseb64u` function if it exists, which fixes any unwanted leading zeros.
53
+ *
54
+ * @param key - The input JSON Web Key that may contain properties with potential leading zero issues.
55
+ * @returns A new JSON Web Key with the processed properties.
56
+ */
57
+ exports.createCryptoContextFor = createCryptoContextFor;
58
+ const fixBase64WithLeadingZero = key => {
59
+ const {
60
+ x,
61
+ y,
62
+ e,
63
+ n,
64
+ ...pk
65
+ } = key;
66
+ return {
67
+ ...pk,
68
+ ...(x ? {
69
+ x: removeLeadingZeroAndParseb64u(x)
70
+ } : {}),
71
+ ...(y ? {
72
+ y: removeLeadingZeroAndParseb64u(y)
73
+ } : {}),
74
+ ...(e ? {
75
+ e: removeLeadingZeroAndParseb64u(e)
76
+ } : {}),
77
+ ...(n ? {
78
+ n: removeLeadingZeroAndParseb64u(n)
79
+ } : {})
80
+ };
81
+ };
82
+
83
+ /**
84
+ * This function processes a base64-encoded string to remove any unwanted leading zeros.
85
+ * It converts the input base64 string into a buffer, then to a hex string, checks for a leading "00",
86
+ * and removes it if present. The result is then converted back to a base64-url.
87
+ *
88
+ * @param input - The base64 encoded string to process.
89
+ * @returns A new base64-url encoded string with any leading zero removed.
90
+ */
91
+ const removeLeadingZeroAndParseb64u = input => {
92
+ // Decode base64 input into a Buffer
93
+ const buffer = _buffer.Buffer.from(input, "base64");
94
+ const hex = buffer.toString("hex");
95
+ // If the hex string starts with "00", remove the first two characters
96
+ const fixedHex = hex.startsWith("00") ? hex.slice(2) : hex;
97
+ const newBuffer = _buffer.Buffer.from(fixedHex, "hex");
98
+
99
+ // removePadding convert base64 string to base64-url
100
+ return (0, _ioReactNativeJwt.removePadding)(newBuffer.toString("base64"));
101
+ };
102
+
49
103
  /**
50
104
  * Executes the input function injecting an ephemeral crypto context.
51
105
  * An ephemeral crypto context is a context which is bound to a key
@@ -54,7 +108,6 @@ const createCryptoContextFor = keytag => {
54
108
  * @param fn The procedure to be executed
55
109
  * @returns The returned value of the input procedure.
56
110
  */
57
- exports.createCryptoContextFor = createCryptoContextFor;
58
111
  const withEphemeralKey = async fn => {
59
112
  // Use an ephemeral key to be destroyed after use
60
113
  const keytag = `ephemeral-${_reactNativeUuid.default.v4()}`;
@@ -101,5 +154,18 @@ const getSigningJwk = publicKey => ({
101
154
  ..._jwk.JWK.parse(_jsrsasign.KEYUTIL.getJWKFromKey(publicKey)),
102
155
  use: "sig"
103
156
  });
157
+
158
+ /**
159
+ * This function takes two {@link PublicKey} and evaluates and compares their thumbprints
160
+ * @param key1 The first key
161
+ * @param key2 The second key
162
+ * @returns true if the keys' thumbprints are equal, false otherwise
163
+ */
104
164
  exports.getSigningJwk = getSigningJwk;
165
+ const compareKeysByThumbprint = async (key1, key2) => {
166
+ //Parallel for optimization
167
+ const [thumbprint1, thumbprint2] = await Promise.all([(0, _ioReactNativeJwt.thumbprint)(key1), (0, _ioReactNativeJwt.thumbprint)(key2)]);
168
+ return thumbprint1 === thumbprint2;
169
+ };
170
+ exports.compareKeysByThumbprint = compareKeysByThumbprint;
105
171
  //# sourceMappingURL=crypto.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_ioReactNativeCrypto","require","_reactNativeUuid","_interopRequireDefault","_ioReactNativeJwt","_jwk","_jsrsasign","obj","__esModule","default","createCryptoContextFor","keytag","getPublicKey","then","fixBase64EncodingOnKey","jwk","kid","thumbprint","getSignature","value","sign","exports","withEphemeralKey","fn","uuid","v4","generate","ephemeralContext","finally","deleteKey","convertCertToPem","certificate","parsePublicKey","pemCert","x509","X509","readCertPEM","publicKey","RSAKey","KJUR","crypto","ECDSA","undefined","getSigningJwk","JWK","parse","KEYUTIL","getJWKFromKey","use"],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAMA,IAAAC,gBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,IAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAAwD,SAAAE,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGxD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,sBAAsB,GAAIC,MAAc,IAAoB;EACvE,OAAO;IACL;AACJ;AACA;AACA;AACA;IACI,MAAMC,YAAYA,CAAA,EAAG;MACnB,OAAO,IAAAA,iCAAY,EAACD,MAAM,CAAC,CACxBE,IAAI,CAACC,2BAAsB,CAAC,CAC5BD,IAAI,CAAC,MAAOE,GAAG,KAAM;QACpB,GAAGA,GAAG;QACN;QACA;QACA;QACA;QACAC,GAAG,EAAE,MAAM,IAAAC,4BAAU,EAACF,GAAG;MAC3B,CAAC,CAAC,CAAC;IACP,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,aAAYa,wBAAI,CAACC,EAAE,CAAC,CAAE,EAAC;EACvC,MAAM,IAAAC,6BAAQ,EAACf,MAAM,CAAC;EACtB,MAAMgB,gBAAgB,GAAGjB,sBAAsB,CAACC,MAAM,CAAC;EACvD,OAAOY,EAAE,CAACI,gBAAgB,CAAC,CAACC,OAAO,CAAC,MAAM,IAAAC,8BAAS,EAAClB,MAAM,CAAC,CAAC;AAC9D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAU,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAMO,MAAMQ,gBAAgB,GAAIC,WAAmB,IACjD,gCAA+BA,WAAY,6BAA4B;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AANAV,OAAA,CAAAS,gBAAA,GAAAA,gBAAA;AAOO,MAAME,cAAc,GACzBC,OAAe,IAC4B;EAC3C,MAAMC,IAAI,GAAG,IAAIC,eAAI,CAAC,CAAC;EACvBD,IAAI,CAACE,WAAW,CAACH,OAAO,CAAC;EACzB,MAAMI,SAAS,GAAGH,IAAI,CAACtB,YAAY,CAAC,CAAC;EAErC,IAAIyB,SAAS,YAAYC,iBAAM,IAAID,SAAS,YAAYE,eAAI,CAACC,MAAM,CAACC,KAAK,EAAE;IACzE,OAAOJ,SAAS;EAClB;EAEA,OAAOK,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALArB,OAAA,CAAAW,cAAA,GAAAA,cAAA;AAMO,MAAMW,aAAa,GAAIN,SAAqC,KAAW;EAC5E,GAAGO,QAAG,CAACC,KAAK,CAACC,kBAAO,CAACC,aAAa,CAACV,SAAS,CAAC,CAAC;EAC9CW,GAAG,EAAE;AACP,CAAC,CAAC;AAAC3B,OAAA,CAAAsB,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"names":["_ioReactNativeCrypto","require","_reactNativeUuid","_interopRequireDefault","_ioReactNativeJwt","_jsrsasign","_jwk","_buffer","obj","__esModule","default","createCryptoContextFor","keytag","getPublicKey","then","fixBase64WithLeadingZero","jwk","kid","thumbprint","getSignature","value","sign","exports","key","x","y","e","n","pk","removeLeadingZeroAndParseb64u","input","buffer","Buffer","from","hex","toString","fixedHex","startsWith","slice","newBuffer","removePadding","withEphemeralKey","fn","uuid","v4","generate","ephemeralContext","finally","deleteKey","convertCertToPem","certificate","parsePublicKey","pemCert","x509","X509","readCertPEM","publicKey","RSAKey","KJUR","crypto","ECDSA","undefined","getSigningJwk","JWK","parse","KEYUTIL","getJWKFromKey","use","compareKeysByThumbprint","key1","key2","thumbprint1","thumbprint2","Promise","all"],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":"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"}
@@ -3,8 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.obfuscateString = exports.byteStringToBase64Url = void 0;
7
- var _buffer = require("buffer");
6
+ exports.obfuscateString = exports.base64ToBase64Url = void 0;
8
7
  /**
9
8
  * Randomly obfuscates characters in a string by replacing them with a specified character.
10
9
  *
@@ -49,14 +48,14 @@ const obfuscateString = function (value) {
49
48
  };
50
49
 
51
50
  /**
52
- * Converts a hexadecimal byte string to a Base64 URL-encoded string.
51
+ * Converts a base64 string to a Base64 URL-encoded string.
53
52
  *
54
- * @param byteString - The input string in hexadecimal format.
53
+ * @param byteString - The input string in base64 format.
55
54
  * @returns The Base64 URL-encoded string.
56
55
  */
57
56
  exports.obfuscateString = obfuscateString;
58
- const byteStringToBase64Url = byteString => {
59
- return _buffer.Buffer.from(byteString, "hex").toString("base64");
57
+ const base64ToBase64Url = base64 => {
58
+ return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/[=]+$/, "");
60
59
  };
61
- exports.byteStringToBase64Url = byteStringToBase64Url;
60
+ exports.base64ToBase64Url = base64ToBase64Url;
62
61
  //# sourceMappingURL=string.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_buffer","require","obfuscateString","value","percentage","arguments","length","undefined","obfuscatedChar","safePercentage","Math","max","min","charsToObfuscate","floor","chars","split","positions","Array","from","_","i","sort","random","slice","forEach","pos","join","exports","byteStringToBase64Url","byteString","Buffer","toString"],"sourceRoot":"../../../src","sources":["utils/string.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAe,GAAG,SAAAA,CAC7BC,KAAa,EAGF;EAAA,IAFXC,UAAkB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IACvBG,cAAsB,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAE5B,IAAI,CAACF,KAAK,EAAE;IACV,OAAO,EAAE;EACX;;EAEA;EACA,MAAMM,cAAc,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,GAAG,EAAER,UAAU,CAAC,CAAC;;EAE7D;EACA,MAAMS,gBAAgB,GAAGH,IAAI,CAACI,KAAK,CAAEX,KAAK,CAACG,MAAM,GAAGG,cAAc,GAAI,GAAG,CAAC;;EAE1E;EACA,MAAMM,KAAK,GAAGZ,KAAK,CAACa,KAAK,CAAC,EAAE,CAAC;;EAE7B;EACA,MAAMC,SAAS,GAAGC,KAAK,CAACC,IAAI,CAAC;IAAEb,MAAM,EAAEH,KAAK,CAACG;EAAO,CAAC,EAAE,CAACc,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC,CAChEC,IAAI,CAAC,MAAMZ,IAAI,CAACa,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAC/BC,KAAK,CAAC,CAAC,EAAEX,gBAAgB,CAAC;;EAE7B;EACAI,SAAS,CAACQ,OAAO,CAAEC,GAAG,IAAK;IACzBX,KAAK,CAACW,GAAG,CAAC,GAAGlB,cAAc;EAC7B,CAAC,CAAC;EAEF,OAAOO,KAAK,CAACY,IAAI,CAAC,EAAE,CAAC;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAC,OAAA,CAAA1B,eAAA,GAAAA,eAAA;AAMO,MAAM2B,qBAAqB,GAAIC,UAAkB,IAAa;EACnE,OAAOC,cAAM,CAACZ,IAAI,CAACW,UAAU,EAAE,KAAK,CAAC,CAACE,QAAQ,CAAC,QAAQ,CAAC;AAC1D,CAAC;AAACJ,OAAA,CAAAC,qBAAA,GAAAA,qBAAA"}
1
+ {"version":3,"names":["obfuscateString","value","percentage","arguments","length","undefined","obfuscatedChar","safePercentage","Math","max","min","charsToObfuscate","floor","chars","split","positions","Array","from","_","i","sort","random","slice","forEach","pos","join","exports","base64ToBase64Url","base64","replace"],"sourceRoot":"../../../src","sources":["utils/string.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,eAAe,GAAG,SAAAA,CAC7BC,KAAa,EAGF;EAAA,IAFXC,UAAkB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IACvBG,cAAsB,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAE5B,IAAI,CAACF,KAAK,EAAE;IACV,OAAO,EAAE;EACX;;EAEA;EACA,MAAMM,cAAc,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,GAAG,EAAER,UAAU,CAAC,CAAC;;EAE7D;EACA,MAAMS,gBAAgB,GAAGH,IAAI,CAACI,KAAK,CAAEX,KAAK,CAACG,MAAM,GAAGG,cAAc,GAAI,GAAG,CAAC;;EAE1E;EACA,MAAMM,KAAK,GAAGZ,KAAK,CAACa,KAAK,CAAC,EAAE,CAAC;;EAE7B;EACA,MAAMC,SAAS,GAAGC,KAAK,CAACC,IAAI,CAAC;IAAEb,MAAM,EAAEH,KAAK,CAACG;EAAO,CAAC,EAAE,CAACc,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC,CAChEC,IAAI,CAAC,MAAMZ,IAAI,CAACa,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAC/BC,KAAK,CAAC,CAAC,EAAEX,gBAAgB,CAAC;;EAE7B;EACAI,SAAS,CAACQ,OAAO,CAAEC,GAAG,IAAK;IACzBX,KAAK,CAACW,GAAG,CAAC,GAAGlB,cAAc;EAC7B,CAAC,CAAC;EAEF,OAAOO,KAAK,CAACY,IAAI,CAAC,EAAE,CAAC;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAC,OAAA,CAAA1B,eAAA,GAAAA,eAAA;AAMO,MAAM2B,iBAAiB,GAAIC,MAAc,IAAa;EAC3D,OAAOA,MAAM,CAACC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AAC5E,CAAC;AAACH,OAAA,CAAAC,iBAAA,GAAAA,iBAAA"}
@@ -4,7 +4,6 @@ import { IssuerResponseError, IssuerResponseErrorCodes, ResponseErrorBuilder, Un
4
4
  import { CredentialResponse } from "./types";
5
5
  import { createDPopToken } from "../../utils/dpop";
6
6
  import uuid from "react-native-uuid";
7
- import { byteStringToBase64Url } from "../../utils/string";
8
7
  export const createNonceProof = async (nonce, issuer, audience, ctx) => {
9
8
  const jwk = await ctx.getPublicKey();
10
9
  return new SignJWT(ctx).setPayload({
@@ -96,10 +95,7 @@ export const obtainCredential = async (issuerConf, accessToken, clientId, creden
96
95
  }
97
96
 
98
97
  /* temporary base64 parsing for the "mso_mdoc" format until the credential submission with this format is fixed. */
99
- return format === "mso_mdoc" ? {
100
- ...credentialRes.data,
101
- credential: byteStringToBase64Url(credentialRes.data.credential)
102
- } : credentialRes.data;
98
+ return credentialRes.data;
103
99
  };
104
100
 
105
101
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["sha256ToBase64","SignJWT","hasStatusOrThrow","IssuerResponseError","IssuerResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","ValidationFailed","CredentialResponse","createDPopToken","uuid","byteStringToBase64Url","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credentialUrl","credential_endpoint","signedNonceProof","c_nonce","containsCredentialDefinition","authorization_details","some","detail","credential_configuration_id","type","message","credential","credential_configurations_supported","format","credentialRequestFormBody","vct","proof","jwt","proof_type","tokenRequestSignedDPop","htm","htu","jti","v4","ath","access_token","credentialRes","method","headers","DPoP","Authorization","token_type","body","JSON","stringify","then","res","json","safeParse","catch","handleObtainCredentialError","success","reason","error","data","e","handle","code","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":"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"}
1
+ {"version":3,"names":["sha256ToBase64","SignJWT","hasStatusOrThrow","IssuerResponseError","IssuerResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","ValidationFailed","CredentialResponse","createDPopToken","uuid","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credentialUrl","credential_endpoint","signedNonceProof","c_nonce","containsCredentialDefinition","authorization_details","some","detail","credential_configuration_id","type","message","credential","credential_configurations_supported","format","credentialRequestFormBody","vct","proof","jwt","proof_type","tokenRequestSignedDPop","htm","htu","jti","v4","ath","access_token","credentialRes","method","headers","DPoP","Authorization","token_type","body","JSON","stringify","then","res","json","safeParse","catch","handleObtainCredentialError","success","reason","error","data","e","handle","code","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":"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"}
@@ -98,12 +98,12 @@ const parseCredentialSdJwt = function (credentials_supported, _ref) {
98
98
  }
99
99
  return definedValues;
100
100
  };
101
- const parseCredentialMDoc = function (credentials_supported, _ref8) {
101
+ const parseCredentialMDoc = function (credentials_supported, credential_type, _ref8) {
102
102
  let {
103
- mDoc
103
+ issuerSigned
104
104
  } = _ref8;
105
- let includeUndefinedAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
106
- const credentialSubject = credentials_supported[mDoc.docType];
105
+ let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
106
+ const credentialSubject = credentials_supported[credential_type];
107
107
  if (!credentialSubject) {
108
108
  throw new IoWalletError("Credential type not supported by the issuer");
109
109
  }
@@ -121,10 +121,10 @@ const parseCredentialMDoc = function (credentials_supported, _ref8) {
121
121
  return [namespace, claimNameKey, definition];
122
122
  });
123
123
  });
124
- if (!mDoc.issuerSigned.nameSpaces) {
124
+ if (!issuerSigned.nameSpaces) {
125
125
  throw new IoWalletError("Missing claims in the credential");
126
126
  }
127
- const flatNamespaces = Object.entries(mDoc.issuerSigned.nameSpaces).flatMap(_ref11 => {
127
+ const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref11 => {
128
128
  let [namespace, values] = _ref11;
129
129
  return values.map(v => [namespace, v.elementIdentifier, v.elementValue]);
130
130
  });
@@ -228,25 +228,37 @@ async function verifyCredentialSdJwt(rawCredential, issuerKeys, holderBindingCon
228
228
  *
229
229
  */
230
230
  async function verifyCredentialMDoc(rawCredential, issuerKeys, holderBindingContext) {
231
- const [decodedCredential] =
231
+ /**
232
+ * For the moment, being that issues in the crypto key generation
233
+ * have been found on Android, the check for the deviceKey inside
234
+ * of the mDoc is skipped, so we are not interested in the holderBindingKey
235
+ */
236
+ const [decodedCredential, _] =
232
237
  // parallel for optimization
233
238
  await Promise.all([verifyMdoc(rawCredential, issuerKeys), holderBindingContext.getPublicKey()]);
234
-
235
- // TODO Implement the holder binding verification for MDOC
236
-
237
- // Get only the first decoded credential
238
-
239
239
  if (!decodedCredential) {
240
240
  throw new IoWalletError("No MDOC credentials found!");
241
241
  }
242
- return {
243
- mDoc: decodedCredential.mDoc
244
- };
242
+
243
+ /**
244
+ * For the moment, being that issues in the crypto key generation
245
+ * have been found on Android, the check for the deviceKey inside
246
+ * of the mDoc is skipped.
247
+ */
248
+ //const key = decodedCredential.mDoc.issuerSigned.issuerAuth.payload.deviceKeyInfo.deviceKey;
249
+ //
250
+ //if (!compareKeysByThumbprint(key, holderBindingKey as PublicKey)) {
251
+ // throw new IoWalletError(
252
+ // `Failed to verify holder binding, holder binding key and mDoc deviceKey don't match`
253
+ // );
254
+ //}
255
+
256
+ return decodedCredential;
245
257
  }
246
258
 
247
259
  // utility type that specialize VerifyAndParseCredential for given format
248
260
 
249
- const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, _ref18) => {
261
+ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, __, _ref18) => {
250
262
  let {
251
263
  credentialCryptoContext,
252
264
  ignoreMissingAttributes,
@@ -261,14 +273,14 @@ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, _ref18)
261
273
  issuedAt: typeof maybeIssuedAt === "number" ? new Date(maybeIssuedAt * 1000) : undefined
262
274
  };
263
275
  };
264
- const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, _ref19) => {
276
+ const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, credentialType, _ref19) => {
265
277
  var _parsedCredential$exp, _parsedCredential$iss;
266
278
  let {
267
279
  credentialCryptoContext,
268
280
  ignoreMissingAttributes
269
281
  } = _ref19;
270
282
  const decoded = await verifyCredentialMDoc(credential, issuerConf.keys, credentialCryptoContext);
271
- const parsedCredential = parseCredentialMDoc(issuerConf.credential_configurations_supported, decoded, ignoreMissingAttributes);
283
+ const parsedCredential = parseCredentialMDoc(issuerConf.credential_configurations_supported, credentialType, decoded, ignoreMissingAttributes);
272
284
  const expirationDate = extractElementValueAsDate(parsedCredential === null || parsedCredential === void 0 || (_parsedCredential$exp = parsedCredential.expiry_date) === null || _parsedCredential$exp === void 0 ? void 0 : _parsedCredential$exp.value);
273
285
  if (!expirationDate) {
274
286
  throw new IoWalletError(`expirationDate must be present!!`);
@@ -296,12 +308,12 @@ const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, _ref19) =
296
308
  * @throws {IoWalletError} If the credential is not bound to the provided user key
297
309
  * @throws {IoWalletError} If the credential data fail to parse
298
310
  */
299
- export const verifyAndParseCredential = async (issuerConf, credential, format, context) => {
311
+ export const verifyAndParseCredential = async (issuerConf, credential, format, credentialType, context) => {
300
312
  if (format === "vc+sd-jwt") {
301
- return verifyAndParseCredentialSdJwt(issuerConf, credential, format, context);
313
+ return verifyAndParseCredentialSdJwt(issuerConf, credential, format, credentialType, context);
302
314
  }
303
315
  if (format === "mso_mdoc") {
304
- return verifyAndParseCredentialMDoc(issuerConf, credential, format, context);
316
+ return verifyAndParseCredentialMDoc(issuerConf, credential, format, credentialType, context);
305
317
  }
306
318
  throw new IoWalletError(`Unsupported credential format: ${format}`);
307
319
  };
@@ -1 +1 @@
1
- {"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","verifyMdoc","getValueFromDisclosures","extractElementValueAsDate","parseCredentialSdJwt","credentials_supported","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","credentialSubject","payload","vct","format","header","typ","claims","attrDefinitions","Object","entries","attrsNotInDisclosures","filter","_ref2","attrKey","some","_ref3","name","missing","map","_","join","received","definedValues","fromEntries","_ref4","_disclosures$find","definition","value","find","_ref5","display","reduce","names","_ref6","locale","undefinedValues","keys","includes","_ref7","key","parseCredentialMDoc","_ref8","mDoc","docType","flatMap","_ref9","namespace","claimName","_ref10","claimNameKey","issuerSigned","nameSpaces","flatNamespaces","_ref11","values","v","elementIdentifier","elementValue","_ref12","_flatNamespaces$find","attrDefNamespace","_ref13","_ref14","_ref15","_ref16","_ref17","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","jwk","kid","verifyCredentialMDoc","verifyAndParseCredentialSdJwt","issuerConf","credential","_ref18","credentialCryptoContext","decoded","parsedCredential","credential_configurations_supported","maybeIssuedAt","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","_ref19","_parsedCredential$exp","_parsedCredential$iss","expirationDate","expiry_date","setDate","getDate","issue_date","verifyAndParseCredential","context"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
1
+ {"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","verifyMdoc","getValueFromDisclosures","extractElementValueAsDate","parseCredentialSdJwt","credentials_supported","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","credentialSubject","payload","vct","format","header","typ","claims","attrDefinitions","Object","entries","attrsNotInDisclosures","filter","_ref2","attrKey","some","_ref3","name","missing","map","_","join","received","definedValues","fromEntries","_ref4","_disclosures$find","definition","value","find","_ref5","display","reduce","names","_ref6","locale","undefinedValues","keys","includes","_ref7","key","parseCredentialMDoc","credential_type","_ref8","issuerSigned","flatMap","_ref9","namespace","claimName","_ref10","claimNameKey","nameSpaces","flatNamespaces","_ref11","values","v","elementIdentifier","elementValue","_ref12","_flatNamespaces$find","attrDefNamespace","_ref13","_ref14","_ref15","_ref16","_ref17","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","jwk","kid","verifyCredentialMDoc","verifyAndParseCredentialSdJwt","issuerConf","credential","__","_ref18","credentialCryptoContext","decoded","parsedCredential","credential_configurations_supported","maybeIssuedAt","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","credentialType","_ref19","_parsedCredential$exp","_parsedCredential$iss","expirationDate","expiry_date","setDate","getDate","issue_date","verifyAndParseCredential","context"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}