Early Preview

This is currently very much a preview. Please feel free to try things out, but don't be upset if anything is not yet working. Feedback is welcome over on our GitHub Dicussions page.

class System.​Security.​Cryptography.​HMACSHA3_256

Assembly: System.Security.Cryptography

Inheritance: object → HashAlgorithmKeyedHashAlgorithmHMAC → HMACSHA3_256

Implemented Interfaces

Computes a Hash-based Message Authentication Code (HMAC) by using the SHA-3-256 hash function.

Fields and Constants

public const int
HashSizeInBits
The hash size produced by the HMAC SHA-3-256 algorithm, in bits.
public const int
HashSizeInBytes
The hash size produced by the HMAC SHA-3-256 algorithm, in bytes.
protected byte[]
KeyValue
The key to use in the hash algorithm.
protected int
HashSizeValue
Represents the size, in bits, of the computed hash code.
protected int
State
Represents the state of the hash computation.

Properties

public static bool
IsSupported
Gets a value that indicates whether the algorithm is supported on the current platform.
public byte[]
Key
Gets or sets the key to use in the HMAC calculation.
protected int
BlockSizeValue
Gets or sets the block size to use in the hash value.
public string
HashName
Gets or sets the name of the hash algorithm to use for hashing.
public bool
CanReuseTransform
Gets a value indicating whether the current transform can be reused.
public bool
CanTransformMultipleBlocks
When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.
public byte[]
Hash
Gets the value of the computed hash code.
public int
HashSize
Gets the size, in bits, of the computed hash code.
public int
InputBlockSize
When overridden in a derived class, gets the input block size.
public int
OutputBlockSize
When overridden in a derived class, gets the output block size.

Methods

