@pagopa/io-react-native-wallet 0.5.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. package/README.md +52 -19
  2. package/lib/commonjs/index.js +34 -18
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/pid/issuing.js +22 -28
  5. package/lib/commonjs/pid/issuing.js.map +1 -1
  6. package/lib/commonjs/rp/__test__/index.test.js +2 -2
  7. package/lib/commonjs/rp/__test__/index.test.js.map +1 -1
  8. package/lib/commonjs/rp/index.js +5 -19
  9. package/lib/commonjs/rp/index.js.map +1 -1
  10. package/lib/commonjs/rp/types.js +1 -21
  11. package/lib/commonjs/rp/types.js.map +1 -1
  12. package/lib/commonjs/trust/index.js +24 -5
  13. package/lib/commonjs/trust/index.js.map +1 -1
  14. package/lib/commonjs/trust/types.js +95 -4
  15. package/lib/commonjs/trust/types.js.map +1 -1
  16. package/lib/commonjs/wallet-instance-attestation/issuing.js +5 -13
  17. package/lib/commonjs/wallet-instance-attestation/issuing.js.map +1 -1
  18. package/lib/module/index.js +3 -5
  19. package/lib/module/index.js.map +1 -1
  20. package/lib/module/pid/issuing.js +16 -23
  21. package/lib/module/pid/issuing.js.map +1 -1
  22. package/lib/module/rp/__test__/index.test.js +2 -2
  23. package/lib/module/rp/__test__/index.test.js.map +1 -1
  24. package/lib/module/rp/index.js +2 -17
  25. package/lib/module/rp/index.js.map +1 -1
  26. package/lib/module/rp/types.js +0 -20
  27. package/lib/module/rp/types.js.map +1 -1
  28. package/lib/module/trust/index.js +19 -5
  29. package/lib/module/trust/index.js.map +1 -1
  30. package/lib/module/trust/types.js +94 -2
  31. package/lib/module/trust/types.js.map +1 -1
  32. package/lib/module/wallet-instance-attestation/issuing.js +5 -13
  33. package/lib/module/wallet-instance-attestation/issuing.js.map +1 -1
  34. package/lib/typescript/index.d.ts +3 -5
  35. package/lib/typescript/index.d.ts.map +1 -1
  36. package/lib/typescript/pid/issuing.d.ts +3 -12
  37. package/lib/typescript/pid/issuing.d.ts.map +1 -1
  38. package/lib/typescript/rp/index.d.ts +4 -12
  39. package/lib/typescript/rp/index.d.ts.map +1 -1
  40. package/lib/typescript/rp/types.d.ts +4 -1256
  41. package/lib/typescript/rp/types.d.ts.map +1 -1
  42. package/lib/typescript/trust/index.d.ts +806 -3
  43. package/lib/typescript/trust/index.d.ts.map +1 -1
  44. package/lib/typescript/trust/types.d.ts +8637 -5
  45. package/lib/typescript/trust/types.d.ts.map +1 -1
  46. package/lib/typescript/wallet-instance-attestation/issuing.d.ts +2 -1
  47. package/lib/typescript/wallet-instance-attestation/issuing.d.ts.map +1 -1
  48. package/lib/typescript/wallet-instance-attestation/types.d.ts +4 -4
  49. package/package.json +1 -1
  50. package/src/index.ts +19 -10
  51. package/src/pid/issuing.ts +24 -30
  52. package/src/rp/__test__/index.test.ts +2 -2
  53. package/src/rp/index.ts +8 -22
  54. package/src/rp/types.ts +0 -24
  55. package/src/trust/index.ts +106 -5
  56. package/src/trust/types.ts +114 -3
  57. package/src/wallet-instance-attestation/issuing.ts +10 -15
  58. package/lib/commonjs/pid/metadata.js +0 -52
  59. package/lib/commonjs/pid/metadata.js.map +0 -1
  60. package/lib/module/pid/metadata.js +0 -44
  61. package/lib/module/pid/metadata.js.map +0 -1
  62. package/lib/typescript/pid/metadata.d.ts +0 -1412
  63. package/lib/typescript/pid/metadata.d.ts.map +0 -1
  64. package/src/pid/metadata.ts +0 -51
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/trust/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/trust/types.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAU/B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react-native" />
2
2
  import { type CryptoContext } from "@pagopa/io-react-native-jwt";
