diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/EncryptDecrypt.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/EncryptDecrypt.cs index 09a7e5bb790299..882f61873624b4 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/EncryptDecrypt.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/EncryptDecrypt.cs @@ -644,7 +644,7 @@ public void RsaDecryptAfterExport() Assert.Equal(TestData.HelloBytes, output); } - [Fact] + [ConditionalFact(typeof(ImportExport), nameof(ImportExport.Supports16384))] public void LargeKeyCryptRoundtrip() { byte[] output; diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/ImportExport.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/ImportExport.cs index 909c455a8134b2..1a911bebd8e88a 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/ImportExport.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/ImportExport.cs @@ -69,7 +69,7 @@ public static void PaddedExport() RSATestHelpers.AssertKeyEquals(diminishedDPParameters, exported); } - [Fact] + [ConditionalFact(typeof(ImportExport), nameof(ImportExport.Supports16384))] public static void LargeKeyImportExport() { RSAParameters imported = TestData.RSA16384Params; @@ -367,6 +367,13 @@ internal static RSAParameters MakePublic(in RSAParameters rsaParams) private static bool TestRsa16384() { + if (PlatformDetection.IsAndroid) + { + // We cannot detect this on Android at the moment. Even attempting to generate or import a 16K RSA key + // may leave the error queue in the incorrect state. See https://github.com/google/conscrypt/issues/1507 + return false; + } + try { using (RSA rsa = RSAFactory.Create()) diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/SignVerify.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/SignVerify.cs index c4e33527cdc277..a409e18b677986 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/SignVerify.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/SignVerify.cs @@ -1022,7 +1022,7 @@ public void VerifyExpectedSignature_PssSha256_RSA2048() modulus2048Signature); } - [Fact] + [ConditionalFact(typeof(ImportExport), nameof(ImportExport.Supports16384))] public void VerifyExpectedSignature_PssSha256_RSA16384() { byte[] modulus2048Signature = ( @@ -1098,7 +1098,7 @@ public void VerifyExpectedSignature_PssSha256_RSA16384() modulus2048Signature); } - [Fact] + [ConditionalFact(typeof(ImportExport), nameof(ImportExport.Supports16384))] public void VerifyExpectedSignature_PssSha384() { byte[] bigModulusSignature = (