public string HandleIncomingMsgFromNode(string msgwsig, SafeNode node) { string[] msg = msgwsig.Split('²'); if (!new SignatureVerifier().Verify(msg[1], Convert.FromBase64String(msg[0]), node)) { return("SIGERR"); } if (msg[1].Equals("PING")) { return("PONG"); } string[] msgData = msg[1].Split('|'); switch (msgData[0]) { case "REQUESTSECUSITE": break; case "HOP": break; default: return("Whatdoyoumean?"); } return(""); }
public void CreateI2PConnection2Node(SafeNode node, out SslStream ssl) { I2PSocketManager manager = I2PSocketManagerFactory.createManager(); Destination D = new Destination(node.hiddenid); I2PSocket socket = manager.connect(D); ssl = null; }
private void Load() { string[] NodeFileData = File.ReadAllLines(Application.StartupPath + "\\nodes.dat"); foreach (string l in NodeFileData) { SafeNode cloadednode = LoadSingle <SafeNode>(l); Nodes.Add(cloadednode.identity.name, cloadednode); } }
public bool Verify(string msg, byte[] signature, SafeNode node) { X509Certificate2 cert = node.identity.PubKey; RSACryptoServiceProvider csp = (RSACryptoServiceProvider)cert.PublicKey.Key; SHA512Managed sha512 = new SHA512Managed(); UnicodeEncoding encoding = new UnicodeEncoding(); byte[] data = encoding.GetBytes(msg); byte[] hash = sha512.ComputeHash(data); return(csp.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA512"), signature)); }
private bool ParseData(string data) { string[] clientData = data.Split('|'); _node = new SafeNode(clientData[0], "", 1, new X509Certificate2(Convert.FromBase64String(clientData[1])), false); return(true); }
public ClientHandler(SafeNode node) { this.node = node; }