/// <summary>
        ///     Decrypts the archive to folder.
        /// </summary>
        /// <param name="selectedArchive">The selected archive.</param>
        /// <param name="privateKey">The private key.</param>
        /// <externalUnit/>
        /// <revision revisor="dev13" date="11/18/2009" version="1.1.3.6">
        ///     Added documentation header
        /// </revision>
        private void DecryptArchiveToFolder(
            string selectedArchive, string privateKey)
        {
            try
            {
                string folderPath = Path.GetDirectoryName(selectedArchive);

                string filename = Path.GetFileName(selectedArchive);

                string publicKey = string.Empty;

                FileManifestItem item = new FileManifestItem(
                    folderPath, filename);
                var validationResult = item.IsValid(folderPath);

                if (validationResult.Succeeded == false)
                {
                    MessageBox.Show("Validation of encrypted package failed.");
                }
                else
                {
                    MessageBox.Show(
                        "Validation of encrypted package succeeded.");
                }

                var result = EncryptedArchive.ExtractArchive(
                    folderPath, selectedArchive, new SequoiaCryptoProvider());

                if (result.Succeeded)
                {
                    MessageBox.Show(
                        "The selected archive has been extracted.",
                        "Archive extraction succeeded",
                        MessageBoxButton.OK,
                        MessageBoxImage.Information);
                }
                else
                {
                    MessageBox.Show(
                        result.Details,
                        "Archive extraction failed",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(
                    string.Format(
                        "Error creating dencrypted archive folder: {0}",
                        exception.Message),
                    "Archive Decryption Failure",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }
        }
        /// <summary>
        ///     Creates the encrypted archive.
        /// </summary>
        /// <param name="selectedFolder">The selected folder.</param>
        /// <param name="archiveName">Name of the archive.</param>
        /// <externalUnit/>
        /// <revision revisor="dev13" date="11/18/2009" version="1.1.3.6">
        ///     Added documentation header
        /// </revision>
        private void CreateEncryptedArchive(
            string selectedFolder, string archiveName)
        {
            try
            {
                string publicKey = string.Empty;

                string archiveFileName =
                    string.IsNullOrEmpty(archiveName)
                    ? "TestEncryptedArchive"
                    : archiveName;
                string fullArchiveFilename = archiveFileName + ".zip";
                using (var encryptedArchive = new EncryptedArchive(
                           selectedFolder,
                           fullArchiveFilename,
                           new SequoiaCryptoProvider()))
                {
                    encryptedArchive.OpenWrite(DateTime.Now, true);
                    foreach (
                        string pathName in Directory.GetFiles(selectedFolder))
                    {
                        string fileName = System.IO.Path.GetFileName(pathName);

                        if (fileName == fullArchiveFilename)
                        {
                            continue;
                        }

                        // encryptedArchive.AddFile(fileName);
                        byte[] fileData = File.ReadAllBytes(pathName);

                        encryptedArchive.AddFile(fileData, fileName);
                    }
                }

                var sequoiaProvider = new SequoiaCryptoProvider();
                sequoiaProvider.CreateSignature(
                    Path.Combine(
                        selectedFolder,
                        Path.ChangeExtension(fullArchiveFilename, "enc")));
            }
            catch (Exception exception)
            {
                MessageBox.Show(
                    string.Format(
                        "Error creating encrypted archive: {0}",
                        exception.Message),
                    "Encrypted Archive Creation Failure",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }
        }
Exemple #3
0
        public void TestExtractZippedArchiveUsingStreamExtractor()
        {
            this.CleanTempPath(true);
            this.PopulateTempPath();

            this.MakeEncryptedArchiveHavingZip();

            //this.CleanTempPath(false);
            OperationResult result = EncryptedArchive.ExtractArchive(
                this.tempPath,
                Path.Combine(this.tempPath, "archive.enc"),
                new SequoiaCryptoProvider());

            Assert.AreEqual(string.Empty, result.Details);
            Assert.IsTrue(result.Succeeded);
        }
Exemple #4
0
        /// <summary>
        ///     Makes the encrypted archive having zip.
        /// </summary>
        /// <externalUnit/>
        /// <revision revisor="dev13" date="11/18/2009" version="1.1.3.6">
        ///     Added documentation header
        /// </revision>
        private void MakeEncryptedArchiveHavingZip()
        {
            using (var sa = new EncryptedArchive(
                       this.tempPath, "archive.zip", new SequoiaCryptoProvider()))
            {
                sa.OpenWriteToZip(DateTime.Today, true);
                foreach (string pathName in Directory.GetFiles(this.tempPath))
                {
                    string fileName = Path.GetFileName(pathName);

                    if (fileName == "archive.zip")
                    {
                        continue;
                    }

                    sa.AddFile(fileName);
                }
            }
        }
Exemple #5
0
        /// <summary>
        ///     Makes the encrypted archive from bytes.
        /// </summary>
        /// <externalUnit/>
        /// <revision revisor="dev13" date="11/18/2009" version="1.1.3.6">
        ///     Added documentation header
        /// </revision>
        private void MakeEncryptedArchiveFromBytes()
        {
            using (var sa = new EncryptedArchive(
                       this.tempPath, "archive.zip", new SequoiaCryptoProvider()))
            {
                sa.OpenWrite(DateTime.Today, true);
                foreach (string pathName in Directory.GetFiles(this.tempPath))
                {
                    string fileName = Path.GetFileName(pathName);

                    if (fileName == "archive.zip")
                    {
                        continue;
                    }

                    byte[] fileBytes = File.ReadAllBytes(pathName);
                    sa.AddFile(fileBytes, fileName);
                }
            }
        }