From df2399b721c5abfddc7f7e76c2ef1153ad9b3daa Mon Sep 17 00:00:00 2001 From: Bibash Shrestha Date: Wed, 5 Jun 2024 12:11:06 +0545 Subject: [PATCH 1/9] Update flutter_package.yaml --- .github/workflows/flutter_package.yaml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/flutter_package.yaml b/.github/workflows/flutter_package.yaml index d84446759..72e527acb 100644 --- a/.github/workflows/flutter_package.yaml +++ b/.github/workflows/flutter_package.yaml @@ -101,9 +101,23 @@ jobs: - name: 📦 Install Dependencies run: | + if grep -q 'path: ../../../didkit/lib/flutter' ../did_kit/pubspec.yaml; then + sed -i 's|path: ../../../didkit/lib/flutter|git:\n url: https://github.com/spruceid/didkit.git\n path: lib/flutter|' ../did_kit/pubspec.yaml + fi flutter pub global activate very_good_cli very_good packages get --recursive --ignore=${{inputs.package_get_excludes}} + - name: 📦 Run build_runner for nested package if necessary + run: | + if grep -q 'path: ../credential_manifest' pubspec.yaml; then + initial_dir=$(pwd) + echo $initial_dir + cd ../credential_manifest + flutter pub get + dart pub run build_runner build --delete-conflicting-outputs + cd $initial_dir + fi + - name: ⚙️ Run Setup if: "${{inputs.setup != ''}}" run: ${{inputs.setup}} @@ -131,4 +145,4 @@ jobs: with: path: ${{inputs.working_directory}}/coverage/lcov.info exclude: ${{inputs.coverage_excludes}} - min_coverage: ${{inputs.min_coverage}} \ No newline at end of file + min_coverage: ${{inputs.min_coverage}} From 0a480bee86ae113b742d7215488e9ed9169abe56 Mon Sep 17 00:00:00 2001 From: Bibash Shrestha Date: Wed, 5 Jun 2024 14:07:07 +0545 Subject: [PATCH 2/9] feat: Display developer mode for default profile #2654 --- lib/dashboard/drawer/src/view/drawer_page.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/dashboard/drawer/src/view/drawer_page.dart b/lib/dashboard/drawer/src/view/drawer_page.dart index c518c887b..df9c74d38 100644 --- a/lib/dashboard/drawer/src/view/drawer_page.dart +++ b/lib/dashboard/drawer/src/view/drawer_page.dart @@ -120,8 +120,7 @@ class DrawerView extends StatelessWidget { ], if (profileModel - .profileSetting.settingsMenu.displayDeveloperMode && - profileModel.profileType != ProfileType.defaultOne) ...[ + .profileSetting.settingsMenu.displayDeveloperMode) ...[ DrawerCategoryItem( title: l10n.developerMode, subTitle: l10n.developerModeSubtitle, From b4a20f5e79aaf6bb1545c6cea6ddda5a506bb6d7 Mon Sep 17 00:00:00 2001 From: Bibash Shrestha Date: Wed, 5 Jun 2024 14:27:40 +0545 Subject: [PATCH 3/9] feat: Use public fallback if universal resolver fails #2665 --- packages/oidc4vc/lib/src/oidc4vc.dart | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/oidc4vc/lib/src/oidc4vc.dart b/packages/oidc4vc/lib/src/oidc4vc.dart index 9c59bd5d5..a27715eba 100644 --- a/packages/oidc4vc/lib/src/oidc4vc.dart +++ b/packages/oidc4vc/lib/src/oidc4vc.dart @@ -769,11 +769,21 @@ class OIDC4VC { return response as Map; } else { - final didDocument = await dio.get( - 'https://unires:test@unires.talao.co/1.0/identifiers/$didKey', - ); - - return didDocument.data as Map; + try { + final didDocument = await dio.get( + 'https://unires:test@unires.talao.co/1.0/identifiers/$didKey', + ); + return didDocument.data as Map; + } catch (e) { + try { + final didDocument = await dio.get( + 'https://dev.uniresolver.io/1.0/identifiers/$didKey', + ); + return didDocument.data as Map; + } catch (e) { + rethrow; + } + } } } catch (e) { rethrow; From 9d8d4d4bfca792ff8506d103fa0ed457b4c838a0 Mon Sep 17 00:00:00 2001 From: Bibash Shrestha Date: Mon, 10 Jun 2024 17:43:51 +0545 Subject: [PATCH 4/9] implement requirePushedAuthorizationRequests parameter #2712 --- lib/oidc4vc/get_authorization_uri_for_issuer.dart | 14 +++++++++++--- .../lib/src/models/openid_configuration.dart | 4 ++++ packages/oidc4vc/lib/src/oidc4vc.dart | 12 +++++++++--- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/lib/oidc4vc/get_authorization_uri_for_issuer.dart b/lib/oidc4vc/get_authorization_uri_for_issuer.dart index 146133df2..48004a4b8 100644 --- a/lib/oidc4vc/get_authorization_uri_for_issuer.dart +++ b/lib/oidc4vc/get_authorization_uri_for_issuer.dart @@ -77,8 +77,11 @@ Future getAuthorizationUriForIssuer({ late Uri authorizationUri; - final (authorizationEndpoint, authorizationRequestParemeters) = - await oidc4vc.getAuthorizationData( + final ( + authorizationEndpoint, + authorizationRequestParemeters, + openIdConfiguration + ) = await oidc4vc.getAuthorizationData( selectedCredentials: selectedCredentials, clientId: clientId, clientSecret: clientSecret, @@ -97,7 +100,12 @@ Future getAuthorizationUriForIssuer({ secureAuthorizedFlow: secureAuthorizedFlow, ); - if (secureAuthorizedFlow) { + final requirePushedAuthorizationRequests = + openIdConfiguration.requirePushedAuthorizationRequests; + + if ((requirePushedAuthorizationRequests != null && + requirePushedAuthorizationRequests) || + (requirePushedAuthorizationRequests == null && secureAuthorizedFlow)) { final headers = { 'Content-Type': 'application/x-www-form-urlencoded', }; diff --git a/packages/oidc4vc/lib/src/models/openid_configuration.dart b/packages/oidc4vc/lib/src/models/openid_configuration.dart index 2eeb54dcb..93afe2075 100644 --- a/packages/oidc4vc/lib/src/models/openid_configuration.dart +++ b/packages/oidc4vc/lib/src/models/openid_configuration.dart @@ -23,6 +23,7 @@ class OpenIdConfiguration extends Equatable { this.credentialManifests, this.issuer, this.jwksUri, + this.requirePushedAuthorizationRequests, this.grantTypesSupported, }); @@ -60,6 +61,8 @@ class OpenIdConfiguration extends Equatable { final String? issuer; @JsonKey(name: 'jwks_uri') final String? jwksUri; + @JsonKey(name: 'require_pushed_authorization_requests') + final bool? requirePushedAuthorizationRequests; @JsonKey(name: 'grant_types_supported') final List? grantTypesSupported; @@ -83,6 +86,7 @@ class OpenIdConfiguration extends Equatable { credentialManifests, issuer, jwksUri, + requirePushedAuthorizationRequests, grantTypesSupported, ]; } diff --git a/packages/oidc4vc/lib/src/oidc4vc.dart b/packages/oidc4vc/lib/src/oidc4vc.dart index a27715eba..5f4a6e9ca 100644 --- a/packages/oidc4vc/lib/src/oidc4vc.dart +++ b/packages/oidc4vc/lib/src/oidc4vc.dart @@ -130,8 +130,10 @@ class OIDC4VC { /// Received JWT is already filtered on required members /// Received JWT keys are already sorted in lexicographic order - /// authorization endpoint, authorizationRequestParemeters - Future<(String, Map)> getAuthorizationData({ + /// authorization endpoint, authorizationRequestParemeters, + /// OpenIdConfiguration + Future<(String, Map, OpenIdConfiguration)> + getAuthorizationData({ required List selectedCredentials, required String? clientId, required String? clientSecret, @@ -181,7 +183,11 @@ class OIDC4VC { secureAuthorizedFlow: secureAuthorizedFlow, ); - return (authorizationEndpoint, authorizationRequestParemeters); + return ( + authorizationEndpoint, + authorizationRequestParemeters, + openIdConfiguration, + ); } catch (e) { throw Exception('NOT_A_VALID_OPENID_URL'); } From a719e9f3755a99f11f00e575d6a53371ea258f88 Mon Sep 17 00:00:00 2001 From: hawkbee1 Date: Mon, 10 Jun 2024 14:53:46 +0000 Subject: [PATCH 5/9] OIDC4VCI test 10 fails when PAR is false #2712 --- .../lib/src/models/openid_configuration.dart | 4 ++-- packages/oidc4vc/lib/src/oidc4vc.dart | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/oidc4vc/lib/src/models/openid_configuration.dart b/packages/oidc4vc/lib/src/models/openid_configuration.dart index 93afe2075..bb5ae2d08 100644 --- a/packages/oidc4vc/lib/src/models/openid_configuration.dart +++ b/packages/oidc4vc/lib/src/models/openid_configuration.dart @@ -61,8 +61,8 @@ class OpenIdConfiguration extends Equatable { final String? issuer; @JsonKey(name: 'jwks_uri') final String? jwksUri; - @JsonKey(name: 'require_pushed_authorization_requests') - final bool? requirePushedAuthorizationRequests; + @JsonKey(name: 'require_pushed_authorization_requests', defaultValue: false) + final bool requirePushedAuthorizationRequests; @JsonKey(name: 'grant_types_supported') final List? grantTypesSupported; diff --git a/packages/oidc4vc/lib/src/oidc4vc.dart b/packages/oidc4vc/lib/src/oidc4vc.dart index 5f4a6e9ca..c28d82ee2 100644 --- a/packages/oidc4vc/lib/src/oidc4vc.dart +++ b/packages/oidc4vc/lib/src/oidc4vc.dart @@ -337,8 +337,9 @@ class OIDC4VC { if (secureAuthorizedFlow) { myRequest['client_metadata'] = Uri.encodeComponent(jsonEncode(clientMetaData)); - } else { + } else if (clientAuthentication != ClientAuthentication.clientSecretJwt) { myRequest['client_metadata'] = jsonEncode(clientMetaData); + // paramètre config du portail, on ne met pas si : client authentication : } switch (clientAuthentication) { case ClientAuthentication.none: @@ -353,9 +354,13 @@ class OIDC4VC { myRequest['client_id'] = clientId; case ClientAuthentication.clientSecretJwt: myRequest['client_id'] = clientId; - myRequest['client_assertion'] = clientAssertion; - myRequest['client_assertion_type'] = - 'urn:ietf:params:oauth:client-assertion-type:jwt-client-attestation'; + if (secureAuthorizedFlow || + openIdConfiguration.requirePushedAuthorizationRequests) { + myRequest['client_assertion'] = clientAssertion; + myRequest['client_assertion_type'] = + // ignore: lines_longer_than_80_chars + 'urn:ietf:params:oauth:client-assertion-type:jwt-client-attestation'; + } } if (scope) { From 9370e838ee5e31268c084a53e6276ef2660f3b4a Mon Sep 17 00:00:00 2001 From: hawkbee1 Date: Mon, 10 Jun 2024 15:36:50 +0000 Subject: [PATCH 6/9] OIDC4VCI test 10 fails when PAR is false #2712 --- lib/oidc4vc/get_authorization_uri_for_issuer.dart | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/oidc4vc/get_authorization_uri_for_issuer.dart b/lib/oidc4vc/get_authorization_uri_for_issuer.dart index 48004a4b8..29855277b 100644 --- a/lib/oidc4vc/get_authorization_uri_for_issuer.dart +++ b/lib/oidc4vc/get_authorization_uri_for_issuer.dart @@ -103,9 +103,7 @@ Future getAuthorizationUriForIssuer({ final requirePushedAuthorizationRequests = openIdConfiguration.requirePushedAuthorizationRequests; - if ((requirePushedAuthorizationRequests != null && - requirePushedAuthorizationRequests) || - (requirePushedAuthorizationRequests == null && secureAuthorizedFlow)) { + if (requirePushedAuthorizationRequests || secureAuthorizedFlow) { final headers = { 'Content-Type': 'application/x-www-form-urlencoded', }; From 29ae90a44bfcd0cf7183dd83ee9817bdf082eca8 Mon Sep 17 00:00:00 2001 From: hawkbee1 Date: Mon, 10 Jun 2024 15:39:07 +0000 Subject: [PATCH 7/9] version: 2.7.0+463 --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 2ab170a0d..06d51815d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: altme description: AltMe Flutter App -version: 2.6.0+460 +version: 2.7.0+463 environment: sdk: ">=3.1.0 <4.0.0" From d2878a8f970ae38ecb7bf6551a5a1f900e65bc3b Mon Sep 17 00:00:00 2001 From: hawkbee1 Date: Mon, 10 Jun 2024 15:40:53 +0000 Subject: [PATCH 8/9] remove fvm from script.sh --- script.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/script.sh b/script.sh index 7983327a4..6a98ab97d 100755 --- a/script.sh +++ b/script.sh @@ -1,17 +1,17 @@ function pub { - fvm flutter clean + flutter clean for d in `ls packages`; do ( cd "packages/$d" - fvm flutter clean - fvm flutter pub get - fvm flutter pub upgrade + flutter clean + flutter pub get + flutter pub upgrade ) done - fvm flutter pub get - fvm flutter pub upgrade + flutter pub get + flutter pub upgrade } function buildRunner { @@ -21,10 +21,10 @@ function buildRunner { ( echo "$d" cd "packages/$d" - fvm flutter packages pub run build_runner build --delete-conflicting-outputs + dart pub run build_runner build --delete-conflicting-outputs ) done - fvm flutter packages pub run build_runner build --delete-conflicting-outputs + dart pub run build_runner build --delete-conflicting-outputs } function podUpdate { @@ -41,17 +41,17 @@ function podUpdate { if [[ "$*" == *-runDev* ]]; then echo "flutter run development" - fvm flutter run --flavor development --target lib/main_development.dart + flutter run --flavor development --target lib/main_development.dart elif [[ "$*" == *-runstage* ]]; then echo "flutter run staging" - fvm flutter run --flavor staging --target lib/main_staging.dart + flutter run --flavor staging --target lib/main_staging.dart elif [[ "$*" == *-run* ]]; then echo "flutter run production" - fvm flutter run --flavor production --target lib/main_production.dart + flutter run --flavor production --target lib/main_production.dart elif [[ "$*" == *-pod* ]]; then @@ -62,7 +62,7 @@ then buildRunner echo "deploy android" echo "Make sure you are in right branch" - fvm flutter build appbundle --flavor "production" --target "lib/main_production.dart" + flutter build appbundle --flavor "production" --target "lib/main_production.dart" # cd android # fastlane deploy echo "app bundle deployed on internal testing track" @@ -74,7 +74,7 @@ then podUpdate echo "deploy ios" echo "Make sure you are in right branch" - fvm flutter build ios --release --flavor "production" --target "lib/main_production.dart" + flutter build ios --release --flavor "production" --target "lib/main_production.dart" cd ios fastlane beta elif [[ "$*" == *-pub* ]]; From 1df4df0bff6fe3a43cb9a9038319114cbaf92cc7 Mon Sep 17 00:00:00 2001 From: hawkbee1 Date: Mon, 10 Jun 2024 15:56:42 +0000 Subject: [PATCH 9/9] adapt to flutter 3.19.6 --- packages/oidc4vc/lib/src/models/openid_configuration.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oidc4vc/lib/src/models/openid_configuration.dart b/packages/oidc4vc/lib/src/models/openid_configuration.dart index bb5ae2d08..11425f93e 100644 --- a/packages/oidc4vc/lib/src/models/openid_configuration.dart +++ b/packages/oidc4vc/lib/src/models/openid_configuration.dart @@ -7,6 +7,7 @@ part 'openid_configuration.g.dart'; @JsonSerializable() class OpenIdConfiguration extends Equatable { const OpenIdConfiguration({ + required this.requirePushedAuthorizationRequests, this.authorizationServer, this.credentialsSupported, this.credentialConfigurationsSupported, @@ -23,7 +24,6 @@ class OpenIdConfiguration extends Equatable { this.credentialManifests, this.issuer, this.jwksUri, - this.requirePushedAuthorizationRequests, this.grantTypesSupported, });