3
+ import type { WalletProviderEntityConfiguration } from "../trust/types";
3
4
  /**
4
5
  * Request a Wallet Instance Attestation (WIA) to the Wallet provider
5
6
  *
@@ -14,5 +15,5 @@ export declare const getAttestation: ({ wiaCryptoContext, appFetch, }: {
14
15
  (input: RequestInfo, init?: RequestInit | undefined): Promise<Response>;
15
16
  (input: RequestInfo, init?: RequestInit | undefined): Promise<Response>;
16
17
  } | undefined;
17
- }) => (walletProviderBaseUrl: string) => Promise<string>;
18
+ }) => (walletProviderEntityConfiguration: WalletProviderEntityConfiguration) => Promise<string>;
18
19
  //# sourceMappingURL=issuing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"issuing.d.ts","sourceRoot":"","sources":["../../../src/wallet-instance-attestation/issuing.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,6BAA6B,CAAC;AA8CrC;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;sBAKL,aAAa;;;;;8BAGH,MAAM,KAAG,QAAQ,MAAM,CAqCpD,CAAC"}
1
+ {"version":3,"file":"issuing.d.ts","sourceRoot":"","sources":["../../../src/wallet-instance-attestation/issuing.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AA8BxE;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;sBAKL,aAAa;;;;;0CAII,iCAAiC,KACnE,QAAQ,MAAM,CAuChB,CAAC"}
@@ -232,12 +232,12 @@ export declare const WalletInstanceAttestationRequestJwt: z.ZodObject<{
232
232
  nonce: z.ZodString;
233
233
  }, "strip", z.ZodTypeAny, {
234
234
  jti: string;
235
- nonce: string;
236
235
  aud: string;
236
+ nonce: string;
237
237
  }, {
238
238
  jti: string;
239
- nonce: string;
240
239
  aud: string;
240
+ nonce: string;
241
241
  }>>;
242
242
  }, "strip", z.ZodTypeAny, {
243
243
  header: {
@@ -283,8 +283,8 @@ export declare const WalletInstanceAttestationRequestJwt: z.ZodObject<{
283
283
  };
284
284
  } & {
285
285
  jti: string;
286
- nonce: string;
287
286
  aud: string;
287
+ nonce: string;
288
288
  };
289
289
  }, {
290
290
  header: {
@@ -330,8 +330,8 @@ export declare const WalletInstanceAttestationRequestJwt: z.ZodObject<{
330
330
  };
331
331
  } & {
332
332
  jti: string;
333
- nonce: string;
334
333
  aud: string;
334
+ nonce: string;
335
335
  };
336
336
  }>;
337
337
  export type WalletInstanceAttestationJwt = z.infer<typeof WalletInstanceAttestationJwt>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagopa/io-react-native-wallet",
3
- "version": "0.5.0",
3
+ "version": "0.6.1",
4
4
  "description": "Provide data structures, helpers and API for IO Wallet",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/index.ts CHANGED
@@ -7,15 +7,21 @@ import * as RP from "./rp";
7
7
  import * as Errors from "./utils/errors";
8
8
  import * as WalletInstanceAttestation from "./wallet-instance-attestation";
9
9
  import * as RelyingPartySolution from "./rp";
10
- import { RpEntityConfiguration } from "./rp/types";
11
- import { verifyTrustChain, getEntityConfiguration } from "./trust";
12
10
  import {
13
- EntityConfiguration,
14
- EntityStatement,
11
+ verifyTrustChain,
12
+ getEntityConfiguration,
13
+ getCredentialIssuerEntityConfiguration,
14
+ getRelyingPartyEntityConfiguration,
15
+ getTrustAnchorEntityConfiguration,
16
+ getWalletProviderEntityConfiguration,
17
+ } from "./trust";
18
+ import {
19
+ RelyingPartyEntityConfiguration,
20
+ WalletProviderEntityConfiguration,
15
21
  TrustAnchorEntityConfiguration,
22
+ CredentialIssuerEntityConfiguration,
16
23
  } from "./trust/types";
17
24
  import { createCryptoContextFor } from "./utils/crypto";
18
- import { PidIssuerEntityConfiguration } from "./pid/metadata";
19
25
 
20
26
  export {
21
27
  PID,
@@ -25,10 +31,13 @@ export {
25
31
  RelyingPartySolution,
26
32
  verifyTrustChain,
27
33
  getEntityConfiguration,
28
- EntityConfiguration,
29
- EntityStatement,
30
- RpEntityConfiguration,
31
- PidIssuerEntityConfiguration,
32
- TrustAnchorEntityConfiguration,
34
+ getCredentialIssuerEntityConfiguration,
35
+ getRelyingPartyEntityConfiguration,
36
+ getTrustAnchorEntityConfiguration,
37
+ getWalletProviderEntityConfiguration,
33
38
  createCryptoContextFor,
39
+ RelyingPartyEntityConfiguration,
40
+ WalletProviderEntityConfiguration,
41
+ TrustAnchorEntityConfiguration,
42
+ CredentialIssuerEntityConfiguration,
34
43
  };
@@ -8,13 +8,11 @@ import { JWK } from "../utils/jwk";
8
8
  import uuid from "react-native-uuid";
9
9
  import { PidIssuingError } from "../utils/errors";
10
10
  import { createDPopToken } from "../utils/dpop";
11
- import { PidIssuerEntityConfiguration } from "./metadata";
12
- import {
13
- createCryptoContextFor,
14
- getEntityConfiguration as getGenericEntityConfiguration,
15
- } from "..";
11
+ import { CredentialIssuerEntityConfiguration } from "../trust/types";
12
+ import * as WalletInstanceAttestation from "../wallet-instance-attestation";
16
13
  import { generate, deleteKey } from "@pagopa/io-react-native-crypto";
17
14
  import { SdJwt } from ".";
15
+ import { createCryptoContextFor } from "../utils/crypto";
18
16
  // This is a temporary type that will be used for demo purposes only
19
17
  export type CieData = {
20
18
  birthDate: string;
@@ -39,18 +37,8 @@ export type PidResponse = {
39
37
  format: string;
40
38
  };
41
39
 
42
- /**
43
- * Obtain the PID provider entity configuration.
44
- */
45
- export const getEntityConfiguration =
46
- ({ appFetch = fetch }: { appFetch?: GlobalFetch["fetch"] } = {}) =>
47
- async (
48
- relyingPartyBaseUrl: string
49
- ): Promise<PidIssuerEntityConfiguration> => {
50
- return getGenericEntityConfiguration(relyingPartyBaseUrl, {
51
- appFetch: appFetch,
52
- }).then(PidIssuerEntityConfiguration.parse);
53
- };
40
+ const assertionType =
41
+ "urn:ietf:params:oauth:client-assertion-type:jwt-client-attestation";
54
42
 
