-
Notifications
You must be signed in to change notification settings - Fork 526
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Mono.Android] Fix ServerCertificateCustomValidator #8594
[Mono.Android] Fix ServerCertificateCustomValidator #8594
Conversation
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
* main: [tests] fix `MAUI Integration` lane (#8614) [xaprepare] use `$(XAPackagesDir)` for NuGet folder (#8613) Add ApiScan to nightly build (#8605) Bump to dotnet/installer@29db8a1157 9.0.100-alpha.1.23628.5 (#8611) [Mono.Android] Fix ServerCertificateCustomValidator (#8594) Bump to dotnet/installer@e08874da58 9.0.100-alpha.1.23625.1 Bump to dotnet/installer@fae23c6571 9.0.100-alpha.1.23618.2 Localized file check-in by OneLocBuild Task (#8589) [tests] enable Xamarin.Android.LibraryProjectZip-LibBinding test (#8588)
This appears to have broken our nightly tests:
This test fails on API-21 and API-23, but not on API-24+, so it is likely something that is handled differently between the two? |
Follow-up to #8594 to fix dotnet/runtime#95506 on Android API 21-23
Follow-up to #8594 to fix dotnet/runtime#95506 on Android API 21-23
Fixes: dotnet/runtime#95506 In Release configuration the `X509ExtendedTrustManagerInvoker` class is trimmed and so the `trustManager is IX509TrustManager tm` pattern matching doesn't work. This PR addresses the problem in two ways: * an internal X509 trust manager is now required - it can't silently work with a null internal trust manager anymore * `[DynamicDependency]` attribute to prevent trimming of the invoker classes for the `IX509TrustManager` interface and for the `X509ExtendedTrustManager` abstract class
Follow-up to #8594 to fix dotnet/runtime#95506 on Android API 21-23
Context: fd47b02 Context: https://dotnet.microsoft.com/platform/support/policy/maui Changes: d12da3a...87e4a6d * 87e4a6d89: [release/8.0.1xx] localization changes for `XA1039` (#8674) * f61c76030: [workload] Allow installation on linux-arm64 (#8500) * 4cdf1e018: [Xamarin.Android.build.Tasks] `<CheckDuplicateJavaLibraries/>` ignores `repackaged.jar` (#8664) * 77ac82a11: [release/8.0.1xx] [Xamarin.Android.Build.Tasks] XA1039 warning for Android.Support (#8648) * c22c17fbe: [Xamarin.Android.Build.Tasks] fix warning when missing `proguard-android.txt` (#8641) * 31f031a67: Localized file check-in by OneLocBuild Task (#8643) * 3da479192: LEGO: Merge pull request 8642 * dbf100d49: Update a number of l18n files (#8633) * d2da5bf4e: Bump com.android.tools:r8 from 8.1.72 to 8.2.33 (#8577) * 9f9114afc: Bump com.android.tools:r8 from 8.1.56 to 8.1.72 (#8532) * 666777248: Fix ServerCertificateCustomValidator on API 21-23 (#8637) * 940f059b8: [Mono.Android] Fix ServerCertificateCustomValidator (#8594) * 351bfa3f0: Bump to dotnet/runtime@a6e4834d53 8.0.1 (#8616) * 64363367d: [Microsoft.Android.Templates] New files should open editor (#8623) * 26752564d: Bump to dotnet/installer@461c776642 8.0.101-servicing.23614.6 * 6972027f0: Localized file check-in by OneLocBuild Task (#8589) * 73efcfcad: [Xamarin.Android.Buid.Tasks] don't set $(PublishSelfContained) for .NET 9 (#8565) * 3333306b8: LEGO: Merge pull request 8587 * 38e950b41: Localized file check-in by OneLocBuild Task (#8576) * 607115fd5: LEGO: Merge pull request 8575 * a1fd1b2cb: Localized file check-in by OneLocBuild Task (#8570) * c020626b0: [Xamarin.Android.Build.Tasks] Update XA5207 for VSCode (#8494) * b0aab545a: Bump to dotnet/installer@822071c28a 8.0.101-servicing.23578.14 (#8558) The .NET MAUI Support policy, which covers .NET Android, states: > A major version of .NET MAUI receives support for a minimum of 6 > months after a successor (the next major release) ships. meaning that a given version of .NET Android only needs to support building `$(TargetFramework)` values for the current .NET Android version and the previous .NET Android version. Meanwhlie, from fd47b02: > We currently have a hard dependency between: > > * `Xamarin.Android.Build.Tasks.dll` > * `libmonodroid.so` …in order to safely build projects targeting the previous .NET Android version with the current .NET Android version, the current .NET Android version workload *includes the previous workload version contents*. The `$(AndroidNetPreviousVersion)` MSBuild property specifies the .NET Android SDK version, as obtained from `dotnet workllad list`, which should be used to build previous `$(TargetFramework)` versions. `$(AndroidNetPreviousVersion)` should be updated in xamarin-android/main whenever a .NET servicing release for the previous .NET version is shipped. .NET Android 34.0.79 will be shipped as part of .NET 8.0.2. Update `$(AndroidNetPreviousVersion)` to so that .NET 9 previews use the latest .NET 8 workload contents.
Context: fd47b02 Context: https://dotnet.microsoft.com/platform/support/policy/maui Changes: d12da3a...87e4a6d * 87e4a6d89: [release/8.0.1xx] localization changes for `XA1039` (#8674) * f61c76030: [workload] Allow installation on linux-arm64 (#8500) * 4cdf1e018: [Xamarin.Android.build.Tasks] `<CheckDuplicateJavaLibraries/>` ignores `repackaged.jar` (#8664) * 77ac82a11: [release/8.0.1xx] [Xamarin.Android.Build.Tasks] XA1039 warning for Android.Support (#8648) * c22c17fbe: [Xamarin.Android.Build.Tasks] fix warning when missing `proguard-android.txt` (#8641) * 31f031a67: Localized file check-in by OneLocBuild Task (#8643) * 3da479192: LEGO: Merge pull request 8642 * dbf100d49: Update a number of l18n files (#8633) * d2da5bf4e: Bump com.android.tools:r8 from 8.1.72 to 8.2.33 (#8577) * 9f9114afc: Bump com.android.tools:r8 from 8.1.56 to 8.1.72 (#8532) * 666777248: Fix ServerCertificateCustomValidator on API 21-23 (#8637) * 940f059b8: [Mono.Android] Fix ServerCertificateCustomValidator (#8594) * 351bfa3f0: Bump to dotnet/runtime@a6e4834d53 8.0.1 (#8616) * 64363367d: [Microsoft.Android.Templates] New files should open editor (#8623) * 26752564d: Bump to dotnet/installer@461c776642 8.0.101-servicing.23614.6 * 6972027f0: Localized file check-in by OneLocBuild Task (#8589) * 73efcfcad: [Xamarin.Android.Buid.Tasks] don't set $(PublishSelfContained) for .NET 9 (#8565) * 3333306b8: LEGO: Merge pull request 8587 * 38e950b41: Localized file check-in by OneLocBuild Task (#8576) * 607115fd5: LEGO: Merge pull request 8575 * a1fd1b2cb: Localized file check-in by OneLocBuild Task (#8570) * c020626b0: [Xamarin.Android.Build.Tasks] Update XA5207 for VSCode (#8494) * b0aab545a: Bump to dotnet/installer@822071c28a 8.0.101-servicing.23578.14 (#8558) The .NET MAUI Support policy, which covers .NET Android, states: > A major version of .NET MAUI receives support for a minimum of 6 > months after a successor (the next major release) ships. meaning that a given version of .NET Android only needs to support building `$(TargetFramework)` values for the current .NET Android version and the previous .NET Android version. Meanwhlie, from fd47b02: > We currently have a hard dependency between: > > * `Xamarin.Android.Build.Tasks.dll` > * `libmonodroid.so` …in order to safely build projects targeting the previous .NET Android version with the current .NET Android version, the current .NET Android version workload *includes the previous workload version contents*. The `$(AndroidNetPreviousVersion)` MSBuild property specifies the .NET Android SDK version, as obtained from `dotnet workllad list`, which should be used to build previous `$(TargetFramework)` versions. `$(AndroidNetPreviousVersion)` should be updated in xamarin-android/main whenever a .NET servicing release for the previous .NET version is shipped. .NET Android 34.0.79 will be shipped as part of .NET 8.0.2. Update `$(AndroidNetPreviousVersion)` to so that .NET 9 previews use the latest .NET 8 workload contents.
[DynamicDependency(nameof(IX509TrustManager.CheckServerTrusted), typeof(IX509TrustManagerInvoker))] | ||
[DynamicDependency(nameof(IX509TrustManager.CheckServerTrusted), typeof(X509ExtendedTrustManagerInvoker))] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where is the use of these dependencies - I assume we have a suppression for it.
I'm just curious why we can't solve this any other way...
Fixes dotnet/runtime#95506
In Release configuration the
X509ExtendedTrustManagerInvoker
class is trimmed and so thetrustManager is IX509TrustManager tm
pattern matching doesn't work. This PR addresses the problem in two ways:null
internal trust manager anymore[DynamicDependency]
attribute to prevent trimming of the invoker classes for theIX509TrustManager
interface and for theX509ExtendedTrustManager
abstract class/cc @grendello