Exemplo n.º 1
0
        private void dearchiveButton_Click(object sender, EventArgs e)
        {
            string filepath   = filepathDearchTextBox.Text;
            string outputPath = outputDearchTextBox.Text;

            IntPtr passBstrPointer = Marshal.SecureStringToBSTR(passDearchTextBox.SecureString);
            IntPtr repBstrPointer  = Marshal.SecureStringToBSTR(repDearchTextBox.SecureString);
            string password        = SecureStringHandler.Encrypt(SecureStringHandler.ExtractStringFromSecureString(passBstrPointer));
            string repPassword     = SecureStringHandler.Encrypt(SecureStringHandler.ExtractStringFromSecureString(repBstrPointer));

            if (password != repPassword)
            {
                MessageBox.Show("Hasła nie są identyczne", "Wiadomość");
            }
            else if (filepath.Equals("") || outputPath.Equals("") || (passDearchTextBox.SecureString.Length == 0))
            {
                MessageBox.Show("Nie wprowadzono wszystkich danych", "Wiadomość");
            }
            else
            {
                List <string> passwordIngredients = new List <string>();
                passwordIngredients.Add(password);
                passwordIngredients.Add(SecureStringHandler.FetchMotherboardID());

                dearchiveState(false);
                CompressionEngine.DecryptAndExtract(filepath, outputPath, passwordIngredients);
                dearchiveState(true);
            }
        }