From ce3cac9fa294c5672a2a2a2919ec4cd9dd891a4a Mon Sep 17 00:00:00 2001 From: Alexandru Macocian Date: Thu, 15 Jul 2021 16:32:40 +0300 Subject: [PATCH] Extend CryptoRngProvider api --- .../CryptoRngProviderTests.cs | 16 ++++++++++++++++ .../Rng/CryptoRngProvider.cs | 12 ++++++++++++ .../Rng/ICryptoRngProvider.cs | 2 ++ .../SystemExtensions.NetStandard.Security.csproj | 2 +- 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/SystemExtensions.NetStandard.Security.Tests/CryptoRngProviderTests.cs b/SystemExtensions.NetStandard.Security.Tests/CryptoRngProviderTests.cs index 5bba5c0..da2a390 100644 --- a/SystemExtensions.NetStandard.Security.Tests/CryptoRngProviderTests.cs +++ b/SystemExtensions.NetStandard.Security.Tests/CryptoRngProviderTests.cs @@ -35,5 +35,21 @@ namespace SystemExtensions.NetStandard.Security.Tests bytes.All(b => b != 0).Should().BeTrue(); } + + [TestMethod] + public void GetBytes_ShouldReturnBytes() + { + var bytes = this.cryptoRngProvider.GetBytes(10); + + bytes.Length.Should().Be(10); + } + + [TestMethod] + public void GetNonZeroBytes_ShouldReturnBytes() + { + var bytes = this.cryptoRngProvider.GetNonZeroBytes(10); + + bytes.Length.Should().Be(10); + } } } \ No newline at end of file diff --git a/SystemExtensions.NetStandard.Security/Rng/CryptoRngProvider.cs b/SystemExtensions.NetStandard.Security/Rng/CryptoRngProvider.cs index 452befa..f219161 100644 --- a/SystemExtensions.NetStandard.Security/Rng/CryptoRngProvider.cs +++ b/SystemExtensions.NetStandard.Security/Rng/CryptoRngProvider.cs @@ -25,6 +25,18 @@ namespace System.Rng { this.rngProvider.GetNonZeroBytes(data); } + public byte[] GetBytes(int byteCount) + { + var bytes = new byte[byteCount]; + this.GetBytes(bytes); + return bytes; + } + public byte[] GetNonZeroBytes(int byteCount) + { + var bytes = new byte[byteCount]; + this.GetNonZeroBytes(bytes); + return bytes; + } private void Dispose(bool disposing) { diff --git a/SystemExtensions.NetStandard.Security/Rng/ICryptoRngProvider.cs b/SystemExtensions.NetStandard.Security/Rng/ICryptoRngProvider.cs index 8eae503..094dcad 100644 --- a/SystemExtensions.NetStandard.Security/Rng/ICryptoRngProvider.cs +++ b/SystemExtensions.NetStandard.Security/Rng/ICryptoRngProvider.cs @@ -3,6 +3,8 @@ public interface ICryptoRngProvider { public void GetBytes(byte[] data); + public byte[] GetBytes(int byteCount); public void GetNonZeroBytes(byte[] data); + public byte[] GetNonZeroBytes(int byteCount); } } diff --git a/SystemExtensions.NetStandard.Security/SystemExtensions.NetStandard.Security.csproj b/SystemExtensions.NetStandard.Security/SystemExtensions.NetStandard.Security.csproj index bc0819e..0a9f3b3 100644 --- a/SystemExtensions.NetStandard.Security/SystemExtensions.NetStandard.Security.csproj +++ b/SystemExtensions.NetStandard.Security/SystemExtensions.NetStandard.Security.csproj @@ -7,7 +7,7 @@ LICENSE true System - 1.1.0 + 1.1.1 Alexandru Macocian https://github.com/AlexMacocian/SystemExtensions