protected void
Dispose​(bool disposing)
Releases the unmanaged resources used by the <see cref="T:System.Security.Cryptography.HMAC" /> class when a key change is legitimate and optionally releases the managed resources.
disposing <see langword="true" /> to release both managed and unmanaged resources; <see langword="false" /> to release only unmanaged resources.
protected void
HashCore​(byte[] rgb, int ib, int cb)
When overridden in a derived class, routes data written to the object into the HMAC algorithm for computing the HMAC value.
rgb The input data.
ib The offset into the byte array from which to begin using data.
cb The number of bytes in the array to use as data.
protected void
HashCore​(ReadOnlySpan<​byte> source)
Routes data written to the object into the HMAC algorithm for computing the HMAC.
source The input to compute the HMAC code for.
public static byte[]
HashData​(byte[] key, byte[] source)
Computes the HMAC of data using the SHA-3-256 algorithm.
Returns The HMAC of the data.
key The HMAC key.
source The data to HMAC.
public static byte[]
HashData​(byte[] key, IO.​Stream source)
Computes the HMAC of a stream using the SHA-3-256 algorithm.
Returns The HMAC of the data.
key The HMAC key.
source The stream to HMAC.
public static byte[]
HashData​(ReadOnlySpan<​byte> key, IO.​Stream source)
Computes the HMAC of a stream using the SHA-3-256 algorithm.
Returns The HMAC of the data.
key The HMAC key.
source The stream to HMAC.
public static int
HashData​(ReadOnlySpan<​byte> key, IO.​Stream source, Span<​byte> destination)
Computes the HMAC of a stream using the SHA-3-256 algorithm.
Returns The total number of bytes written to <paramref name="destination" /> .
key The HMAC key.
source The stream to HMAC.
destination The buffer to receive the HMAC value.
public static byte[]
HashData​(ReadOnlySpan<​byte> key, ReadOnlySpan<​byte> source)
Computes the HMAC of data using the SHA-3-256 algorithm.
Returns The HMAC of the data.
key The HMAC key.
source The data to HMAC.
public static int
HashData​(ReadOnlySpan<​byte> key, ReadOnlySpan<​byte> source, Span<​byte> destination)
Computes the HMAC of data using the SHA-3-256 algorithm.
Returns The total number of bytes written to <paramref name="destination" /> .
key The HMAC key.
source The data to HMAC.
destination The buffer to receive the HMAC value.
public static Threading.​Tasks.​ValueTask<​byte[]>
HashDataAsync​(byte[] key, IO.​Stream source, Threading.​CancellationToken cancellationToken = null)
Asynchronously computes the HMAC of a stream using the SHA-3-256 algorithm.
Returns The HMAC of the data.
key The HMAC key.
source The stream to HMAC.
cancellationToken The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" /> .
public static Threading.​Tasks.​ValueTask<​int>
HashDataAsync​(ReadOnlyMemory<​byte> key, IO.​Stream source, Memory<​byte> destination, Threading.​CancellationToken cancellationToken = null)
Asynchronously computes the HMAC of a stream using the SHA-3-256 algorithm.
Returns The total number of bytes written to <paramref name="destination" /> .
key The HMAC key.
source The stream to HMAC.
destination The buffer to receive the HMAC value.
cancellationToken The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" /> .
public static Threading.​Tasks.​ValueTask<​byte[]>
HashDataAsync​(ReadOnlyMemory<​byte> key, IO.​Stream source, Threading.​CancellationToken cancellationToken = null)
Asynchronously computes the HMAC of a stream using the SHA-3-256 algorithm.
Returns The HMAC of the data.
key The HMAC key.
source The stream to HMAC.
cancellationToken The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" /> .
protected byte[]
HashFinal​()
When overridden in a derived class, finalizes the HMAC computation after the last data is processed by the algorithm.
Returns The computed HMAC value in a byte array.
public void
Initialize​()
Initializes an instance of the default implementation of <see cref="T:System.Security.Cryptography.HMAC" /> .
public static bool
TryHashData​(ReadOnlySpan<​byte> key, ReadOnlySpan<​byte> source, Span<​byte> destination, Int32& bytesWritten)
protected bool
TryHashFinal​(Span<​byte> destination, Int32& bytesWritten)
public void
Clear​()
Inherited from HashAlgorithm
Releases all resources used by the <see cref="T:System.Security.Cryptography.HashAlgorithm" /> class.
public byte[]
ComputeHash​(byte[] buffer)
Inherited from HashAlgorithm
Computes the hash value for the specified byte array.
Returns The computed hash code.
buffer The input to compute the hash code for.
public byte[]
ComputeHash​(byte[] buffer, int offset, int count)
Inherited from HashAlgorithm
Computes the hash value for the specified region of the specified byte array.
Returns The computed hash code.
buffer The input to compute the hash code for.
offset The offset into the byte array from which to begin using data.
count The number of bytes in the array to use as data.
public byte[]
ComputeHash​(IO.​Stream inputStream)
Inherited from HashAlgorithm
Computes the hash value for the specified <see cref="T:System.IO.Stream" /> object.
Returns The computed hash code.
inputStream The input to compute the hash code for.
public Threading.​Tasks.​Task<​byte[]>
ComputeHashAsync​(IO.​Stream inputStream, Threading.​CancellationToken cancellationToken = null)
Inherited from HashAlgorithm
Asynchronously computes the hash value for the specified <see cref="T:System.IO.Stream" /> object.
Returns A task that represents the asynchronous compute hash operation and wraps the computed hash code.
inputStream The input to compute the hash code for.
cancellationToken The token to monitor for cancellation requests.
public void
Dispose​()
Inherited from HashAlgorithm
Releases all resources used by the current instance of the <see cref="T:System.Security.Cryptography.HashAlgorithm" /> class.
public int
TransformBlock​(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset)
Inherited from HashAlgorithm
Computes the hash value for the specified region of the input byte array and copies the specified region of the input byte array to the specified region of the output byte array.
Returns The number of bytes written.
inputBuffer The input to compute the hash code for.
inputOffset The offset into the input byte array from which to begin using data.
inputCount The number of bytes in the input byte array to use as data.
outputBuffer A copy of the part of the input array used to compute the hash code.
outputOffset The offset into the output byte array from which to begin writing data.
public byte[]
TransformFinalBlock​(byte[] inputBuffer, int inputOffset, int inputCount)
Inherited from HashAlgorithm
Computes the hash value for the specified region of the specified byte array.
Returns An array that is a copy of the part of the input that is hashed.
inputBuffer The input to compute the hash code for.
inputOffset The offset into the byte array from which to begin using data.
inputCount The number of bytes in the byte array to use as data.
public bool
TryComputeHash​(ReadOnlySpan<​byte> source, Span<​byte> destination, Int32& bytesWritten)
Inherited from HashAlgorithm
public bool
Equals​(object obj)
Inherited from object
protected void
Finalize​()
Inherited from object
public int
GetHashCode​()
Inherited from object
public Type
GetType​()
Inherited from object
protected object
MemberwiseClone​()
Inherited from object
public string
ToString​()
Inherited from object