Skip to content

Commit

Permalink
Standardize encryption key headers (#379)
Browse files Browse the repository at this point in the history
  • Loading branch information
kbaley authored Mar 8, 2023
1 parent 006a292 commit d866291
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ class RemoveKeyIdentifierHeaderMutator : IMutateIncomingTransportMessages
{
public Task MutateIncoming(MutateIncomingTransportMessageContext context)
{
context.Headers.Remove(EncryptionHeaders.AesKeyIdentifier);
context.Headers.Remove(EncryptionHeaders.EncryptionKeyIdentifier);
return Task.FromResult(0);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class RemoveKeyIdentifierHeaderMutator : IMutateIncomingTransportMessages
{
public Task MutateIncoming(MutateIncomingTransportMessageContext context)
{
context.Headers.Remove(EncryptionHeaders.RijndaelKeyIdentifier);
context.Headers.Remove(EncryptionHeaders.EncryptionKeyIdentifier);
return Task.FromResult(0);
}
}
Expand Down
7 changes: 3 additions & 4 deletions src/MessageProperty/AesEncryptionService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ public string Decrypt(EncryptedValue encryptedValue, IIncomingLogicalMessageCont
{
return DecryptUsingKeyIdentifier(encryptedValue, keyIdentifier);
}
Log.Warn($"Encrypted message has no '{EncryptionHeaders.AesKeyIdentifier}' header. Possibility of data corruption. Upgrade endpoints that send message with encrypted properties.");
Log.Warn($"Encrypted message has no '{EncryptionHeaders.EncryptionKeyIdentifier}' header. Possibility of data corruption. Upgrade endpoints that send message with encrypted properties.");
return DecryptUsingAllKeys(encryptedValue);
}

Expand Down Expand Up @@ -252,16 +252,15 @@ static bool IsValidKey(byte[] key)
/// </summary>
protected internal virtual void AddKeyIdentifierHeader(IOutgoingLogicalMessageContext context)
{
context.Headers[EncryptionHeaders.AesKeyIdentifier] = encryptionKeyIdentifier;
context.Headers[EncryptionHeaders.RijndaelKeyIdentifier] = encryptionKeyIdentifier;
context.Headers[EncryptionHeaders.EncryptionKeyIdentifier] = encryptionKeyIdentifier;
}

/// <summary>
/// Tries to locate an encryption key identifier from an incoming message.
/// </summary>
protected internal virtual bool TryGetKeyIdentifierHeader(out string keyIdentifier, IIncomingLogicalMessageContext context)
{
return context.Headers.TryGetValue(EncryptionHeaders.AesKeyIdentifier, out keyIdentifier);
return context.Headers.TryGetValue(EncryptionHeaders.EncryptionKeyIdentifier, out keyIdentifier);
}

/// <summary>
Expand Down
6 changes: 1 addition & 5 deletions src/MessageProperty/EncryptionHeaders.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@ public static class EncryptionHeaders
/// <summary>
/// The identifier to lookup the key to decrypt the encrypted data.
/// </summary>
public const string RijndaelKeyIdentifier = "NServiceBus.RijndaelKeyIdentifier";
/// <summary>
/// The AES identifier to lookup the key to decrypt the encrypted data.
/// </summary>
public const string AesKeyIdentifier = "NServiceBus.AesKeyIdentifier";
public const string EncryptionKeyIdentifier = "NServiceBus.RijndaelKeyIdentifier";
}
}
7 changes: 3 additions & 4 deletions src/MessageProperty/RijndaelEncryptionService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ public string Decrypt(EncryptedValue encryptedValue, IIncomingLogicalMessageCont
{
return DecryptUsingKeyIdentifier(encryptedValue, keyIdentifier);
}
Log.Warn($"Encrypted message has no '{EncryptionHeaders.RijndaelKeyIdentifier}' header. Possibility of data corruption. Upgrade endpoints that send message with encrypted properties.");
Log.Warn($"Encrypted message has no '{EncryptionHeaders.EncryptionKeyIdentifier}' header. Possibility of data corruption. Upgrade endpoints that send message with encrypted properties.");
return DecryptUsingAllKeys(encryptedValue);
}

Expand Down Expand Up @@ -262,16 +262,15 @@ static bool IsValidKey(byte[] key)
/// </summary>
protected internal virtual void AddKeyIdentifierHeader(IOutgoingLogicalMessageContext context)
{
context.Headers[EncryptionHeaders.RijndaelKeyIdentifier] = encryptionKeyIdentifier;
context.Headers[EncryptionHeaders.AesKeyIdentifier] = encryptionKeyIdentifier;
context.Headers[EncryptionHeaders.EncryptionKeyIdentifier] = encryptionKeyIdentifier;
}

/// <summary>
/// Tries to locate an encryption key identfier from an incoming message.
/// </summary>
protected internal virtual bool TryGetKeyIdentifierHeader(out string keyIdentifier, IIncomingLogicalMessageContext context)
{
return context.Headers.TryGetValue(EncryptionHeaders.RijndaelKeyIdentifier, out keyIdentifier);
return context.Headers.TryGetValue(EncryptionHeaders.EncryptionKeyIdentifier, out keyIdentifier);
}

/// <summary>
Expand Down
3 changes: 1 addition & 2 deletions src/Tests/ApprovalFiles/APIApprovals.Approve.approved.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ namespace NServiceBus.Encryption.MessageProperty
}
public static class EncryptionHeaders
{
public const string AesKeyIdentifier = "NServiceBus.AesKeyIdentifier";
public const string RijndaelKeyIdentifier = "NServiceBus.RijndaelKeyIdentifier";
public const string EncryptionKeyIdentifier = "NServiceBus.RijndaelKeyIdentifier";
}
public interface IEncryptionService
{
Expand Down

0 comments on commit d866291

Please sign in to comment.