Beispiel #1
0
        public CommandsContainer(Options options,
                                 IMainForm mainForm,
                                 IEnvironmentHelper environmentHelper,
                                 IMessageHelper messageHelper,
                                 IFormFactory formFactory)
        {
            var         primeTest      = new RabinMillerTest(20);
            var         primeGenerator = new PrimeGenerator(primeTest);
            var         keyGenerator   = new KeyGenerator(new RsaKeyGenerator(), primeGenerator);
            var         fileUnifier    = new FileUnifier();
            var         zipAlgorithm   = new ZipAlgorithm(environmentHelper);
            IRsaFactory rsaFactory     = new RsaFactory(new FileFactory(0), options, environmentHelper, zipAlgorithm);

            AboutProgramCommand = new AboutProgramCommand(formFactory, environmentHelper);
            CipherCommand       = new CipherCommand(this, mainForm.FilesView, formFactory, fileUnifier, environmentHelper, options,
                                                    rsaFactory,
                                                    messageHelper);
            DecipherCommand = new DecipherCommand(this, mainForm.FilesView, rsaFactory, environmentHelper, formFactory,
                                                  messageHelper,
                                                  fileUnifier);
            ExitCommand             = new ExitCommand();
            GenerateKeysCommand     = new GenerateKeysCommand(keyGenerator, options, formFactory, messageHelper);
            refreshDirectoryCommand = new RefreshDirectoryCommand(messageHelper);
            toUpperFolderCommand    = new ToUpperFolderCommand(messageHelper);
            changeLanguageCommand   = new ChangeLanguageCommand(options);
            var cryptoViews = new ICryptoView[] { mainForm.MainMenu, mainForm.ToolBar, mainForm.FilesView };

            RefreshCryptoViewsCommand = new RefreshCryptoViewsCommand(mainForm.FilesView, cryptoViews);
        }
Beispiel #2
0
 public void SetUp()
 {
     DeleteTestFolder();
     Directory.CreateDirectory(testFolder);
     environmentHelper = new Mock <IEnvironmentHelper>();
     messageHelper     = new Mock <IMessageHelper>();
     fileUnifier       = new FileUnifier();
 }
Beispiel #3
0
        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 SetUp()
 {
     DeleteTestFolder();
     Directory.CreateDirectory(testFolder);
     unifier = new FileUnifier();
 }