1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-01 16:12:49 -05:00

Move Debug assertion to just be a test

This commit is contained in:
Justin Baur
2022-09-09 15:36:54 -04:00
parent ee76a08fa3
commit 23e50ccc09
2 changed files with 25 additions and 22 deletions

View File

@ -1,6 +1,5 @@
using System.Buffers; using System.Buffers;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Diagnostics;
using Bit.Core.Enums; using Bit.Core.Enums;
#nullable enable #nullable enable
@ -12,27 +11,16 @@ namespace Bit.Core.Utilities;
/// </summary> /// </summary>
public class EncryptedStringAttribute : ValidationAttribute public class EncryptedStringAttribute : ValidationAttribute
{ {
private static readonly Dictionary<EncryptionType, int> _encryptionTypeMap; internal static readonly Dictionary<EncryptionType, int> _encryptionTypeMap = new()
static EncryptedStringAttribute()
{ {
_encryptionTypeMap = new() [EncryptionType.AesCbc256_B64] = 2, // iv|ct
{ [EncryptionType.AesCbc128_HmacSha256_B64] = 3, // iv|ct|mac
[EncryptionType.AesCbc256_B64] = 2, // iv|ct [EncryptionType.AesCbc256_HmacSha256_B64] = 3, // iv|ct|mac
[EncryptionType.AesCbc128_HmacSha256_B64] = 3, // iv|ct|mac [EncryptionType.Rsa2048_OaepSha256_B64] = 1, // rsaCt
[EncryptionType.AesCbc256_HmacSha256_B64] = 3, // iv|ct|mac [EncryptionType.Rsa2048_OaepSha1_B64] = 1, // rsaCt
[EncryptionType.Rsa2048_OaepSha256_B64] = 1, // rsaCt [EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64] = 2, // rsaCt|mac
[EncryptionType.Rsa2048_OaepSha1_B64] = 1, // rsaCt [EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64] = 2, // rsaCt|mac
[EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64] = 2, // rsaCt|mac };
[EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64] = 2, // rsaCt|mac
};
#if DEBUG
var enumValues = Enum.GetValues<EncryptionType>();
Debug.Assert(enumValues.Length == _encryptionTypeMap.Count,
$"New {nameof(EncryptionType)} enums should be added to the {nameof(_encryptionTypeMap)}");
#endif
}
public EncryptedStringAttribute() public EncryptedStringAttribute()
: base("{0} is not a valid encrypted string.") : base("{0} is not a valid encrypted string.")

View File

@ -1,4 +1,5 @@
using Bit.Core.Utilities; using Bit.Core.Enums;
using Bit.Core.Utilities;
using Xunit; using Xunit;
namespace Bit.Core.Test.Utilities; namespace Bit.Core.Test.Utilities;
@ -69,4 +70,18 @@ public class EncryptedStringAttributeTests
Assert.False(actual); Assert.False(actual);
} }
[Fact]
public void EncryptionTypeMap_HasEntry_ForEachEnumValue()
{
var enumValues = Enum.GetValues<EncryptionType>();
Assert.Equal(enumValues.Length, EncryptedStringAttribute._encryptionTypeMap.Count);
foreach (var enumValue in enumValues)
{
// Go a step further and ensure that the map contains a value for each value instead of just casting
// a random number for one of the keys.
Assert.True(EncryptedStringAttribute._encryptionTypeMap.ContainsKey(enumValue));
}
}
} }