This commit is contained in:
pavelbannov 2019-08-16 11:44:03 +03:00
parent 74eb7a141f
commit 73774a29fa
18 changed files with 83 additions and 73 deletions

View File

@ -136,8 +136,9 @@ namespace ASC.Security.Cryptography
}
private static byte[] ComputeHash(byte[] data, HashAlg hashAlg)
{
return GetAlg(hashAlg).ComputeHash(data);
{
using var alg = GetAlg(hashAlg);
return alg.ComputeHash(data);
}
private static byte[] ComputeHash(string data, HashAlg hashAlg)

View File

@ -36,9 +36,9 @@ namespace ASC.Common.Tests.Data
[Test]
public void ExecuteListTest()
{
var db = new MultiRegionalDbManager("core");
var r1 = db.ExecuteList("select 1");
Assert.IsTrue(r1.Count > 1);
using var db = new MultiRegionalDbManager("core");
var r1 = db.ExecuteList("select 1");
Assert.IsTrue(r1.Count > 1);
}
}
}

View File

@ -41,28 +41,32 @@ namespace ASC.Common.Tests.Security.Cryptography
{
var str = "Hello, Jhon!";
using var md5 = MD5.Create();
Assert.AreEqual(
Convert.ToBase64String(MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(str))),
Convert.ToBase64String(md5.ComputeHash(Encoding.UTF8.GetBytes(str))),
Hasher.Base64Hash(str, HashAlg.MD5)
);
using var sha1 = SHA1.Create();
Assert.AreEqual(
Convert.ToBase64String(SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(str))),
Convert.ToBase64String(sha1.ComputeHash(Encoding.UTF8.GetBytes(str))),
Hasher.Base64Hash(str, HashAlg.SHA1)
);
using var sha256 = SHA256.Create();
Assert.AreEqual(
Convert.ToBase64String(SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(str))),
Convert.ToBase64String(sha256.ComputeHash(Encoding.UTF8.GetBytes(str))),
Hasher.Base64Hash(str, HashAlg.SHA256)
);
using var sha512 = SHA512.Create();
Assert.AreEqual(
Convert.ToBase64String(SHA512.Create().ComputeHash(Encoding.UTF8.GetBytes(str))),
Convert.ToBase64String(sha512.ComputeHash(Encoding.UTF8.GetBytes(str))),
Hasher.Base64Hash(str, HashAlg.SHA512)
);
Assert.AreEqual(
Convert.ToBase64String(SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(str))),
Convert.ToBase64String(sha256.ComputeHash(Encoding.UTF8.GetBytes(str))),
Hasher.Base64Hash(str) //DEFAULT
);
}

View File

@ -177,7 +177,8 @@ namespace ASC.Common.Threading
{
distributedTask.Status = DistributedTaskStatus.Canceled;
}
cancelations.TryRemove(id, out var s);
cancelations.TryRemove(id, out _);
distributedTask.PublishChanges();
}

View File

@ -79,12 +79,14 @@ namespace ASC.Common.Utils
private static string GetHashBase64(string str)
{
return Convert.ToBase64String(SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(str)));
using var sha256 = SHA256.Create();
return Convert.ToBase64String(sha256.ComputeHash(Encoding.UTF8.GetBytes(str)));
}
private static string GetHashBase64MD5(string str)
{
return Convert.ToBase64String(MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(str)));
using var md5 = MD5.Create();
return Convert.ToBase64String(md5.ComputeHash(Encoding.UTF8.GetBytes(str)));
}
}
}

View File

