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:
@ -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.")
|
||||||
|
@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user