private void button_Start_Click(object sender, EventArgs e) { string passPhrase = textBox_PassPhrase.Text.Trim(); string fileName = textBox_FileName.Text.Trim(); string lastError = string.Empty; bool retVal = false; if (passPhrase.Length == 0) { MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); MessageBox.Show("Password phrase can't be empty.", "Encryption", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (fileName.Length == 0) { MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); MessageBox.Show("File name can't be empty.", "Encryption", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } byte[] key = Utils.GetKeyByPassPhrase(passPhrase); byte[] iv = Utils.GetRandomIV(); if (checkBox_UseDefaultIV.Checked) { iv = FilterAPI.DEFAULT_IV_TAG; } if (encryptType == FilterAPI.EncryptType.Encryption) { retVal = FilterAPI.AESEncryptFile(fileName, (uint)key.Length, key, (uint)iv.Length, iv, true); } else { if (!checkBox_UseDefaultIV.Checked) { uint accessFlags = 0; retVal = FilterAPI.GetIVTag(fileName, ref iv, ref accessFlags, out lastError); if (!retVal) { MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); MessageBox.Show(" Get file " + fileName + " IV tag failed with error:" + lastError, encryptType.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } retVal = FilterAPI.AESDecryptFile(fileName, (uint)key.Length, key, (uint)iv.Length, iv); } if (!retVal) { string errorMessage = FilterAPI.GetLastErrorMessage(); MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); MessageBox.Show(encryptType.ToString() + " file " + fileName + " failed with error:" + errorMessage, encryptType.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); MessageBox.Show(encryptType.ToString() + " file " + fileName + " succeeded.", encryptType.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void button_Start_Click(object sender, EventArgs e) { string passPhrase = textBox_PassPhrase.Text.Trim(); string fileName = textBox_FileName.Text.Trim(); string targetFileName = textBox_TargetFileName.Text.Trim(); string lastError = string.Empty; bool retVal = false; if (passPhrase.Length == 0) { MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); MessageBox.Show("Password phrase can't be empty.", "Encryption", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (fileName.Length == 0) { MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); MessageBox.Show("File name can't be empty.", "Encryption", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } byte[] key = Utils.GetKeyByPassPhrase(passPhrase, 32); byte[] iv = Utils.GetRandomIV(); if (encryptType == FilterAPI.EncryptType.Encryption) { if (fileName.Equals(targetFileName, StringComparison.CurrentCulture)) { retVal = FilterAPI.AESEncryptFileWithTag(fileName, (uint)key.Length, key, (uint)iv.Length, iv, (uint)iv.Length, iv); } else { retVal = FilterAPI.AESEncryptFileToFileWithTag(fileName, targetFileName, (uint)key.Length, key, (uint)iv.Length, iv, (uint)iv.Length, iv); } } else { uint ivLength = (uint)iv.Length; retVal = FilterAPI.GetAESTagData(fileName, ref ivLength, iv); if (!retVal) { MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); MessageBox.Show("Decrypt file failed with error " + FilterAPI.GetLastErrorMessage(), "Decryption", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (fileName.Equals(targetFileName, StringComparison.CurrentCulture)) { retVal = FilterAPI.AESDecryptFile(fileName, (uint)key.Length, key, (uint)iv.Length, iv); } else { retVal = FilterAPI.AESDecryptFileToFile(fileName, targetFileName, (uint)key.Length, key, (uint)iv.Length, iv); } } if (!retVal) { string errorMessage = FilterAPI.GetLastErrorMessage(); MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); MessageBox.Show(encryptType.ToString() + " file " + fileName + " failed with error:" + errorMessage, encryptType.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); MessageBox.Show(encryptType.ToString() + " file " + fileName + " succeeded.", encryptType.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Information); } }