コード例 #1
0
        static string GenerateRijndaelHelp()
        {
            return
                (string.Format(
                     @"To help you get started, here's a valid rijndael element, including a fresh and newly generated
key - and yes, I promise that it has been generated just this moment :) you can try running your app
again if you don't believe me.

    <rijndael key=""{0}""/>

The key has been generated with the biggest valid size, so it should be pretty secure.
",
                     RijndaelEncryptionTransportDecorator.GenerateKeyBase64()));
        }
コード例 #2
0
        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 MsmqConfigurationExtension.OneWayClientGag))
                    {
                        b.ReceiveMessages = decorator;
                    }
                });
        }
コード例 #3
0
        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;
                }
            });
        }
コード例 #4
0
        protected override void DoSetUp()
        {
            sender = new Sender();
            receiver = new Receiver();
            transport = new RijndaelEncryptionTransportDecorator(sender, receiver, KeyBase64);

            Console.WriteLine(RijndaelHelper.GenerateNewKey());
        }
コード例 #5
0
        public void CanGenerateValidKey()
        {
            var key = RijndaelEncryptionTransportDecorator.GenerateKeyBase64();

            var localInstance = new RijndaelEncryptionTransportDecorator(sender, receiver, key);

            var toSend = new TransportMessageToSend
            {
                Label = Guid.NewGuid().ToString(),
                Headers = new Dictionary<string, object>
                                               {
                                                   {Guid.NewGuid().ToString(), Guid.NewGuid().ToString()}
                                               },
                Body = Guid.NewGuid().ToByteArray(),
            };

            localInstance.Send("test", toSend, new NoTransaction());

            var sentMessage = sender.SentMessage;
            var receivedTransportMessage = new ReceivedTransportMessage
            {
                Id = Guid.NewGuid().ToString(),
                Label = sentMessage.Label,
                Headers = sentMessage.Headers,
                Body = sentMessage.Body
            };

            receiver.SetUpReceive(receivedTransportMessage);

            var receivedMessage = localInstance.ReceiveMessage(new NoTransaction());

            receivedMessage.Label.ShouldBe(toSend.Label);
            var expectedHeaders = toSend.Headers.Clone();
            receivedMessage.Headers.ShouldBe(expectedHeaders);
            receivedMessage.Body.ShouldBe(toSend.Body);
        }
コード例 #6
0
 protected override void DoSetUp()
 {
     sender = new Sender();
     receiver = new Receiver();
     transport = new RijndaelEncryptionTransportDecorator(sender, receiver, InitializationVectorBase64, KeyBase64);
 }
コード例 #7
0
        static void DoItEncrypted(TransportConfigurer configurer, string inputQueueName, string iv, string key, string errorQueueName)
        {
            if (string.IsNullOrEmpty(inputQueueName))
            {
                throw new ConfigurationErrorsException("You need to specify an input queue.");
            }

            var msmqMessageQueue = new MsmqMessageQueue(inputQueueName, errorQueueName);
            var encryptionFilter = new RijndaelEncryptionTransportDecorator(msmqMessageQueue, msmqMessageQueue, iv, key);

            configurer.UseSender(encryptionFilter);
            configurer.UseReceiver(encryptionFilter);
        }