55
43
  /**
56
44
  * Make a PAR request to the PID issuer and return the response url
@@ -67,7 +55,7 @@ const getPar =
67
55
  clientId: string,
68
56
  codeVerifier: string,
69
57
  walletProviderBaseUrl: string,
70
- pidProviderEntityConfiguration: PidIssuerEntityConfiguration,
58
+ pidProviderEntityConfiguration: CredentialIssuerEntityConfiguration,
71
59
  walletInstanceAttestation: string
72
60
  ): Promise<string> => {
73
61
  // Calculate the thumbprint of the public key of the Wallet Instance Attestation.
@@ -79,6 +67,9 @@ const getPar =
79
67
  .then(JWK.parse)
80
68
  .then(thumbprint);
81
69
 
70
+ const iss = WalletInstanceAttestation.decode(walletInstanceAttestation)
71
+ .payload.cnf.jwk.kid;
72
+
82
73
  const codeChallenge = await sha256ToBase64(codeVerifier);
83
74
 
84
75
  const signedJwtForPar = await new SignJWT(wiaCryptoContext)
@@ -86,15 +77,17 @@ const getPar =
86
77
  kid: keyThumbprint,
87
78
  })
88
79
  .setPayload({
89
- client_assertion_type:
90
- "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
80
+ iss,
81
+ aud: pidProviderEntityConfiguration.payload.iss,
82
+ jti: `${uuid.v4()}`,
83
+ client_assertion_type: assertionType,
91
84
  authorization_details: [
92
85
  {
93
- credentialDefinition: {
94
- type: ["eu.eudiw.pid.it"],
86
+ credential_definition: {
87
+ type: "PersonIdentificationData",
95
88
  },
96
89
  format: "vc+sd-jwt",
97
- type: "type",
90
+ type: "openid_credential",
98
91
  },
99
92
  ],
100
93
  response_type: "code",
@@ -117,8 +110,7 @@ const getPar =
117
110
  client_id: clientId,
118
111
  code_challenge: codeChallenge,
119
112
  code_challenge_method: "S256",
120
- client_assertion_type:
121
- "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
113
+ client_assertion_type: assertionType,
122
114
  client_assertion: walletInstanceAttestation,
123
115
  request: signedJwtForPar,
124
116
  };
@@ -164,7 +156,7 @@ export const authorizeIssuing =
164
156
  async (
165
157
  walletInstanceAttestation: string,
166
158
  walletProviderBaseUrl: string,
167
- pidProviderEntityConfiguration: PidIssuerEntityConfiguration
159
+ pidProviderEntityConfiguration: CredentialIssuerEntityConfiguration
168
160
  ): Promise<AuthorizationConf> => {
169
161
  // FIXME: do better
170
162
  const clientId = await wiaCryptoContext.getPublicKey().then((_) => _.kid);
@@ -203,8 +195,7 @@ export const authorizeIssuing =
203
195
  client_id: clientId,
204
196
  code: authorizationCode,
205
197
  code_verifier: codeVerifier,
206
- client_assertion_type:
207
- "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
198
+ client_assertion_type: assertionType,
208
199
  client_assertion: walletInstanceAttestation,
209
200
  redirect_uri: walletProviderBaseUrl,
210
201
  };
@@ -248,6 +239,7 @@ const createNonceProof = async (
248
239
  return new SignJWT(ctx)
249
240
  .setPayload({
250
241
  nonce,
242
+ jwk: await ctx.getPublicKey(),
251
243
  })
252
244
  .setProtectedHeader({
253
245
  type: "openid4vci-proof+jwt",
@@ -278,7 +270,7 @@ export const getCredential =
278
270
  }) =>
279
271
  async (
280
272
  { nonce, accessToken, clientId, walletProviderBaseUrl }: AuthorizationConf,
281
- pidProviderEntityConfiguration: PidIssuerEntityConfiguration,
273
+ pidProviderEntityConfiguration: CredentialIssuerEntityConfiguration,
282
274
  cieData: CieData
283
275
  ): Promise<PidResponse> => {
284
276
  const signedDPopForPid = await createDPopToken(
@@ -302,7 +294,9 @@ export const getCredential =
302
294
  .credential_endpoint;
303
295
 
304
296
  const requestBody = {
305
- credential_definition: JSON.stringify({ type: ["eu.eudiw.pid.it"] }),
297
+ credential_definition: JSON.stringify({
298
+ type: ["PersonIdentificationData"],
299
+ }),
306
300
  format: "vc+sd-jwt",
307
301
  proof: JSON.stringify({
308
302
  jwt: signedNonceProof,
@@ -1,6 +1,6 @@
1
+ import { RelyingPartyEntityConfiguration } from "../../trust/types";
1
2
  import * as RelyingPartySolution from "..";
2
3
  import { AuthRequestDecodeError } from "../../utils/errors";
3
- import { RpEntityConfiguration } from "../types";
4
4
 
5
5
  describe("decodeAuthRequestQR", () => {
6
6
  it("should return authentication request URL", async () => {
@@ -239,7 +239,7 @@ describe("RpEntityConfiguration", () => {
239
239
  ],
240
240
  },
241
241
  };
242
- const result = RpEntityConfiguration.safeParse(pp);
242
+ const result = RelyingPartyEntityConfiguration.safeParse(pp);
243
243
  if (result.success === false) {
244
244
  throw result.error;
245
245
  }
package/src/rp/index.ts CHANGED
@@ -12,19 +12,14 @@ import {
12
12
  verify,
13
13
  type CryptoContext,
14
14
  } from "@pagopa/io-react-native-jwt";
15
- import {
16
- QRCodePayload,
17
- RequestObject,
18
- RpEntityConfiguration,
19
- type Presentation,
20
- } from "./types";
15
+ import { QRCodePayload, RequestObject, type Presentation } from "./types";
21
16
 
22
17
  import uuid from "react-native-uuid";
23
18
  import type { JWK } from "@pagopa/io-react-native-jwt/lib/typescript/types";
24
19
  import { disclose } from "../sd-jwt";
25
- import { getEntityConfiguration as getGenericEntityConfiguration } from "../trust";
26
20
  import { createDPopToken } from "../utils/dpop";
27
- import { WalletInstanceAttestation } from "..";
21
+ import { RelyingPartyEntityConfiguration } from "../trust/types";
22
+ import * as WalletInstanceAttestation from "../wallet-instance-attestation";
28
23
 
29
24
  /**
30
25
  * Select a RSA public key from those provided by the RP to encrypt.
@@ -33,7 +28,9 @@ import { WalletInstanceAttestation } from "..";
33
28
  * @returns A suitable public key with its compatible encryption algorithm
34
29
  * @throws {NoSuitableKeysFoundInEntityConfiguration} If entity do not contain any public key suitable for encrypting
35
30
  */
