private void StartCipher() { var manager = new CipherManager(rsaFileCipher, fileUnifier, environmentHelper, messageHelper); manager.Cipher(publicKey, inputFileEntities, cipherForm.OutputFileName); if (rsaFileCipher.Status == ProcessStatus.Complete) { if (cipherForm.CloseWindowAfterComlete) { cipherForm.DialogResult = DialogResult.Cancel; } } cipherForm.ProgressPercent = 0; cipherForm.CipherEnabled = true; commandsContainer.RefreshDirectoryCommand.Execute(); }
public void Cipher_Decipher() { var outputFileName = Path.Combine(testFolder, "outputFileName.rsa"); var temporaryFileName = Path.Combine(testFolder, "temporary.bin"); environmentHelper.Setup(x => x.GetTempFileName()).Returns(temporaryFileName); var fileFactory = new FileFactory(4); var rsaFileCipher = new RsaFileCipher(fileFactory); var fileUnifier = new FileUnifier(); var manager = new CipherManager(rsaFileCipher, fileUnifier, environmentHelper.Object, messageHelper.Object); // public key: 05#B781262C2090AD // private key: 6E1A49FEAC0471#B781262C2090AD var e = BigNumber.FromInt(5); var d = BigNumber.FromBytes(new[] { 113, 4, 172, 254, 73, 26, 110 }); var n = BigNumber.FromBytes(new[] { 173, 144, 32, 44, 38, 129, 183 }); var publicKey = new PublicKey(e, n); var privateKey = new PrivateKey(d, n); var sourceFileName = Path.Combine(testFolder, "file.bin"); File.WriteAllBytes(sourceFileName, new byte[] { 45, 129, 240 }); var directoryInfoWrapper = new DirectoryInfoWrapper(testFolder); var fileInfoWrapper = new FileInfoWrapper(new FileInfo(sourceFileName), directoryInfoWrapper); var fileEntity = new FileEntity(fileInfoWrapper); manager.Cipher(publicKey, new FileSystemEntity[] { fileEntity }, outputFileName); var decipherManager = new DecipherManager(environmentHelper.Object, new RsaFileDecipher(fileFactory), messageHelper.Object, fileUnifier); var outputPath = Path.Combine(testFolder, "outputPath"); decipherManager.Decipher(privateKey, outputFileName, outputPath); Assert.IsTrue(Directory.Exists(outputPath)); var fileName = Path.Combine(outputPath, "file.bin"); Assert.IsTrue(File.Exists(fileName)); TestHelper.CheckFile(fileName, new byte[] { 45, 129, 240 }); }
public void Cipher_InputFileEntitiesIsEmpty() { var publicKey = CreatePublicKey(3, 20); Assert.Throws(typeof(ArgumentException), () => cipherManager.Cipher(publicKey, new FileSystemEntity[0], "hello")); }