async void _dispatcher_Tick(object sender, object e) { if (_state == GenerationState.None) { StartStopButton.Content = "Generate"; _dispatcher.Stop(); return; } var multiplier = _random.NextDouble() * 100; var vectorX = multiplier * (_gyroReading.AngularVelocityX + 1) * (_forceReading.AccelerationX + 1); var vectorY = multiplier * (_gyroReading.AngularVelocityY + 1) * (_forceReading.AccelerationY + 1); var vectorZ = multiplier * (_gyroReading.AngularVelocityZ + 1) * (_forceReading.AccelerationZ + 1); var value = Math.Sqrt(Math.Pow(vectorX, 2) + Math.Pow(vectorY, 2) + Math.Pow(vectorZ, 2)); while (value > Characters.Length) { value *= _random.NextDouble(); } _generatedSecrets.Add(Characters[(int)value]); ProgressBar.Value = _generatedSecrets.Count; _newSecretCode = string.Join(" ", _generatedSecrets); SecretDisplay.Text = _newSecretCode; if (_generatedSecrets.Count == 15) { _state = GenerationState.None; StartStopButton.Content = "Generate"; _dispatcher.Stop(); ApplyButton.IsEnabled = true; _newSecretCodeWithChecksum = _newSecretCode + SecretChecksum.Compute(_newSecretCode); SecretDisplay.Text = _newSecretCodeWithChecksum; return; } await Task.Delay(TimeSpan.FromSeconds(_random.NextDouble() * 2.5 + 0.5)); }
private void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { ErrorMessage.Text = ""; if (Secret.Text.Length != 16) { ErrorMessage.Text = "Secret key must have length of 16."; args.Cancel = true; return; } var secret = Secret.Text.Substring(0, 15); var checksum = Secret.Text[15]; if (SecretChecksum.Compute(secret) != checksum) { ErrorMessage.Text = "Provided secret key is invalid. Checksum is incorrect."; args.Cancel = true; return; } SettingsProvider.SecretSequence = secret; }