public static void SendMessage(string endpoint, object data, AuthClient authClient)
        {
            var serializer = new JavaScriptSerializer {
                MaxJsonLength = int.MaxValue
            };
            var json = serializer.Serialize(new
            {
                endpoint,
                results = data
            });

            try
            {
                if (authClient != null)
                {
                    if (authClient.AesShook)
                    {
                        var keyBytes      = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(authClient.AesKey));
                        var keyIv         = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(authClient.AesIv));
                        var encryptedData = UAes.Encrypt(json, keyBytes, keyIv);
                        json = Convert.ToBase64String(encryptedData);
                        Console.WriteLine("Message Encrypted");
                    }
                }
            }
            catch (Exception)
            {
                //TODO Handle
            }
            Push(authClient.Client, json);
        }
        public static byte[] DecryptFrame(byte[] data, AuthClient client)
        {
            if (client == null)
            {
                return(null);
            }
            var keyBytes = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(client.AesKey));
            var keyIv    = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(client.AesIv));

            return(UAes.DecryptFile(data, keyBytes, keyIv));
        }
        public static string DecryptMessage(byte[] message, AuthClient client)
        {
            if (client != null)
            {
                var keybytes = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(client.AesKey));
                var iv       = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(client.AesIv));

                return(UAes.Decrypt(message, keybytes, iv));
            }
            return(null);
        }
 public static string DecryptMessage(string message, AuthClient client)
 {
     if (!message.IsBase64String())
     {
         throw new InvalidOperationException("Packet must be base64 encoded if encrypted.");
     }
     if (client != null)
     {
         var keybytes = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(client.AesKey));
         var iv       = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(client.AesIv));
         var packet   = Convert.FromBase64String(message);
         return(UAes.Decrypt(packet, keybytes, iv));
     }
     return(null);
 }
 public static byte[] EncryptBuffer(byte[] data, WebSocket client)
 {
     try
     {
         AuthClient authClient;
         if (ConnectionHandler.Clients.TryGetValue(client.GetHashCode().ToString(), out authClient))
         {
             var keybytes = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(authClient.AesKey));
             var iv       = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(authClient.AesIv));
             return(UAes.EncryptB(data, keybytes, iv));
         }
         return(null);
     }
     catch (Exception e)
     {
         Console.WriteLine("Could not encrypt buffer: " + e.Message);
         return(null);
     }
 }
        public static void SendMessage(string endpoint, object data, AuthClient authClient)
        {
            var serializer = new JavaScriptSerializer {
                MaxJsonLength = int.MaxValue
            };
            var json = serializer.Serialize(new
            {
                endpoint,
                results = data
            });

            try
            {
                if (authClient != null)
                {
                    if (authClient.AesShook)
                    {
                        var keyBytes      = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(authClient.AesKey));
                        var keyIv         = Encoding.UTF8.GetBytes(Rsa.SecureStringToString(authClient.AesIv));
                        var encryptedData = UAes.Encrypt(json, keyBytes, keyIv);
                        var packet        = new Packet(authClient, encryptedData, Packet.MessageType.Binary);
                        MessageQueueManager.SendQueue.Add(packet);
                        // PushBinary(authClient.Client, encryptedData);
                        return;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
            }
            if (authClient != null)
            {
                var packet = new Packet(authClient, json, Packet.MessageType.Text);
                MessageQueueManager.SendQueue.Add(packet);
            }
        }