/// <summary> /// Metoda służąca do przeprowadzenia procedury logowania /// </summary> private void LoginMethod() { if (PwdTextBox.Text != "" && LoginTextBox.Text != "") { //Zebranie danych z pol okna logowania string login = LoginTextBox.Text; string pwd = PwdTextBox.Text; //Zaszyfrowanie hasla i usuniecie z pamieci byte[] pwdArray = BindingModule.enc.GetBytes(pwd); StatusLabel.Text = "Login in progress"; pwd = ""; PwdTextBox.ResetText(); //Uruchomienie modulu komunkacji if (!mw.cm.Run("localhost", "pkryserver.jumpingcrab.com")) { StatusLabel.Text = "Not able to tart comunnication module"; return; } //Wyslanie loginu i oczekiwanie na odp int n = mw.cm.SendLogin(login); //Reakcja na bledny login if (n == 0) { StatusLabel.Text = "Signing in failed, wrong login"; mw.cm.Stop(); } //Poprawny login hashowanie i wyslanie hasla else { pwdArray = CryptoModule.HashNTimes(pwdArray, --n); //send pwdArray //Poczekaj na odpowiedz // bool response = mw.cm.SendPwd(pwdArray); if (mw.cm.SendPwd(pwdArray)) { BindingModule.setLogin(login); //Udane logowanie, czekam na certyfikat StatusLabel.Text = "Waiting for certificate"; //Otrzymany certyfikat byte[] certificateRawData = mw.cm.GetCertificate(); X509Certificate2 certificate = CryptoModule.CreatePrivateCertFromRawData(certificateRawData); CryptoModule.ImportKey(certificate, true, false); CryptoModule.ImportKey(certificate, true, true); mw.EnableDisableControls(true); mw.DisableLogBtn(); mw.WriteInLog("Logged in!"); mw.cm.Run(); this.Close(); } else { StatusLabel.Text = "Signing in failed, wrong password"; } } } else { StatusLabel.Text = "Need more data to proceed"; } }