private static string getResponse64(Socket s) { string sResponse; byte[] bytes = new byte[2048]; while (s.Available == 0) { System.Threading.Thread.Sleep(100); } int recvd = s.Receive(bytes, 0, s.Available, SocketFlags.None); sResponse = Convert.ToBase64String(bytes, 0, recvd); sResponse = RijndaelSimple.Decrypt(sResponse, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize); return(sResponse); }
private static string recvMsgPart(Socket sockin) { byte[] req = new byte[1024]; // Receive length while (sockin.Available == 0) { System.Threading.Thread.Sleep(100); } int rbytes = sockin.Receive(req, 0, sockin.Available, SocketFlags.None); string sreq = Convert.ToBase64String(req, 0, rbytes); //MessageBox.Show(sreq); sreq = RijndaelSimple.Decrypt(sreq, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize); int msgLen = Int32.Parse(sreq); //MessageBox.Show("length = " + msgLen); // send ack for length byte[] resp = new byte[2048]; string sresp = "000"; //resp = enc.GetBytes(sresp); sresp = RijndaelSimple.Encrypt(sresp, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize); resp = Convert.FromBase64String(sresp); sockin.Send(resp, 0, resp.Length, SocketFlags.None); // MessageBox.Show("Length ack sent"); // receive message int rcvd = 0; string encryptedMsgBody = ""; req = null; req = new byte[msgLen]; while (rcvd < msgLen) { while (sockin.Available == 0) { System.Threading.Thread.Sleep(100); } rbytes = sockin.Receive(req, rcvd, sockin.Available, SocketFlags.None); rcvd = rcvd + rbytes; } encryptedMsgBody = Convert.ToBase64String(req); //MessageBox.Show("rbytes = " + req.Length + " length = " + encryptedMsgBody.Length); sreq = RijndaelSimple.Decrypt(encryptedMsgBody, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize); //MessageBox.Show(sreq.Substring(0,3) + " " + sreq.Substring(sreq.Length-3,2)); resp = null; resp = new byte[2048]; sresp = "000"; //resp = enc.GetBytes(sresp); sresp = RijndaelSimple.Encrypt(sresp, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize); resp = Convert.FromBase64String(sresp); sockin.Send(resp, 0, resp.Length, SocketFlags.None); //MessageBox.Show("msgPart ack sent"); return(sreq); }