diff options
author | vnugent <public@vaughnnugent.com> | 2024-07-28 19:15:04 -0400 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2024-07-28 19:15:04 -0400 |
commit | 7be5d6648e633ba46a270ca5784de6f4a5a4e0a9 (patch) | |
tree | a6b53de82f12e6778ede2b3974073a6c3b51aace /lib/Hashing.Portable/src | |
parent | 1b590c2517fef110564943ed8a10edd11fa758b0 (diff) |
Squashed commit of the following:
commit a4dacd2909426bf628c1eee1253cc5c8a01e2691
Author: vnugent <public@vaughnnugent.com>
Date: Sat Jul 27 22:41:04 2024 -0400
package updates
commit f836e09981866f5c9f2ae46990d11b186a7d12bb
Author: vnugent <public@vaughnnugent.com>
Date: Wed Jul 24 19:15:54 2024 -0400
chore: Remove argon2 docs & optional tcp resuse
commit b9b892ab2143b0ab92e4dcf0a8b043c5c6c17271
Author: vnugent <public@vaughnnugent.com>
Date: Sun Jul 21 20:57:01 2024 -0400
fix spelling Enqueue and deprecate mispelled version
commit 21ffa816f18be4b765ad740ed5d93346ec3b1fda
Author: vnugent <public@vaughnnugent.com>
Date: Sat Jul 20 19:44:31 2024 -0400
static arugment list parsing functions
commit 85cd6793818a3edd0a963bb4829a960ee6b0e022
Author: vnugent <public@vaughnnugent.com>
Date: Mon Jul 15 18:58:06 2024 -0400
chore: Just some minor checks and adjustments
commit abfb5761ee381b7e1e5342a5525ceca8c8fd81dd
Author: vnugent <public@vaughnnugent.com>
Date: Thu Jul 4 23:57:37 2024 -0400
analyzer pass
commit 4a96dbb924f2b5bf80293e4054f221efe67151dd
Author: vnugent <public@vaughnnugent.com>
Date: Thu Jul 4 22:45:28 2024 -0400
package updates
commit 38ad7d923fa8d9e463d4aaa8e35f021086a03f2d
Author: vnugent <public@vaughnnugent.com>
Date: Thu Jul 4 16:20:48 2024 -0400
mimalloc merge upstream upgrades
commit 981ba286e4793de95bf65e6588313411344c4d53
Author: vnugent <public@vaughnnugent.com>
Date: Thu Jul 4 16:04:03 2024 -0400
refactor: Refactor extensions with perf updates
commit 6b8c67888731f7dd210acdb2b1160cdbdbe30d47
Author: vnugent <public@vaughnnugent.com>
Date: Fri Jun 28 15:48:22 2024 -0400
refactor: Update service stack to reflect new loading patterns
commit 12391e9a207b60b41a074600fc2373ad3eb1c3ab
Author: vnugent <public@vaughnnugent.com>
Date: Wed Jun 26 21:01:15 2024 -0400
feat(server): Server arch update, Memory struct access
commit 92e182ceaf843f8d859d38faa8b2c0ff53207ff6
Author: vnugent <public@vaughnnugent.com>
Date: Fri Jun 21 16:02:34 2024 -0400
feat: Multi transport listeners
commit ee3620b8168a42c8e571e853c751ad5999a9b907
Author: vnugent <public@vaughnnugent.com>
Date: Tue Jun 18 21:17:28 2024 -0400
feat: Add file path caching support
commit ff0926be56fc6eafdce36411847d73bf4ce9f183
Author: vnugent <public@vaughnnugent.com>
Date: Sun Jun 16 13:08:31 2024 -0400
feat: Allow multiple plugin loading directories
commit 07ddf6738d32127926d07b1366e56d2a2308b53b
Author: vnugent <public@vaughnnugent.com>
Date: Sun Jun 16 01:12:07 2024 -0400
perf: Absolutely yuge perf boosts
commit ff15c05a9c3e632c39f3889820fb7d889342b452
Author: vnugent <public@vaughnnugent.com>
Date: Fri Jun 14 14:16:24 2024 -0400
fix: Improper request buffer property assignment
commit 7d2987f1d4048c30808a85798e32c99747f6cfe3
Author: vnugent <public@vaughnnugent.com>
Date: Thu Jun 13 21:57:34 2024 -0400
perf: Async pre-buffer to avoid sync buffer
commit 75c1d0cbf9a5a7856c544671a45f1b4312ffe7ce
Author: vnugent <public@vaughnnugent.com>
Date: Tue Jun 11 22:11:45 2024 -0400
feat: Add a default site adapater and interceptors
commit a7c739b7db9a17622cee751fe0e8a10e4b84b48b
Author: vnugent <public@vaughnnugent.com>
Date: Sun Jun 9 13:05:12 2024 -0400
chore: Package updated
commit b4b506a4b6c7c1e90b5b0980e4cfe0460e7546a2
Author: vnugent <public@vaughnnugent.com>
Date: Sat Jun 8 21:54:52 2024 -0400
some minor touchups
commit 2160510fcc22a8574b0090fd91ca29072f45ab59
Author: vnugent <public@vaughnnugent.com>
Date: Fri May 31 15:12:20 2024 -0400
refactor: Immutable tcp listeners
commit 51cb4eb93e4f1b4c47d35b105e72af1fe771abcc
Author: vnugent <public@vaughnnugent.com>
Date: Thu May 30 17:31:16 2024 -0400
refactor: minor non-breaking changes to VNEncoding
commit 768ddc1eb949266d693f96c67d734e881bd59374
Merge: 9a835fe 1b590c2
Author: vnugent <public@vaughnnugent.com>
Date: Wed May 22 17:50:57 2024 -0400
Merge branch 'main' into develop
commit 9a835fe12c9586ab8dd44d7c96fef4a2d6017e4b
Author: vnugent <public@vaughnnugent.com>
Date: Fri May 17 18:27:03 2024 -0400
chore: Update mimmaloc v2.1.6, update fPIC & cleanup
commit 3b7004b88acfc7f7baa3a8857a5a2f7cf3dd560e
Author: vnugent <public@vaughnnugent.com>
Date: Fri May 17 16:03:28 2024 -0400
feat: Added ReadFileDataAsync function
commit 9a964795757bf0da4dd7fcab15ad304f4ea3fdf1
Author: vnugent <public@vaughnnugent.com>
Date: Wed May 15 21:57:39 2024 -0400
refactor: Harden some argon2 password hashing
commit 4035c838c1508af0aa7e767a97431a692958ce1c
Author: vnugent <public@vaughnnugent.com>
Date: Sun May 12 16:55:32 2024 -0400
perf: Utils + http perf mods
commit f4f0d4f74250257991c57bfae74c4852c7e1ae46
Author: vnugent <public@vaughnnugent.com>
Date: Thu May 2 15:22:53 2024 -0400
feat: Buff middleware handlers
|
| Added implicit support for middleware post processing of files before the filehandler closes the connection. Also cleaned up some project file stuff
commit f0b7dca107659df1d7d4631fdbd2aae9d716d053
Merge: 8c4a45e 107b058
Author: vnugent <public@vaughnnugent.com>
Date: Sat Apr 20 12:24:05 2024 -0400
Merge branch 'main' into develop
commit 8c4a45e384accf92b1b6d748530e8d46f7de40d6
Author: vnugent <public@vaughnnugent.com>
Date: Sat Apr 20 11:10:30 2024 -0400
refactor: Overhaul C libraries and fix builds
commit 42ff77080d10b0fc9fecbbc46141e8e23a1d066a
Author: vnugent <public@vaughnnugent.com>
Date: Sat Apr 20 00:45:57 2024 -0400
fix!: Middlware array, multiple cookie set, and cookie check
commit 97e82b9d66f387f9e6d21d88ddc7a8ab8693149c
Merge: 4ca5791 e07537a
Author: vnugent <public@vaughnnugent.com>
Date: Tue Apr 2 13:34:22 2024 -0400
Merge branch 'main' into develop
commit 4ca5791ed67b9834bdbd010206b30373e4705e9b
Author: vnugent <public@vaughnnugent.com>
Date: Tue Apr 2 13:32:12 2024 -0400
fix: Missed ! on null pointer check
commit 9b4036377c52200c6488c98180d69a0e63321f97
Author: vnugent <public@vaughnnugent.com>
Date: Tue Apr 2 13:22:29 2024 -0400
fix: Fix _In_ macro for compression public api
commit 53a7b4b5c5b67b4a4e06e1d9098cac4bcd6afd7c
Merge: 448a93b 21130c8
Author: vnugent <public@vaughnnugent.com>
Date: Sun Mar 31 17:01:15 2024 -0400
Merge branch 'main' into develop
commit 448a93bb1d18d032087afe2476ffccb98634a54c
Author: vnugent <public@vaughnnugent.com>
Date: Sun Mar 31 16:56:51 2024 -0400
ci: fix third-party dir cleanup
commit 9afed1427472da1ea13079f98dbe27339e55ee7d
Author: vnugent <public@vaughnnugent.com>
Date: Sun Mar 31 16:43:15 2024 -0400
perf: Deprecate unsafememoryhandle span extensions
commit 3ff90da4f02af47ea6d233fdd4445337ebe36452
Author: vnugent <public@vaughnnugent.com>
Date: Sat Mar 30 21:36:18 2024 -0400
refactor: Updates, advanced tracing, http optimizations
commit 8d6b79b5ae309b36f265ba81529bcef8bfcd7414
Merge: 6c1667b 5585915
Author: vnugent <public@vaughnnugent.com>
Date: Sun Mar 24 21:01:31 2024 -0400
Merge branch 'main' into develop
commit 6c1667be23597513537f8190e2f55d65eb9b7c7a
Author: vnugent <public@vaughnnugent.com>
Date: Fri Mar 22 12:01:53 2024 -0400
refactor: Overhauled native library loading and lazy init
commit ebf688f2f974295beabf7b5def7e6f6f150551d0
Author: vnugent <public@vaughnnugent.com>
Date: Wed Mar 20 22:16:17 2024 -0400
refactor: Update compression header files and macros + Ci build
commit 9c7b564911080ccd5cbbb9851a0757b05e1e9047
Author: vnugent <public@vaughnnugent.com>
Date: Tue Mar 19 21:54:49 2024 -0400
refactor: JWK overhaul & add length getter to FileUpload
commit 6d8c3444e09561e5957491b3cc1ae858e0abdd14
Author: vnugent <public@vaughnnugent.com>
Date: Mon Mar 18 16:13:20 2024 -0400
feat: Add FNV1a software checksum and basic correction tests
commit 00d182088cecefc08ca80b1faee9bed3f215f40b
Author: vnugent <public@vaughnnugent.com>
Date: Fri Mar 15 01:05:27 2024 -0400
chore: #6 Use utils filewatcher instead of built-in
commit d513c10d9895c6693519ef1d459c6a5a76929436
Author: vnugent <public@vaughnnugent.com>
Date: Sun Mar 10 21:58:14 2024 -0400
source tree project location updated
Diffstat (limited to 'lib/Hashing.Portable/src')
-rw-r--r-- | lib/Hashing.Portable/src/Argon2/SafeArgon2Library.cs | 4 | ||||
-rw-r--r-- | lib/Hashing.Portable/src/IdentityUtility/JwtPayload.cs | 21 | ||||
-rw-r--r-- | lib/Hashing.Portable/src/ManagedHash.cs | 22 | ||||
-rw-r--r-- | lib/Hashing.Portable/src/ManagedHashAlgImpl.cs | 48 |
4 files changed, 61 insertions, 34 deletions
diff --git a/lib/Hashing.Portable/src/Argon2/SafeArgon2Library.cs b/lib/Hashing.Portable/src/Argon2/SafeArgon2Library.cs index 0ce2fa7..779d627 100644 --- a/lib/Hashing.Portable/src/Argon2/SafeArgon2Library.cs +++ b/lib/Hashing.Portable/src/Argon2/SafeArgon2Library.cs @@ -1,5 +1,5 @@ /* -* Copyright (c) 2023 Vaughn Nugent +* Copyright (c) 2024 Vaughn Nugent * * Library: VNLib * Package: VNLib.Hashing.Portable @@ -52,7 +52,7 @@ namespace VNLib.Hashing { LibHandle = lib; //Get the native method - methodHandle = lib.GetMethod<Argon2InvokeHash>(); + methodHandle = lib.GetFunction<Argon2InvokeHash>(); } ///<inheritdoc/> diff --git a/lib/Hashing.Portable/src/IdentityUtility/JwtPayload.cs b/lib/Hashing.Portable/src/IdentityUtility/JwtPayload.cs index eb33e00..1fc5f61 100644 --- a/lib/Hashing.Portable/src/IdentityUtility/JwtPayload.cs +++ b/lib/Hashing.Portable/src/IdentityUtility/JwtPayload.cs @@ -1,5 +1,5 @@ /* -* Copyright (c) 2023 Vaughn Nugent +* Copyright (c) 2024 Vaughn Nugent * * Library: VNLib * Package: VNLib.Hashing.Portable @@ -22,6 +22,7 @@ * along with VNLib.Hashing.Portable. If not, see http://www.gnu.org/licenses/. */ +using System.Text.Json; using System.Collections.Generic; using VNLib.Utils; @@ -31,9 +32,9 @@ namespace VNLib.Hashing.IdentityUtility /// <summary> /// A fluent api structure for adding and committing claims to a <see cref="JsonWebToken"/> /// </summary> - public readonly record struct JwtPayload : IIndexable<string, object> + public readonly record struct JwtPayload : IIndexable<string, object?> { - private readonly Dictionary<string, object> Claims; + private readonly Dictionary<string, object?> Claims; private readonly JsonWebToken Jwt; internal JwtPayload(JsonWebToken jwt, int initialCapacity) @@ -43,7 +44,7 @@ namespace VNLib.Hashing.IdentityUtility } ///<inheritdoc/> - public readonly object this[string key] + public readonly object? this[string key] { get => Claims[key]; set => Claims[key] = value; @@ -55,7 +56,7 @@ namespace VNLib.Hashing.IdentityUtility /// <param name="claim">The clame name</param> /// <param name="value">The value of the claim</param> /// <returns>The chained response object</returns> - public readonly JwtPayload AddClaim(string claim, object value) + public readonly JwtPayload AddClaim(string claim, object? value) { Claims.Add(claim, value); return this; @@ -69,5 +70,15 @@ namespace VNLib.Hashing.IdentityUtility Jwt.WritePayload(Claims); Claims.Clear(); } + + /// <summary> + /// Writes all claims to the <see cref="JsonWebToken"/> payload segment + /// </summary> + /// <param name="options">Json serializer options to pass to the serializer</param> + public readonly void CommitClaims(JsonSerializerOptions? options) + { + Jwt.WritePayload(Claims, options); + Claims.Clear(); + } } } diff --git a/lib/Hashing.Portable/src/ManagedHash.cs b/lib/Hashing.Portable/src/ManagedHash.cs index 429660f..ae3b35b 100644 --- a/lib/Hashing.Portable/src/ManagedHash.cs +++ b/lib/Hashing.Portable/src/ManagedHash.cs @@ -321,7 +321,7 @@ namespace VNLib.Hashing HashEncodingMode.Hexadecimal => Convert.ToHexString(hashBuffer), HashEncodingMode.Base64 => Convert.ToBase64String(hashBuffer), HashEncodingMode.Base32 => VnEncoding.ToBase32String(hashBuffer), - HashEncodingMode.Base64Url => VnEncoding.ToBase64UrlSafeString(hashBuffer, true), + HashEncodingMode.Base64Url => VnEncoding.Base64UrlEncode(hashBuffer, true), _ => throw new ArgumentException("Encoding mode is not supported"), }; } @@ -343,7 +343,7 @@ namespace VNLib.Hashing HashEncodingMode.Hexadecimal => Convert.ToHexString(hashBuffer), HashEncodingMode.Base64 => Convert.ToBase64String(hashBuffer), HashEncodingMode.Base32 => VnEncoding.ToBase32String(hashBuffer), - HashEncodingMode.Base64Url => VnEncoding.ToBase64UrlSafeString(hashBuffer, true), + HashEncodingMode.Base64Url => VnEncoding.Base64UrlEncode(hashBuffer, true), _ => throw new ArgumentException("Encoding mode is not supported"), }; } @@ -366,15 +366,15 @@ namespace VNLib.Hashing { return alg switch { - HashAlg.SHA3_512 => computeHashInternal(in _3_sha512, data, buffer, key), - HashAlg.SHA3_384 => computeHashInternal(in _3_sha384, data, buffer, key), - HashAlg.SHA3_256 => computeHashInternal(in _3_sha256, data, buffer, key), - HashAlg.BlAKE2B => computeHashInternal(in _blake2bAlg, data, buffer, key), - HashAlg.SHA512 => computeHashInternal(in _sha512Alg, data, buffer, key), - HashAlg.SHA384 => computeHashInternal(in _sha384Alg, data, buffer, key), - HashAlg.SHA256 => computeHashInternal(in _sha256Alg, data, buffer, key), - HashAlg.SHA1 => computeHashInternal(in _sha1Alg, data, buffer, key), - HashAlg.MD5 => computeHashInternal(in _md5Alg, data, buffer, key), + HashAlg.SHA3_512 => computeHashInternal(in _3_sha512, data, buffer, key), + HashAlg.SHA3_384 => computeHashInternal(in _3_sha384, data, buffer, key), + HashAlg.SHA3_256 => computeHashInternal(in _3_sha256, data, buffer, key), + HashAlg.BlAKE2B => computeHashInternal(in _blake2bAlg, data, buffer, key), + HashAlg.SHA512 => computeHashInternal(in _sha512Alg, data, buffer, key), + HashAlg.SHA384 => computeHashInternal(in _sha384Alg, data, buffer, key), + HashAlg.SHA256 => computeHashInternal(in _sha256Alg, data, buffer, key), + HashAlg.SHA1 => computeHashInternal(in _sha1Alg, data, buffer, key), + HashAlg.MD5 => computeHashInternal(in _md5Alg, data, buffer, key), _ => throw new ArgumentException("Invalid hash algorithm", nameof(alg)) }; diff --git a/lib/Hashing.Portable/src/ManagedHashAlgImpl.cs b/lib/Hashing.Portable/src/ManagedHashAlgImpl.cs index eae8903..be4062e 100644 --- a/lib/Hashing.Portable/src/ManagedHashAlgImpl.cs +++ b/lib/Hashing.Portable/src/ManagedHashAlgImpl.cs @@ -47,10 +47,12 @@ namespace VNLib.Hashing public readonly int HashSize => (int)HashAlg.SHA1; ///<inheritdoc/> - public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) => SHA1.TryHashData(data, output, out count); + public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) + => SHA1.TryHashData(data, output, out count); ///<inheritdoc/> - public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) => HMACSHA1.TryHashData(key, data, output, out count); + public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) + => HMACSHA1.TryHashData(key, data, output, out count); } private readonly struct Sha256 : IHashAlgorithm @@ -59,10 +61,12 @@ namespace VNLib.Hashing public readonly int HashSize => (int)HashAlg.SHA256; ///<inheritdoc/> - public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) => SHA256.TryHashData(data, output, out count); + public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) + => SHA256.TryHashData(data, output, out count); ///<inheritdoc/> - public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) => HMACSHA256.TryHashData(key, data, output, out count); + public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) + => HMACSHA256.TryHashData(key, data, output, out count); } private readonly struct Sha384 : IHashAlgorithm @@ -71,10 +75,12 @@ namespace VNLib.Hashing public readonly int HashSize => (int)HashAlg.SHA384; ///<inheritdoc/> - public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) => SHA384.TryHashData(data, output, out count); + public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) + => SHA384.TryHashData(data, output, out count); ///<inheritdoc/> - public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) => HMACSHA384.TryHashData(key, data, output, out count); + public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) + => HMACSHA384.TryHashData(key, data, output, out count); } private readonly struct Sha512 : IHashAlgorithm @@ -83,10 +89,12 @@ namespace VNLib.Hashing public readonly int HashSize => (int)HashAlg.SHA512; ///<inheritdoc/> - public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) => SHA512.TryHashData(data, output, out count); + public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) + => SHA512.TryHashData(data, output, out count); ///<inheritdoc/> - public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) => HMACSHA512.TryHashData(key, data, output, out count); + public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) + => HMACSHA512.TryHashData(key, data, output, out count); } private readonly struct Md5 : IHashAlgorithm @@ -95,10 +103,12 @@ namespace VNLib.Hashing public readonly int HashSize => (int)HashAlg.MD5; ///<inheritdoc/> - public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) => MD5.TryHashData(data, output, out count); + public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) + => MD5.TryHashData(data, output, out count); ///<inheritdoc/> - public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) => HMACMD5.TryHashData(key, data, output, out count); + public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) + => HMACMD5.TryHashData(key, data, output, out count); } private readonly struct Sha3_256 : IHashAlgorithm @@ -109,10 +119,12 @@ namespace VNLib.Hashing public readonly int HashSize => (int)HashAlg.SHA256; ///<inheritdoc/> - public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) => SHA3_256.TryHashData(data, output, out count); + public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) + => SHA3_256.TryHashData(data, output, out count); ///<inheritdoc/> - public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) => HMACSHA3_256.TryHashData(key, data, output, out count); + public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) + => HMACSHA3_256.TryHashData(key, data, output, out count); } private readonly struct Sha3_384 : IHashAlgorithm @@ -123,10 +135,12 @@ namespace VNLib.Hashing public readonly int HashSize => (int)HashAlg.SHA384; ///<inheritdoc/> - public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) => SHA3_384.TryHashData(data, output, out count); + public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) + => SHA3_384.TryHashData(data, output, out count); ///<inheritdoc/> - public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) => HMACSHA3_384.TryHashData(key, data, output, out count); + public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) + => HMACSHA3_384.TryHashData(key, data, output, out count); } private readonly struct Sha3_512 : IHashAlgorithm @@ -137,10 +151,12 @@ namespace VNLib.Hashing public readonly int HashSize => (int)HashAlg.SHA512; ///<inheritdoc/> - public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) => SHA3_512.TryHashData(data, output, out count); + public readonly bool TryComputeHash(ReadOnlySpan<byte> data, Span<byte> output, out int count) + => SHA3_512.TryHashData(data, output, out count); ///<inheritdoc/> - public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) => HMACSHA3_512.TryHashData(key, data, output, out count); + public readonly bool TryComputeHmac(ReadOnlySpan<byte> key, ReadOnlySpan<byte> data, Span<byte> output, out int count) + => HMACSHA3_512.TryHashData(key, data, output, out count); } private readonly struct Blake2b : IHashAlgorithm |