Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("RSA KeyLength: " + config.RSAKeyLength.ToString() + "\nStart process async creating pool keys for users:");
            List <User>     Users    = new List <User>();
            List <string[]> Userdata = new List <string[]>();

            Userdata.Add(new string[] { "Вася", "RSA" });
            Userdata.Add(new string[] { "Сергей", "RSA" });
            Userdata.Add(new string[] { "Андрей", "RSA" });
            Userdata.Add(new string[] { "Игорь", "DSA" });
            Userdata.Add(new string[] { "Анатолий", "DSA" });
            Userdata.Add(new string[] { "Дмитрий", "DSA" });

            foreach (string[] _Userdata in Userdata)
            {
                if (_Userdata[1] == "RSA")
                {
                    Users.Add(new User(_Userdata[0], KeyTypes.RSA));
                }                                                                               // Create RSA keys pair
                if (_Userdata[1] == "DSA")
                {
                    Users.Add(new User(_Userdata[0], KeyTypes.DSA));
                }                                                                               // Create DSA keys pair
                KeyManager.CreateNewKeyPair(Users[Users.Count - 1]);
                Console.WriteLine("Waiting create new key pair for username:"******" KeyType:" + _Userdata[1]);
            }

            // waiting all tasks
            Console.WriteLine();
            Console.WriteLine("[Waiting creating keys]:");
            Console.WriteLine();
            List <string> lastWritingKeyTokens = new List <string>();

            while (true)
            {
                try
                {
                    foreach (IKey key in KeyManager.Keys)
                    {
                        if (lastWritingKeyTokens.IndexOf(key.GeUser().UserToken) == -1)
                        {
                            Console.WriteLine(string.Format("[Key Type]:{2}\n[User Name]:{0}\n[User Token]:{1}\n\n[Public Key]:\n{3}\n\n[Private Key]:\n{4}", key.GeUser().UserName, key.GeUser().UserToken, key.GetType().ToString(), key.GetPublicKey(), key.GetPrivateKey()));
                            Console.WriteLine("-----------------------------------------------------------------\n");
                            lastWritingKeyTokens.Add(key.GeUser().UserToken);
                        }
                    }
                }
                catch { }
                if (KeyManager.Keys.Count == Users.Count)
                {
                    Console.WriteLine("Press any key to close programm."); break;
                }
                Thread.Sleep(1);
            }

            Console.ReadLine();
        }