public void Can_Give_Public_Key_As_XML_String() { string xml = AsymmetricEncryption.PublicKeyAsXml(); Assert.NotNull(xml); Assert.That(xml, Is.Not.Empty); }
public void Can_Convert_XML_String_To_Public_Key() { string xml = AsymmetricEncryption.PublicKeyAsXml(); RSAParameters rsaParameters = AsymmetricEncryption.PublicKeyFromXml(xml); Assert.NotNull(rsaParameters); CollectionAssert.AreEqual(publicKey.Exponent, rsaParameters.Exponent); CollectionAssert.AreEqual(publicKey.Modulus, rsaParameters.Modulus); }
private async void RegisterButton_Click(object sender, RoutedEventArgs e) { // make sure user can't press button multiple times RegisterButton.IsEnabled = false; // make error label empty ErrorLabel.Content = ""; // check email if (!emailRegex.IsMatch(EmailTextBox.Text.Trim())) { ErrorLabel.Content = "Invalid email."; RegisterButton.IsEnabled = true; return; } // check password if (!passwordRegex.IsMatch(PasswordTextBox.Password.Trim())) { ErrorLabel.Content = "Invalid password. Password should contain at least 1 upper case letter and 1 number."; RegisterButton.IsEnabled = true; return; } // check if passwords match if (!PasswordTextBox.Password.Equals(PasswordConfirmationTextBox.Password)) { ErrorLabel.Content = "Password and Password Confirmation are different."; RegisterButton.IsEnabled = true; } try { // load given RSA container string containerName = RSAKeyTextBox.Text; await Task.Run(() => { AsymmetricEncryption.SelectKeyPair(containerName, 4096); }); List <Task> tasks = new List <Task>(); // try to register tasks.Add(Client.Register(EmailTextBox.Text, PasswordTextBox.Password.Trim(), FirstNameTextBox.Text.Trim(), LastNameTextBox.Text.Trim(), AsymmetricEncryption.PublicKeyAsXml())); // wait at least 3 seconds tasks.Add(Task.Delay(3_000)); // wait for 3 second timer and registration to complete, whichever finishes last await Task.WhenAll(tasks); // move to login window LoginWindow login = new LoginWindow(EmailTextBox.Text.Trim(), PasswordTextBox.Password, RSAKeyTextBox.Text); login.Show(); this.Close(); } catch (ClientException exception) { // show error message ErrorLabel.Visibility = Visibility.Visible; ErrorLabel.Content = exception.Message; } // re-enable user input RegisterButton.IsEnabled = true; }
/// <summary> /// Set clipboard to public RSA key /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ExportPublicRSAKey_Click(object sender, RoutedEventArgs e) { Clipboard.SetText(AsymmetricEncryption.PublicKeyAsXml()); }