static void MessageReceived(HS_SocketDataWorker sdw, string message) { //Decrypt string json = RSAHandler.Decrypt(private_key, message); LoginRequest request = LoginRequest.Parse(json); Console.WriteLine(json); //Check login //TODO make this async string stringResponse = NetUtil.PostSynchro(Settings.Current.InternalLoginUrl, new System.Collections.Generic.Dictionary <string, string>() { { "code", Settings.Current.InternalApiAccessCode }, { "userid", request.Username }, { "password", request.Password }, { "key", request.Key } }); ServerResponse response = ServerResponse.Parse(stringResponse); Log(stringResponse); if (response != null) { if (response.Result == "success") { Log("success sending back"); string sec = Convert.ToBase64String(TDESHandler.Encrypt(request.Key, stringResponse)); sdw.Send(sec); } else { } } }
private static void ReceiveCallback(IAsyncResult ar) { Console.WriteLine("Receive callback"); try { // Retrieve the state object and the client socket // from the asynchronous state object. StateObject state = (StateObject)ar.AsyncState; Socket client = state.workSocket; // Read data from the remote device. int bytesRead = client.EndReceive(ar); if (bytesRead > 0) { //Console.WriteLine("Recieve callback! - grabbing more data..."); // There might be more data, so store the data received so far. state.sb.Append(Encoding.UTF8.GetString(state.buffer, 0, bytesRead)); string content = state.sb.ToString(); Console.WriteLine(content); if (content.Contains(HS_SocketInputBuffer.EOF)) { //Response receieved content = content.Replace(HS_SocketInputBuffer.EOF, ""); //MAKE SURE THIS WORKS MULTIPLE MESSAGES Console.WriteLine(content); string MSG = TDESHandler.Decrypt(skey, content); Console.WriteLine(MSG); //Listen again Receive(client); } else { // Get the rest of the data. client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state); } } /*else * { * Console.WriteLine("Recieve callback! - data transmission done"); * * // All the data has arrived; put it in response. * if (state.sb.Length > 1) * { * response = state.sb.ToString(); * Console.WriteLine("Recieved: " + response); * Receive(client); * } * // Signal that all bytes have been received. * receiveDone.Set(); * }*/ } catch (Exception e) { Console.WriteLine(e.ToString()); } }
void GameMessageReceived(HS_SocketDataWorker sdw, string message) { try{ Debug.Log("Raw message received: " + message); string MSG = TDESHandler.Decrypt(sym_key, message); Debug.Log("Message received: " + MSG); } catch (Exception e) { Debug.Log(e.ToString()); } }
public void LoginMessageReceived(HS_SocketDataWorker sdw, string message) { try{ string MSG = TDESHandler.Decrypt(sym_key, message); Debug.Log("Message received: " + MSG); ServerResponse response = ServerResponse.Parse(MSG); msg = response.Result; userid = response.Data1; //TODO close the socket //TODO check result with json GameServerLogin(); } catch (Exception e) { Debug.Log(e.ToString()); } }
public static void TDES_UnitTest() { for (int i = 0; i < 1000000; i++) { String key = TDESHandler.GenerateKey(); String data = GenerateRandomString(2048); string cypher = Convert.ToBase64String(TDESHandler.Encrypt(key, data)); string text = TDESHandler.Decrypt(key, cypher); if (data != text) { Console.WriteLine("\n\nFailed!"); Console.WriteLine("Data: " + data); File.WriteAllText("err_dump.txt", data); return; } else { Console.WriteLine(i + " passed! " + data.Substring(0, (data.Length < 10) ? data.Length : 10)); } } Console.WriteLine("Test passed!"); }