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.​HMACSHA1
Assembly: System.Security.Cryptography
Inheritance: object → HashAlgorithm → KeyedHashAlgorithm → HMAC → HMACSHA1
Implemented Interfaces
- ICryptoTransform (Inherits: IDisposable) Implemented by: HashAlgorithm
Computes a Hash-based Message Authentication Code (HMAC) using the <see cref="T:System.Security.Cryptography.SHA1" /> hash function.
Fields and Constants
public const
int
HashSizeInBits
The hash size produced by the HMAC SHA-1 algorithm, in bits.
public const
int
HashSizeInBytes
The hash size produced by the HMAC SHA-1 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
byte[]
Key
Gets or sets the key to use in the hash algorithm.
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)
This member overrides <see cref="M:System.Security.Cryptography.KeyedHashAlgorithm.Dispose(System.Boolean)" /> , and more complete documentation might be available in that topic.
Releases the unmanaged resources used by the <see cref="T:System.Security.Cryptography.KeyedHashAlgorithm" /> and optionally releases the managed resources.
disposing
<see langword="true" /> to release both managed and unmanaged resources; false to release only unmanaged resources.
protected
void
HashCore​(byte[] rgb,
int ib,
int cb)
Routes data written to the object into the SHA1 hash algorithm for computing the Hash-based Message Authentication Code (HMAC).
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 for.
public static
byte[]
HashData​(byte[] key,
byte[] source)
Computes the HMAC of data using the SHA-1 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-1 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-1 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-1 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-1 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-1 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-1 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-1 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-1 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​()
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​()
Resets the hash algorithm to its initial state.
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
protected
object
MemberwiseClone​()
Inherited from object
public
string
ToString​()
Inherited from object