@pagopa/io-react-native-wallet 2.0.0-next.1 → 2.0.0-next.3

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 (174) hide show
  1. package/lib/commonjs/credential/issuance/02-evaluate-issuer-trust.js +2 -2
  2. package/lib/commonjs/credential/issuance/02-evaluate-issuer-trust.js.map +1 -1
  3. package/lib/commonjs/credential/issuance/03-start-user-authorization.js +38 -24
  4. package/lib/commonjs/credential/issuance/03-start-user-authorization.js.map +1 -1
  5. package/lib/commonjs/credential/issuance/05-authorize-access.js +6 -10
  6. package/lib/commonjs/credential/issuance/05-authorize-access.js.map +1 -1
  7. package/lib/commonjs/credential/issuance/06-obtain-credential.js +43 -11
  8. package/lib/commonjs/credential/issuance/06-obtain-credential.js.map +1 -1
  9. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +51 -48
  10. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
  11. package/lib/commonjs/credential/issuance/README.md +34 -13
  12. package/lib/commonjs/credential/issuance/const.js +1 -1
  13. package/lib/commonjs/credential/issuance/types.js +16 -10
  14. package/lib/commonjs/credential/issuance/types.js.map +1 -1
  15. package/lib/commonjs/credential/presentation/02-evaluate-rp-trust.js +2 -2
  16. package/lib/commonjs/credential/presentation/02-evaluate-rp-trust.js.map +1 -1
  17. package/lib/commonjs/credential/presentation/05-verify-request-object.js.map +1 -1
  18. package/lib/commonjs/credential/presentation/07-evaluate-dcql-query.js +4 -4
  19. package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js +3 -3
  20. package/lib/commonjs/credential/presentation/08-send-authorization-response.js.map +1 -1
  21. package/lib/commonjs/credential/status/README.md +0 -1
  22. package/lib/commonjs/sd-jwt/__test__/index.test.js +11 -15
  23. package/lib/commonjs/sd-jwt/__test__/index.test.js.map +1 -1
  24. package/lib/commonjs/sd-jwt/__test__/types.test.js +5 -2
  25. package/lib/commonjs/sd-jwt/__test__/types.test.js.map +1 -1
  26. package/lib/commonjs/sd-jwt/__test__/utils.test.js +37 -0
  27. package/lib/commonjs/sd-jwt/__test__/utils.test.js.map +1 -0
  28. package/lib/commonjs/sd-jwt/index.js +20 -0
  29. package/lib/commonjs/sd-jwt/index.js.map +1 -1
  30. package/lib/commonjs/sd-jwt/types.js +51 -4
  31. package/lib/commonjs/sd-jwt/types.js.map +1 -1
  32. package/lib/commonjs/sd-jwt/utils.js +64 -0
  33. package/lib/commonjs/sd-jwt/utils.js.map +1 -0
  34. package/lib/commonjs/trust/build-chain.js +252 -0
  35. package/lib/commonjs/trust/build-chain.js.map +1 -0
  36. package/lib/commonjs/trust/index.js +11 -282
  37. package/lib/commonjs/trust/index.js.map +1 -1
  38. package/lib/commonjs/trust/types.js +18 -13
  39. package/lib/commonjs/trust/types.js.map +1 -1
  40. package/lib/commonjs/trust/{chain.js → verify-chain.js} +40 -5
  41. package/lib/commonjs/trust/verify-chain.js.map +1 -0
  42. package/lib/commonjs/utils/errors.js.map +1 -1
  43. package/lib/commonjs/utils/par.js +32 -22
  44. package/lib/commonjs/utils/par.js.map +1 -1
  45. package/lib/commonjs/utils/pop.js +1 -1
  46. package/lib/commonjs/utils/pop.js.map +1 -1
  47. package/lib/commonjs/wallet-instance-attestation/types.js +5 -1
  48. package/lib/commonjs/wallet-instance-attestation/types.js.map +1 -1
  49. package/lib/module/credential/issuance/02-evaluate-issuer-trust.js +1 -1
  50. package/lib/module/credential/issuance/02-evaluate-issuer-trust.js.map +1 -1
  51. package/lib/module/credential/issuance/03-start-user-authorization.js +38 -24
  52. package/lib/module/credential/issuance/03-start-user-authorization.js.map +1 -1
  53. package/lib/module/credential/issuance/05-authorize-access.js +6 -10
  54. package/lib/module/credential/issuance/05-authorize-access.js.map +1 -1
  55. package/lib/module/credential/issuance/06-obtain-credential.js +44 -12
  56. package/lib/module/credential/issuance/06-obtain-credential.js.map +1 -1
  57. package/lib/module/credential/issuance/07-verify-and-parse-credential.js +51 -48
  58. package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
  59. package/lib/module/credential/issuance/README.md +34 -13
  60. package/lib/module/credential/issuance/const.js +1 -1
  61. package/lib/module/credential/issuance/types.js +12 -8
  62. package/lib/module/credential/issuance/types.js.map +1 -1
  63. package/lib/module/credential/presentation/02-evaluate-rp-trust.js +1 -1
  64. package/lib/module/credential/presentation/02-evaluate-rp-trust.js.map +1 -1
  65. package/lib/module/credential/presentation/05-verify-request-object.js.map +1 -1
  66. package/lib/module/credential/presentation/07-evaluate-dcql-query.js +4 -4
  67. package/lib/module/credential/presentation/07-evaluate-input-descriptor.js +3 -3
  68. package/lib/module/credential/presentation/08-send-authorization-response.js +1 -1
  69. package/lib/module/credential/presentation/08-send-authorization-response.js.map +1 -1
  70. package/lib/module/credential/status/README.md +0 -1
  71. package/lib/module/sd-jwt/__test__/index.test.js +11 -16
  72. package/lib/module/sd-jwt/__test__/index.test.js.map +1 -1
  73. package/lib/module/sd-jwt/__test__/types.test.js +5 -2
  74. package/lib/module/sd-jwt/__test__/types.test.js.map +1 -1
  75. package/lib/module/sd-jwt/__test__/utils.test.js +35 -0
  76. package/lib/module/sd-jwt/__test__/utils.test.js.map +1 -0
  77. package/lib/module/sd-jwt/index.js +1 -0
  78. package/lib/module/sd-jwt/index.js.map +1 -1
  79. package/lib/module/sd-jwt/types.js +50 -3
  80. package/lib/module/sd-jwt/types.js.map +1 -1
  81. package/lib/module/sd-jwt/utils.js +57 -0
  82. package/lib/module/sd-jwt/utils.js.map +1 -0
  83. package/lib/module/trust/build-chain.js +235 -0
  84. package/lib/module/trust/build-chain.js.map +1 -0
  85. package/lib/module/trust/index.js +5 -268
  86. package/lib/module/trust/index.js.map +1 -1
  87. package/lib/module/trust/types.js +18 -13
  88. package/lib/module/trust/types.js.map +1 -1
  89. package/lib/module/trust/{chain.js → verify-chain.js} +36 -2
  90. package/lib/module/trust/verify-chain.js.map +1 -0
  91. package/lib/module/utils/errors.js +1 -1
  92. package/lib/module/utils/errors.js.map +1 -1
  93. package/lib/module/utils/par.js +29 -20
  94. package/lib/module/utils/par.js.map +1 -1
  95. package/lib/module/utils/pop.js +1 -1
  96. package/lib/module/utils/pop.js.map +1 -1
  97. package/lib/module/wallet-instance-attestation/types.js +5 -1
  98. package/lib/module/wallet-instance-attestation/types.js.map +1 -1
  99. package/lib/typescript/client/generated/wallet-provider.d.ts +12 -12
  100. package/lib/typescript/credential/issuance/01-start-flow.d.ts +2 -2
  101. package/lib/typescript/credential/issuance/01-start-flow.d.ts.map +1 -1
  102. package/lib/typescript/credential/issuance/02-evaluate-issuer-trust.d.ts.map +1 -1
  103. package/lib/typescript/credential/issuance/03-start-user-authorization.d.ts +7 -6
  104. package/lib/typescript/credential/issuance/03-start-user-authorization.d.ts.map +1 -1
  105. package/lib/typescript/credential/issuance/05-authorize-access.d.ts.map +1 -1
  106. package/lib/typescript/credential/issuance/06-obtain-credential.d.ts +10 -5
  107. package/lib/typescript/credential/issuance/06-obtain-credential.d.ts.map +1 -1
  108. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts +3 -2
  109. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
  110. package/lib/typescript/credential/issuance/const.d.ts +1 -1
  111. package/lib/typescript/credential/issuance/types.d.ts +46 -26
  112. package/lib/typescript/credential/issuance/types.d.ts.map +1 -1
  113. package/lib/typescript/credential/presentation/02-evaluate-rp-trust.d.ts.map +1 -1
  114. package/lib/typescript/credential/presentation/05-verify-request-object.d.ts +1 -1
  115. package/lib/typescript/credential/presentation/05-verify-request-object.d.ts.map +1 -1
  116. package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts +2 -2
  117. package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts.map +1 -1
  118. package/lib/typescript/credential/presentation/types.d.ts +4 -4
  119. package/lib/typescript/pid/sd-jwt/types.d.ts +7 -7
  120. package/lib/typescript/sd-jwt/__test__/utils.test.d.ts +2 -0
  121. package/lib/typescript/sd-jwt/__test__/utils.test.d.ts.map +1 -0
  122. package/lib/typescript/sd-jwt/index.d.ts +21 -8
  123. package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
  124. package/lib/typescript/sd-jwt/types.d.ts +194 -12
  125. package/lib/typescript/sd-jwt/types.d.ts.map +1 -1
  126. package/lib/typescript/sd-jwt/utils.d.ts +18 -0
  127. package/lib/typescript/sd-jwt/utils.d.ts.map +1 -0
  128. package/lib/typescript/trust/build-chain.d.ts +1300 -0
  129. package/lib/typescript/trust/build-chain.d.ts.map +1 -0
  130. package/lib/typescript/trust/index.d.ts +5 -1301
  131. package/lib/typescript/trust/index.d.ts.map +1 -1
  132. package/lib/typescript/trust/types.d.ts +788 -624
  133. package/lib/typescript/trust/types.d.ts.map +1 -1
  134. package/lib/typescript/trust/{chain.d.ts → verify-chain.d.ts} +17 -1
  135. package/lib/typescript/trust/verify-chain.d.ts.map +1 -0
  136. package/lib/typescript/utils/errors.d.ts +2 -2
  137. package/lib/typescript/utils/errors.d.ts.map +1 -1
  138. package/lib/typescript/utils/par.d.ts +29 -13
  139. package/lib/typescript/utils/par.d.ts.map +1 -1
  140. package/lib/typescript/wallet-instance-attestation/types.d.ts +9 -9
  141. package/lib/typescript/wallet-instance-attestation/types.d.ts.map +1 -1
  142. package/package.json +1 -1
  143. package/src/credential/issuance/01-start-flow.ts +2 -2
  144. package/src/credential/issuance/02-evaluate-issuer-trust.ts +1 -1
  145. package/src/credential/issuance/03-start-user-authorization.ts +57 -38
  146. package/src/credential/issuance/05-authorize-access.ts +5 -11
  147. package/src/credential/issuance/06-obtain-credential.ts +53 -23
  148. package/src/credential/issuance/07-verify-and-parse-credential.ts +54 -62
  149. package/src/credential/issuance/README.md +34 -13
  150. package/src/credential/issuance/const.ts +1 -1
  151. package/src/credential/issuance/types.ts +18 -8
  152. package/src/credential/presentation/02-evaluate-rp-trust.ts +1 -1
  153. package/src/credential/presentation/05-verify-request-object.ts +1 -1
  154. package/src/credential/presentation/07-evaluate-dcql-query.ts +4 -4
  155. package/src/credential/presentation/07-evaluate-input-descriptor.ts +3 -3
  156. package/src/credential/presentation/08-send-authorization-response.ts +4 -4
  157. package/src/credential/status/README.md +0 -1
  158. package/src/sd-jwt/__test__/index.test.ts +8 -29
  159. package/src/sd-jwt/__test__/types.test.ts +6 -2
  160. package/src/sd-jwt/__test__/utils.test.ts +37 -0
  161. package/src/sd-jwt/index.ts +2 -0
  162. package/src/sd-jwt/types.ts +49 -2
  163. package/src/sd-jwt/utils.ts +73 -0
  164. package/src/trust/build-chain.ts +395 -0
  165. package/src/trust/index.ts +5 -442
  166. package/src/trust/types.ts +23 -17
  167. package/src/trust/{chain.ts → verify-chain.ts} +41 -1
  168. package/src/utils/errors.ts +4 -4
  169. package/src/utils/par.ts +37 -21
  170. package/src/utils/pop.ts +1 -1
  171. package/src/wallet-instance-attestation/types.ts +3 -1
  172. package/lib/commonjs/trust/chain.js.map +0 -1
  173. package/lib/module/trust/chain.js.map +0 -1
  174. package/lib/typescript/trust/chain.d.ts.map +0 -1
