Exemplo n.º 1
0
        private void SetMethods(ITemplateEngine templateEngine, SymmetricEncryptionCryptoTaskModel cryptoModel)
        {
            if (cryptoModel.UsePassword)
            {
                string macSuffix = string.Empty;
                if (cryptoModel.UseMac)
                {
                    macSuffix = "Mac";
                }

                var passwordMethodsTemplate = new SimpleTemplateEngine(
                    GetTemplateStream($"Resources.CodeTemplates.SymmetricEncryption.PasswordMethods{macSuffix}.txt"));

                string sha = "SHA256";

                switch (cryptoModel.SelectedSecurityLevel)
                {
                case SecurityLevel.Default:
                    break;

                case SecurityLevel.VerySecure:
                    sha = "SHA512";
                    break;
                }

                //passwordMethodsTemplate.AddReplacementValue(SymmetricCryptoProviderTemplateKeys.ShaImplementation, sha);

                templateEngine.AddReplacementValue(SymmetricCryptoProviderTemplateKeys.PasswordMethods, passwordMethodsTemplate.GetResult());
            }
        }
        public void TestMethod9()
        {
            var template = "$$test$keintest$123$$";
            var engine   = new SimpleTemplateEngine(template);
            var c        = engine.ReplacementKeys.Count;

            Assert.AreEqual(2, c);
        }
        public void TestMethod1()
        {
            var template = "$test$";
            var engine   = new SimpleTemplateEngine(template);
            var c        = engine.ReplacementKeys.Count;

            Assert.AreEqual(1, c);
        }
        public void TestMethod8()
        {
            var template = "$$test$keintest$123$";
            var engine   = new SimpleTemplateEngine(template);
            var c        = engine.ReplacementKeys;

            Assert.AreEqual("test", c[0]);
            Assert.AreEqual("123", c[1]);
        }
        public void CanParseTemplate()
        {
            var filespace = new Mock<IFilespace>();
            filespace.Setup(x => x.Read(It.IsAny<string>())).Returns
                ("1:{{one}} 2:{{two}} 3:{{three}} 4:{{four}}");
            var templateEngine = new SimpleTemplateEngine(filespace.Object);

            var result = templateEngine.Process("anything", new { one="1", two=2, three=(string)null });
            Assert.AreEqual("1:1 2:2 3: 4:{{four}}", result);
        }
        public void TestMethod1()
        {
            var template = "$test$keintest$123$";
            var te       = new SimpleTemplateEngine(template);

            te.AddReplacementValue("test", "System");
            te.AddReplacementValue("123", "TestClass");

            Assert.AreEqual("SystemkeintestTestClass", te.GetResult());
        }
Exemplo n.º 7
0
        private void SetConfiguration(ITemplateEngine te, SymmetricEncryptionCryptoTaskModel model)
        {
            if (model.UsePassword)
            {
                var passwordConfigTemplate = new SimpleTemplateEngine(
                    GetTemplateStream($"Resources.CodeTemplates.SymmetricEncryption.PasswordConfiguration.txt"));


                int saltSize   = 64;
                int iterations = 1000;

                switch (model.SelectedSecurityLevel)
                {
                case SecurityLevel.Default:
                    saltSize = 265;
                    break;

                case SecurityLevel.VerySecure:
                    saltSize   = 512;
                    iterations = 10000;
                    break;
                }

                passwordConfigTemplate.AddReplacementValue(SymmetricCryptoProviderTemplateKeys.SaltSize, saltSize);
                passwordConfigTemplate.AddReplacementValue(SymmetricCryptoProviderTemplateKeys.Iterations, iterations);

                te.AddReplacementValue(SymmetricCryptoProviderTemplateKeys.PasswordConfiguration, passwordConfigTemplate.GetResult());
            }

            int    keySize = 128;
            string aes     = "AesManaged";
            string mac     = "HMACSHA256";

            switch (model.SelectedSecurityLevel)
            {
            case SecurityLevel.Default:
                keySize = 192;
                mac     = "HMACSHA384";
                break;

            case SecurityLevel.VerySecure:
                keySize = 256;
                aes     = "AesCryptoServiceProvider";
                mac     = "HMACSHA512";
                break;
            }
            if (model.UseMac)
            {
                te.AddReplacementValue(SymmetricCryptoProviderTemplateKeys.MacMode, mac);
            }
            te.AddReplacementValue(SymmetricCryptoProviderTemplateKeys.Blocksize, 128);
            te.AddReplacementValue(SymmetricCryptoProviderTemplateKeys.KeySize, keySize);
            te.AddReplacementValue(SymmetricCryptoProviderTemplateKeys.AesProvider, aes);
        }
        public void CanParseTemplate()
        {
            var filespace = new Mock <IFilespace>();

            filespace.Setup(x => x.Read(It.IsAny <string>())).Returns
                ("1:{{one}} 2:{{two}} 3:{{three}} 4:{{four}}");
            var templateEngine = new SimpleTemplateEngine(filespace.Object);

            var result = templateEngine.Process("anything", new { one = "1", two = 2, three = (string)null });

            Assert.AreEqual("1:1 2:2 3: 4:{{four}}", result);
        }
Exemplo n.º 9
0
        /// <summary>
        /// Executes the generation.
        /// </summary>
        /// <param name="model">The model of the crypto task.</param>
        public async void Execute(ICryptoCodeGenerationTaskModel model)
        {
            BeforeRunningHandler(model);

            var project = ProjectHelpers.GetProjectOfSelectedItem();

            if (project == null)
            {
                return;
            }

            var folder = ProjectHelpers.GetFolderOfSelectedItem();
            var file   = new FileInfo(Path.Combine(folder, model.FileName));

            if (file.Exists)
            {
                OnFileAlreadyExists(file);
            }
            else
            {
                using (var template = GetBaseTemplate(model))
                {
                    if (template == null)
                    {
                        return;
                    }
                    var te = new SimpleTemplateEngine(template);
                    ApplyTemplate(te, model, project, file);
                    using (var codeGenerator = new SimpleFileWriter(file))
                    {
                        await codeGenerator.WriteFileAsync(te.GetResult());
                    }
                }

                BeforeOpeningFile();

                ProjectHelpers.AddFileToSelectedItem(project, file);
                ProjectHelpers.OpenFile(file);
            }
        }
Exemplo n.º 10
0
 string ContentWriter.WriteContext(SpecContext context)
 {
     return(SimpleTemplateEngine.Render(
                MSpecTemplate,
                new DataLookup(varName => Lookup(varName, context, cmi => PrintContextFactory(context, cmi)))));
 }