private string Decrypt(string input)
        {
            OnBeforeMoonbyteCommandsEventArgs OnBeforeRequest = new OnBeforeMoonbyteCommandsEventArgs()
            {
                SettingDirectory = this.SettingsDirectory
            };

            OnBeforeDecryptMessage?.Invoke(this, OnBeforeRequest);

            if (OnBeforeRequest.CancelRequest == BaseCommands.MoonbyteCancelRequest.Continue)
            {
                input = input.Replace(" ", "+");
                byte[] cipherBytes = Convert.FromBase64String(input);
                using (Aes encryptor = Aes.Create())
                {
                    Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(encryptionKey.GetEncryptionKey(), new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });

                    encryptor.Key = pdb.GetBytes(32);
                    encryptor.IV  = pdb.GetBytes(16);

                    using (MemoryStream ms = new MemoryStream())
                    {
                        using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
                        { cs.Write(cipherBytes, 0, cipherBytes.Length); cs.Close(); }

                        input = Encoding.Unicode.GetString(ms.ToArray());
                    }
                }
            }

            OnAfterDecryptMessage?.Invoke(this, new EventArgs());
            return(input);
        }
Exemplo n.º 2
0
        public void Execute(OnAfterDecryptMessage pipelineEvent)
        {
            if (!_log.IsTraceEnabled)
            {
                return;
            }

            var transportMessage = pipelineEvent.Pipeline.State.GetTransportMessage();

            if (!transportMessage.EncryptionEnabled())
            {
                return;
            }

            _log.Trace(string.Format(LoggingResources.DecryptedMessage, transportMessage.MessageType,
                                     transportMessage.MessageId, transportMessage.CompressionAlgorithm));
        }