@ -123,17 +123,15 @@ namespace ASC.Core.Billing
{
try
{
using (var reader = new StreamReader(licenseStream))
{
var licenseJsonString = reader.ReadToEnd();
var license = License.Parse(licenseJsonString);
var dueDate = Validate(license);
SaveLicense(licenseStream, LicensePathTemp);
return dueDate;
}
using var reader = new StreamReader(licenseStream);
var licenseJsonString = reader.ReadToEnd();
var license = License.Parse(licenseJsonString);
var dueDate = Validate(license);
SaveLicense(licenseStream, LicensePathTemp);
return dueDate;
}
catch (Exception ex)
{
@ -152,14 +150,12 @@ namespace ASC.Core.Billing
}
const int bufferSize = 4096;
using (var fs = File.Open(path, FileMode.Create))
{
var buffer = new byte[bufferSize];
int readed;
while ((readed = licenseStream.Read(buffer, 0, bufferSize)) != 0)
{
fs.Write(buffer, 0, readed);
}
using var fs = File.Open(path, FileMode.Create);
var buffer = new byte[bufferSize];
int readed;
while ((readed = licenseStream.Read(buffer, 0, bufferSize)) != 0)
{
fs.Write(buffer, 0, readed);
}
}

View File

@ -106,9 +106,9 @@ namespace ASC.Core.Common.Tests
[Test]
public void SyncTest()
{
var client = new TariffSyncClient();
var quotas = client.GetTariffs(1, "key");
Assert.AreNotEqual(0, quotas.Count());
using var client = new TariffSyncClient();
var quotas = client.GetTariffs(1, "key");
Assert.AreNotEqual(0, quotas.Count());
}
private void CompareQuotas(TenantQuota q1, TenantQuota q2)
@ -136,7 +136,8 @@ namespace ASC.Core.Common.Tests
private void DeleteQuotaRow(TenantQuotaRow row)
{
var d = new SqlDelete(DbQuotaService.tenants_quotarow).Where("tenant", row.Tenant).Where("path", row.Path);
new DbManager("core").ExecuteNonQuery(d);
using var dbManager = new DbManager("core");
dbManager.ExecuteNonQuery(d);
}
}
}

View File

@ -43,7 +43,7 @@ namespace ASC.Common.Tests.Security.Cryptography
new Random(10032010).NextBytes(randBytes);
var tdes = new TripleDESCryptoServiceProvider();
using var tdes = new TripleDESCryptoServiceProvider();
var pwddb = new PasswordDeriveBytes("1", new byte[] { 1 });
tdes.Key = pwddb.CryptDeriveKey("TripleDES", "SHA1", 192, tdes.IV);
//string s = Convert.ToBase64String(tdes.Key);

View File

@ -49,7 +49,7 @@ namespace ASC.Core.Common.Tests
[Test]
public void TestShoppingUriBatch()
{
var bc = new BillingClient(true);
using var bc = new BillingClient(true);
var result = bc.GetPaymentUrls("0", new[] { "12", "13", "14", "0", "-2" });
Assert.AreEqual(5, result.Count);
}

View File

