public AcceptKeyDialog(Network network, ReceivedKeyEventArgs args) : base(null, "AcceptKeyDialog") { var publicKey = new PublicKey(args.Key.Info, args.Key.Key); keyTextView.Buffer.Text = publicKey.ToArmoredString(); string nodeID = FileFind.Common.SHA512Str(publicKey.Key); nodeIdLabel.Text = nodeID; if (args.Node != null) { if (nodeID.ToUpper() != args.Node.NodeID.ToUpper()) { throw new Exception("The key recieved does not match this user!"); } nicknameLabel.Text = args.Node.NickName; } else if (args.Connection != null) { var conn = args.Connection; connectionLabel.Text = String.Format("{0} ({1})", conn.RemoteAddress, conn.Incoming ? "Incoming" : "Outgoing"); nicknameLabel.Text = args.Key.Info; connectionLabel.Show(); connectionTitleLabel.Show(); } else { nicknameLabel.Text = args.Key.Info; } denyKeyButtonLabel.Text = String.Format("Deny Key ({0})", secondsLeft); }
private void AskAcceptKey(Network network, ReceivedKeyEventArgs args, AutoResetEvent receiveKeyWait, ref bool acceptKey) { try { AcceptKeyDialog dialog = new AcceptKeyDialog(network, args); int response = dialog.Run(); acceptKey = (response == (int)ResponseType.Ok); receiveKeyWait.Set(); } catch (Exception ex) { LoggingService.LogError(ex); Gui.ShowErrorDialog(ex.ToString(), Gui.MainWindow.Window); } }
private bool network_ReceivedKey(Network network, ReceivedKeyEventArgs args) { try { bool accept = false; AutoResetEvent receiveKeyWait = new AutoResetEvent(false); Application.Invoke(delegate { AskAcceptKey(network, args, receiveKeyWait, ref accept); }); receiveKeyWait.WaitOne(); return(accept); } catch (Exception ex) { LoggingService.LogError(ex); return(false); } }
private bool network_ReceivedKey(Network network, ReceivedKeyEventArgs args) { try { var publicKey = new PublicKey(args.Key.Info, args.Key.Key); var nodeInfo = new TrustedNodeInfo(publicKey); if (args.Node != null) { nodeInfo.Identifier = args.Node.NickName; } else { nodeInfo.Identifier = nodeInfo.NodeId; } // First person to connect? Put them in charge! if (network.TrustedNodes.Count == 0) { LogItem(string.Format("[!] WARNING! {0} is now the admin!", publicKey.Nickname)); if (!settings.AdminIDs.Contains(nodeInfo.NodeId)) { settings.AdminIDs.Add(nodeInfo.NodeId); settings.SaveSettings(); } return(true); } // Don't accept the key now, but keep it around var keyDir = GetKeyDir(network); var keyFile = GetKeyFileName(network, nodeInfo.NodeId); if (IO.File.Exists(keyFile) == false) { if (IO.Directory.Exists(keyDir) == false) { IO.Directory.CreateDirectory(keyDir); } IO.File.WriteAllText(keyFile, publicKey.ToArmoredString()); } } catch (Exception ex) { LoggingService.LogError("Error in network_ReceivedKey: " + ex); } return(false); }
private bool network_ReceivedKey(Network network, ReceivedKeyEventArgs args) { try { var publicKey = new PublicKey(args.Key.Info, args.Key.Key); TrustedNodeInfo nodeInfo = new TrustedNodeInfo(publicKey); if (args.Node != null) { nodeInfo.Identifier = args.Node.NickName; } else { nodeInfo.Identifier = nodeInfo.NodeID; } // First person to connect? Put them in charge! if (network.TrustedNodes.Count == 0) { LogItem(String.Format("[!] WARNING! {0} is now the admin!", publicKey.Nickname)); if (!settings.AdminIDs.Contains(nodeInfo.NodeID)) { settings.AdminIDs.Add(nodeInfo.NodeID); settings.SaveSettings(); } return true; } // Don't accept the key now, but keep it around string keyDir = GetKeyDir(network); string keyFile = GetKeyFileName(network, nodeInfo.NodeID); if (IO.File.Exists (keyFile) == false) { if (IO.Directory.Exists (keyDir) == false) { IO.Directory.CreateDirectory (keyDir); } IO.File.WriteAllText(keyFile, publicKey.ToArmoredString()); } } catch (Exception ex) { LoggingService.LogError("Error in network_ReceivedKey: " + ex); } return false; }