36
- const chooseRSAPublicKeyToEncrypt = (entity: RpEntityConfiguration): JWK => {
31
+ const chooseRSAPublicKeyToEncrypt = (
32
+ entity: RelyingPartyEntityConfiguration
33
+ ): JWK => {
37
34
  const [usingRsa256] =
38
35
  entity.payload.metadata.wallet_relying_party.jwks.filter(
39
36
  (jwk) => jwk.use === "enc" && jwk.kty === "RSA"
@@ -49,17 +46,6 @@ const chooseRSAPublicKeyToEncrypt = (entity: RpEntityConfiguration): JWK => {
49
46
  );
50
47
  };
51
48
 
52
- /**
53
- * Obtain the relying party entity configuration.
54
- */
55
- export const getEntityConfiguration =
56
- ({ appFetch = fetch }: { appFetch?: GlobalFetch["fetch"] } = {}) =>
57
- async (relyingPartyBaseUrl: string): Promise<RpEntityConfiguration> => {
58
- return getGenericEntityConfiguration(relyingPartyBaseUrl, {
59
- appFetch: appFetch,
60
- }).then(RpEntityConfiguration.parse);
61
- };
62
-
63
49
  /**
64
50
  * Decode a QR code content to an authentication request url.
65
51
  * @function
@@ -92,7 +78,7 @@ export const decodeAuthRequestQR = (qrcode: string): QRCodePayload => {
92
78
 
93
79
  export type RequestObjectConf = {
94
80
  requestObject: RequestObject;
95
- rpEntityConfiguration: RpEntityConfiguration;
81
+ rpEntityConfiguration: RelyingPartyEntityConfiguration;
96
82
  walletInstanceAttestation: string;
97
83
  };
98
84
 
@@ -111,7 +97,7 @@ export const getRequestObject =
111
97
  async (
112
98
  walletInstanceAttestation: string,
113
99
  requestUri: string,
114
- rpEntityConfiguration: RpEntityConfiguration
100
+ rpEntityConfiguration: RelyingPartyEntityConfiguration
115
101
  ): Promise<RequestObjectConf> => {
116
102
  const signedWalletInstanceDPoP = await createDPopToken(
117
103
  {
package/src/rp/types.ts CHANGED
@@ -1,7 +1,5 @@
1
- import { JWK } from "../utils/jwk";
2
1
  import { UnixTime } from "../sd-jwt/types";
3
2
  import * as z from "zod";
4
- import { EntityConfiguration } from "../trust/types";
5
3
 
6
4
  export type RequestObject = z.infer<typeof RequestObject>;
7
5
  export const RequestObject = z.object({
@@ -27,28 +25,6 @@ export const RequestObject = z.object({
27
25
  }),
28
26
  });
29
27
 
30
- /**
31
- * EntityConfiguration plus the metadata specific for a Relying Party entity.
32
- */
33
- export type RpEntityConfiguration = z.infer<typeof RpEntityConfiguration>;
34
- export const RpEntityConfiguration = EntityConfiguration.and(
35
- z.object({
36
- payload: z.object({
37
- metadata: z.object({
38
- wallet_relying_party: z
39
- .object({
40
- application_type: z.string().optional(),
41
- client_id: z.string().optional(),
42
- client_name: z.string().optional(),
43
- jwks: z.array(JWK),
44
- contacts: z.array(z.string()).optional(),
45
- })
46
- .passthrough(),
47
- }),
48
- }),
49
- })
50
- );
51
-
52
28
  export type QRCodePayload = z.infer<typeof QRCodePayload>;
53
29
  export const QRCodePayload = z.object({
54
30
  protocol: z.string(),
@@ -1,27 +1,82 @@
1
1
  import { decode as decodeJwt } from "@pagopa/io-react-native-jwt";
2
- import { EntityConfiguration } from "./types";
2
+ import {
3
+ WalletProviderEntityConfiguration,
4
+ TrustAnchorEntityConfiguration,
5
+ CredentialIssuerEntityConfiguration,
6
+ RelyingPartyEntityConfiguration,
7
+ EntityConfiguration,
8
+ } from "./types";
3
9
  import { IoWalletError } from "../utils/errors";
4
10
  import { verifyTrustChain } from "./chain";
5
11
 
6
12
  export { verifyTrustChain };
7
13
 
8
14
  /**
9
- * Fetch and parse teh entity configuration document for a given federation entity
15
+ * Fetch and parse the entity configuration document for a given federation entity.
16
+ * This is an inner method to serve public interfaces.
17
+ *
18
+ * To add another entity configuration type (example: Foo entity type):
19
+ * - create its zod schema and type by inherit from the base type (example: FooEntityConfiguration = BaseEntityConfiguration.and(...))
20
+ * - add such type to EntityConfiguration union
21
+ * - add an overload to this function
22
+ * - create a public function which use such type (example: getFooEntityConfiguration = (url, options) => Promise<FooEntityConfiguration>)
10
23
  *
11
24
  * @param entityBaseUrl The base url of the entity.
25
+ * @param schema The expected schema of the entity configuration, according to the kind of entity we are fetching from.
12
26
  * @param options.appFetch An optional instance of the http client to be used.
13
27
  * @returns The parsed entity configuration object
14
28
  * @throws {IoWalletError} If the http request fails
15
29
  * @throws Parse error if the document is not in the expected shape.
16
30
  */
17
- export async function getEntityConfiguration(
31
+ async function fetchAndParseEntityConfiguration(
32
+ entityBaseUrl: string,
33
+ schema: typeof WalletProviderEntityConfiguration,
34
+ options?: {
35
+ appFetch?: GlobalFetch["fetch"];
36
+ }
37
+ ): Promise<WalletProviderEntityConfiguration>;
38
+ async function fetchAndParseEntityConfiguration(
39
+ entityBaseUrl: string,
40
+ schema: typeof RelyingPartyEntityConfiguration,
41
+ options?: {
42
+ appFetch?: GlobalFetch["fetch"];
43
+ }
44
+ ): Promise<RelyingPartyEntityConfiguration>;
45
+ async function fetchAndParseEntityConfiguration(
46
+ entityBaseUrl: string,
47
+ schema: typeof TrustAnchorEntityConfiguration,
48
+ options?: {
49
+ appFetch?: GlobalFetch["fetch"];
50
+ }
51
+ ): Promise<TrustAnchorEntityConfiguration>;
52
+ async function fetchAndParseEntityConfiguration(
53
+ entityBaseUrl: string,
54
+ schema: typeof CredentialIssuerEntityConfiguration,
55
+ options?: {
56
+ appFetch?: GlobalFetch["fetch"];
57
+ }
58
+ ): Promise<CredentialIssuerEntityConfiguration>;
59
+ async function fetchAndParseEntityConfiguration(
18
60
  entityBaseUrl: string,
61
+ schema: typeof EntityConfiguration,
62
+ options?: {
63
+ appFetch?: GlobalFetch["fetch"];
64
+ }
65
+ ): Promise<EntityConfiguration>;
66
+ async function fetchAndParseEntityConfiguration(
67
+ entityBaseUrl: string,
68
+ schema: /* FIXME: why is it different from "typeof EntityConfiguration"? */
69
+ | typeof CredentialIssuerEntityConfiguration
70
+ | typeof WalletProviderEntityConfiguration
71
+ | typeof RelyingPartyEntityConfiguration
72
+ | typeof TrustAnchorEntityConfiguration
73
+ | typeof EntityConfiguration,
19
74
  {
20
75
  appFetch = fetch,
21
76
  }: {
22
77
  appFetch?: GlobalFetch["fetch"];
23
78
  } = {}
24
- ): Promise<EntityConfiguration> {
79
+ ) {
25
80
  const wellKnownUrl = `${entityBaseUrl}/.well-known/openid-federation`;
26
81
 
27
82
  const response = await appFetch(wellKnownUrl, {
@@ -31,7 +86,7 @@ export async function getEntityConfiguration(
31
86
  if (response.status === 200) {
32
87
  const responseText = await response.text();
33
88
  const responseJwt = decodeJwt(responseText);
34
- return EntityConfiguration.parse({
89
+ return schema.parse({
35
90
  header: responseJwt.protectedHeader,
36
91
  payload: responseJwt.payload,
37
92
  });
@@ -41,3 +96,49 @@ export async function getEntityConfiguration(
41
96
  `Unable to obtain Entity Configuration at ${wellKnownUrl}. Response code: ${response.status}`
42
97
  );
43
98
  }
99
+
100
+ export const getWalletProviderEntityConfiguration = (
101
+ entityBaseUrl: Parameters<typeof fetchAndParseEntityConfiguration>[0],
102
+ options?: Parameters<typeof fetchAndParseEntityConfiguration>[2]
103
+ ) =>
104
+ fetchAndParseEntityConfiguration(
105
+ entityBaseUrl,
106
+ WalletProviderEntityConfiguration,
107
+ options
108
+ );
109
+
110
+ export const getCredentialIssuerEntityConfiguration = (
111
+ entityBaseUrl: Parameters<typeof fetchAndParseEntityConfiguration>[0],
112
+ options?: Parameters<typeof fetchAndParseEntityConfiguration>[2]
113
+ ) =>
114
+ fetchAndParseEntityConfiguration(
115
+ entityBaseUrl,
116
+ CredentialIssuerEntityConfiguration,
117
+ options
118
+ );
119
+
120
+ export const getTrustAnchorEntityConfiguration = (
121
+ entityBaseUrl: Parameters<typeof fetchAndParseEntityConfiguration>[0],
122
+ options?: Parameters<typeof fetchAndParseEntityConfiguration>[2]
123
+ ) =>
124
+ fetchAndParseEntityConfiguration(
125
+ entityBaseUrl,
126
+ TrustAnchorEntityConfiguration,
127
+ options
128
+ );
129
+
130
+ export const getRelyingPartyEntityConfiguration = (
131
+ entityBaseUrl: Parameters<typeof fetchAndParseEntityConfiguration>[0],
132
+ options?: Parameters<typeof fetchAndParseEntityConfiguration>[2]
133
+ ) =>
134
+ fetchAndParseEntityConfiguration(
135
+ entityBaseUrl,
136
+ RelyingPartyEntityConfiguration,
137
+ options
138
+ );
139
+
140
+ export const getEntityConfiguration = (
141
+ entityBaseUrl: Parameters<typeof fetchAndParseEntityConfiguration>[0],
142
+ options?: Parameters<typeof fetchAndParseEntityConfiguration>[2]
143
+ ) =>
144
+ fetchAndParseEntityConfiguration(entityBaseUrl, EntityConfiguration, options);