Exemple #1
0
        static void Main(string[] args)
        {
            /*
             * 1. Сгенерировать ключи
             * 2. Скопировать private.key в качестве значения переменной privateKey
             *  Сгенерировать файл лицензии
             */
            string mode = "1";

            if (mode == "1")
            {
                Console.WriteLine("Key generation");
                RsaUtils rsa        = new RsaUtils();
                var      privateKey = rsa.GetKeyInformation(true);
                var      publicKey  = rsa.GetKeyInformation(false);

                System.IO.File.WriteAllText("private.key", privateKey);
                System.IO.File.WriteAllText("public.key", publicKey);
            }
            else if (mode == "2")
            {
                Console.WriteLine("License generation");
                var validTo    = DateTime.Today.AddDays(15);
                var privateKey = @"<RSAKeyValue><Modulus>6cDwthHizyN2oy7GVLDJj8BULOyZcNmhT8DUOtnolKl1JXyboMTtYSj8RTItDYuA9erFmjHxfXs77gjx4AZovb5tn/Vuv2WZqtRfGnmFS/BaioHR7rLeHpEQ5Fy/bSZZVCiK0qCJ1fACkb5myKxktHF33t884OgYeIafu8C/+JE=</Modulus><Exponent>AQAB</Exponent><P>9YjXPha1uIGAquhNNfO28+5HPpYoJ25unTsJDy8RB0e6B4shWSrQWoFHGfMvwKVud3bIGhak4M1BDp2oYN/zdw==</P><Q>87eNW6WEmHcZs0ZoVk7UPFBzMbz7PFkRkBFveTEGILDDxPm95JDZoe2xJH7BQCNmDouik81JMWL8pXjQqzkmNw==</Q><DP>5n/0MOF47yED/W3fLgsBcbX7RBIK2Bmf1hMZyhtRTRhU18gRInhC6PP8H6xg4+Vp8tSbvYIMfs2xiVsQOwGCuQ==</DP><DQ>wcYf+00Htt2DLpn9XRoB/w6L+HDkZGAA6cYjFn2W/Kjujo9unutYTjoZTQYHCsLaYxg8pD1lQ4ILlFkRuAGRUw==</DQ><InverseQ>lpU5H7FE5Dq38qXBK3YemSFHs9c56RHJpA+IPWk+vZwJ90RU1y2AcdW+XCYRIoK+gJx6CneSOjaHuwrXHH7r5A==</InverseQ><D>lxdAP99VxF/+2kFsrudKkaFWh2czUw9Ixl00kQmy3QyfjOh7S7KeYTP1w+BH4L5wUAQ9T4rCtkIGnbioZw6defOz9e8yd/S6mwJaC5KUmDRUhewZEd8AFscT+kLekJ4JB+WZbxVJgH1DxW9A2nqxGU5/r+gJv4TmQ8c8M6LDTcU=</D></RSAKeyValue>";

                RsaUtils rsa = new RsaUtils();
                rsa.SetKeys(privateKey);

                var validToStr = validTo.ToString("yyyyMMdd");
                var sign       = rsa.SignData(validToStr);

                System.IO.File.WriteAllText("license.lic", $"{validToStr}{sign}");
            }
        }
        public void TestKeysGeneration()
        {
            var _rsau = new RsaUtils();
            var keys  = _rsau.GetKeyInformation(true);

            Assert.IsNotNull(keys);
            Assert.IsTrue(keys.Length > 0);

            var publicKey = _rsau.GetKeyInformation(false);

            Assert.IsNotNull(publicKey);
            Assert.IsTrue(publicKey.Length < keys.Length);
        }
        public void TestKeysGeneration()
        {
            var _rsau = new RsaUtils();
            var keys  = _rsau.GetKeyInformation(true);

            Assert.IsNotNull(keys);
            Assert.IsTrue(keys.Length > 0);

            var publicKey = _rsau.GetKeyInformation(false);

            Assert.IsNotNull(publicKey);
            Assert.IsTrue(publicKey.Length < keys.Length);

            Console.WriteLine($"Private and public: {keys}");
            Console.WriteLine($"Public: {publicKey}");
        }
        public void TestSetPublicKey()
        {
            var _rsau    = new RsaUtils();
            var origKeys = _rsau.GetKeyInformation(false);

            var _rsau2    = new RsaUtils();
            var origKeys2 = _rsau2.GetKeyInformation(false);

            Assert.IsNotNull(origKeys);
            Assert.IsNotNull(origKeys2);
            Assert.IsFalse(origKeys.Equals(origKeys2));

            _rsau2.SetKeys(origKeys);
            var origKeys2_2 = _rsau2.GetKeyInformation(false);

            Assert.IsNotNull(origKeys2_2);
            Assert.IsFalse(origKeys2.Equals(origKeys2_2));
            Assert.IsTrue(origKeys.Equals(origKeys2_2));
        }
        public void TestSignAndCheckWithPublicKey()
        {
            var message = DateTime.Now.ToString();
            //"string to be encrypted";

            var _rsau       = new RsaUtils();
            var signMessage = _rsau.SignData(message);

            Assert.IsNotNull(signMessage);
            Assert.IsTrue(signMessage.Length > 0);

            var _rsau2 = new RsaUtils();

            _rsau2.SetKeys(_rsau.GetKeyInformation(false));
            var verifyData = _rsau2.CheckSign(message, signMessage);

            Assert.IsTrue(verifyData);
        }