示例#1
0
        public void CreateLicenseFile(LicenseDto dto, string fileName)
        {
            var ms = new MemoryStream();

            new XmlSerializer(typeof(LicenseDto)).Serialize(ms, dto);

            // Create a new CspParameters object to specify
            // a key container.

            string secretKey = File.ReadAllText("private.xml");

            // Create a new RSA signing key and save it in the container.
            RSACryptoServiceProvider rsaKey = new RSACryptoServiceProvider();

            rsaKey.FromXmlString(secretKey);

            // Create a new XML document.
            XmlDocument xmlDoc = new XmlDocument();

            // Load an XML file into the XmlDocument object.
            xmlDoc.PreserveWhitespace = true;
            ms.Seek(0, SeekOrigin.Begin);
            xmlDoc.Load(ms);

            // Sign the XML document.
            SignXml(xmlDoc, rsaKey);

            // Save the document.
            xmlDoc.Save(fileName);
        }
示例#2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Генератор лицензий");
            string del = new string('-', 30);

            Console.WriteLine(del);

            LicenseDto lic = new LicenseDto();

            Console.Write("Организация/частное лицо: ");
            lic.LicenseeName = Console.ReadLine();

            Console.Write("Срок действия (день.месяц.год): ");

            var date = Console.ReadLine().Split(new char[] { '.' });

            lic.ValidUntil = new DateTime(int.Parse(date[2]), int.Parse(date[1]), int.Parse(date[0]));

            Console.WriteLine("Доступные функции системы");
            Console.WriteLine("Включить возможность сохранить данные в файл? Y/N");
            string answer = Console.ReadLine();

            switch (answer)
            {
            case "Y":
                lic.AllowedFeatures.Add("AllowSaveInFile");
                break;
            }

            Console.WriteLine("Включить возможность загрузить данные из файла? Y/N");
            answer = Console.ReadLine();

            switch (answer)
            {
            case "Y":
                lic.AllowedFeatures.Add("AllowReadFromFile");
                break;
            }

            GeneratorManager manager = new GeneratorManager();

            manager.GenerateNewKeyPair();

            manager.CreateLicenseFile(lic, "license.xml");

            Console.WriteLine("Файл лицензии успешно создан!");

            Console.ReadKey();
        }