/// <summary> /// Metoda obsługująca zdarzenie kliknięcia w przycisk RegisterBtn /// Metoda jest odpowiedzialna za procedurę rejestracji nowego użytkownika /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void RegisterBtn_Click(object sender, EventArgs e) { string login, pwd, pesel; login = LoginTextBox.Text; pesel = maskedTextBox1.Text; pwd = PwdTextBox.Text; if (!BindingModule.CheckPesel(pesel)) { StatusLabel.Text = "Invalid Pesel"; return; } if (LoginTextBox.Text == "" || maskedTextBox1.Text == "" || PwdTextBox.Text == "" || ConfPwdTextBox.Text == "") { //RegisterBtn.Enabled = false; StatusLabel.Text = "Provide more information"; return; } if (pwd.Equals(ConfPwdTextBox.Text)) { //wyslac ponizsze i poczekac na odpowiedz bool response = SendRegisterMsg(login, CryptoModule.HashMessage(pwd), CryptoModule.HashMessage(pesel)); if (response) { StatusLabel.Text = "Registration completed succesfully"; LoginTextBox.ReadOnly = true; maskedTextBox1.ReadOnly = true; PwdTextBox.ReadOnly = true; ConfPwdTextBox.ReadOnly = true; RegisterBtn.Enabled = false; } else { StatusLabel.Text = "Registration failed"; LoginTextBox.ResetText(); maskedTextBox1.ResetText(); PwdTextBox.ResetText(); ConfPwdTextBox.ResetText(); } } else { StatusLabel.Text = "Passwords don't match"; } }
/// <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"; } }