@ -199,8 +199,9 @@ namespace ASC.Data.Reassigns
}
private void DeleteTalkStorage()
{
var data = MD5.Create().ComputeHash(Encoding.Default.GetBytes(FromUser.ToString()));
{
using var md5 = MD5.Create();
var data = md5.ComputeHash(Encoding.Default.GetBytes(FromUser.ToString()));
var sBuilder = new StringBuilder();

View File

@ -178,7 +178,7 @@ namespace ASC.Data.Storage.GoogleCloud
return GetUriShared(domain, path);
}
var storage = GetStorage();
using var storage = GetStorage();
var preSignedURL = UrlSigner.FromServiceAccountPath(_jsonPath)
.Sign(_bucket, MakePath(domain, path), expire, HttpMethod.Get);
@ -209,7 +209,7 @@ namespace ASC.Data.Storage.GoogleCloud
{
var tempStream = TempStream.Create();
var storage = GetStorage();
using var storage = GetStorage();
storage.DownloadObject(_bucket, MakePath(domain, path), tempStream, null, null);
@ -268,7 +268,7 @@ namespace ASC.Data.Storage.GoogleCloud
? MimeMapping.GetMimeMapping(Path.GetFileName(path))
: contentType;
var storage = GetStorage();
using var storage = GetStorage();
var uploadObjectOptions = new UploadObjectOptions
{
@ -335,7 +335,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override void Delete(string domain, string path)
{
var storage = GetStorage();
using var storage = GetStorage();
var key = MakePath(domain, path);
var size = GetFileSize(domain, path);
@ -348,7 +348,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override void DeleteFiles(string domain, string folderPath, string pattern, bool recursive)
{
var storage = GetStorage();
using var storage = GetStorage();
IEnumerable<Google.Apis.Storage.v1.Data.Object> objToDel;
@ -396,7 +396,7 @@ namespace ASC.Data.Storage.GoogleCloud
if (!keysToDel.Any()) return;
var storage = GetStorage();
using var storage = GetStorage();
keysToDel.ForEach(x => storage.DeleteObject(_bucket, x));
@ -408,7 +408,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override void DeleteFiles(string domain, string folderPath, DateTime fromDate, DateTime toDate)
{
var storage = GetStorage();
using var storage = GetStorage();
var objToDel = GetObjects(domain, folderPath, true)
.Where(x => x.Updated >= fromDate && x.Updated <= toDate);
@ -422,8 +422,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override void MoveDirectory(string srcdomain, string srcdir, string newdomain, string newdir)
{
var storage = GetStorage();
using var storage = GetStorage();
var srckey = MakePath(srcdomain, srcdir);
var dstkey = MakePath(newdomain, newdir);
@ -443,7 +442,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override Uri Move(string srcdomain, string srcpath, string newdomain, string newpath)
{
var storage = GetStorage();
using var storage = GetStorage();
var srcKey = MakePath(srcdomain, srcpath);
var dstKey = MakePath(newdomain, newpath);
@ -479,7 +478,7 @@ namespace ASC.Data.Storage.GoogleCloud
private IEnumerable<Google.Apis.Storage.v1.Data.Object> GetObjects(string domain, string path, bool recursive)
{
var storage = GetStorage();
using var storage = GetStorage();
var items = storage.ListObjects(_bucket, MakePath(domain, path));
@ -496,7 +495,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override bool IsFile(string domain, string path)
{
var storage = GetStorage();
using var storage = GetStorage();
var objects = storage.ListObjects(_bucket, MakePath(domain, path), null);
@ -510,7 +509,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override void DeleteDirectory(string domain, string path)
{
var storage = GetStorage();
using var storage = GetStorage();
var objToDel = storage
.ListObjects(_bucket, MakePath(domain, path));
@ -524,7 +523,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override long GetFileSize(string domain, string path)
{
var storage = GetStorage();
using var storage = GetStorage();
var obj = storage.GetObject(_bucket, MakePath(domain, path));
@ -536,7 +535,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override long GetDirectorySize(string domain, string path)
{
var storage = GetStorage();
using var storage = GetStorage();
var objToDel = storage
.ListObjects(_bucket, MakePath(domain, path));
@ -554,7 +553,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override long ResetQuota(string domain)
{
var storage = GetStorage();
using var storage = GetStorage();
var objects = storage
.ListObjects(_bucket, MakePath(domain, string.Empty));
@ -579,7 +578,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override long GetUsedQuota(string domain)
{
var storage = GetStorage();
using var storage = GetStorage();
var objects = storage
.ListObjects(_bucket, MakePath(domain, string.Empty));
@ -597,7 +596,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override Uri Copy(string srcdomain, string srcpath, string newdomain, string newpath)
{
var storage = GetStorage();
using var storage = GetStorage();
var srcKey = MakePath(srcdomain, srcpath);
var dstKey = MakePath(newdomain, newpath);
@ -622,7 +621,7 @@ namespace ASC.Data.Storage.GoogleCloud
var dstkey = MakePath(newdomain, newdir);
//List files from src
var storage = GetStorage();
using var storage = GetStorage();
var options = new ListObjectsOptions();
@ -643,7 +642,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override string SavePrivate(string domain, string path, System.IO.Stream stream, DateTime expires)
{
var storage = GetStorage();
using var storage = GetStorage();
var objectKey = MakePath(domain, path);
var buffered = stream.GetBuffered();
@ -677,7 +676,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override void DeleteExpired(string domain, string path, TimeSpan oldThreshold)
{
var storage = GetStorage();
using var storage = GetStorage();
var objects = storage.ListObjects(_bucket, MakePath(domain, path));
@ -702,7 +701,7 @@ namespace ASC.Data.Storage.GoogleCloud
public override string InitiateChunkedUpload(string domain, string path)
{
var storage = GetStorage();
using var storage = GetStorage();
var tempUploader = storage.CreateObjectUploader(_bucket, MakePath(domain, path), null, new MemoryStream());

View File

@ -776,7 +776,7 @@ namespace ASC.Data.Storage.S3
var policyBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(policyBuilder.ToString()));
//sign = AWSSDKUtils.HMACSign(policyBase64, _secretAccessKeyId, new HMACSHA1());
var algorithm = new HMACSHA1 { Key = Encoding.UTF8.GetBytes(_secretAccessKeyId) };
using var algorithm = new HMACSHA1 { Key = Encoding.UTF8.GetBytes(_secretAccessKeyId) };
try
{
algorithm.Key = Encoding.UTF8.GetBytes(key);

View File

@ -66,7 +66,7 @@ namespace ASC.FederatedLogin.Helpers
public static byte[] MD5(byte[] data)
{
var md5 = System.Security.Cryptography.MD5.Create();
using var md5 = System.Security.Cryptography.MD5.Create();
return md5.ComputeHash(data);
}
}

View File

@ -120,8 +120,9 @@ namespace ASC.FederatedLogin.LoginProviders
var sortedKeys = queryDictionary.Keys.ToList();
sortedKeys.Sort();
using var md5 = MD5.Create();
var mailruParams = string.Join("", sortedKeys.Select(key => key + "=" + queryDictionary[key]).ToList());
var sig = string.Join("", MD5.Create().ComputeHash(Encoding.ASCII.GetBytes(mailruParams + ClientSecret)).Select(b => b.ToString("x2")));
var sig = string.Join("", md5.ComputeHash(Encoding.ASCII.GetBytes(mailruParams + ClientSecret)).Select(b => b.ToString("x2")));
var mailRuProfile = RequestHelper.PerformRequest(
MailRuApiUrl

View File

@ -65,7 +65,7 @@ namespace System
{
var bytes = Encoding.Unicode.GetBytes(str);
var CSP = new MD5CryptoServiceProvider();
using var CSP = new MD5CryptoServiceProvider();
var byteHash = CSP.ComputeHash(bytes);

View File

@ -69,7 +69,8 @@ namespace ASC.Web.Core.Files
{
expectedKey ??= "";
const int maxLength = 128;
if (expectedKey.Length > maxLength) expectedKey = Convert.ToBase64String(SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(expectedKey)));
using var sha256 = SHA256.Create();
if (expectedKey.Length > maxLength) expectedKey = Convert.ToBase64String(sha256.ComputeHash(Encoding.UTF8.GetBytes(expectedKey)));
var key = Regex.Replace(expectedKey, "[^0-9a-zA-Z_]", "_");
return key.Substring(key.Length - Math.Min(key.Length, maxLength));
}

View File

@ -899,7 +899,7 @@ namespace ASC.Web.Core.Users
public static RotateFlipType RotateImageByExifOrientationData(string sourceFilePath, string targetFilePath, ImageFormat targetFormat, bool updateExifData = true)
{
// Rotate the image according to EXIF data
var bmp = new Bitmap(sourceFilePath);
using var bmp = new Bitmap(sourceFilePath);
var fType = RotateImageByExifOrientationData(bmp, updateExifData);
if (fType != RotateFlipType.RotateNoneFlipNone)
{

View File

@ -157,8 +157,11 @@ namespace ASC.Web.Core.Users
public void Save(int tenantId, List<ThumbnailItem> bitmaps)
{
foreach (var item in bitmaps)
UserPhotoManager.SaveThumbnail(UserId, item.Bitmap, MainImgBitmap(tenantId).RawFormat);
foreach (var item in bitmaps)
{
using var mainImgBitmap = MainImgBitmap(tenantId);
UserPhotoManager.SaveThumbnail(UserId, item.Bitmap, mainImgBitmap.RawFormat);
}
}
}
}