Exemplo n.º 1
0
        private void DecryptAesEntries()
        {
            var categoriesInString = string.Join("|", _aesEntries.Select(e => e.CategoryEntryPair.Category));
            var entriesInString    = string.Join("|", _aesEntries.Select(e => e.CategoryEntryPair.Entry));

            var decryptEntryArgObj = new DecryptEntryVerbOptions()
            {
                DatFile    = _datFile,
                KeyFile    = _aesKeyFile,
                Categories = categoriesInString,
                Entries    = entriesInString
            };
            var decryptEntryArgs = OptionsToStringArgsHelper.GetArgs(decryptEntryArgObj);

            var consoleOutput = new ConsoleScraper(() => Program.Main(decryptEntryArgs)).Run();

            // Assert
            foreach (var entry in _aesEntries)
            {
                consoleOutput.Should().MatchRegex(string.Format(@".*{0}\s+{1}\s+{2}.*",
                                                                Regex.Escape(entry.CategoryEntryPair.Category),
                                                                Regex.Escape(entry.CategoryEntryPair.Entry),
                                                                Regex.Escape(entry.DecryptedValue)));
            }
        }
Exemplo n.º 2
0
        private void GenerateAesKey(TempDir tempFolder)
        {
            // Arrange
            var generateKeyArgs = OptionsToStringArgsHelper.GetArgs(new GenerateKeyVerbOptions()
            {
                AlgorithmToUse     = EnvCryptAlgoEnum.Aes.ToString(),
                KeyName            = AesKeyName,
                OutputDirectory    = tempFolder.TempDirectory,
                OutputKeyToConsole = false,
                Verbose            = false
            });

            // Act
            Program.Main(generateKeyArgs);

            // Assert
            _aesKeyFile = Path.Combine(tempFolder.TempDirectory, AesKeyName + GenerateKeyWorkflow.CommonPostFix);
            File.Exists(_aesKeyFile).Should().BeTrue();

            var keyXml = File.ReadAllText(_aesKeyFile);

            keyXml = keyXml.Replace(Environment.NewLine, string.Empty);

            keyXml.Should().MatchRegex(".+<Key>.+</Key>");
            keyXml.Should().MatchRegex(".+<Iv>.+</Iv>");
        }
Exemplo n.º 3
0
        private void AddPlainTextEntries()
        {
            foreach (var plainTextEntries in _plainTextEntries)
            {
                // Arrange
                var addEntryArgObj = new AddEntryVerbOptions()
                {
                    AlgorithmToUse  = EnvCryptAlgoEnum.PlainText.ToString(),
                    Category        = plainTextEntries.CategoryEntryPair.Category,
                    NewEntryName    = plainTextEntries.CategoryEntryPair.Entry,
                    StringToEncrypt = plainTextEntries.DecryptedValue,
                    DatFile         = _datFile,
                };
                var addEntryArgs = OptionsToStringArgsHelper.GetArgs(addEntryArgObj);

                // Act
                Program.Main(addEntryArgs);

                // Assert
                var datFileXml = File.ReadAllText(addEntryArgObj.DatFile);
                datFileXml = datFileXml.Replace(Environment.NewLine, string.Empty);
                datFileXml.Should().MatchRegex(string.Format(@".+<Category Name=""{0}"">.+<Entry Name=""{1}"">.*<EncryptedValue>{2}</EncryptedValue>.+",
                                                             Regex.Escape(plainTextEntries.CategoryEntryPair.Category),
                                                             Regex.Escape(plainTextEntries.CategoryEntryPair.Entry),
                                                             Regex.Escape(plainTextEntries.DecryptedValue)));
            }
        }
Exemplo n.º 4
0
        private void RemoveEntryFromDat()
        {
            // Arrange
            var removeEntryArgs = OptionsToStringArgsHelper.GetArgs(new RemoveEntryVerbOptions()
            {
                DatFile    = _datFile,
                Categories = _plainTextEntries[0].CategoryEntryPair.Category,
                Entries    = _plainTextEntries[0].CategoryEntryPair.Entry,
            });

            // Act
            Program.Main(removeEntryArgs);

            // Assert
            var datFileXml = File.ReadAllText(_datFile);

            datFileXml.Should().NotContain(_plainTextEntries[0].CategoryEntryPair.Entry);
        }
Exemplo n.º 5
0
        private void GenerateRsaKey(TempDir tempFolder)
        {
            // Arrange
            var generateRsaKeyArgs = OptionsToStringArgsHelper.GetArgs(new GenerateKeyVerbOptions()
            {
                AlgorithmToUse     = EnvCryptAlgoEnum.Rsa.ToString(),
                KeyName            = RsaKeyName,
                OutputDirectory    = tempFolder.TempDirectory,
                OutputKeyToConsole = false,
                Verbose            = false
            });

            // Act
            Program.Main(generateRsaKeyArgs);

            // Assert
            _rsaPrivateKeyFile = Path.Combine(tempFolder.TempDirectory, RsaKeyName + GenerateKeyWorkflow.PrivateKeyPostfix);
            _rsaPublicKeyFile  = Path.Combine(tempFolder.TempDirectory, RsaKeyName + GenerateKeyWorkflow.PublicKeyPostfix);
            File.Exists(_rsaPrivateKeyFile).Should().BeTrue();
            File.Exists(_rsaPublicKeyFile).Should().BeTrue();

            var privateKeyXml = File.ReadAllText(_rsaPrivateKeyFile);

            privateKeyXml = privateKeyXml.Replace(Environment.NewLine, string.Empty);
            var publicKeyXml = File.ReadAllText(_rsaPublicKeyFile);

            publicKeyXml = publicKeyXml.Replace(Environment.NewLine, string.Empty);

            //      Public key just has the exponent & modulus
            publicKeyXml.Should().MatchRegex(".+<Exponent>.+</Exponent>");
            publicKeyXml.Should().MatchRegex(".+<Modulus>.+</Modulus>");
            publicKeyXml.Should().NotMatchRegex(".+<D>.+</D>");

            //      Private key has everything the public key has
            privateKeyXml.Should().MatchRegex(".+<Exponent>.+</Exponent>");
            privateKeyXml.Should().MatchRegex(".+<Modulus>.+</Modulus>");
            privateKeyXml.Should().MatchRegex(".+<D>.+</D>");
        }