public void TryPasteKeyFromClipboard() { var data = Clipboard.GetDataObject(); if (data != null && data.GetDataPresent(DataFormats.UnicodeText, true)) { var keyInHex = data.GetData(DataFormats.UnicodeText, true) as string; try { var key = Keys.ImportPrivateEd25519KeyFromBytes(Hex.ToBytes(keyInHex)); if (SigningData.TryAddKey(key)) { // Note workaround PublicKey.Equals Bug PublicKeys = SigningData.PublicKeys.Select(k => Hex.FromBytes(k.Export(KeyBlobFormat.PkixPublicKey))).ToArray(); ValidationMessage = string.Empty; } else { ValidationMessage = "The Key pasted from the Clipbaord is already in the list."; } } catch (Exception ex) { ValidationMessage = "Unable to parse as Ed25519 Private Key: " + ex.Message; } } else { ValidationMessage = "It does not appear that a Hex Encoded Ed25519 Private Key is in the Clipboard."; } }
private void OnPropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(PrivateKeyInHex)) { try { var key = Keys.ImportPrivateEd25519KeyFromBytes(Hex.ToBytes(PrivateKeyInHex)); if (SigningData.Contains(key)) { PrivateKey = null; CanContinue = false; ValidationMessage = "This key is already in the list."; } else { PrivateKey = key; CanContinue = true; ValidationMessage = String.Empty; } } catch (Exception ex) { PrivateKey = null; CanContinue = false; ValidationMessage = "Unable to parse as Ed25519 Private Key: " + ex.Message; } } }
public void TryRemoveKeyFromList(string keyInHex) { var key = Keys.ImportPublicEd25519KeyFromBytes(Hex.ToBytes(keyInHex)); if (SigningData.TryRemoveKey(key)) { // Note workaround PublicKey.Equals Bug PublicKeys = SigningData.PublicKeys.Select(k => Hex.FromBytes(k.Export(KeyBlobFormat.PkixPublicKey))).ToArray(); ValidationMessage = string.Empty; } }
internal void TrySignTransactionAndCopyToClipboard() { HashgraphClipboard.Set(SigningData.SignTransaction()); ValidationMessage = SingularLanguage ? "Signature copied to clipboard." : "Signatures copied to clipboard."; }