@@ -1,269 +1,6 @@
1
- import { decode, verify } from "./utils";
2
- import { decode as decodeJwt } from "@pagopa/io-react-native-jwt";
3
- import { CredentialIssuerEntityConfiguration, EntityConfiguration, EntityStatement, FederationListResponse, RelyingPartyEntityConfiguration, TrustAnchorEntityConfiguration, WalletProviderEntityConfiguration } from "./types";
4
- import { renewTrustChain, validateTrustChain } from "./chain";
5
- import { hasStatusOrThrow } from "../utils/misc";
6
- import { BuildTrustChainError, FederationListParseError, MissingFederationFetchEndpointError, RelyingPartyNotAuthorizedError, TrustAnchorKidMissingError } from "./errors";
7
- /**
8
- * Verify a given trust chain is actually valid.
9
- * It can handle fast chain renewal, which means we try to fetch a fresh version of each statement.
10
- *
11
- * @param trustAnchorEntity The entity configuration of the known trust anchor
12
- * @param chain The chain of statements to be validated
13
- * @param x509Options Options for the verification process
14
- * @param appFetch (optional) fetch api implementation
15
- * @param renewOnFail Whether to attempt to renew the trust chain if the initial validation fails
16
- * @returns The result of the chain validation
17
- * @throws {FederationError} If the chain is not valid
18
- */
19
- export async function verifyTrustChain(trustAnchorEntity, chain) {
20
- let x509Options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
21
- connectTimeout: 10000,
22
- readTimeout: 10000,
23
- requireCrl: true
24
- };
25
- let {
26
- appFetch = fetch,
27
- renewOnFail = true
28
- } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
29
- try {
30
- return validateTrustChain(trustAnchorEntity, chain, x509Options);
31
- } catch (error) {
32
- if (renewOnFail) {
33
- const renewedChain = await renewTrustChain(chain, appFetch);
34
- return validateTrustChain(trustAnchorEntity, renewedChain, x509Options);
35
- } else {
36
- throw error;
37
- }
38
- }
39
- }
40
-
41
- /**
42
- * Fetch the signed entity configuration token for an entity
43
- *
44
- * @param entityBaseUrl The url of the entity to fetch
45
- * @param appFetch (optional) fetch api implementation
46
- * @returns The signed Entity Configuration token
47
- */
48
- export async function getSignedEntityConfiguration(entityBaseUrl) {
49
- let {
50
- appFetch = fetch
51
- } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
52
- const wellKnownUrl = `${entityBaseUrl}/.well-known/openid-federation`;
53
- return await appFetch(wellKnownUrl, {
54
- method: "GET"
55
- }).then(hasStatusOrThrow(200)).then(res => res.text());
56
- }
57
-
58
- /**
59
- * Fetch and parse the entity configuration document for a given federation entity.
60
- * This is an inner method to serve public interfaces.
61
- *
62
- * To add another entity configuration type (example: Foo entity type):
63
- * - create its zod schema and type by inherit from the base type (example: FooEntityConfiguration = BaseEntityConfiguration.and(...))
64
- * - add such type to EntityConfiguration union
65
- * - add an overload to this function
66
- * - create a public function which use such type (example: getFooEntityConfiguration = (url, options) => Promise<FooEntityConfiguration>)
67
- *
68
- * @param entityBaseUrl The base url of the entity.
69
- * @param schema The expected schema of the entity configuration, according to the kind of entity we are fetching from.
70
- * @param options An optional object with additional options.
71
- * @param options.appFetch An optional instance of the http client to be used.
72
- * @returns The parsed entity configuration object
73
- * @throws {IoWalletError} If the http request fails
74
- * @throws Parse error if the document is not in the expected shape.
75
- */
76
-
77
- async function fetchAndParseEntityConfiguration(entityBaseUrl, schema) {
78
- let {
79
- appFetch = fetch
80
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
81
- const responseText = await getSignedEntityConfiguration(entityBaseUrl, {
82
- appFetch
83
- });
84
- const responseJwt = decodeJwt(responseText);
85
- return schema.parse({
86
- header: responseJwt.protectedHeader,
87
- payload: responseJwt.payload
88
- });
89
- }
90
- export const getWalletProviderEntityConfiguration = (entityBaseUrl, options) => fetchAndParseEntityConfiguration(entityBaseUrl, WalletProviderEntityConfiguration, options);
91
- export const getCredentialIssuerEntityConfiguration = (entityBaseUrl, options) => fetchAndParseEntityConfiguration(entityBaseUrl, CredentialIssuerEntityConfiguration, options);
92
- export const getTrustAnchorEntityConfiguration = (entityBaseUrl, options) => fetchAndParseEntityConfiguration(entityBaseUrl, TrustAnchorEntityConfiguration, options);
93
- export const getRelyingPartyEntityConfiguration = (entityBaseUrl, options) => fetchAndParseEntityConfiguration(entityBaseUrl, RelyingPartyEntityConfiguration, options);
94
- export const getEntityConfiguration = (entityBaseUrl, options) => fetchAndParseEntityConfiguration(entityBaseUrl, EntityConfiguration, options);
95
-
96
- /**
97
- * Fetch and parse the entity statement document for a given federation entity.
98
- *
99
- * @param accreditationBodyBaseUrl The base url of the accreditation body which holds and signs the required entity statement
100
- * @param subordinatedEntityBaseUrl The url that identifies the subordinate entity
101
- * @param appFetch An optional instance of the http client to be used.
102
- * @returns The parsed entity configuration object
103
- * @throws {IoWalletError} If the http request fails
104
- */
105
- export async function getEntityStatement(accreditationBodyBaseUrl, subordinatedEntityBaseUrl) {
106
- let {
107
- appFetch = fetch
108
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
109
- const responseText = await getSignedEntityStatement(accreditationBodyBaseUrl, subordinatedEntityBaseUrl, {
110
- appFetch
111
- });
112
- const responseJwt = decodeJwt(responseText);
113
- return EntityStatement.parse({
114
- header: responseJwt.protectedHeader,
115
- payload: responseJwt.payload
116
- });
117
- }
118
-
119
- /**
120
- * Fetch the entity statement document for a given federation entity.
121
- *
122
- * @param federationFetchEndpoint The exact endpoint provided by the parent EC's metadata.
123
- * @param subordinatedEntityBaseUrl The url that identifies the subordinate entity.
124
- * @param appFetch An optional instance of the http client to be used.
125
- * @returns The signed entity statement token.
126
- * @throws {IoWalletError} If the http request fails.
127
- */
128
- export async function getSignedEntityStatement(federationFetchEndpoint, subordinatedEntityBaseUrl) {
129
- let {
130
- appFetch = fetch
131
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
132
- const url = new URL(federationFetchEndpoint);
133
- url.searchParams.set("sub", subordinatedEntityBaseUrl);
134
- return await appFetch(url.toString(), {
135
- method: "GET"
136
- }).then(hasStatusOrThrow(200)).then(res => res.text());
137
- }
138
-
139
- /**
140
- * Fetch the federation list document from a given endpoint.
141
- *
142
- * @param federationListEndpoint The URL of the federation list endpoint.
143
- * @param appFetch An optional instance of the http client to be used.
144
- * @returns The federation list as an array of strings.
145
- * @throws {IoWalletError} If the HTTP request fails.
146
- * @throws {FederationError} If the result is not in the expected format.
147
- */
148
- export async function getFederationList(federationListEndpoint) {
149
- let {
150
- appFetch = fetch
151
- } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
152
- return await appFetch(federationListEndpoint, {
153
- method: "GET"
154
- }).then(hasStatusOrThrow(200)).then(res => res.json()).then(json => {
155
- const result = FederationListResponse.safeParse(json);
156
- if (!result.success) {
157
- throw new FederationListParseError(`Invalid federation list format received from ${federationListEndpoint}. Error: ${result.error.message}`, {
158
- url: federationListEndpoint,
159
- parseError: result.error.toString()
160
- });
161
- }
162
- return result.data;
163
- });
164
- }
165
-
166
- /**
167
- * Build a not-verified trust chain for a given Relying Party (RP) entity.
168
- *
169
- * @param relyingPartyEntityBaseUrl The base URL of the RP entity
170
- * @param trustAnchorKey The public key of the Trust Anchor (TA) entity
171
- * @param appFetch An optional instance of the http client to be used.
172
- * @returns A list of signed tokens that represent the trust chain, in the order of the chain (from the RP to the Trust Anchor)
173
- * @throws {FederationError} When an element of the chain fails to parse or other build steps fail.
174
- */
175
- export async function buildTrustChain(relyingPartyEntityBaseUrl, trustAnchorKey) {
176
- let appFetch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : fetch;
177
- // 1: Recursively gather the trust chain from the RP up to the Trust Anchor
178
- const trustChain = await gatherTrustChain(relyingPartyEntityBaseUrl, appFetch);
179
-
180
- // 2: Trust Anchor signature verification
181
- const trustAnchorJwt = trustChain[trustChain.length - 1];
182
- if (!trustAnchorJwt) {
183
- throw new BuildTrustChainError("Cannot verify trust anchor: missing entity configuration in gathered chain.", {
184
- relyingPartyUrl: relyingPartyEntityBaseUrl
185
- });
186
- }
187
- if (!trustAnchorKey.kid) {
188
- throw new TrustAnchorKidMissingError();
189
- }
190
- await verify(trustAnchorJwt, trustAnchorKey.kid, [trustAnchorKey]);
191
-
192
- // 3: Check the federation list
193
- const trustAnchorConfig = EntityConfiguration.parse(decode(trustAnchorJwt));
194
- const federationListEndpoint = trustAnchorConfig.payload.metadata.federation_entity.federation_list_endpoint;
195
- if (federationListEndpoint) {
196
- const federationList = await getFederationList(federationListEndpoint, {
197
- appFetch
198
- });
199
- if (!federationList.includes(relyingPartyEntityBaseUrl)) {
200
- throw new RelyingPartyNotAuthorizedError("Relying Party entity base URL is not authorized by the Trust Anchor's federation list.", {
201
- relyingPartyUrl: relyingPartyEntityBaseUrl,
202
- federationListEndpoint
203
- });
204
- }
205
- }
206
- return trustChain;
207
- }
208
-
209
- /**
210
- * Recursively gather the trust chain for an entity and all its superiors.
211
- * @param entityBaseUrl The base URL of the entity for which to gather the chain.
212
- * @param appFetch An optional instance of the http client to be used.
213
- * @param isLeaf Whether the current entity is the leaf of the chain.
214
- * @returns A full ordered list of JWTs (ECs and ESs) forming the trust chain.
215
- * @throws {FederationError} If any of the fetched documents fail to parse or other errors occur during the gathering process.
216
- */
217
- async function gatherTrustChain(entityBaseUrl, appFetch) {
218
- let isLeaf = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
219
- const chain = [];
220
-
221
- // Fetch self-signed EC (only needed for the leaf)
222
- const entityECJwt = await getSignedEntityConfiguration(entityBaseUrl, {
223
- appFetch
224
- });
225
- const entityEC = EntityConfiguration.parse(decode(entityECJwt));
226
- if (isLeaf) {
227
- // Only push EC for the leaf
228
- chain.push(entityECJwt);
229
- }
230
-
231
- // Find authority_hints (parent, if any)
232
- const authorityHints = entityEC.payload.authority_hints ?? [];
233
- if (authorityHints.length === 0) {
234
- // This is the Trust Anchor (no parent)
235
- if (!isLeaf) {
236
- chain.push(entityECJwt);
237
- }
238
- return chain;
239
- }
240
- const parentEntityBaseUrl = authorityHints[0];
241
-
242
- // Fetch parent EC
243
- const parentECJwt = await getSignedEntityConfiguration(parentEntityBaseUrl, {
244
- appFetch
245
- });
246
- const parentEC = EntityConfiguration.parse(decode(parentECJwt));
247
-
248
- // Fetch ES
249
- const federationFetchEndpoint = parentEC.payload.metadata.federation_entity.federation_fetch_endpoint;
250
- if (!federationFetchEndpoint) {
251
- throw new MissingFederationFetchEndpointError(`Missing federation_fetch_endpoint in parent's (${parentEntityBaseUrl}) configuration when gathering chain for ${entityBaseUrl}.`, {
252
- entityBaseUrl,
253
- missingInEntityUrl: parentEntityBaseUrl
254
- });
255
- }
256
- const entityStatementJwt = await getSignedEntityStatement(federationFetchEndpoint, entityBaseUrl, {
257
- appFetch
258
- });
259
- // Validate the ES
260
- EntityStatement.parse(decode(entityStatementJwt));
261
-
262
- // Push this ES into the chain
263
- chain.push(entityStatementJwt);
264
-
265
- // Recurse into the parent
266
- const parentChain = await gatherTrustChain(parentEntityBaseUrl, appFetch, false);
267
- return chain.concat(parentChain);
268
- }
1
+ import * as Build from "./build-chain";
2
+ import * as Verify from "./verify-chain";
3
+ import * as Errors from "./errors";
4
+ import * as Types from "./types";
5
+ export { Build, Verify, Errors, Types };
269
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["decode","verify","decodeJwt","CredentialIssuerEntityConfiguration","EntityConfiguration","EntityStatement","FederationListResponse","RelyingPartyEntityConfiguration","TrustAnchorEntityConfiguration","WalletProviderEntityConfiguration","renewTrustChain","validateTrustChain","hasStatusOrThrow","BuildTrustChainError","FederationListParseError","MissingFederationFetchEndpointError","RelyingPartyNotAuthorizedError","TrustAnchorKidMissingError","verifyTrustChain","trustAnchorEntity","chain","x509Options","arguments","length","undefined","connectTimeout","readTimeout","requireCrl","appFetch","fetch","renewOnFail","error","renewedChain","getSignedEntityConfiguration","entityBaseUrl","wellKnownUrl","method","then","res","text","fetchAndParseEntityConfiguration","schema","responseText","responseJwt","parse","header","protectedHeader","payload","getWalletProviderEntityConfiguration","options","getCredentialIssuerEntityConfiguration","getTrustAnchorEntityConfiguration","getRelyingPartyEntityConfiguration","getEntityConfiguration","getEntityStatement","accreditationBodyBaseUrl","subordinatedEntityBaseUrl","getSignedEntityStatement","federationFetchEndpoint","url","URL","searchParams","set","toString","getFederationList","federationListEndpoint","json","result","safeParse","success","message","parseError","data","buildTrustChain","relyingPartyEntityBaseUrl","trustAnchorKey","trustChain","gatherTrustChain","trustAnchorJwt","relyingPartyUrl","kid","trustAnchorConfig","metadata","federation_entity","federation_list_endpoint","federationList","includes","isLeaf","entityECJwt","entityEC","push","authorityHints","authority_hints","parentEntityBaseUrl","parentECJwt","parentEC","federation_fetch_endpoint","missingInEntityUrl","entityStatementJwt","parentChain","concat"],"sourceRoot":"../../../src","sources":["trust/index.ts"],"mappings":"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"}
1
+ {"version":3,"names":["Build","Verify","Errors","Types"],"sourceRoot":"../../../src","sources":["trust/index.ts"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,eAAe;AACtC,OAAO,KAAKC,MAAM,MAAM,gBAAgB;AACxC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,KAAK,MAAM,SAAS;AAEhC,SAASH,KAAK,EAAEC,MAAM,EAAEC,MAAM,EAAEC,KAAK"}
@@ -34,13 +34,10 @@ const CredentialIssuerDisplayMetadata = z.object({
34
34
  name: z.string(),
35
35
  locale: z.string()
36
36
  });
37
- const ClaimsMetadata = z.record(z.object({
38
- value_type: z.string(),
39
- display: z.array(z.object({
40
- name: z.string(),
41
- locale: z.string()
42
- }))
43
- }));
37
+ const ClaimsMetadata = z.object({
38
+ path: z.array(z.string()),
39
+ display: z.array(CredentialDisplayMetadata)
40
+ });
44
41
  const IssuanceErrorSupported = z.object({
45
42
  display: z.array(z.object({
46
43
  title: z.string(),
@@ -51,16 +48,21 @@ const IssuanceErrorSupported = z.object({
51
48
 
52
49
  // Metadata for a credential which is supported by an Issuer
53
50
 
54
- const SupportedCredentialMetadata = z.object({
55
- format: z.union([z.literal("vc+sd-jwt"), z.literal("vc+mdoc-cbor")]),
51
+ const SupportedCredentialMetadata = z.intersection(z.discriminatedUnion("format", [z.object({
52
+ format: z.literal("dc+sd-jwt"),
53
+ vct: z.string()
54
+ }), z.object({
55
+ format: z.literal("mso_mdoc"),
56
+ doctype: z.string()
57
+ })]), z.object({
56
58
  scope: z.string(),
57
59
  display: z.array(CredentialDisplayMetadata),
58
- claims: ClaimsMetadata,
60
+ claims: z.array(ClaimsMetadata),
59
61
  cryptographic_binding_methods_supported: z.array(z.string()),
60
62
  credential_signing_alg_values_supported: z.array(z.string()),
61
63
  authentic_source: z.string().optional(),
62
64
  issuance_errors_supported: z.record(IssuanceErrorSupported).optional()
63
- });
65
+ }));
64
66
  export const EntityStatement = z.object({
65
67
  header: z.object({
66
68
  typ: z.literal("entity-statement+jwt"),
@@ -136,13 +138,16 @@ export const CredentialIssuerEntityConfiguration = BaseEntityConfiguration.and(z
136
138
  openid_credential_issuer: z.object({
137
139
  credential_issuer: z.string(),
138
140
  credential_endpoint: z.string(),
139
- revocation_endpoint: z.string(),
141
+ revocation_endpoint: z.string().optional(),
142
+ nonce_endpoint: z.string(),
140
143
  status_attestation_endpoint: z.string(),
141
144
  display: z.array(CredentialIssuerDisplayMetadata),
142
145
  credential_configurations_supported: z.record(SupportedCredentialMetadata),
143
146
  jwks: z.object({
144
147
  keys: z.array(JWK)
145
- })
148
+ }),
149
+ trust_frameworks_supported: z.array(z.string()),
150
+ evidence_supported: z.array(z.string())
146
151
  }),
147
152
  oauth_authorization_server: z.object({
148
153
  authorization_endpoint: z.string(),
@@ -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","record","value_type","display","IssuanceErrorSupported","title","description","SupportedCredentialMetadata","format","union","literal","scope","claims","cryptographic_binding_methods_supported","credential_signing_alg_values_supported","authentic_source","issuance_errors_supported","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","status_attestation_endpoint","credential_configurations_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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"}
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,9 +1,9 @@
1
1
  import { EntityConfiguration, EntityStatement, TrustAnchorEntityConfiguration } from "./types";
2
2
  import * as z from "zod";
3
- import { getSignedEntityConfiguration, getSignedEntityStatement } from ".";
4
3
  import { decode, getTrustAnchorX509Certificate, verify } from "./utils";
5
4
  import { FederationError, MissingFederationFetchEndpointError, MissingX509CertsError, TrustChainEmptyError, TrustChainRenewalError, TrustChainTokenMissingError, X509ValidationError } from "./errors";
6
5
  import { verifyCertificateChain } from "@pagopa/io-react-native-crypto";
6
+ import { getSignedEntityConfiguration, getSignedEntityStatement } from "./build-chain";
7
7
 
8
8
  // The first element of the chain is supposed to be the Entity Configuration for the document issuer
9
9
  const FirstElementShape = EntityConfiguration;
@@ -142,4 +142,38 @@ export async function renewTrustChain(chain) {
142
142
  });
143
143
  }));
144
144
  }
145
- //# sourceMappingURL=chain.js.map
145
+
146
+ /**
147
+ * Verify a given trust chain is actually valid.
148
+ * It can handle fast chain renewal, which means we try to fetch a fresh version of each statement.
149
+ *
150
+ * @param trustAnchorEntity The entity configuration of the known trust anchor
151
+ * @param chain The chain of statements to be validated
152
+ * @param x509Options Options for the verification process
153
+ * @param appFetch (optional) fetch api implementation
154
+ * @param renewOnFail Whether to attempt to renew the trust chain if the initial validation fails
155
+ * @returns The result of the chain validation
156
+ * @throws {FederationError} If the chain is not valid
157
+ */
158
+ export async function verifyTrustChain(trustAnchorEntity, chain) {
159
+ let x509Options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
160
+ connectTimeout: 10000,
161
+ readTimeout: 10000,
162
+ requireCrl: true
163
+ };
164
+ let {
165
+ appFetch = fetch,
166
+ renewOnFail = true
167
+ } = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
168
+ try {
169
+ return validateTrustChain(trustAnchorEntity, chain, x509Options);
170
+ } catch (error) {
171
+ if (renewOnFail) {
172
+ const renewedChain = await renewTrustChain(chain, appFetch);
173
+ return validateTrustChain(trustAnchorEntity, renewedChain, x509Options);
174
+ } else {
175
+ throw error;
176
+ }
177
+ }
178
+ }
179
+ //# sourceMappingURL=verify-chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EntityConfiguration","EntityStatement","TrustAnchorEntityConfiguration","z","decode","getTrustAnchorX509Certificate","verify","FederationError","MissingFederationFetchEndpointError","MissingX509CertsError","TrustChainEmptyError","TrustChainRenewalError","TrustChainTokenMissingError","X509ValidationError","verifyCertificateChain","getSignedEntityConfiguration","getSignedEntityStatement","FirstElementShape","MiddleElementShape","LastElementShape","union","validateTrustChain","trustAnchorEntity","chain","x509Options","length","selectTokenShape","elementIndex","selectKid","currentIndex","token","index","shape","parse","header","kid","selectKeys","payload","jwks","keys","nextIndex","nextToken","x509TrustAnchorCertBase64","validationPromises","map","tokenString","i","kidFromTokenHeader","signerJwks","parsedToken","jwkUsedForVerification","find","k","tokenIndex","x5c","certChainBase64","at","slice","x509ValidationResult","isValid","validationStatus","errorMessage","x509ValidationStatus","x509ErrorMessage","Promise","all","renewTrustChain","appFetch","arguments","undefined","fetch","decoded","entityStatementResult","safeParse","entityConfigurationResult","success","data","iss","entityStatement","parentBaseUrl","parentECJwt","parentEC","federationFetchEndpoint","metadata","federation_entity","federation_fetch_endpoint","sub","entityBaseUrl","missingInEntityUrl","originalChain","verifyTrustChain","connectTimeout","readTimeout","requireCrl","renewOnFail","error","renewedChain"],"sourceRoot":"../../../src","sources":["trust/verify-chain.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { IssuerResponseErrorCodes, WalletProviderResponseErrorCodes, RelyingPartyResponseErrorCodes } from "./error-codes";
1
+ import { IssuerResponseErrorCodes, RelyingPartyResponseErrorCodes, WalletProviderResponseErrorCodes } from "./error-codes";
2
2
  export { IssuerResponseErrorCodes, WalletProviderResponseErrorCodes, RelyingPartyResponseErrorCodes };
3
3
 
4
4
  // An error reason that supports both a string and a generic JSON object
@@ -1 +1 @@
1
- {"version":3,"names":["IssuerResponseErrorCodes","WalletProviderResponseErrorCodes","RelyingPartyResponseErrorCodes","serializeAttrs","attrs","Object","entries","filter","_ref","v","undefined","map","_ref2","k","Array","isArray","join","JSON","stringify","_","IoWalletError","Error","code","constructor","message","name","ValidationFailed","_ref3","claim","reason","UnexpectedStatusCodeError","_ref4","statusCode","IssuerResponseError","params","IssuerGenericError","WalletProviderResponseError","WalletProviderGenericError","RelyingPartyResponseError","RelyingPartyGenericError","extractErrorMessageFromIssuerConf","errorCode","_ref5","issuerConf","credentialType","credentialConfiguration","openid_credential_issuer","credential_configurations_supported","issuance_errors_supported","localesList","display","reduce","acc","_ref6","locale","rest","makeErrorTypeGuard","ErrorClass","error","isIssuerResponseError","isWalletProviderResponseError","isRelyingPartyResponseError","ResponseErrorBuilder","errorCases","handle","status","buildFrom","originalError"],"sourceRoot":"../../../src","sources":["utils/errors.ts"],"mappings":"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"}
1
+ {"version":3,"names":["IssuerResponseErrorCodes","RelyingPartyResponseErrorCodes","WalletProviderResponseErrorCodes","serializeAttrs","attrs","Object","entries","filter","_ref","v","undefined","map","_ref2","k","Array","isArray","join","JSON","stringify","_","IoWalletError","Error","code","constructor","message","name","ValidationFailed","_ref3","claim","reason","UnexpectedStatusCodeError","_ref4","statusCode","IssuerResponseError","params","IssuerGenericError","WalletProviderResponseError","WalletProviderGenericError","RelyingPartyResponseError","RelyingPartyGenericError","extractErrorMessageFromIssuerConf","errorCode","_ref5","issuerConf","credentialType","credentialConfiguration","openid_credential_issuer","credential_configurations_supported","issuance_errors_supported","localesList","display","reduce","acc","_ref6","locale","rest","makeErrorTypeGuard","ErrorClass","error","isIssuerResponseError","isWalletProviderResponseError","isRelyingPartyResponseError","ResponseErrorBuilder","errorCases","handle","status","buildFrom","originalError"],"sourceRoot":"../../../src","sources":["utils/errors.ts"],"mappings":"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"}
@@ -7,12 +7,14 @@ import { createPopToken } from "./pop";
7
7
  import { IssuerResponseError } from "./errors";
8
8
  import { LogLevel, Logger } from "./logging";
9
9
  export const AuthorizationDetail = z.object({
10
- credential_configuration_id: z.string(),
11
- format: z.union([z.literal("vc+sd-jwt"), z.literal("vc+mdoc-cbor")]),
12
- type: z.literal("openid_credential")
10
+ type: z.literal("openid_credential"),
11
+ credential_configuration_id: z.string()
13
12
  });
14
13
  export const AuthorizationDetails = z.array(AuthorizationDetail);
15
-
14
+ export const ParResponse = z.object({
15
+ request_uri: z.string(),
16
+ expires_in: z.number()
17
+ });
16
18
  /**
17
19
  * Make a PAR request to the issuer and return the response url
18
20
  */
@@ -21,10 +23,17 @@ export const makeParRequest = _ref => {
21
23
  wiaCryptoContext,
22
24
  appFetch
23
25
  } = _ref;
24
- return async (clientId, codeVerifier, redirectUri, responseMode, parEndpoint, walletInstanceAttestation, authorizationDetails, assertionType) => {
26
+ return async (parEndpoint, walletInstanceAttestation, _ref2) => {
27
+ let {
28
+ codeVerifier,
29
+ responseMode,
30
+ clientId,
31
+ redirectUri,
32
+ authorizationDetails,
33
+ scope,
34
+ aud
35
+ } = _ref2;
25
36
  const wiaPublicKey = await wiaCryptoContext.getPublicKey();
26
- const parUrl = new URL(parEndpoint);
27
- const aud = `${parUrl.protocol}//${parUrl.hostname}`;
28
37
  const iss = WalletInstanceAttestation.decode(walletInstanceAttestation).payload.cnf.jwk.kid;
29
38
  const signedWiaPoP = await createPopToken({
30
39
  jti: `${uuidv4()}`,
@@ -43,7 +52,7 @@ export const makeParRequest = _ref => {
43
52
  with the it will ship the Wallet Instance Attestation.
44
53
  The key is matched by its kid */
45
54
  const signedJwtForPar = await new SignJWT(wiaCryptoContext).setProtectedHeader({
46
- typ: "jwk",
55
+ typ: "jwt",
47
56
  kid: wiaPublicKey.kid
48
57
  }).setPayload({
49
58
  jti: `${uuidv4()}`,
@@ -55,31 +64,31 @@ export const makeParRequest = _ref => {
55
64
  state: generateRandomAlphaNumericString(32),
56
65
  code_challenge: codeChallenge,
57
66
  code_challenge_method: codeChallengeMethod,
58
- authorization_details: authorizationDetails,
59
67
  redirect_uri: redirectUri,
60
- client_assertion_type: assertionType,
61
- client_assertion: walletInstanceAttestation + "~" + signedWiaPoP
62
- }).setIssuedAt() //iat is set to now
68
+ ...(authorizationDetails && {
69
+ authorization_details: authorizationDetails
70
+ }),
71
+ ...(scope && {
72
+ scope
73
+ })
74
+ }).setIssuedAt() // iat is set to now
63
75
  .setExpirationTime("5min").sign();
64
76
 
65
77
  /** The request body for the Pushed Authorization Request */
66
78
  var formBody = new URLSearchParams({
67
- response_type: "code",
68
79
  client_id: clientId,
69
- code_challenge: codeChallenge,
70
- code_challenge_method: "S256",
71
- request: signedJwtForPar,
72
- client_assertion_type: assertionType,
73
- client_assertion: walletInstanceAttestation + "~" + signedWiaPoP
80
+ request: signedJwtForPar
74
81
  });
75
82
  Logger.log(LogLevel.DEBUG, `Sending to PAR endpoint ${parEndpoint}: ${formBody}`);
76
83
  return await appFetch(parEndpoint, {
77
84
  method: "POST",
78
85
  headers: {
79
- "Content-Type": "application/x-www-form-urlencoded"
86
+ "Content-Type": "application/x-www-form-urlencoded",
87
+ "OAuth-Client-Attestation": walletInstanceAttestation,
88
+ "OAuth-Client-Attestation-PoP": signedWiaPoP
80
89
  },
81
90
  body: formBody.toString()
82
- }).then(hasStatusOrThrow(201, IssuerResponseError)).then(res => res.json()).then(result => result.request_uri);
91
+ }).then(hasStatusOrThrow(201, IssuerResponseError)).then(res => res.json()).then(ParResponse.parse).then(result => result.request_uri);
83
92
  };
84
93
  };
85
94
  //# sourceMappingURL=par.js.map