using System.Diagnostics;
using System.Security.Cryptography;
using System.Text;
using Blowfish;
namespace WinFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DieffieHellmanEncryptorAES.InitializeEncryptor();
ET_DisplayMyPublicKey();
ET_DisplayMyIV();
DT_DisplayMyPublicKey();
EF_DisplayMyPublicKey();
EF_DisplayMyIV();
DF_DisplayMyPublicKey();
DieffieHellmanEncryptorBlowfish.InitializeEncryptor();
ET_DisplayMyPublicKeyBf();
ET_DisplayMyIVBf();
DT_DisplayMyPublicKeyBf();
EF_DisplayMyPublicKeyBf();
EF_DisplayMyIVBf();
DF_DisplayMyPublicKeyBf();
}
public static class DieffieHellmanEncryptorAES
{
private static Aes aes;
private static ECDiffieHellmanCng diffieHellman;
public static byte[] publicKey;
public static void InitializeEncryptor()
{
aes = Aes.Create();
diffieHellman = new ECDiffieHellmanCng();
diffieHellman.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash;
diffieHellman.HashAlgorithm = CngAlgorithm.Sha256;
publicKey = diffieHellman.PublicKey.ToByteArray();
}
public static byte[] GetIV()
{
return aes.IV;
}
public static string EncryptText(string base64OtherPartyPublicKey, string textToEncrypt)
{
try
{
string base64encryptedText;
byte[] otherPartyPublicKey = Convert.FromBase64String(base64OtherPartyPublicKey);
CngKey key = CngKey.Import(otherPartyPublicKey, CngKeyBlobFormat.EccPublicBlob);
byte[] derivedKey = diffieHellman.DeriveKeyMaterial(key); // Common secret
aes.Key = derivedKey;
// Create the streams used for encryption.
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, aes.CreateEncryptor(), CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
//Write all data to the stream.
swEncrypt.Write(textToEncrypt);
}
byte[] encryptedBytes = msEncrypt.ToArray();
base64encryptedText = Convert.ToBase64String(encryptedBytes);
}
}
return base64encryptedText;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Uwaga");
return "";
}
}
public static string DecryptText(string base64OtherPartyPublicKey, string base64OtherPartyIV, string base64TextToDecrypt)
{
try {
string decryptedText;
byte[] otherPartyPublicKey = Convert.FromBase64String(base64OtherPartyPublicKey);
byte[] textToDecrypt = Convert.FromBase64String(base64TextToDecrypt);
byte[] otherPartyIV = Convert.FromBase64String(base64OtherPartyIV);
CngKey key = CngKey.Import(otherPartyPublicKey, CngKeyBlobFormat.EccPublicBlob);
byte[] derivedKey = diffieHellman.DeriveKeyMaterial(key); // Common secret
aes.Key = derivedKey;
aes.IV = otherPartyIV;
// Create the streams used for decryption.
using (MemoryStream msDecrypt = new MemoryStream(textToDecrypt))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, aes.CreateDecryptor(), CryptoStreamMode.Read))
{
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
// Read the decrypted bytes from the decrypting stream
// and place them in a string.
decryptedText = srDecrypt.ReadToEnd();
}
}
}
return decryptedText;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Uwaga");
return "";
}
}
public static void EncryptFile(string base64OtherPartyPublicKey, string fileToEncryptPath, string destinationFolder)
{
byte[] otherPartyPublicKey = Convert.FromBase64String(base64OtherPartyPublicKey);
CngKey key = CngKey.Import(otherPartyPublicKey, CngKeyBlobFormat.EccPublicBlob);
byte[] derivedKey = diffieHellman.DeriveKeyMaterial(key); // Common secret
FileInfo srcFile = new FileInfo(fileToEncryptPath);
string outFilePath = Path.Combine(destinationFolder, srcFile.Name + ".enc");
aes.Key = derivedKey;
using (FileStream outFsEncrypt = new FileStream(outFilePath, FileMode.Create))
{
using (CryptoStream csEncrypt = new CryptoStream(outFsEncrypt, aes.CreateEncryptor(), CryptoStreamMode.Write))
{
int count = 0;
int offset = 0;
int blockSizeBytes = aes.BlockSize / 8;
byte[] data = new byte[blockSizeBytes];
int bytesRead = 0;
using (FileStream inFsEncrypt = new FileStream(srcFile.FullName, FileMode.Open))
{
do
{
count = inFsEncrypt.Read(data, 0, blockSizeBytes);
offset += count;
csEncrypt.Write(data, 0, count);
bytesRead += blockSizeBytes;
} while (count > 0);
}
csEncrypt.FlushFinalBlock();
}
}
}
public static void DecryptFile(string base64OtherPartyPublicKey, string base64OtherPartyIV, string fileToDecryptPath, string destinationFolder)
{
byte[] otherPartyPublicKey = Convert.FromBase64String(base64OtherPartyPublicKey);
byte[] otherPartyIV = Convert.FromBase64String(base64OtherPartyIV);
CngKey key = CngKey.Import(otherPartyPublicKey, CngKeyBlobFormat.EccPublicBlob);
byte[] derivedKey = diffieHellman.DeriveKeyMaterial(key); // Common secret
FileInfo srcFile = new FileInfo(fileToDecryptPath);
string outFilePath = Path.Combine(destinationFolder, "odszyfrowany_" + Path.ChangeExtension(srcFile.Name, ""));
aes.Key = derivedKey;
aes.IV = otherPartyIV;
using (FileStream inFsDecrypt = new FileStream(srcFile.FullName, FileMode.Open))
{
using (FileStream outFsDecrypt = new FileStream(outFilePath, FileMode.Create))
{
int count = 0;
int offset = 0;
int blockSizeBytes = aes.BlockSize / 8;
byte[] data = new byte[blockSizeBytes];
using (CryptoStream csDecrypt = new CryptoStream(outFsDecrypt, aes.CreateDecryptor(), CryptoStreamMode.Write))
{
do
{
count = inFsDecrypt.Read(data, 0, blockSizeBytes);
offset += count;
csDecrypt.Write(data, 0, count);
} while (count > 0);
csDecrypt.FlushFinalBlock();
}
}
}
}
} //koniec AES
// poczatek blowfish
public static class DieffieHellmanEncryptorBlowfish
{
private static BlowFish bf;
private static ECDiffieHellmanCng diffieHellman;
public static byte[] publicKey;
public static void InitializeEncryptor()
{
bf = new BlowFish("04B915BA43FEB5B6");
bf.SetRandomIV();
diffieHellman = new ECDiffieHellmanCng();
diffieHellman.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash;
diffieHellman.HashAlgorithm = CngAlgorithm.Sha256;
publicKey = diffieHellman.PublicKey.ToByteArray();
}
public static byte[] GetIV()
{
return bf.IV;
}
public static string EncryptText(string base64OtherPartyPublicKey, string textToEncrypt)
{
try
{
string base64encryptedText;
byte[] otherPartyPublicKey = Convert.FromBase64String(base64OtherPartyPublicKey);
CngKey key = CngKey.Import(otherPartyPublicKey, CngKeyBlobFormat.EccPublicBlob);
byte[] derivedKey = diffieHellman.DeriveKeyMaterial(key); // Common secret
bf.key = derivedKey;
string encryptedText = bf.Encrypt_CBC(textToEncrypt);
byte[] encryptedBytes = Encoding.UTF8.GetBytes(encryptedText);
base64encryptedText = Convert.ToBase64String(encryptedBytes);
return base64encryptedText;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Uwaga");
return "";
}
}
public static string DecryptText(string base64OtherPartyPublicKey, string base64OtherPartyIV, string base64TextToDecrypt)
{
try
{
string decryptedText;
byte[] otherPartyPublicKey = Convert.FromBase64String(base64OtherPartyPublicKey);
byte[] textToDecryptBytes = Convert.FromBase64String(base64TextToDecrypt);
string textToDecrypt = Encoding.UTF8.GetString(textToDecryptBytes);
byte[] otherPartyIV = Convert.FromBase64String(base64OtherPartyIV);
CngKey key = CngKey.Import(otherPartyPublicKey, CngKeyBlobFormat.EccPublicBlob);
byte[] derivedKey = diffieHellman.DeriveKeyMaterial(key); // Common secret
bf.key = derivedKey;
bf.IV = otherPartyIV;
decryptedText = bf.Decrypt_CBC(textToDecrypt);
return decryptedText;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Uwaga");
return "";
}
}
public static void EncryptFile(string base64OtherPartyPublicKey, string fileToEncryptPath, string destinationFolder)
{
try
{
byte[] otherPartyPublicKey = Convert.FromBase64String(base64OtherPartyPublicKey);
CngKey key = CngKey.Import(otherPartyPublicKey, CngKeyBlobFormat.EccPublicBlob);
byte[] derivedKey = diffieHellman.DeriveKeyMaterial(key); // Common secret
FileInfo srcFile = new FileInfo(fileToEncryptPath);
string outFilePath = Path.Combine(destinationFolder, srcFile.Name + ".enc");
bf.key = derivedKey;
byte[] bytesToEncrypt = File.ReadAllBytes(fileToEncryptPath);
byte[] encryptedBytes = bf.Encrypt_CBC(bytesToEncrypt);
File.WriteAllBytes(outFilePath, encryptedBytes);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Uwaga");
}
}
public static void DecryptFile(string base64OtherPartyPublicKey, string base64OtherPartyIV, string fileToDecryptPath, string destinationFolder)
{
try
{
byte[] otherPartyPublicKey = Convert.FromBase64String(base64OtherPartyPublicKey);
byte[] otherPartyIV = Convert.FromBase64String(base64OtherPartyIV);
CngKey key = CngKey.Import(otherPartyPublicKey, CngKeyBlobFormat.EccPublicBlob);
byte[] derivedKey = diffieHellman.DeriveKeyMaterial(key); // Common secret
FileInfo srcFile = new FileInfo(fileToDecryptPath);
string outFilePath = Path.Combine(destinationFolder, "odszyfrowany_" + Path.ChangeExtension(srcFile.Name, ""));
bf.key = derivedKey;
bf.IV = otherPartyIV;
byte[] encryptedBytes = File.ReadAllBytes(fileToDecryptPath);
byte[] decryptedBytes = bf.Decrypt_CBC(encryptedBytes);
File.WriteAllBytes(outFilePath, decryptedBytes);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Uwaga");
}
}
} //koniecblow
private void button2_Click(object sender, EventArgs e)
{
}
private void btn_zaszyfruj_Click(object sender, EventArgs e)
{
}
private void txt_wlasnyklpub_TextChanged(object sender, EventArgs e)
{
}
public void ET_DisplayMyPublicKey()
{
string base64MyPublicKey = Convert.ToBase64String(DieffieHellmanEncryptorAES.publicKey);
txt_wlasnyklpub.Text = base64MyPublicKey;
}
public void ET_DisplayMyPublicKeyBf()
{
string base64MyPublicKey = Convert.ToBase64String(DieffieHellmanEncryptorBlowfish.publicKey);
ET_my_public_key_inputBF.Text = base64MyPublicKey;
}
public void ET_DisplayMyIV()
{
string base64MyIV = Convert.ToBase64String(DieffieHellmanEncryptorAES.GetIV());
txt_IV.Text = base64MyIV;
}
public void ET_DisplayMyIVBf()
{
string base64MyIV = Convert.ToBase64String(DieffieHellmanEncryptorBlowfish.GetIV());
ET_iv_inputBF.Text = base64MyIV;
}
private void btn_kopiuj1_Click(object sender, EventArgs e)
{
if (txt_wlasnyklpub.Text != "")
{
Clipboard.SetText(txt_wlasnyklpub.Text);
}
}
public void DT_DisplayMyPublicKey()
{
string base64MyPublicKey = Convert.ToBase64String(DieffieHellmanEncryptorAES.publicKey);
txt_wlasnyklpubdeszyfr.Text = base64MyPublicKey;
}
private void btn_zaszyfruj_Click_1(object sender, EventArgs e)
{
if (txt_dozaszfrowania.Text != "" && txt_klpubdrugiej.Text != "")
{
string textToEncrypt = txt_dozaszfrowania.Text;
string otherPartyPublicKey = txt_klpubdrugiej.Text;
string encryptedText = DieffieHellmanEncryptorAES.EncryptText(otherPartyPublicKey, textToEncrypt);
txt_zaszyfrowany.Text = encryptedText;
}
else
{
MessageBox.Show("Teskt do zaszyfrowania i klucz publiczny, nie moga byc puste!", "Uwaga");
}
}
private void btn_odszyfruj_Click_1(object sender, EventArgs e)
{
if (txt_dodeszyfracji.Text != "" && txt_klpubdrugiejdeszyfr.Text != "" && txt_IVdrugiejdeszyfr.Text != "")
{
string textToDecrypt = txt_dodeszyfracji.Text;
string partnerPublicKey = txt_klpubdrugiejdeszyfr.Text;
string partnerIV = txt_IVdrugiejdeszyfr.Text;
string decryptedText = DieffieHellmanEncryptorAES.DecryptText(partnerPublicKey, partnerIV, textToDecrypt);
txt_odszyfrowany.Text = decryptedText;
}
else
{
MessageBox.Show("Pola nie moga byc puste!", "Uwaga");
}
}
private void btn_kopiuj5_Click_1(object sender, EventArgs e)
{
if (txt_wlasnyklpubdeszyfr.Text != "")
{
Clipboard.SetText(txt_wlasnyklpubdeszyfr.Text);
}
}
private void btn_kopiuj4_Click_1(object sender, EventArgs e)
{
if (txt_odszyfrowany.Text != "")
{
Clipboard.SetText(txt_odszyfrowany.Text);
}
}
private void btn_kopiuj3_Click_1(object sender, EventArgs e)
{
if (txt_zaszyfrowany.Text != "")
{
Clipboard.SetText(txt_zaszyfrowany.Text);
}
}
private void btn_kopiuj2_Click_1(object sender, EventArgs e)
{
if (txt_IV.Text != "")
{
Clipboard.SetText(txt_IV.Text);
}
}
// Zaszyfrowywanie pliku RSA
public void EF_DisplayMyPublicKey()
{
string base64MyPublicKey = Convert.ToBase64String(DieffieHellmanEncryptorAES.publicKey);
EF_my_public_key_input.Text = base64MyPublicKey;
}
public void EF_DisplayMyIV()
{
string base64MyIV = Convert.ToBase64String(DieffieHellmanEncryptorAES.GetIV());
EF_iv_input.Text = base64MyIV;
}
private void EF_browse_file_to_encrypt_btn_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
DialogResult result = fileDialog.ShowDialog();
if (result == DialogResult.OK)
{
string file = fileDialog.FileName;
EF_file_to_encrypt_path_input.Text = file;
}
}
private void EF_submit_Click(object sender, EventArgs e)
{
EF_DisplayMyIV();
if (EF_file_to_encrypt_path_input.Text != "" && EF_encrypted_file_path_input.Text != "" && EF_partner_public_key_input.Text != "")
{
string fileToEncryptPath = EF_file_to_encrypt_path_input.Text;
string destinationFolder = EF_encrypted_file_path_input.Text;
string otherPartyPublicKey = EF_partner_public_key_input.Text;
Stopwatch stopWatch = new Stopwatch();
try
{
stopWatch.Start();
DieffieHellmanEncryptorAES.EncryptFile(otherPartyPublicKey, fileToEncryptPath, destinationFolder);
stopWatch.Stop();
MessageBox.Show("Plik zostal zaszyfrowany.\nCzas trwania: " + stopWatch.Elapsed.ToString(@"hh\:mm\:ss"), "Udalo sie");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Uwaga");
}
}
else
{
MessageBox.Show("Pola nie moga byc puste!", "Uwaga");
}
}
private void EF_browse_encrypted_file_destination_btn_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
DialogResult result = folderBrowserDialog.ShowDialog();
if (result == DialogResult.OK)
{
string path = folderBrowserDialog.SelectedPath;
EF_encrypted_file_path_input.Text = path;
}
}
private void EF_copy_my_public_key_btn_Click(object sender, EventArgs e)
{
if (EF_my_public_key_input.Text != "")
{
Clipboard.SetText(EF_my_public_key_input.Text);
}
}
private void EF_copy_iv_Click(object sender, EventArgs e)
{
if (EF_iv_input.Text != "")
{
Clipboard.SetText(EF_iv_input.Text);
}
}
private void EF_wklej_Click(object sender, EventArgs e)
{
EF_partner_public_key_input.Text = Clipboard.GetText();
}
//deszyfrowanie
public void DF_DisplayMyPublicKey()
{
string base64MyPublicKey = Convert.ToBase64String(DieffieHellmanEncryptorAES.publicKey);
DF_my_public_key_input.Text = base64MyPublicKey;
}
private void DF_browse_file_to_decrypt_btn_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
DialogResult result = fileDialog.ShowDialog();
if (result == DialogResult.OK)
{
string file = fileDialog.FileName;
DF_file_path_to_decrypt_input.Text = file;
}
}
private void DF_submit_Click(object sender, EventArgs e)
{
if (DF_file_path_to_decrypt_input.Text != "" && DF_decrypted_file_path_input.Text != "" && DF_partner_public_key_input.Text != "" && DF_iv_input.Text != "")
{
string fileToDecryptPath = DF_file_path_to_decrypt_input.Text;
string destinationFolder = DF_decrypted_file_path_input.Text;
string otherPartyPublicKey = DF_partner_public_key_input.Text;
string otherPartyIV = DF_iv_input.Text;
Stopwatch stopWatch = new Stopwatch();
try
{
stopWatch.Start();
DieffieHellmanEncryptorAES.DecryptFile(otherPartyPublicKey, otherPartyIV, fileToDecryptPath, destinationFolder);
stopWatch.Stop();
MessageBox.Show("Plik zostal odszyfrowany.\nCzas trwania: " + stopWatch.Elapsed.ToString(@"hh\:mm\:ss"), "Udalo sie");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Uwaga");
}
}
else
{
MessageBox.Show("Pola nie moga byc puste!", "Uwaga");
}
}
private void DF_browse_decrypted_file_destination_btn_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
DialogResult result = folderBrowserDialog.ShowDialog();
if (result == DialogResult.OK)
{
string path = folderBrowserDialog.SelectedPath;
DF_decrypted_file_path_input.Text = path;
}
}
private void DF_copy_my_public_key_btn_Click(object sender, EventArgs e)
{
if (DF_my_public_key_input.Text != "")
{
Clipboard.SetText(DF_my_public_key_input.Text);
}
}
private void DF_PartnerKP_wklej_Click(object sender, EventArgs e)
{
DF_partner_public_key_input.Text = Clipboard.GetText();
}
private void DF_PartnerIV_wklej_Click(object sender, EventArgs e)
{
DF_iv_input.Text = Clipboard.GetText();
}
private void ET_submit_Click(object sender, EventArgs e)
{
if (ET_text_to_encrypt_inputBF.Text != "" && ET_partner_public_key_inputBF.Text != "")
{
string textToEncrypt = ET_text_to_encrypt_inputBF.Text;
string otherPartyPublicKey = ET_partner_public_key_inputBF.Text;
string encryptedText = "";
ET_DisplayMyIVBf();
encryptedText = DieffieHellmanEncryptorBlowfish.EncryptText(otherPartyPublicKey, textToEncrypt);
ET_encrypted_text_inputBF.Text = encryptedText;
}
else
{
MessageBox.Show("Tekst do zaszyfrowania i klucz publiczny partnera nie moga byc puste!", "Uwaga");
}
}
private void ET_copy_encrypted_text_btn_Click(object sender, EventArgs e)
{
if (ET_encrypted_text_inputBF.Text != "")
{
Clipboard.SetText(ET_encrypted_text_inputBF.Text);
}
}
private void ET_copy_my_public_key_btn_Click(object sender, EventArgs e)
{
if (ET_my_public_key_inputBF.Text != "")
{
Clipboard.SetText(ET_my_public_key_inputBF.Text);
}
}
private void ET_copy_iv_Click(object sender, EventArgs e)
{
if (ET_iv_inputBF.Text != "")
{
Clipboard.SetText(ET_iv_inputBF.Text);
}
}
private void button1_Click(object sender, EventArgs e)
{
ET_partner_public_key_inputBF.Text = Clipboard.GetText();
}
//deszyfrowanie blowfish
public void DT_DisplayMyPublicKeyBf()
{
string base64MyPublicKey = Convert.ToBase64String(DieffieHellmanEncryptorBlowfish.publicKey);
DT_my_public_key_input.Text = base64MyPublicKey;
}
private void DT_submit_Click(object sender, EventArgs e)
{
if (DT_text_to_decrypt_input.Text != "" && DT_partner_public_key_input.Text != "" && DT_iv_input.Text != "")
{
string textToDecrypt = DT_text_to_decrypt_input.Text;
string partnerPublicKey = DT_partner_public_key_input.Text;
string partnerIV = DT_iv_input.Text;
string decryptedText = "";
decryptedText = DieffieHellmanEncryptorBlowfish.DecryptText(partnerPublicKey, partnerIV, textToDecrypt);
DT_decrypted_text_input.Text = decryptedText;
}
else
{
MessageBox.Show("Tekst do odszyfrowania nie moze byc pusty!", "Uwaga");
}
}
private void DT_copy_my_public_key_btn_Click(object sender, EventArgs e)
{
if (DT_my_public_key_input.Text != "")
{
Clipboard.SetText(DT_my_public_key_input.Text);
}
}
private void DT_copy_decrypted_text_btn_Click(object sender, EventArgs e)
{
if (DT_decrypted_text_input.Text != "")
{
Clipboard.SetText(DT_decrypted_text_input.Text);
}
}
private void DWklej1BF_Click(object sender, EventArgs e)
{
DT_text_to_decrypt_input.Text = Clipboard.GetText();
}
private void DWklej2BF_Click(object sender, EventArgs e)
{
DT_partner_public_key_input.Text = Clipboard.GetText();
}
private void DWklej3BF_Click(object sender, EventArgs e)
{
DT_iv_input.Text = Clipboard.GetText();
}
//szyfrowanie pliku blow
public void EF_DisplayMyPublicKeyBf()
{
string base64MyPublicKey = Convert.ToBase64String(DieffieHellmanEncryptorBlowfish.publicKey);
EF_my_public_key_inputBF.Text = base64MyPublicKey;
}
public void EF_DisplayMyIVBf()
{
string base64MyIV = Convert.ToBase64String(DieffieHellmanEncryptorBlowfish.GetIV());
EF_iv_inputBF.Text = base64MyIV;
}
private void EF_submitBF_Click(object sender, EventArgs e)
{
EF_DisplayMyIVBf();
if (EF_file_to_encrypt_path_inputBF.Text != "" && EF_encrypted_file_path_inputBF.Text != "" && EF_partner_public_key_inputBF.Text != "")
{
string fileToEncryptPath = EF_file_to_encrypt_path_inputBF.Text;
string destinationFolder = EF_encrypted_file_path_inputBF.Text;
string otherPartyPublicKey = EF_partner_public_key_inputBF.Text;
Stopwatch stopWatch = new Stopwatch();
try
{
stopWatch.Start();
DieffieHellmanEncryptorBlowfish.EncryptFile(otherPartyPublicKey, fileToEncryptPath, destinationFolder);
stopWatch.Stop();
MessageBox.Show("Plik zostal zaszyfrowany.\nCzas trwania: " + stopWatch.Elapsed.ToString(@"hh\:mm\:ss"), "Udalo sie");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
}
else
{
MessageBox.Show("Pola nie moga byc puste!", "Uwaga");
}
}
private void EF_browse_file_to_encrypt_btnBF_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
DialogResult result = fileDialog.ShowDialog();
if (result == DialogResult.OK)
{
string file = fileDialog.FileName;
EF_file_to_encrypt_path_inputBF.Text = file;
}
}
private void EF_browse_encrypted_file_destination_btnBF_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
DialogResult result = folderBrowserDialog.ShowDialog();
if (result == DialogResult.OK)
{
string path = folderBrowserDialog.SelectedPath;
EF_encrypted_file_path_inputBF.Text = path;
}
}
private void EF_copy_my_public_key_btnBF_Click(object sender, EventArgs e)
{
if (EF_my_public_key_inputBF.Text != "")
{
Clipboard.SetText(EF_my_public_key_inputBF.Text);
}
}
private void EF_copy_ivBF_Click(object sender, EventArgs e)
{
if (EF_iv_inputBF.Text != "")
{
Clipboard.SetText(EF_iv_inputBF.Text);
}
}
private void SzWklej1BF_Click(object sender, EventArgs e)
{
EF_partner_public_key_inputBF.Text = Clipboard.GetText();
}
//deszyfrowanie pliku Blow
public void DF_DisplayMyPublicKeyBf()
{
string base64MyPublicKey = Convert.ToBase64String(DieffieHellmanEncryptorBlowfish.publicKey);
DF_my_public_key_inputBF.Text = base64MyPublicKey;
}
private void DF_submitBF_Click(object sender, EventArgs e)
{
if (DF_file_path_to_decrypt_inputBF.Text != "" && DF_decrypted_file_path_inputBF.Text != "" && DF_partner_public_key_inputBF.Text != "" && DF_iv_inputBF.Text != "")
{
string fileToDecryptPath = DF_file_path_to_decrypt_inputBF.Text;
string destinationFolder = DF_decrypted_file_path_inputBF.Text;
string otherPartyPublicKey = DF_partner_public_key_inputBF.Text;
string otherPartyIV = DF_iv_inputBF.Text;
Stopwatch stopWatch = new Stopwatch();
try
{
stopWatch.Start();
DieffieHellmanEncryptorBlowfish.DecryptFile(otherPartyPublicKey, otherPartyIV, fileToDecryptPath, destinationFolder);
stopWatch.Stop();
MessageBox.Show("Plik zostal zaszyfrowany.\nCzas trwania: " + stopWatch.Elapsed.ToString(@"hh\:mm\:ss"), "Udalo sie");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Uwaga");
return;
}
}
else
{
MessageBox.Show("Pola nie moga byc puste!", "Uwaga");
}
}
private void DF_browse_file_to_decrypt_btnBF_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
DialogResult result = fileDialog.ShowDialog();
if (result == DialogResult.OK)
{
string file = fileDialog.FileName;
DF_file_path_to_decrypt_inputBF.Text = file;
}
}
private void DF_browse_decrypted_file_destination_btnBF_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
DialogResult result = folderBrowserDialog.ShowDialog();
if (result == DialogResult.OK)
{
string path = folderBrowserDialog.SelectedPath;
DF_decrypted_file_path_inputBF.Text = path;
}
}
private void DF_copy_my_public_key_btnBF_Click(object sender, EventArgs e)
{
if (DF_my_public_key_inputBF.Text != "")
{
Clipboard.SetText(DF_my_public_key_inputBF.Text);
}
}
private void DSzWklej1BF_Click(object sender, EventArgs e)
{
DF_partner_public_key_inputBF.Text = Clipboard.GetText();
}
private void DSzWklej2BF_Click(object sender, EventArgs e)
{
DF_iv_inputBF.Text = Clipboard.GetText();
}
}
}