Skip to content

Commit ed7eb48

Browse files
committed
feat: Add CryptoArrayPool
1 parent a4c6277 commit ed7eb48

File tree

19 files changed

+19
-28
lines changed

19 files changed

+19
-28
lines changed

src/CryptoBase/CryptoArrayPool.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
namespace CryptoBase;
2+
3+
public sealed class CryptoArrayPool<T>(int length) : IDisposable where T : struct
4+
{
5+
public readonly T[] Array = ArrayPool<T>.Shared.Rent(length);
6+
7+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
8+
public Span<T> GetSpan()
9+
{
10+
return Array.AsSpan(0, length);
11+
}
12+
13+
public void Dispose()
14+
{
15+
CryptographicOperations.ZeroMemory(MemoryMarshal.AsBytes(GetSpan()));
16+
ArrayPool<T>.Shared.Return(Array);
17+
}
18+
}

src/CryptoBase/CryptoBuffer.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Security.Cryptography;
2-
31
namespace CryptoBase;
42

53
public readonly ref struct CryptoBuffer : IDisposable

src/CryptoBase/Digests/DefaultDigest.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Security.Cryptography;
2-
31
namespace CryptoBase.Digests;
42

53
public abstract class DefaultDigest : IHash

src/CryptoBase/Digests/MD5/DefaultMD5Digest.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Security.Cryptography;
2-
31
namespace CryptoBase.Digests.MD5;
42

53
public class DefaultMD5Digest : DefaultDigest

src/CryptoBase/Digests/SHA1/DefaultSHA1Digest.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Security.Cryptography;
2-
31
namespace CryptoBase.Digests.SHA1;
42

53
public class DefaultSHA1Digest : DefaultDigest

src/CryptoBase/Digests/SHA256/DefaultSHA256Digest.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Security.Cryptography;
2-
31
namespace CryptoBase.Digests.SHA256;
42

53
public class DefaultSHA256Digest : DefaultDigest

src/CryptoBase/Digests/SHA384/DefaultSHA384Digest.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Security.Cryptography;
2-
31
namespace CryptoBase.Digests.SHA384;
42

53
public class DefaultSHA384Digest : DefaultDigest

src/CryptoBase/Digests/SHA512/DefaultSHA512Digest.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Security.Cryptography;
2-
31
namespace CryptoBase.Digests.SHA512;
42

53
public class DefaultSHA512Digest : DefaultDigest

src/CryptoBase/KDF/Hkdf.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using CryptoBase.Abstractions;
22
using CryptoBase.Digests;
33
using CryptoBase.Macs.Hmac;
4-
using System.Security.Cryptography;
54

65
namespace CryptoBase.KDF;
76

src/CryptoBase/Macs/Hmac/DefaultHmac.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using CryptoBase.Abstractions;
2-
using System.Security.Cryptography;
32

43
namespace CryptoBase.Macs.Hmac;
54

0 commit comments

Comments
 (0)