public void EncryptData(String inputFileName, String outputFileName, ICryptoTransform algorithmCryptoTransform, DelegateUpdateProgres delegateUpdateProgres) { _fileIn = new FileStream(inputFileName, FileMode.Open, FileAccess.Read); _fileOut = new FileStream(outputFileName, FileMode.OpenOrCreate, FileAccess.Write); _fileOut.SetLength(0); byte[] bin = new byte[50000 * 32]; long rdlen = 0; long totlen = _fileIn.Length; int len; CryptoStream encStream = new CryptoStream(_fileOut, algorithmCryptoTransform, CryptoStreamMode.Write); while (rdlen < totlen) { len = _fileIn.Read(bin, 0, bin.Length); encStream.Write(bin, 0, len); rdlen = rdlen + len; delegateUpdateProgres((int)(((double)_fileIn.Position / totlen) * 98)); } try { _fileIn.Close(); encStream.Close(); } catch (Exception) { _fileIn.Close(); _fileOut.Close(); MessageBox.Show(@"Невірний ключ або вектор ініціалізації"); } delegateUpdateProgres(100); }
public Coder(String inputFileName, String outputFileName, ICryptoTransform algorithmCryptoTransform, DelegateUpdateProgres delegateUpdateProgres) { EncryptData(inputFileName, outputFileName, algorithmCryptoTransform, delegateUpdateProgres); }