public string GetConnectionString(string UserName) { if (LocalEndpointSupport == null) { return(""); } Base64PeerData peerData = new Base64PeerData( UserName, LocalEndpointSupport.Address.IPToInt(), LocalEndpointSupport.Port, LocalEndpointTransmission.Port, KeyExchange.GetPublicKey() ); return(URI + ":" + peerData.GetBase64EncodedData()); }
public async void AddPeer(string ConnectionString, uint SubnetworkIP) { if (!_Connected) { OnAddedPeer(this, new AddedPeerEventArgs(false, new InvalidOperationException("Żadne połączenie nie jest obecnie otwarte."))); return; } if ((SubnetworkIP & CurrentSubnetwork.CIDR.GetMaskFromCIDR()) != CurrentSubnetwork.Address) { OnAddedPeer(this, new AddedPeerEventArgs(false, new InvalidOperationException("Wybrany adres IP jest spoza zakresu możliwych adresów w tej sieci."))); return; } foreach (uint ip in PeersTx.Keys) { if (ip == SubnetworkIP) { OnAddedPeer(this, new AddedPeerEventArgs(false, new InvalidOperationException("Wybrany adres IP jest już przypisany do innego użytkownika. Proszę wybrać inny."))); return; } } if (ConnectionString.IndexOf(URI) > -1) { ConnectionString = ConnectionString.Remove(ConnectionString.IndexOf(URI), URI.Length + 1); } PeerData peer = null; try { Base64PeerData peerData = Base64PeerData.GetBase64PeerData(ConnectionString); peer = PeerData.GetDataFromBase64PeerData(peerData, SubnetworkIP); await InitiateNewUser(peer, SubnetworkIP); OnAddedPeer(this, new AddedPeerEventArgs(true, null)); } catch (Exception ex) { RemovePeerFromDictionaries(peer, null); OnAddedPeer(this, new AddedPeerEventArgs(false, ex)); } }
private void btnChecksum_Click(object sender, RoutedEventArgs e) { string ConnectionString = tbConnectionString.Text; if (ConnectionString.IndexOf(':') > -1) { ConnectionString = ConnectionString.Remove(0, ConnectionString.IndexOf(':') + 1); } byte[] key = Base64PeerData.ExtractPublicKey(ConnectionString); if (key != null) { ParentWindow.ShowChecksum(key, "addpeer"); } else { MessageBox.Show("Niepoprawny ciąg znaków! Odkodowanie klucza publicznego nie powiodło się!", "Błąd", MessageBoxButton.OK, MessageBoxImage.Warning); } }