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())); }
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; } }); }
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; } }); }
protected override void DoSetUp() { sender = new Sender(); receiver = new Receiver(); transport = new RijndaelEncryptionTransportDecorator(sender, receiver, KeyBase64); Console.WriteLine(RijndaelHelper.GenerateNewKey()); }
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); }
protected override void DoSetUp() { sender = new Sender(); receiver = new Receiver(); transport = new RijndaelEncryptionTransportDecorator(sender, receiver, InitializationVectorBase64, KeyBase64); }
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); }