/// <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); } }
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); }
/// <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); } } }
/// <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); } } }