/// <summary>
        /// Configures that message bodies should be encrypted/decrypted with the specified base 64-encoded key
        /// </summary>
        public static void EncryptMessageBodies(this DecoratorsConfigurer configurer, string keyBase64)
        {
            configurer.AddDecoration(b =>
            {
                var decorator = configurer
                                .Backbone
                                .LoadFromRegistry(() =>
                {
                    var instance      = new EncryptionAndCompressionTransportDecorator(b.SendMessages, b.ReceiveMessages);
                    b.SendMessages    = instance;
                    b.ReceiveMessages = instance;
                    return(instance);
                });

                decorator.EnableEncryption(keyBase64);
            });
        }
        public static void EncryptMessageBodies(this DecoratorsConfigurer configurer, string keyBase64)
        {
            configurer.AddDecoration(b =>
            {
                var sendMessages    = b.SendMessages;
                var receiveMessages = b.ReceiveMessages;

                var decorator = new RijndaelEncryptionTransportDecorator(sendMessages, receiveMessages, keyBase64);

                b.SendMessages = decorator;

                // if we're in one-way client mode, we skip the decorator - otherwise RebusBus would not
                // be able to detect one-way client mode - we should definitely make this more explicit
                // somehow
                if (!(b.ReceiveMessages is OneWayClientGag))
                {
                    b.ReceiveMessages = decorator;
                }
            });
        }