Esempio n. 1
0
        /// <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";
            }
        }
Esempio n. 2
0
        /// <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";
            }
        }