Message encryption leverages the pipeline to encrypt the entire serialized message body.
Data in the message headers is not encrypted.
One way of achieving this is by using a transport message mutator.
public class MessageEncryptor :
IMutateIncomingTransportMessages,
IMutateOutgoingTransportMessages
{
public Task MutateIncoming(MutateIncomingTransportMessageContext context)
{
context.Body = context.Body.Reverse().ToArray();
return Task.CompletedTask;
}
public Task MutateOutgoing(MutateOutgoingTransportMessageContext context)
{
context.OutgoingBody = context.OutgoingBody.Reverse().ToArray();
return Task.CompletedTask;
}
}
The encrypting mutator must be injected via dependency injection:
endpointConfiguration.RegisterMessageMutator(new MessageEncryptor());