diff --git a/src/libraries/Common/src/System/Security/Cryptography/CngHelpers.cs b/src/libraries/Common/src/System/Security/Cryptography/CngHelpers.cs index e13c839f6ea2bc..a74d2810708958 100644 --- a/src/libraries/Common/src/System/Security/Cryptography/CngHelpers.cs +++ b/src/libraries/Common/src/System/Security/Cryptography/CngHelpers.cs @@ -192,11 +192,7 @@ internal static unsafe bool ExportPkcs8KeyBlob( Interop.NCrypt.PBE_PARAMS pbeParams = default; Span salt = new Span(pbeParams.rgbSalt, Interop.NCrypt.PBE_PARAMS.RgbSaltSize); -#if NET RandomNumberGenerator.Fill(salt); -#else - CngHelpers.GetRandomBytes(salt); -#endif pbeParams.Params.cbSalt = salt.Length; pbeParams.Params.iIterations = kdfCount; diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/CompositeMLDsa/CompositeMLDsaTestHelpers.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/CompositeMLDsa/CompositeMLDsaTestHelpers.cs index 5baa26ec226062..e169c8edc66ba9 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/CompositeMLDsa/CompositeMLDsaTestHelpers.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/CompositeMLDsa/CompositeMLDsaTestHelpers.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Formats.Asn1; +using System.Security.Cryptography.Rsa.Tests; using Xunit; using Xunit.Sdk; @@ -189,7 +190,7 @@ internal static void AssertPrivateKeyEquals(CompositeMLDsaAlgorithm algorithm, R RSAParameters expectedRsaParameters = RSAParametersFromRawPrivateKey(expectedTradKey); RSAParameters actualRsaParameters = RSAParametersFromRawPrivateKey(actualTradKey); - Rsa.Tests.ImportExport.AssertKeyEquals(expectedRsaParameters, actualRsaParameters); + RSATestHelpers.AssertKeyEquals(expectedRsaParameters, actualRsaParameters); }, _ => Assert.Equal(expectedTradKey, actualTradKey), _ => Assert.Equal(expectedTradKey, actualTradKey)); 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 47805e24928fa9..71bd6dfc64e065 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 @@ -66,7 +66,7 @@ public static void PaddedExport() // DP is the most likely to fail, the rest just otherwise ensure that Export // isn't losing data. - AssertKeyEquals(diminishedDPParameters, exported); + RSATestHelpers.AssertKeyEquals(diminishedDPParameters, exported); } [Fact] @@ -94,7 +94,7 @@ public static void LargeKeyImportExport() exported = rsa.ExportParameters(true); - AssertKeyEquals(imported, exported); + RSATestHelpers.AssertKeyEquals(imported, exported); } } @@ -119,7 +119,7 @@ public static void UnusualExponentImportExport() // Exponent is the most likely to fail, the rest just otherwise ensure that Export // isn't losing data. - AssertKeyEquals(unusualExponentParameters, exported); + RSATestHelpers.AssertKeyEquals(unusualExponentParameters, exported); } [Fact] @@ -136,7 +136,7 @@ public static void ImportExport1032() exportedPublic = rsa.ExportParameters(false); } - AssertKeyEquals(imported, exported); + RSATestHelpers.AssertKeyEquals(imported, exported); Assert.Equal(exportedPublic.Modulus, imported.Modulus); Assert.Equal(exportedPublic.Exponent, imported.Exponent); @@ -169,7 +169,7 @@ public static void ImportReset() Assert.Equal(imported.Modulus.Length * 8, rsa.KeySize); exported = rsa.ExportParameters(true); - AssertKeyEquals(imported, exported); + RSATestHelpers.AssertKeyEquals(imported, exported); } } @@ -207,18 +207,18 @@ public static void MultiExport() RSAParameters exportedPrivate3 = rsa.ExportParameters(true); RSAParameters exportedPublic3 = rsa.ExportParameters(false); - AssertKeyEquals(imported, exportedPrivate); + RSATestHelpers.AssertKeyEquals(imported, exportedPrivate); Assert.Equal(imported.Modulus, exportedPublic.Modulus); Assert.Equal(imported.Exponent, exportedPublic.Exponent); Assert.Null(exportedPublic.D); ValidateParameters(ref exportedPublic); - AssertKeyEquals(exportedPrivate, exportedPrivate2); - AssertKeyEquals(exportedPrivate, exportedPrivate3); + RSATestHelpers.AssertKeyEquals(exportedPrivate, exportedPrivate2); + RSATestHelpers.AssertKeyEquals(exportedPrivate, exportedPrivate3); - AssertKeyEquals(exportedPublic, exportedPublic2); - AssertKeyEquals(exportedPublic, exportedPublic3); + RSATestHelpers.AssertKeyEquals(exportedPublic, exportedPublic2); + RSATestHelpers.AssertKeyEquals(exportedPublic, exportedPublic3); } } diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyFileTests.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyFileTests.cs index daa175dda47a93..6ac8f53aa78385 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyFileTests.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyFileTests.cs @@ -1454,7 +1454,7 @@ private static void ReadWriteKey( arrayExport = writeArrayFunc(rsa); RSAParameters rsaParameters = rsa.ExportParameters(isPrivateKey); - ImportExport.AssertKeyEquals(expected, rsaParameters); + RSATestHelpers.AssertKeyEquals(expected, rsaParameters); } // Public key formats are stable. @@ -1478,7 +1478,7 @@ private static void ReadWriteKey( Assert.Equal(arrayExport.Length, bytesRead); RSAParameters rsaParameters = rsa.ExportParameters(isPrivateKey); - ImportExport.AssertKeyEquals(expected, rsaParameters); + RSATestHelpers.AssertKeyEquals(expected, rsaParameters); Assert.False( writeSpanFunc(rsa, Span.Empty, out int bytesWritten), diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyPemTests.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyPemTests.cs index 27438e93d36e6b..1ef844ac1d0890 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyPemTests.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyPemTests.cs @@ -44,7 +44,7 @@ public static void ImportFromPem_RSAPrivateKey_Simple() rsa.ImportFromPem(pem); RSAParameters rsaParameters = rsa.ExportParameters(true); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); } } @@ -68,7 +68,7 @@ public static void ImportFromPem_Pkcs8UnEncrypted_Simple() rsa.ImportFromPem(pem); RSAParameters rsaParameters = rsa.ExportParameters(true); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); } } @@ -97,7 +97,7 @@ public static void ImportFromPem_Pkcs8UnEncrypted_UnrelatedAlgorithmIsIgnored() rsa.ImportFromPem(pem); RSAParameters rsaParameters = rsa.ExportParameters(true); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); } } @@ -114,7 +114,7 @@ public static void ImportFromPem_SubjectPublicKeyInfo_Simple() rsa.ImportFromPem(pem); RSAParameters rsaParameters = rsa.ExportParameters(false); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters.ToPublic(), rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters.ToPublic(), rsaParameters); } } @@ -136,7 +136,7 @@ public static void ImportFromPem_SubjectPublicKeyInfo_IgnoresUnrelatedAlgorithm( rsa.ImportFromPem(pem); RSAParameters rsaParameters = rsa.ExportParameters(false); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters.ToPublic(), rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters.ToPublic(), rsaParameters); } } @@ -154,7 +154,7 @@ public static void ImportFromPem_RSAPublicKey_Simple() rsa.ImportFromPem(pem); RSAParameters rsaParameters = rsa.ExportParameters(false); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters.ToPublic(), rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters.ToPublic(), rsaParameters); } } @@ -191,7 +191,7 @@ public static void ImportFromPem_RSAPrivateKey_PrecedingUnrelatedPem() rsa.ImportFromPem(pem); RSAParameters rsaParameters = rsa.ExportParameters(true); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); } } @@ -216,7 +216,7 @@ public static void ImportFromPem_RSAPrivateKey_PrecedingMalformedPem() rsa.ImportFromPem(pem); RSAParameters rsaParameters = rsa.ExportParameters(true); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); } } @@ -243,7 +243,7 @@ public static void ImportFromPem_RSAPrivateKey_IgnoresOtherAlgorithms() rsa.ImportFromPem(pem); RSAParameters rsaParameters = rsa.ExportParameters(true); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); } } @@ -403,7 +403,7 @@ public static void ImportFromEncryptedPem_Pkcs8Encrypted_Char_Simple() rsa.ImportFromEncryptedPem(pem, (ReadOnlySpan)"test"); RSAParameters rsaParameters = rsa.ExportParameters(true); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); } } @@ -428,7 +428,7 @@ public static void ImportFromEncryptedPem_Pkcs8Encrypted_Byte_Simple() rsa.ImportFromEncryptedPem(pem, "test"u8); RSAParameters rsaParameters = rsa.ExportParameters(true); - ImportExport.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); + RSATestHelpers.AssertKeyEquals(TestData.DiminishedDPParameters, rsaParameters); } } diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/ImportExport.Shared.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSATestHelpers.cs similarity index 95% rename from src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/ImportExport.Shared.cs rename to src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSATestHelpers.cs index 6f47cca124c765..23568417c5f00f 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/ImportExport.Shared.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSATestHelpers.cs @@ -6,8 +6,7 @@ namespace System.Security.Cryptography.Rsa.Tests { - // TODO This is used in multiple tests files, so move this into a common Helpers class. - public partial class ImportExport + public class RSATestHelpers { internal static void AssertKeyEquals(in RSAParameters expected, in RSAParameters actual) { diff --git a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAXml.cs b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAXml.cs index 666f9bea3c4095..69389f2adef05d 100644 --- a/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAXml.cs +++ b/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAXml.cs @@ -996,15 +996,15 @@ public static void FromToXml() { rsaPub.FromXmlString(xmlPub); - ImportExport.AssertKeyEquals(pubOnly, rsaPub.ExportParameters(false)); + RSATestHelpers.AssertKeyEquals(pubOnly, rsaPub.ExportParameters(false)); } using (RSA rsaPriv = RSAFactory.Create()) { rsaPriv.FromXmlString(xmlPriv); - ImportExport.AssertKeyEquals(pubPriv, rsaPriv.ExportParameters(true)); - ImportExport.AssertKeyEquals(pubOnly, rsaPriv.ExportParameters(false)); + RSATestHelpers.AssertKeyEquals(pubPriv, rsaPriv.ExportParameters(true)); + RSATestHelpers.AssertKeyEquals(pubOnly, rsaPriv.ExportParameters(false)); } } } @@ -1274,7 +1274,7 @@ private static void TestReadXml(string xmlString, in RSAParameters expectedParam bool includePrivateParameters = expectedParameters.D != null; - ImportExport.AssertKeyEquals( + RSATestHelpers.AssertKeyEquals( expectedParameters, rsa.ExportParameters(includePrivateParameters)); } diff --git a/src/libraries/Microsoft.Bcl.Cryptography/src/Microsoft.Bcl.Cryptography.csproj b/src/libraries/Microsoft.Bcl.Cryptography/src/Microsoft.Bcl.Cryptography.csproj index c2cc1de2a16646..af50013e0e9a3f 100644 --- a/src/libraries/Microsoft.Bcl.Cryptography/src/Microsoft.Bcl.Cryptography.csproj +++ b/src/libraries/Microsoft.Bcl.Cryptography/src/Microsoft.Bcl.Cryptography.csproj @@ -479,7 +479,6 @@ - diff --git a/src/libraries/Microsoft.Bcl.Cryptography/src/System/Security/Cryptography/CngHelpers.cs b/src/libraries/Microsoft.Bcl.Cryptography/src/System/Security/Cryptography/CngHelpers.cs deleted file mode 100644 index fd13b4cd9e77c7..00000000000000 --- a/src/libraries/Microsoft.Bcl.Cryptography/src/System/Security/Cryptography/CngHelpers.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace System.Security.Cryptography -{ - internal static partial class CngHelpers - { - internal static unsafe void GetRandomBytes(Span buffer) - { - if (buffer.Length > 0) - { - fixed (byte* pbBuffer = buffer) - { - Interop.BCrypt.NTSTATUS status = Interop.BCrypt.BCryptGenRandom(IntPtr.Zero, pbBuffer, buffer.Length, Interop.BCrypt.BCRYPT_USE_SYSTEM_PREFERRED_RNG); - if (status != Interop.BCrypt.NTSTATUS.STATUS_SUCCESS) - throw Interop.BCrypt.CreateCryptographicException(status); - } - } - } - } -} diff --git a/src/libraries/Microsoft.Bcl.Cryptography/tests/Microsoft.Bcl.Cryptography.Tests.csproj b/src/libraries/Microsoft.Bcl.Cryptography/tests/Microsoft.Bcl.Cryptography.Tests.csproj index e284c3c841bbc4..27b0a847e0a548 100644 --- a/src/libraries/Microsoft.Bcl.Cryptography/tests/Microsoft.Bcl.Cryptography.Tests.csproj +++ b/src/libraries/Microsoft.Bcl.Cryptography/tests/Microsoft.Bcl.Cryptography.Tests.csproj @@ -192,8 +192,8 @@ Link="CommonTest\System\Security\Cryptography\AlgorithmImplementations\MLDsa\MLDsaTestsData.cs" /> - + - + - + - + - +