From 8eef6d2aff77d204e15d717de4fcc9cb4112dd1d Mon Sep 17 00:00:00 2001
From: DavoudEshtehari <61173489+DavoudEshtehari@users.noreply.github.com>
Date: Thu, 13 Jan 2022 18:04:10 -0800
Subject: [PATCH] [Hotfix 4.0.1] | Update obsolete api calls in .NET 6 (#1471)
---
doc/samples/AzureKeyVaultProviderExample.cs | 4 ++--
doc/samples/AzureKeyVaultProviderExample_2_0.cs | 4 ++--
doc/samples/AzureKeyVaultProviderLegacyExample_2_0.cs | 4 ++--
.../AzureKeyVaultProviderWithEnclaveProviderExample.cs | 4 ++--
...AzureKeyVaultProviderWithEnclaveProviderExample_2_0.cs | 4 ++--
.../src/Microsoft/Data/SqlClient/EnclaveProviderBase.cs | 2 +-
.../src/Microsoft/Data/SqlClient/SqlSecurityUtility.cs | 7 +++----
.../tests/FunctionalTests/AlwaysEncryptedTests/Utility.cs | 8 +++++---
.../ManualTests/AlwaysEncrypted/ExceptionTestAKVStore.cs | 2 +-
.../AlwaysEncrypted/TestFixtures/DatabaseHelper.cs | 4 ++--
.../TestFixtures/Setup/CertificateUtilityWin.cs | 2 +-
.../TestFixtures/Setup/ColumnEncryptionKey.cs | 4 ++--
.../tests/tools/TDS/TDS.Servers/GenericTDSServer.cs | 7 ++-----
.../tools/TDS/TDS/Login7/TDSLogin7FedAuthOptionToken.cs | 7 ++-----
14 files changed, 29 insertions(+), 34 deletions(-)
diff --git a/doc/samples/AzureKeyVaultProviderExample.cs b/doc/samples/AzureKeyVaultProviderExample.cs
index 84c9ffb2da..e16a9a63a7 100644
--- a/doc/samples/AzureKeyVaultProviderExample.cs
+++ b/doc/samples/AzureKeyVaultProviderExample.cs
@@ -130,8 +130,8 @@ WITH VALUES (
private static string GetEncryptedValue(SqlColumnEncryptionAzureKeyVaultProvider sqlColumnEncryptionAzureKeyVaultProvider)
{
byte[] plainTextColumnEncryptionKey = new byte[32];
- RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
- rngCsp.GetBytes(plainTextColumnEncryptionKey);
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(plainTextColumnEncryptionKey);
byte[] encryptedColumnEncryptionKey = sqlColumnEncryptionAzureKeyVaultProvider.EncryptColumnEncryptionKey(s_akvUrl, s_algorithm, plainTextColumnEncryptionKey);
string EncryptedValue = string.Concat("0x", BitConverter.ToString(encryptedColumnEncryptionKey).Replace("-", string.Empty));
diff --git a/doc/samples/AzureKeyVaultProviderExample_2_0.cs b/doc/samples/AzureKeyVaultProviderExample_2_0.cs
index f241966458..d4c64f9684 100644
--- a/doc/samples/AzureKeyVaultProviderExample_2_0.cs
+++ b/doc/samples/AzureKeyVaultProviderExample_2_0.cs
@@ -118,8 +118,8 @@ WITH VALUES (
private static string GetEncryptedValue(SqlColumnEncryptionAzureKeyVaultProvider sqlColumnEncryptionAzureKeyVaultProvider)
{
byte[] plainTextColumnEncryptionKey = new byte[32];
- RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
- rngCsp.GetBytes(plainTextColumnEncryptionKey);
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(plainTextColumnEncryptionKey);
byte[] encryptedColumnEncryptionKey = sqlColumnEncryptionAzureKeyVaultProvider.EncryptColumnEncryptionKey(s_akvUrl, s_algorithm, plainTextColumnEncryptionKey);
string EncryptedValue = string.Concat("0x", BitConverter.ToString(encryptedColumnEncryptionKey).Replace("-", string.Empty));
diff --git a/doc/samples/AzureKeyVaultProviderLegacyExample_2_0.cs b/doc/samples/AzureKeyVaultProviderLegacyExample_2_0.cs
index e55e1f18c7..d691455f06 100644
--- a/doc/samples/AzureKeyVaultProviderLegacyExample_2_0.cs
+++ b/doc/samples/AzureKeyVaultProviderLegacyExample_2_0.cs
@@ -116,8 +116,8 @@ WITH VALUES (
private static string GetEncryptedValue(SqlColumnEncryptionAzureKeyVaultProvider sqlColumnEncryptionAzureKeyVaultProvider)
{
byte[] plainTextColumnEncryptionKey = new byte[32];
- RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
- rngCsp.GetBytes(plainTextColumnEncryptionKey);
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(plainTextColumnEncryptionKey);
byte[] encryptedColumnEncryptionKey = sqlColumnEncryptionAzureKeyVaultProvider.EncryptColumnEncryptionKey(s_akvUrl, s_algorithm, plainTextColumnEncryptionKey);
string EncryptedValue = string.Concat("0x", BitConverter.ToString(encryptedColumnEncryptionKey).Replace("-", string.Empty));
diff --git a/doc/samples/AzureKeyVaultProviderWithEnclaveProviderExample.cs b/doc/samples/AzureKeyVaultProviderWithEnclaveProviderExample.cs
index 628a2e663b..2091dab322 100644
--- a/doc/samples/AzureKeyVaultProviderWithEnclaveProviderExample.cs
+++ b/doc/samples/AzureKeyVaultProviderWithEnclaveProviderExample.cs
@@ -136,8 +136,8 @@ WITH VALUES (
private static string GetEncryptedValue(SqlColumnEncryptionAzureKeyVaultProvider sqlColumnEncryptionAzureKeyVaultProvider)
{
byte[] plainTextColumnEncryptionKey = new byte[32];
- RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
- rngCsp.GetBytes(plainTextColumnEncryptionKey);
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(plainTextColumnEncryptionKey);
byte[] encryptedColumnEncryptionKey = sqlColumnEncryptionAzureKeyVaultProvider.EncryptColumnEncryptionKey(s_akvUrl, s_algorithm, plainTextColumnEncryptionKey);
string EncryptedValue = string.Concat("0x", BitConverter.ToString(encryptedColumnEncryptionKey).Replace("-", string.Empty));
diff --git a/doc/samples/AzureKeyVaultProviderWithEnclaveProviderExample_2_0.cs b/doc/samples/AzureKeyVaultProviderWithEnclaveProviderExample_2_0.cs
index 4328be2958..27f97dac38 100644
--- a/doc/samples/AzureKeyVaultProviderWithEnclaveProviderExample_2_0.cs
+++ b/doc/samples/AzureKeyVaultProviderWithEnclaveProviderExample_2_0.cs
@@ -123,8 +123,8 @@ WITH VALUES (
private static string GetEncryptedValue(SqlColumnEncryptionAzureKeyVaultProvider sqlColumnEncryptionAzureKeyVaultProvider)
{
byte[] plainTextColumnEncryptionKey = new byte[32];
- RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
- rngCsp.GetBytes(plainTextColumnEncryptionKey);
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(plainTextColumnEncryptionKey);
byte[] encryptedColumnEncryptionKey = sqlColumnEncryptionAzureKeyVaultProvider.EncryptColumnEncryptionKey(s_akvUrl, s_algorithm, plainTextColumnEncryptionKey);
string EncryptedValue = string.Concat("0x", BitConverter.ToString(encryptedColumnEncryptionKey).Replace("-", string.Empty));
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/EnclaveProviderBase.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/EnclaveProviderBase.cs
index a32e46f581..0c72beac9d 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/EnclaveProviderBase.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/EnclaveProviderBase.cs
@@ -151,7 +151,7 @@ protected void GetEnclaveSessionHelper(EnclaveSessionParameters enclaveSessionPa
{
if (shouldGenerateNonce)
{
- using (RandomNumberGenerator rng = new RNGCryptoServiceProvider())
+ using (RandomNumberGenerator rng = RandomNumberGenerator.Create())
{
// Client decides to initiate the process of attesting the enclave and to establish a secure session with the enclave.
// To ensure that server send new attestation request instead of replaying / re-sending the old token, we will create a nonce for current attestation request.
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlSecurityUtility.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlSecurityUtility.cs
index 67535743af..4dabe4351d 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlSecurityUtility.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlSecurityUtility.cs
@@ -59,15 +59,14 @@ internal static string GetSHA256Hash(byte[] input)
}
///
- /// Generates cryptographicall random bytes
+ /// Generates cryptographically random bytes
///
/// No of cryptographically random bytes to be generated
/// A byte array containing cryptographically generated random bytes
internal static void GenerateRandomBytes(byte[] randomBytes)
{
- // Generate random bytes cryptographically.
- RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
- rngCsp.GetBytes(randomBytes);
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(randomBytes);
}
///
diff --git a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/AlwaysEncryptedTests/Utility.cs b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/AlwaysEncryptedTests/Utility.cs
index 07e9e93146..6bc51d6acd 100644
--- a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/AlwaysEncryptedTests/Utility.cs
+++ b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/AlwaysEncryptedTests/Utility.cs
@@ -95,8 +95,8 @@ internal static byte[] GenerateRandomBytes(int length)
{
// Generate random bytes cryptographically.
byte[] randomBytes = new byte[length];
- RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
- rngCsp.GetBytes(randomBytes);
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(randomBytes);
return randomBytes;
}
@@ -348,8 +348,9 @@ internal static byte[] DecryptDataUsingAED(byte[] encryptedCellBlob, byte[] key,
return decryptedData;
}
+#if NETFRAMEWORK
///
- /// Create a self-signed certificate without private key. NET461 only.
+ /// Create a self-signed certificate without private key.
///
internal static X509Certificate2 CreateCertificateWithNoPrivateKey()
{
@@ -376,6 +377,7 @@ internal static X509Certificate2 CreateCertificateWithNoPrivateKey()
return certificate;
}
+#endif
///
/// Gets hex representation of byte array.
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/ExceptionTestAKVStore.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/ExceptionTestAKVStore.cs
index ec729b098a..389efad48d 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/ExceptionTestAKVStore.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/ExceptionTestAKVStore.cs
@@ -218,7 +218,7 @@ public void AkvStoreProviderVerifyFunctionWithInvalidSignature(bool fEnclaveEnab
Buffer.BlockCopy(cmkSignature, 0, tamperedCmkSignature, 0, tamperedCmkSignature.Length);
// Corrupt one byte at a time 10 times
- RandomNumberGenerator rng = new RNGCryptoServiceProvider();
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
byte[] randomIndexInCipherText = new byte[1];
for (int i = 0; i < 10; i++)
{
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/DatabaseHelper.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/DatabaseHelper.cs
index f4875ce63b..cd39d56b3c 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/DatabaseHelper.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/DatabaseHelper.cs
@@ -174,8 +174,8 @@ internal static byte[] GenerateRandomBytes(int length)
{
// Generate random bytes cryptographically.
byte[] randomBytes = new byte[length];
- RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
- rngCsp.GetBytes(randomBytes);
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(randomBytes);
return randomBytes;
}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/Setup/CertificateUtilityWin.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/Setup/CertificateUtilityWin.cs
index 66d3c3588d..72b14c8f51 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/Setup/CertificateUtilityWin.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/Setup/CertificateUtilityWin.cs
@@ -188,7 +188,7 @@ internal static X509Certificate2 GetCertificate(string certificateName, StoreLoc
///
internal static string GetCspPathFromCertificate(X509Certificate2 certificate)
{
- if (certificate.PrivateKey is RSACryptoServiceProvider csp)
+ if (certificate.GetRSAPrivateKey() is RSACryptoServiceProvider csp)
{
return string.Concat(csp.CspKeyContainerInfo.ProviderName, @"/", csp.CspKeyContainerInfo.KeyContainerName);
}
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/Setup/ColumnEncryptionKey.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/Setup/ColumnEncryptionKey.cs
index 5ba9c166fe..19a2d2149c 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/Setup/ColumnEncryptionKey.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/TestFixtures/Setup/ColumnEncryptionKey.cs
@@ -60,8 +60,8 @@ public static byte[] GenerateRandomBytes(int length)
{
// Generate random bytes cryptographically.
byte[] randomBytes = new byte[length];
- RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
- rngCsp.GetBytes(randomBytes);
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(randomBytes);
return randomBytes;
}
diff --git a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/GenericTDSServer.cs b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/GenericTDSServer.cs
index 30e362c931..421e3b275a 100644
--- a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/GenericTDSServer.cs
+++ b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/GenericTDSServer.cs
@@ -739,11 +739,8 @@ protected virtual TDSMessageCollection CheckTDSVersion(ITDSServerSession session
private byte[] _GenerateRandomBytes(int count)
{
byte[] randomBytes = new byte[count];
-
- RNGCryptoServiceProvider gen = new RNGCryptoServiceProvider();
- // Generate bytes
- gen.GetBytes(randomBytes);
-
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(randomBytes);
return randomBytes;
}
diff --git a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/Login7/TDSLogin7FedAuthOptionToken.cs b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/Login7/TDSLogin7FedAuthOptionToken.cs
index 57cb75bc57..412664ae1a 100644
--- a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/Login7/TDSLogin7FedAuthOptionToken.cs
+++ b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/Login7/TDSLogin7FedAuthOptionToken.cs
@@ -366,11 +366,8 @@ private bool ReadSecurityTokenLogin(Stream source, uint optionDataLength)
private byte[] _GenerateRandomBytes(int count)
{
byte[] randomBytes = new byte[count];
-
- RNGCryptoServiceProvider gen = new RNGCryptoServiceProvider();
- // Generate bytes
- gen.GetBytes(randomBytes);
-
+ RandomNumberGenerator rng = RandomNumberGenerator.Create();
+ rng.GetBytes(randomBytes);
return randomBytes;
}
}