@pagopa/io-react-native-wallet 3.4.4 → 3.5.1
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.
- package/lib/commonjs/credential/issuance/README.md +10 -5
- package/lib/commonjs/credential/issuance/v1.0.0/03-complete-user-authorization.js +2 -3
- package/lib/commonjs/credential/issuance/v1.0.0/03-complete-user-authorization.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/03-complete-user-authorization.js +7 -8
- package/lib/commonjs/credential/issuance/v1.3.3/03-complete-user-authorization.js.map +1 -1
- package/lib/commonjs/credential/presentation/api/types.js.map +1 -1
- package/lib/commonjs/credential/status/README.md +15 -13
- package/lib/commonjs/credential/status/api/index.js.map +1 -1
- package/lib/commonjs/credential/status/api/types.js +27 -0
- package/lib/commonjs/credential/status/api/types.js.map +1 -1
- package/lib/commonjs/credential/status/v1.3.3/01-status-list.js +26 -22
- package/lib/commonjs/credential/status/v1.3.3/01-status-list.js.map +1 -1
- package/lib/commonjs/credential/status/v1.3.3/02-verify-and-parse-status-list.js +4 -25
- package/lib/commonjs/credential/status/v1.3.3/02-verify-and-parse-status-list.js.map +1 -1
- package/lib/commonjs/credential/status/v1.3.3/03-get-status.js +34 -0
- package/lib/commonjs/credential/status/v1.3.3/03-get-status.js.map +1 -0
- package/lib/commonjs/credential/status/v1.3.3/index.js +4 -1
- package/lib/commonjs/credential/status/v1.3.3/index.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/common/get-status-l10n-ids.js +1 -1
- package/lib/module/credential/issuance/README.md +10 -5
- package/lib/module/credential/issuance/v1.0.0/03-complete-user-authorization.js +2 -3
- package/lib/module/credential/issuance/v1.0.0/03-complete-user-authorization.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/03-complete-user-authorization.js +7 -8
- package/lib/module/credential/issuance/v1.3.3/03-complete-user-authorization.js.map +1 -1
- package/lib/module/credential/presentation/api/types.js.map +1 -1
- package/lib/module/credential/status/README.md +15 -13
- package/lib/module/credential/status/api/index.js +3 -1
- package/lib/module/credential/status/api/index.js.map +1 -1
- package/lib/module/credential/status/api/types.js +20 -0
- package/lib/module/credential/status/api/types.js.map +1 -1
- package/lib/module/credential/status/v1.3.3/01-status-list.js +24 -21
- package/lib/module/credential/status/v1.3.3/01-status-list.js.map +1 -1
- package/lib/module/credential/status/v1.3.3/02-verify-and-parse-status-list.js +5 -26
- package/lib/module/credential/status/v1.3.3/02-verify-and-parse-status-list.js.map +1 -1
- package/lib/module/credential/status/v1.3.3/03-get-status.js +27 -0
- package/lib/module/credential/status/v1.3.3/03-get-status.js.map +1 -0
- package/lib/module/credential/status/v1.3.3/index.js +5 -2
- package/lib/module/credential/status/v1.3.3/index.js.map +1 -1
- package/lib/module/credentials-catalogue/common/get-status-l10n-ids.js +1 -1
- package/lib/typescript/credential/issuance/api/03-complete-user-authorization.d.ts +9 -6
- package/lib/typescript/credential/issuance/api/03-complete-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/api/index.d.ts +1 -0
- package/lib/typescript/credential/issuance/api/index.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.0.0/03-complete-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/03-complete-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/mappers.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/api/06-evaluate-dcql-query.d.ts +2 -3
- package/lib/typescript/credential/presentation/api/06-evaluate-dcql-query.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/api/types.d.ts +2 -0
- package/lib/typescript/credential/presentation/api/types.d.ts.map +1 -1
- package/lib/typescript/credential/status/api/index.d.ts +3 -1
- package/lib/typescript/credential/status/api/index.d.ts.map +1 -1
- package/lib/typescript/credential/status/api/status-assertion.d.ts +1 -1
- package/lib/typescript/credential/status/api/status-list.d.ts +27 -9
- package/lib/typescript/credential/status/api/status-list.d.ts.map +1 -1
- package/lib/typescript/credential/status/api/types.d.ts +20 -0
- package/lib/typescript/credential/status/api/types.d.ts.map +1 -1
- package/lib/typescript/credential/status/v1.3.3/01-status-list.d.ts +1 -0
- package/lib/typescript/credential/status/v1.3.3/01-status-list.d.ts.map +1 -1
- package/lib/typescript/credential/status/v1.3.3/02-verify-and-parse-status-list.d.ts.map +1 -1
- package/lib/typescript/credential/status/v1.3.3/03-get-status.d.ts +3 -0
- package/lib/typescript/credential/status/v1.3.3/03-get-status.d.ts.map +1 -0
- package/lib/typescript/credential/status/v1.3.3/index.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/api/index.d.ts +1 -1
- package/lib/typescript/credentials-catalogue/common/get-status-l10n-ids.d.ts +1 -1
- package/package.json +6 -6
- package/src/credential/issuance/README.md +10 -5
- package/src/credential/issuance/api/03-complete-user-authorization.ts +10 -6
- package/src/credential/issuance/api/index.ts +1 -0
- package/src/credential/issuance/v1.0.0/03-complete-user-authorization.ts +2 -8
- package/src/credential/issuance/v1.3.3/03-complete-user-authorization.ts +21 -19
- package/src/credential/presentation/api/06-evaluate-dcql-query.ts +2 -2
- package/src/credential/presentation/api/types.ts +3 -0
- package/src/credential/status/README.md +15 -13
- package/src/credential/status/api/index.ts +3 -1
- package/src/credential/status/api/status-assertion.ts +1 -1
- package/src/credential/status/api/status-list.ts +35 -12
- package/src/credential/status/api/types.ts +27 -0
- package/src/credential/status/v1.3.3/01-status-list.ts +30 -18
- package/src/credential/status/v1.3.3/02-verify-and-parse-status-list.ts +5 -27
- package/src/credential/status/v1.3.3/03-get-status.ts +40 -0
- package/src/credential/status/v1.3.3/index.ts +4 -1
- package/src/credentials-catalogue/api/index.ts +1 -1
- package/src/credentials-catalogue/common/get-status-l10n-ids.ts +1 -1
|
@@ -90,13 +90,13 @@ This process is initiated by the Authorization Server responding to the primary
|
|
|
90
90
|
|
|
91
91
|
Complete documentation for the MRTD PoP flow can be found here: [mrtd-pop](./mrtd-pop/README.md)
|
|
92
92
|
|
|
93
|
-
## Authentication through credentials (Query
|
|
93
|
+
## Authentication through credentials (Query Mode) - v1.3
|
|
94
94
|
|
|
95
|
-
When the credential is different than an eID, the flow requires the user to present other credentials in order to obtain the requested one. Starting from IT-Wallet specifications v1.3, the EAA issuance flow uses the query mode to complete the user authorization. This is done through the `
|
|
95
|
+
When the credential is different than an eID, the flow requires the user to present other credentials in order to obtain the requested one. Starting from IT-Wallet specifications v1.3, the EAA issuance flow uses the query mode to complete the user authorization. This is done through `getRequestedCredentialToBePresented`, followed by evaluating the returned `dcql_query` with `RemotePresentation.evaluateDcqlQuery`, and then by completing the authorization with `completeEaaUserAuthorizationWithQueryMode`.
|
|
96
96
|
|
|
97
97
|
## Authentication through credentials (Form Post JWT Mode) - v1.0
|
|
98
98
|
|
|
99
|
-
When the credential is different than an eID, the flow requires the user to present other credentials in order to obtain the requested one. This is done through the `getRequestedCredentialToBePresented
|
|
99
|
+
When the credential is different than an eID, the flow requires the user to present other credentials in order to obtain the requested one. This is done through the `getRequestedCredentialToBePresented`, followed by evaluating the returned `dcql_query` with `RemotePresentation.evaluateDcqlQuery`, and then by completing the authorization with `completeUserAuthorizationWithFormPostJwtMode` or `completeEaaUserAuthorizationWithQueryMode`.
|
|
100
100
|
|
|
101
101
|
The expected result from the authentication process is in `form_post.jwt` format as defined in [JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)](https://openid.net/specs/oauth-v2-jarm.html#name-response-mode-form_postjwt).
|
|
102
102
|
|
|
@@ -188,6 +188,11 @@ const requestObject =
|
|
|
188
188
|
appFetch
|
|
189
189
|
);
|
|
190
190
|
|
|
191
|
+
const evaluatedDcqlQuery = await wallet.RemotePresentation.evaluateDcqlQuery(
|
|
192
|
+
requestObject.dcql_query,
|
|
193
|
+
[[pid.keyTag, pid.credential]]
|
|
194
|
+
);
|
|
195
|
+
|
|
191
196
|
let code: string;
|
|
192
197
|
if (responseMode === "form_post.jwt") {
|
|
193
198
|
// Complete the user authorization via form_post.jwt mode
|
|
@@ -195,7 +200,7 @@ if (responseMode === "form_post.jwt") {
|
|
|
195
200
|
await wallet.CredentialIssuance.completeUserAuthorizationWithFormPostJwtMode(
|
|
196
201
|
requestObject,
|
|
197
202
|
issuerConf,
|
|
198
|
-
|
|
203
|
+
evaluatedDcqlQuery,
|
|
199
204
|
{ wiaCryptoContext, appFetch }
|
|
200
205
|
));
|
|
201
206
|
} else {
|
|
@@ -204,7 +209,7 @@ if (responseMode === "form_post.jwt") {
|
|
|
204
209
|
await wallet.CredentialIssuance.completeEaaUserAuthorizationWithQueryMode(
|
|
205
210
|
requestObject,
|
|
206
211
|
issuerConf,
|
|
207
|
-
|
|
212
|
+
evaluatedDcqlQuery,
|
|
208
213
|
REDIRECT_URI,
|
|
209
214
|
{ appFetch }
|
|
210
215
|
));
|
|
@@ -83,19 +83,18 @@ const getRequestedCredentialToBePresented = async function (issuerRequestUri, cl
|
|
|
83
83
|
return requestObject.data.payload;
|
|
84
84
|
};
|
|
85
85
|
exports.getRequestedCredentialToBePresented = getRequestedCredentialToBePresented;
|
|
86
|
-
const completeUserAuthorizationWithFormPostJwtMode = async (requestObject, _issuerConfig,
|
|
86
|
+
const completeUserAuthorizationWithFormPostJwtMode = async (requestObject, _issuerConfig, evaluatedDcqlQuery, _ref) => {
|
|
87
87
|
let {
|
|
88
88
|
wiaCryptoContext,
|
|
89
89
|
appFetch = fetch
|
|
90
90
|
} = _ref;
|
|
91
91
|
_logging.Logger.log(_logging.LogLevel.DEBUG, `The requeste credential is not a PersonIdentificationData, completing the user authorization with form_post.jwt mode`);
|
|
92
|
-
const dcqlQueryResult = await _v.RemotePresentation.evaluateDcqlQuery(requestObject.dcql_query, [pid]);
|
|
93
92
|
const authRequestObject = {
|
|
94
93
|
nonce: requestObject.nonce,
|
|
95
94
|
clientId: requestObject.client_id,
|
|
96
95
|
responseUri: requestObject.response_uri
|
|
97
96
|
};
|
|
98
|
-
const remotePresentation = await _v.RemotePresentation.prepareRemotePresentations(
|
|
97
|
+
const remotePresentation = await _v.RemotePresentation.prepareRemotePresentations(evaluatedDcqlQuery, authRequestObject);
|
|
99
98
|
const authzResponsePayload = await createAuthzResponsePayload({
|
|
100
99
|
state: requestObject.state,
|
|
101
100
|
remotePresentation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_auth","require","_misc","_parseUrl","_interopRequireDefault","_errors","_ioReactNativeJwt","_types","_decoder","_errors2","_logging","_types2","_v","obj","__esModule","default","continueUserAuthorizationWithMRTDPoPChallenge","authRedirectUrl","Logger","log","LogLevel","DEBUG","query","parseUrl","authResParsed","AuthorizationChallengeResultShape","safeParse","success","authErr","AuthorizationErrorShape","ERROR","error","message","AuthorizationError","JSON","stringify","AuthorizationIdpError","data","error_description","exports","buildAuthorizationUrl","issuerRequestUri","clientId","issuerConf","idpHint","authzRequestEndpoint","authorization_endpoint","params","URLSearchParams","client_id","request_uri","append","authUrl","completePidUserAuthorizationWithQueryMode","parseAuthorizationResponse","completeEaaUserAuthorizationWithQueryMode","UnimplementedFeatureError","getRequestedCredentialToBePresented","appFetch","arguments","length","undefined","fetch","toString","requestObject","method","then","hasStatusOrThrow","IssuerResponseError","res","text","jws","decode","reqObj","RawRequestObject","header","protectedHeader","payload","ValidationFailed","reason","completeUserAuthorizationWithFormPostJwtMode","_issuerConfig","
|
|
1
|
+
{"version":3,"names":["_auth","require","_misc","_parseUrl","_interopRequireDefault","_errors","_ioReactNativeJwt","_types","_decoder","_errors2","_logging","_types2","_v","obj","__esModule","default","continueUserAuthorizationWithMRTDPoPChallenge","authRedirectUrl","Logger","log","LogLevel","DEBUG","query","parseUrl","authResParsed","AuthorizationChallengeResultShape","safeParse","success","authErr","AuthorizationErrorShape","ERROR","error","message","AuthorizationError","JSON","stringify","AuthorizationIdpError","data","error_description","exports","buildAuthorizationUrl","issuerRequestUri","clientId","issuerConf","idpHint","authzRequestEndpoint","authorization_endpoint","params","URLSearchParams","client_id","request_uri","append","authUrl","completePidUserAuthorizationWithQueryMode","parseAuthorizationResponse","completeEaaUserAuthorizationWithQueryMode","UnimplementedFeatureError","getRequestedCredentialToBePresented","appFetch","arguments","length","undefined","fetch","toString","requestObject","method","then","hasStatusOrThrow","IssuerResponseError","res","text","jws","decode","reqObj","RawRequestObject","header","protectedHeader","payload","ValidationFailed","reason","completeUserAuthorizationWithFormPostJwtMode","_issuerConfig","evaluatedDcqlQuery","_ref","wiaCryptoContext","authRequestObject","nonce","responseUri","response_uri","remotePresentation","RemotePresentationFlow","prepareRemotePresentations","authzResponsePayload","createAuthzResponsePayload","state","body","response","resUriRes","headers","reqUri","json","ResponseUriResultShape","redirect_uri","getJwtFromFormPost","cbRes","decodedJwt","authRes","AuthorizationResultShape","_ref2","kid","getPublicKey","SignJWT","setProtectedHeader","typ","setPayload","vp_token","presentations","reduce","_ref3","credentialId","vpToken","setIssuedAt","setExpirationTime","sign"],"sourceRoot":"../../../../../src","sources":["credential/issuance/v1.0.0/03-complete-user-authorization.ts"],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ const getRequestedCredentialToBePresented = async function (issuerRequestUri, cl
|
|
|
79
79
|
|
|
80
80
|
// NOTE: this function is not used in the 1.3 issuance flow. It may be removed in the future.
|
|
81
81
|
exports.getRequestedCredentialToBePresented = getRequestedCredentialToBePresented;
|
|
82
|
-
const completeUserAuthorizationWithFormPostJwtMode = async (requestObject, issuerConfig,
|
|
82
|
+
const completeUserAuthorizationWithFormPostJwtMode = async (requestObject, issuerConfig, evaluatedDcqlQuery, _ref) => {
|
|
83
83
|
let {
|
|
84
84
|
appFetch = fetch
|
|
85
85
|
} = _ref;
|
|
@@ -87,7 +87,7 @@ const completeUserAuthorizationWithFormPostJwtMode = async (requestObject, issue
|
|
|
87
87
|
const authzResponse = await processPidPresentationAndCreateAuthzResponse({
|
|
88
88
|
requestObject,
|
|
89
89
|
issuerConfig,
|
|
90
|
-
|
|
90
|
+
evaluatedDcqlQuery
|
|
91
91
|
});
|
|
92
92
|
_logging.Logger.log(_logging.LogLevel.DEBUG, `Authz response: ${authzResponse}`);
|
|
93
93
|
const issuerSigKey = issuerConfig.keys.find(key => key.use === "sig");
|
|
@@ -113,7 +113,7 @@ const completeUserAuthorizationWithFormPostJwtMode = async (requestObject, issue
|
|
|
113
113
|
});
|
|
114
114
|
};
|
|
115
115
|
exports.completeUserAuthorizationWithFormPostJwtMode = completeUserAuthorizationWithFormPostJwtMode;
|
|
116
|
-
const completeEaaUserAuthorizationWithQueryMode = async function (requestObject, issuerConfig,
|
|
116
|
+
const completeEaaUserAuthorizationWithQueryMode = async function (requestObject, issuerConfig, evaluatedDcqlQuery, clientRedirectUri) {
|
|
117
117
|
let {
|
|
118
118
|
appFetch = fetch,
|
|
119
119
|
fetchFinalRedirectUri
|
|
@@ -122,7 +122,7 @@ const completeEaaUserAuthorizationWithQueryMode = async function (requestObject,
|
|
|
122
122
|
const authzResponse = await processPidPresentationAndCreateAuthzResponse({
|
|
123
123
|
requestObject,
|
|
124
124
|
issuerConfig,
|
|
125
|
-
|
|
125
|
+
evaluatedDcqlQuery
|
|
126
126
|
});
|
|
127
127
|
_logging.Logger.log(_logging.LogLevel.DEBUG, `Authz response: ${JSON.stringify(authzResponse)}`);
|
|
128
128
|
const {
|
|
@@ -187,7 +187,7 @@ const parseAuthorizationResponse = authRes => {
|
|
|
187
187
|
* Utility function to process the DCQL query for PID presentation and to create the authorization response to send to the Issuer.
|
|
188
188
|
* @param params.requestObject - The request object containing the DCQL query
|
|
189
189
|
* @param params.issuerConfig - The Issuer unified configuration
|
|
190
|
-
* @param params.
|
|
190
|
+
* @param params.evaluatedDcqlQuery - Credentials that satisfy the request object's DCQL query
|
|
191
191
|
* @returns The authorization response containing the JARM to be sent to the Issuer
|
|
192
192
|
*/
|
|
193
193
|
exports.parseAuthorizationResponse = parseAuthorizationResponse;
|
|
@@ -195,10 +195,9 @@ const processPidPresentationAndCreateAuthzResponse = async _ref2 => {
|
|
|
195
195
|
let {
|
|
196
196
|
requestObject,
|
|
197
197
|
issuerConfig,
|
|
198
|
-
|
|
198
|
+
evaluatedDcqlQuery
|
|
199
199
|
} = _ref2;
|
|
200
|
-
const
|
|
201
|
-
const remotePresentation = await _v.RemotePresentation.prepareRemotePresentations(dcqlQueryResult, {
|
|
200
|
+
const remotePresentation = await _v.RemotePresentation.prepareRemotePresentations(evaluatedDcqlQuery, {
|
|
202
201
|
clientId: requestObject.client_id,
|
|
203
202
|
nonce: requestObject.nonce,
|
|
204
203
|
responseUri: requestObject.response_uri
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_auth","require","_parseUrl","_interopRequireDefault","_ioWalletOid4vp","_ioWalletOid4vci","_ioWalletOauth","_errors","_logging","_v","_callbacks","_config","_errors2","_mappers","_misc","obj","__esModule","default","continueUserAuthorizationWithMRTDPoPChallenge","authRedirectUrl","Logger","log","LogLevel","DEBUG","parsedChallenge","parseMrtdChallenge","redirectUrl","challenge_info","challengeJwt","err","errorMessage","Error","message","ERROR","AuthorizationError","exports","buildAuthorizationUrl","issuerRequestUri","clientId","issuerConf","idpHint","authzRequestEndpoint","authorization_endpoint","params","URLSearchParams","client_id","request_uri","append","authUrl","completePidUserAuthorizationWithQueryMode","query","parseUrl","parseAuthorizationResponse","getRequestedCredentialToBePresented","appFetch","arguments","length","undefined","fetch","toString","requestObjectJwt","method","then","hasStatusOrThrow","IssuerResponseError","res","text","parsedAuthRequest","parseAuthorizeRequest","config","sdkConfigV1_3","callbacks","verifyJwt","createVerifyJwtFromJwks","keys","mapToRequestObject","completeUserAuthorizationWithFormPostJwtMode","requestObject","issuerConfig","
|
|
1
|
+
{"version":3,"names":["_auth","require","_parseUrl","_interopRequireDefault","_ioWalletOid4vp","_ioWalletOid4vci","_ioWalletOauth","_errors","_logging","_v","_callbacks","_config","_errors2","_mappers","_misc","obj","__esModule","default","continueUserAuthorizationWithMRTDPoPChallenge","authRedirectUrl","Logger","log","LogLevel","DEBUG","parsedChallenge","parseMrtdChallenge","redirectUrl","challenge_info","challengeJwt","err","errorMessage","Error","message","ERROR","AuthorizationError","exports","buildAuthorizationUrl","issuerRequestUri","clientId","issuerConf","idpHint","authzRequestEndpoint","authorization_endpoint","params","URLSearchParams","client_id","request_uri","append","authUrl","completePidUserAuthorizationWithQueryMode","query","parseUrl","parseAuthorizationResponse","getRequestedCredentialToBePresented","appFetch","arguments","length","undefined","fetch","toString","requestObjectJwt","method","then","hasStatusOrThrow","IssuerResponseError","res","text","parsedAuthRequest","parseAuthorizeRequest","config","sdkConfigV1_3","callbacks","verifyJwt","createVerifyJwtFromJwks","keys","mapToRequestObject","completeUserAuthorizationWithFormPostJwtMode","requestObject","issuerConfig","evaluatedDcqlQuery","_ref","authzResponse","processPidPresentationAndCreateAuthzResponse","issuerSigKey","find","key","use","IoWalletError","sendAuthorizationResponseAndExtractCode","authorizationResponseJarm","jarm","responseJwe","partialCallbacks","iss","state","presentationResponseUri","response_uri","signer","alg","publicJwk","completeEaaUserAuthorizationWithQueryMode","clientRedirectUri","fetchFinalRedirectUri","JSON","stringify","redirect_uri","fetchAuthorizationResponse","finalRedirectUri","response","catch","ok","url","startsWith","authRes","authResParsed","AuthorizationResultShape","safeParse","success","authErr","AuthorizationErrorShape","error","AuthorizationIdpError","data","error_description","_ref2","remotePresentation","RemotePresentationFlow","prepareRemotePresentations","nonce","responseUri","vp_token","presentations","reduce","acc","_ref3","credentialId","vpToken","createAuthorizationResponse","sdkConfigV1_4","rpJwks","jwks","encrypted_response_enc_values_supported","encryptJwe","generateRandom"],"sourceRoot":"../../../../../src","sources":["credential/issuance/v1.3.3/03-complete-user-authorization.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["z","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","PresentationParams","object","client_id","string","nonempty","request","optional","request_uri","url","request_uri_method","enum","state","exports","WalletMetadata","authorization_endpoint","client_id_schemes_supported","array","client_id_prefixes_supported","response_types_supported","response_modes_supported","request_object_signing_alg_values_supported","vp_formats_supported","record","RequestObjectWalletCapabilities","wallet_metadata","wallet_nonce","ErrorResponse"],"sourceRoot":"../../../../../src","sources":["credential/presentation/api/types.ts"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAyB,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;
|
|
1
|
+
{"version":3,"names":["z","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","PresentationParams","object","client_id","string","nonempty","request","optional","request_uri","url","request_uri_method","enum","state","exports","WalletMetadata","authorization_endpoint","client_id_schemes_supported","array","client_id_prefixes_supported","response_types_supported","response_modes_supported","request_object_signing_alg_values_supported","vp_formats_supported","record","RequestObjectWalletCapabilities","wallet_metadata","wallet_nonce","ErrorResponse"],"sourceRoot":"../../../../../src","sources":["credential/presentation/api/types.ts"],"mappings":"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"}
|
|
@@ -31,8 +31,10 @@ graph TD;
|
|
|
31
31
|
1[verifyAndParseStatusAssertion]
|
|
32
32
|
2[getStatusList]
|
|
33
33
|
3[verifyAndParseStatusList]
|
|
34
|
+
4[getStatus]
|
|
34
35
|
0 --> 1
|
|
35
36
|
2 --> 3
|
|
37
|
+
3 --> 4
|
|
36
38
|
```
|
|
37
39
|
|
|
38
40
|
## Mapped results
|
|
@@ -104,24 +106,24 @@ const credentialIssuerUrl = "https://issuer.example.com";
|
|
|
104
106
|
|
|
105
107
|
const { issuerConf } = await wallet.CredentialIssuance.evaluateIssuerTrust(credentialIssuerUrl);
|
|
106
108
|
|
|
107
|
-
// Get the status list
|
|
108
|
-
const
|
|
109
|
-
credential,
|
|
110
|
-
|
|
109
|
+
// Get the status list token and credential reference index
|
|
110
|
+
const { statusList: statusListJwt, idx } =
|
|
111
|
+
await wallet.CredentialStatus.statusList.get(credential, format);
|
|
112
|
+
|
|
113
|
+
// Verify and parse the status list token
|
|
114
|
+
const statusList = await wallet.CredentialStatus.statusList.verifyAndParse(
|
|
115
|
+
issuerConf.keys,
|
|
116
|
+
statusListJwt,
|
|
111
117
|
);
|
|
112
118
|
|
|
113
|
-
//
|
|
114
|
-
const { status,
|
|
115
|
-
await wallet.CredentialStatus.statusList.verifyAndParse(
|
|
116
|
-
issuerConf.keys,
|
|
117
|
-
res
|
|
118
|
-
);
|
|
119
|
+
// Read the credential status from the decoded status list
|
|
120
|
+
const { status, rawStatus } = wallet.CredentialStatus.statusList.getStatus(statusList, idx);
|
|
119
121
|
|
|
120
122
|
return {
|
|
121
|
-
statusList
|
|
123
|
+
statusList,
|
|
122
124
|
status,
|
|
123
|
-
|
|
125
|
+
rawStatus,
|
|
124
126
|
};
|
|
125
127
|
```
|
|
126
128
|
|
|
127
|
-
</details>
|
|
129
|
+
</details>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"../../../../../src","sources":["credential/status/api/index.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"../../../../../src","sources":["credential/status/api/index.ts"],"mappings":";;;;;AAwBA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -1,2 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StatusListContent = exports.StatusList = void 0;
|
|
7
|
+
var _zod = require("zod");
|
|
8
|
+
var _zod2 = require("../../../utils/zod");
|
|
9
|
+
/**
|
|
10
|
+
* Common type for a parsed Status Assertion
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
const StatusListBits = _zod.z.union([_zod.z.literal(1), _zod.z.literal(2), _zod.z.literal(4), _zod.z.literal(8)]);
|
|
14
|
+
const StatusListContent = _zod.z.object({
|
|
15
|
+
bits: StatusListBits,
|
|
16
|
+
lst: _zod.z.string().min(1),
|
|
17
|
+
aggregation_uri: _zod.z.url().optional()
|
|
18
|
+
});
|
|
19
|
+
exports.StatusListContent = StatusListContent;
|
|
20
|
+
const StatusList = _zod.z.object({
|
|
21
|
+
sub: _zod.z.url(),
|
|
22
|
+
iat: _zod2.UnixTime,
|
|
23
|
+
iss: _zod.z.url().optional(),
|
|
24
|
+
exp: _zod2.UnixTime.optional(),
|
|
25
|
+
ttl: _zod.z.number().positive().optional(),
|
|
26
|
+
status_list: StatusListContent
|
|
27
|
+
});
|
|
28
|
+
exports.StatusList = StatusList;
|
|
2
29
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["credential/status/api/types.ts"],"mappings":""}
|
|
1
|
+
{"version":3,"names":["_zod","require","_zod2","StatusListBits","z","union","literal","StatusListContent","object","bits","lst","string","min","aggregation_uri","url","optional","exports","StatusList","sub","iat","UnixTime","iss","exp","ttl","number","positive","status_list"],"sourceRoot":"../../../../../src","sources":["credential/status/api/types.ts"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA;AACA;AACA;;AAcA,MAAME,cAAc,GAAGC,MAAC,CAACC,KAAK,CAAC,CAC7BD,MAAC,CAACE,OAAO,CAAC,CAAC,CAAC,EACZF,MAAC,CAACE,OAAO,CAAC,CAAC,CAAC,EACZF,MAAC,CAACE,OAAO,CAAC,CAAC,CAAC,EACZF,MAAC,CAACE,OAAO,CAAC,CAAC,CAAC,CACb,CAAC;AAGK,MAAMC,iBAAiB,GAAGH,MAAC,CAACI,MAAM,CAAC;EACxCC,IAAI,EAAEN,cAAc;EACpBO,GAAG,EAAEN,MAAC,CAACO,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC;EACtBC,eAAe,EAAET,MAAC,CAACU,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC;AACpC,CAAC,CAAC;AAACC,OAAA,CAAAT,iBAAA,GAAAA,iBAAA;AAGI,MAAMU,UAAU,GAAGb,MAAC,CAACI,MAAM,CAAC;EACjCU,GAAG,EAAEd,MAAC,CAACU,GAAG,CAAC,CAAC;EACZK,GAAG,EAAEC,cAAQ;EACbC,GAAG,EAAEjB,MAAC,CAACU,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EACvBO,GAAG,EAAEF,cAAQ,CAACL,QAAQ,CAAC,CAAC;EACxBQ,GAAG,EAAEnB,MAAC,CAACoB,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACV,QAAQ,CAAC,CAAC;EACrCW,WAAW,EAAEnB;AACf,CAAC,CAAC;AAACS,OAAA,CAAAC,UAAA,GAAAA,UAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getStatusList = void 0;
|
|
6
|
+
exports.getStatusListByUri = exports.getStatusList = void 0;
|
|
7
7
|
var _ioReactNativeIso = require("@pagopa/io-react-native-iso18013");
|
|
8
8
|
var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
|
|
9
9
|
var _jwtStatusList = require("@sd-jwt/jwt-status-list");
|
|
@@ -25,28 +25,23 @@ const getStatusListEntry = async (credential, format) => {
|
|
|
25
25
|
}
|
|
26
26
|
return statusListEntry;
|
|
27
27
|
};
|
|
28
|
-
const
|
|
28
|
+
const fetchStatusList = function (uri, appFetch) {
|
|
29
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
30
|
+
return appFetch(uri, {
|
|
31
|
+
headers: {
|
|
32
|
+
Accept: "application/statuslist+jwt",
|
|
33
|
+
...(options.cacheDisabled && {
|
|
34
|
+
"Cache-Control": "no-cache"
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
}).then((0, _misc.hasStatusOrThrow)(200)).then(response => response.text());
|
|
38
|
+
};
|
|
39
|
+
const getStatusListByUri = async function (uri) {
|
|
29
40
|
let {
|
|
30
41
|
appFetch = fetch
|
|
31
|
-
} = arguments.length >
|
|
32
|
-
const {
|
|
33
|
-
uri,
|
|
34
|
-
idx
|
|
35
|
-
} = await getStatusListEntry(credential, format);
|
|
36
|
-
const fetchStatusList = function () {
|
|
37
|
-
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
38
|
-
return appFetch(uri, {
|
|
39
|
-
headers: {
|
|
40
|
-
Accept: "application/statuslist+jwt",
|
|
41
|
-
...(options.cacheDisabled && {
|
|
42
|
-
"Cache-Control": "no-cache"
|
|
43
|
-
})
|
|
44
|
-
}
|
|
45
|
-
}).then((0, _misc.hasStatusOrThrow)(200)).then(response => response.text());
|
|
46
|
-
};
|
|
47
|
-
|
|
42
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
48
43
|
// When the HTTP response includes cache headers, fetch will return a cached response and the JWT might be expired
|
|
49
|
-
let statusList = await fetchStatusList();
|
|
44
|
+
let statusList = await fetchStatusList(uri, appFetch);
|
|
50
45
|
const decoded = (0, _ioReactNativeJwt.decode)(statusList);
|
|
51
46
|
const {
|
|
52
47
|
exp
|
|
@@ -55,14 +50,23 @@ const getStatusList = async function (credential, format) {
|
|
|
55
50
|
// If the status list JWT is expired, try to fetch it again bypassing the HTTP cache.
|
|
56
51
|
// If it is still expired after the refetch, `verifyAndParseStatusList` will throw.
|
|
57
52
|
if (exp && exp < Math.floor(Date.now() / 1000)) {
|
|
58
|
-
statusList = await fetchStatusList({
|
|
53
|
+
statusList = await fetchStatusList(uri, appFetch, {
|
|
59
54
|
cacheDisabled: true
|
|
60
55
|
});
|
|
61
56
|
}
|
|
57
|
+
return statusList;
|
|
58
|
+
};
|
|
59
|
+
exports.getStatusListByUri = getStatusListByUri;
|
|
60
|
+
const getStatusList = async (credential, format, context) => {
|
|
61
|
+
const {
|
|
62
|
+
uri,
|
|
63
|
+
idx
|
|
64
|
+
} = await getStatusListEntry(credential, format);
|
|
65
|
+
const statusList = await getStatusListByUri(uri, context);
|
|
62
66
|
return {
|
|
63
|
-
statusList,
|
|
64
67
|
uri,
|
|
65
68
|
idx,
|
|
69
|
+
statusList,
|
|
66
70
|
format: "jwt"
|
|
67
71
|
};
|
|
68
72
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ioReactNativeIso","require","_ioReactNativeJwt","_jwtStatusList","_errors","_misc","getStatusListEntry","credential","format","statusListEntry","_decoded$issuerAuth","decoded","CBOR","decode","issuerAuth","payload","status","status_list","getStatusListFromJWT","IoWalletError","
|
|
1
|
+
{"version":3,"names":["_ioReactNativeIso","require","_ioReactNativeJwt","_jwtStatusList","_errors","_misc","getStatusListEntry","credential","format","statusListEntry","_decoded$issuerAuth","decoded","CBOR","decode","issuerAuth","payload","status","status_list","getStatusListFromJWT","IoWalletError","fetchStatusList","uri","appFetch","options","arguments","length","undefined","headers","Accept","cacheDisabled","then","hasStatusOrThrow","response","text","getStatusListByUri","fetch","statusList","decodeJwt","exp","Math","floor","Date","now","exports","getStatusList","context","idx"],"sourceRoot":"../../../../../src","sources":["credential/status/v1.3.3/01-status-list.ts"],"mappings":"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"}
|
|
@@ -5,31 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.verifyAndParseStatusList = void 0;
|
|
7
7
|
var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*/
|
|
13
|
-
const CredentialStatusMap = {
|
|
14
|
-
0x00: "VALID",
|
|
15
|
-
0x01: "INVALID",
|
|
16
|
-
0x02: "SUSPENDED",
|
|
17
|
-
0x03: "UPDATE",
|
|
18
|
-
0x0b: "ATTRIBUTE_UPDATE"
|
|
19
|
-
};
|
|
20
|
-
const verifyAndParseStatusList = async (keys, _ref) => {
|
|
21
|
-
let {
|
|
22
|
-
statusList: rawStatusList,
|
|
23
|
-
idx
|
|
24
|
-
} = _ref;
|
|
25
|
-
await (0, _ioReactNativeJwt.verify)(rawStatusList, keys);
|
|
26
|
-
const statusList = (0, _jwtStatusList.getListFromStatusListJWT)(rawStatusList);
|
|
27
|
-
const statusBit = statusList.getStatus(idx);
|
|
28
|
-
const status = CredentialStatusMap[statusBit];
|
|
29
|
-
return {
|
|
30
|
-
status,
|
|
31
|
-
statusBit: `0x${statusBit.toString(16).padStart(2, "0").toUpperCase()}`
|
|
32
|
-
};
|
|
8
|
+
var _types = require("../api/types");
|
|
9
|
+
const verifyAndParseStatusList = async (keys, statusList) => {
|
|
10
|
+
await (0, _ioReactNativeJwt.verify)(statusList, keys);
|
|
11
|
+
return _types.StatusList.parse((0, _ioReactNativeJwt.decode)(statusList).payload);
|
|
33
12
|
};
|
|
34
13
|
exports.verifyAndParseStatusList = verifyAndParseStatusList;
|
|
35
14
|
//# sourceMappingURL=02-verify-and-parse-status-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ioReactNativeJwt","require","
|
|
1
|
+
{"version":3,"names":["_ioReactNativeJwt","require","_types","verifyAndParseStatusList","keys","statusList","verify","StatusList","parse","decodeJwt","payload","exports"],"sourceRoot":"../../../../../src","sources":["credential/status/v1.3.3/02-verify-and-parse-status-list.ts"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAEO,MAAME,wBAAyD,GAAG,MAAAA,CACvEC,IAAI,EACJC,UAAU,KACP;EACH,MAAM,IAAAC,wBAAM,EAACD,UAAU,EAAED,IAAI,CAAC;EAC9B,OAAOG,iBAAU,CAACC,KAAK,CAAC,IAAAC,wBAAS,EAACJ,UAAU,CAAC,CAACK,OAAO,CAAC;AACxD,CAAC;AAACC,OAAA,CAAAR,wBAAA,GAAAA,wBAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getStatus = void 0;
|
|
7
|
+
var _jwtStatusList = require("@sd-jwt/jwt-status-list");
|
|
8
|
+
var _errors = require("../../../utils/errors");
|
|
9
|
+
/**
|
|
10
|
+
* Mapping of status bits to their corresponding meaning as defined in the specification.
|
|
11
|
+
* @see https://italia.github.io/eid-wallet-it-docs/releases/1.3.3/en/credential-revocation.html#token-status-lists
|
|
12
|
+
*/
|
|
13
|
+
const CredentialStatusMap = {
|
|
14
|
+
0x00: "VALID",
|
|
15
|
+
0x01: "INVALID",
|
|
16
|
+
0x02: "SUSPENDED",
|
|
17
|
+
0x03: "UPDATE",
|
|
18
|
+
0x0b: "ATTRIBUTE_UPDATE"
|
|
19
|
+
};
|
|
20
|
+
const formatStatusBit = statusBit => `0x${statusBit.toString(16).padStart(2, "0").toUpperCase()}`;
|
|
21
|
+
const getStatus = (statusList, idx) => {
|
|
22
|
+
const decodedStatusList = _jwtStatusList.StatusList.decompressStatusList(statusList.lst, statusList.bits);
|
|
23
|
+
const statusBit = decodedStatusList.getStatus(idx);
|
|
24
|
+
const status = CredentialStatusMap[statusBit];
|
|
25
|
+
if (!status) {
|
|
26
|
+
throw new _errors.IoWalletError(`Unsupported credential status bit: ${formatStatusBit(statusBit)}`);
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
status,
|
|
30
|
+
rawStatus: formatStatusBit(statusBit)
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
exports.getStatus = getStatus;
|
|
34
|
+
//# sourceMappingURL=03-get-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_jwtStatusList","require","_errors","CredentialStatusMap","formatStatusBit","statusBit","toString","padStart","toUpperCase","getStatus","statusList","idx","decodedStatusList","JwtStatusList","decompressStatusList","lst","bits","status","IoWalletError","rawStatus","exports"],"sourceRoot":"../../../../../src","sources":["credential/status/v1.3.3/03-get-status.ts"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGA;AACA;AACA;AACA;AACA,MAAME,mBAAmB,GAAG;EAC1B,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,SAAS;EACf,IAAI,EAAE,WAAW;EACjB,IAAI,EAAE,QAAQ;EACd,IAAI,EAAE;AACR,CAAU;AAIV,MAAMC,eAAe,GAAIC,SAAiB,IACvC,KAAIA,SAAS,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAACC,WAAW,CAAC,CAAE,EAAC;AAEvD,MAAMC,SAAqC,GAAGA,CAACC,UAAU,EAAEC,GAAG,KAAK;EACxE,MAAMC,iBAAiB,GAAGC,yBAAa,CAACC,oBAAoB,CAC1DJ,UAAU,CAACK,GAAG,EACdL,UAAU,CAACM,IACb,CAAC;EACD,MAAMX,SAAS,GAAGO,iBAAiB,CAACH,SAAS,CAACE,GAAG,CAAwB;EACzE,MAAMM,MAAM,GAAGd,mBAAmB,CAACE,SAAS,CAAC;EAE7C,IAAI,CAACY,MAAM,EAAE;IACX,MAAM,IAAIC,qBAAa,CACpB,sCAAqCd,eAAe,CAACC,SAAS,CAAE,EACnE,CAAC;EACH;EAEA,OAAO;IACLY,MAAM;IACNE,SAAS,EAAEf,eAAe,CAACC,SAAS;EACtC,CAAC;AACH,CAAC;AAACe,OAAA,CAAAX,SAAA,GAAAA,SAAA"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.CredentialStatus = void 0;
|
|
7
7
|
var _statusList = require("./01-status-list");
|
|
8
8
|
var _verifyAndParseStatusList = require("./02-verify-and-parse-status-list");
|
|
9
|
+
var _getStatus = require("./03-get-status");
|
|
9
10
|
const CredentialStatus = {
|
|
10
11
|
statusAssertion: {
|
|
11
12
|
isSupported: false
|
|
@@ -13,7 +14,9 @@ const CredentialStatus = {
|
|
|
13
14
|
statusList: {
|
|
14
15
|
isSupported: true,
|
|
15
16
|
get: _statusList.getStatusList,
|
|
16
|
-
|
|
17
|
+
getByUri: _statusList.getStatusListByUri,
|
|
18
|
+
verifyAndParse: _verifyAndParseStatusList.verifyAndParseStatusList,
|
|
19
|
+
getStatus: _getStatus.getStatus
|
|
17
20
|
}
|
|
18
21
|
};
|
|
19
22
|
exports.CredentialStatus = CredentialStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_statusList","require","_verifyAndParseStatusList","CredentialStatus","statusAssertion","isSupported","statusList","get","getStatusList","verifyAndParse","verifyAndParseStatusList","exports"],"sourceRoot":"../../../../../src","sources":["credential/status/v1.3.3/index.ts"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AAEO,
|
|
1
|
+
{"version":3,"names":["_statusList","require","_verifyAndParseStatusList","_getStatus","CredentialStatus","statusAssertion","isSupported","statusList","get","getStatusList","getByUri","getStatusListByUri","verifyAndParse","verifyAndParseStatusList","getStatus","exports"],"sourceRoot":"../../../../../src","sources":["credential/status/v1.3.3/index.ts"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEO,MAAMG,gBAAqC,GAAG;EACnDC,eAAe,EAAE;IACfC,WAAW,EAAE;EACf,CAAC;EACDC,UAAU,EAAE;IACVD,WAAW,EAAE,IAAI;IACjBE,GAAG,EAAEC,yBAAa;IAClBC,QAAQ,EAAEC,8BAAkB;IAC5BC,cAAc,EAAEC,kDAAwB;IACxCC,SAAS,EAATA;EACF;AACF,CAAC;AAACC,OAAA,CAAAX,gBAAA,GAAAA,gBAAA"}
|
|
@@ -8,7 +8,7 @@ exports.getStatusL10nIds = void 0;
|
|
|
8
8
|
* Given a statusBit (e.g. "0x00", "0x0B") and a DigitalCredential from the
|
|
9
9
|
* catalogue, returns the matching l10n IDs or undefined if not found.
|
|
10
10
|
* The comparison is case-insensitive to handle uppercase statusBit values
|
|
11
|
-
* returned by
|
|
11
|
+
* returned by getStatus against lowercase keys in the catalogue.
|
|
12
12
|
*/
|
|
13
13
|
const getStatusL10nIds = (statusBit, credentialConfig) => {
|
|
14
14
|
const normalizedBit = statusBit.toLowerCase();
|
|
@@ -90,13 +90,13 @@ This process is initiated by the Authorization Server responding to the primary
|
|
|
90
90
|
|
|
91
91
|
Complete documentation for the MRTD PoP flow can be found here: [mrtd-pop](./mrtd-pop/README.md)
|
|
92
92
|
|
|
93
|
-
## Authentication through credentials (Query
|
|
93
|
+
## Authentication through credentials (Query Mode) - v1.3
|
|
94
94
|
|
|
95
|
-
When the credential is different than an eID, the flow requires the user to present other credentials in order to obtain the requested one. Starting from IT-Wallet specifications v1.3, the EAA issuance flow uses the query mode to complete the user authorization. This is done through the `
|
|
95
|
+
When the credential is different than an eID, the flow requires the user to present other credentials in order to obtain the requested one. Starting from IT-Wallet specifications v1.3, the EAA issuance flow uses the query mode to complete the user authorization. This is done through `getRequestedCredentialToBePresented`, followed by evaluating the returned `dcql_query` with `RemotePresentation.evaluateDcqlQuery`, and then by completing the authorization with `completeEaaUserAuthorizationWithQueryMode`.
|
|
96
96
|
|
|
97
97
|
## Authentication through credentials (Form Post JWT Mode) - v1.0
|
|
98
98
|
|
|
99
|
-
When the credential is different than an eID, the flow requires the user to present other credentials in order to obtain the requested one. This is done through the `getRequestedCredentialToBePresented
|
|
99
|
+
When the credential is different than an eID, the flow requires the user to present other credentials in order to obtain the requested one. This is done through the `getRequestedCredentialToBePresented`, followed by evaluating the returned `dcql_query` with `RemotePresentation.evaluateDcqlQuery`, and then by completing the authorization with `completeUserAuthorizationWithFormPostJwtMode` or `completeEaaUserAuthorizationWithQueryMode`.
|
|
100
100
|
|
|
101
101
|
The expected result from the authentication process is in `form_post.jwt` format as defined in [JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)](https://openid.net/specs/oauth-v2-jarm.html#name-response-mode-form_postjwt).
|
|
102
102
|
|
|
@@ -188,6 +188,11 @@ const requestObject =
|
|
|
188
188
|
appFetch
|
|
189
189
|
);
|
|
190
190
|
|
|
191
|
+
const evaluatedDcqlQuery = await wallet.RemotePresentation.evaluateDcqlQuery(
|
|
192
|
+
requestObject.dcql_query,
|
|
193
|
+
[[pid.keyTag, pid.credential]]
|
|
194
|
+
);
|
|
195
|
+
|
|
191
196
|
let code: string;
|
|
192
197
|
if (responseMode === "form_post.jwt") {
|
|
193
198
|
// Complete the user authorization via form_post.jwt mode
|
|
@@ -195,7 +200,7 @@ if (responseMode === "form_post.jwt") {
|
|
|
195
200
|
await wallet.CredentialIssuance.completeUserAuthorizationWithFormPostJwtMode(
|
|
196
201
|
requestObject,
|
|
197
202
|
issuerConf,
|
|
198
|
-
|
|
203
|
+
evaluatedDcqlQuery,
|
|
199
204
|
{ wiaCryptoContext, appFetch }
|
|
200
205
|
));
|
|
201
206
|
} else {
|
|
@@ -204,7 +209,7 @@ if (responseMode === "form_post.jwt") {
|
|
|
204
209
|
await wallet.CredentialIssuance.completeEaaUserAuthorizationWithQueryMode(
|
|
205
210
|
requestObject,
|
|
206
211
|
issuerConf,
|
|
207
|
-
|
|
212
|
+
evaluatedDcqlQuery,
|
|
208
213
|
REDIRECT_URI,
|
|
209
214
|
{ appFetch }
|
|
210
215
|
));
|