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 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); }
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 CreateTestLicenseFile() { var rsau = new RsaUtils(); rsau.SetKeys(@"<RSAKeyValue><Modulus>2OO32RsAa73GjFw171YUkwOTyguKeT3N1zjAZY04/f4TdpRABfNBs1aHICepzhQ1gy1TBnYX3K95b+qD7u6CczU65JzormbqlgY1rweG+HNwGcn36g0M66k7qwfFSjZhbmlGTvedD7xo4L/pSf91p7KwjzLt6ac8+UAdqVfKsu0=</Modulus><Exponent>AQAB</Exponent><P>5P3vNrTqC9JeXmyJSQrfmQN3tYdr5Kc7OoRb0HqK11tc1grGZ1rDmSTQ6OFtqpzCiJyz2oH1BHA16WC2UbVftw==</P><Q>8nherC7UVWiuG8suixZtYL5CTK/CJVpf4GVrRZOb2slbL0sojgq7QQG5sZfQ4PIFHhfzgVM4uTkHNaFJUTv6ew==</Q><DP>zTNg8b0dHordVfAc9f9wb0XUOC+qV7QkN0P0otWtJV8RyhzNvkBvlwSO0KFyDLl8+b6yzNQ4JEoJhaDMwFuv8Q==</DP><DQ>rhlR2Q4y9jSYt2o3vDTZSpqyHkAhBhMTPptz39xyDzF/YMD1mLAJ7k5f2C2rFKmSlR4bgSORWiWhkJeDfmmzmw==</DQ><InverseQ>NLinNiXw75D8kOGhz2Z9hJR6tU0t1fuh9xVwAQSZomMFqTYEaGwekFIWA/7olAqR5b/oigGndS8F5L1tVDWqrg==</InverseQ><D>AmH+ExSI3KYpGEGrFgYME9FmPkICM3LKYCLvei4jAidYb2URjv8tKZs5wNCuvOTb8aT91IRXnsUOwHwDFwznwfcVwdIpW7m0Q/6Vu7GE3G1pzQOUynv+E9R8cdSl/m3lfNt8OJHNqnnR4MBoirerQargCZwDWY0nYlm6xBKIkME=</D></RSAKeyValue>"); var dt1 = (new DateTime(2022, 01, 01)).ToString("yyyyMMdd"); var dt2 = (new DateTime(2021, 02, 10)).ToString("yyyyMMdd"); var dt1Sign = rsau.SignData(dt1); var dt2Sigh = rsau.SignData(dt2); Console.WriteLine($"1: {dt1}:{dt1Sign}"); Console.WriteLine($"2: {dt2}:{dt2Sigh}"); var rsau2 = new RsaUtils(); rsau2.SetKeys(@"<RSAKeyValue><Modulus>2OO32RsAa73GjFw171YUkwOTyguKeT3N1zjAZY04/f4TdpRABfNBs1aHICepzhQ1gy1TBnYX3K95b+qD7u6CczU65JzormbqlgY1rweG+HNwGcn36g0M66k7qwfFSjZhbmlGTvedD7xo4L/pSf91p7KwjzLt6ac8+UAdqVfKsu0=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>"); Assert.IsTrue(rsau2.CheckSign(dt1, dt1Sign)); Assert.IsTrue(rsau2.CheckSign(dt2, dt2Sigh)); }