public void SafeOverwriteFile_OverwriteTestFile_EqualOrBiggerLengthToOriginalFile()
        {
            //arrange
            var file = Core.CreateRandomFilledFile(TestDirectory + "file");

            //action
            FileCryptographer.SafeOverwriteFile(file);
            //assert
            Assert.GreaterOrEqual(file.Length, file.Length);
        }
示例#2
0
        /// <summary>
        ///     Common event handler for pressing the Password Insert button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void insertButton_Click(object sender, EventArgs e)
        {
            //// hash password
            //using (var hasher = new SHA256CryptoServiceProvider())
            //{
            //    _fileCryptographer.HashedKey = hasher.ComputeHash(Encoding.Unicode.GetBytes(passwordBox.Text));
            //
            //}

            // lock interface
            mainTableLayoutPanel.Enabled = false;

            // hide button, show progress bar
            submitButton.Visible = false;
            progressBar.Visible  = true;

            // start decryption/encryption
            var ts  = TaskScheduler.FromCurrentSynchronizationContext();
            var key = passwordBox.Text;

            passwordBox.Text = null;

            if (FileCryptographer.IsEncrypted(TargetFileInfo))
            {
                Task.Factory.StartNew(
                    () =>
                    FileCryptographer.Decrypt(TargetFileInfo, key))
                .ContinueWith(task =>
                {
                    if (task.Exception != null)
                    {
                        task.Exception.Handle(Error);
                    }
                    key = null;
                    Close();
                }, ts);
            }
            else
            {
                Task.Factory.StartNew(
                    () =>
                    FileCryptographer.Encrypt(TargetFileInfo, key, deleteFileCheckBox.Checked))
                .ContinueWith(task =>
                {
                    if (task.Exception != null)
                    {
                        task.Exception.Handle(Error);
                    }
                    key = null;
                    Close();
                }, ts);
            }
        }
        public void SafeOverwriteFile_OverwriteTestFile_OverwritesAsEmptyFile()
        {
            //arrange
            var file = Core.CreateRandomFilledFile(TestDirectory + "file");

            //action
            FileCryptographer.SafeOverwriteFile(file);
            //assert
            using (var fs = file.OpenRead())
            {
                while (fs.Position < fs.Length)
                {
                    Assert.AreEqual(fs.ReadByte(), 0);
                }
            }
        }
示例#4
0
        private void SwapEncryptDecryptFeatures()
        {
            submitButton.Enabled    = true;
            optionsGroupBox.Enabled = true;
            filePathLabel.Text      = _targetFileLocation;

            if (FileCryptographer.IsEncrypted(TargetFileInfo))
            {
                // options
                deleteFileCheckBox.Enabled = false;
                // submit button text
                submitButton.Text = Resources.MainProcess_MainProcess_Decrypt;
            }
            else
            {
                deleteFileCheckBox.Enabled = true;
                submitButton.Text          = Resources.MainProcess_MainProcess_Encrypt;
            }
        }