Show / Hide Table of Contents

Struct HashDigest<T>

A value type to represent digest bytes determined by a HashAlgorithm. For more type safety, it takes a type parameter T of HashAlgorithm.

Implements
ISerializable
IEquatable<HashDigest<T>>
Inherited Members
Object.Equals(Object, Object)
Object.GetType()
Object.ReferenceEquals(Object, Object)
Namespace: Libplanet
Assembly: Libplanet.dll
Syntax
[TypeConverter(typeof(HashDigestTypeConverter))]
[JsonConverter(typeof(HashDigestJsonConverter))]
[Serializable]
public readonly struct HashDigest<T> : ISerializable, IEquatable<HashDigest<T>> where T : HashAlgorithm
Type Parameters
Name Description
T

A HashAlgorithm which corresponds to a digest. This determines Size of a digest.

Constructors

| Improve this Doc View Source

HashDigest(Byte[])

Converts a Byte array into a HashDigest<T>.

Declaration
public HashDigest(byte[] hashDigest)
Parameters
Type Name Description
Byte[] hashDigest

A Byte array that encodes a HashDigest<T>. It must not be null, and its Length must be the same to Size.

Exceptions
Type Condition
ArgumentNullException

Thrown when the given hashDigest is null.

ArgumentOutOfRangeException

Thrown when the given hashDigest's Length is not the same to the Size the hash algorithm (i.e., T requires.

See Also
HashAlgorithm
| Improve this Doc View Source

HashDigest(in ImmutableArray<Byte>)

Converts an immutable Byte array into a HashDigest<T>.

Declaration
public HashDigest(in ImmutableArray<byte> hashDigest)
Parameters
Type Name Description
ImmutableArray<Byte> hashDigest

An immutable Byte array that encodes a HashDigest<T>. It must not be null, and its Length must be the same to Size.

Exceptions
Type Condition
ArgumentOutOfRangeException

Thrown when the given hashDigest's Length is not the same to the Size the hash algorithm (i.e., T) requires.

See Also
HashAlgorithm

Fields

| Improve this Doc View Source

Size

The fixed, and valid Length of a Byte array of every digest.

This varies depending upon what HashAlgorithm is used for T. For example, if T is SHA1 Size is 20, and if SHA256 it is 32.

Declaration
public static readonly int Size
Field Value
Type Description
Int32
See Also
HashAlgorithm

Properties

| Improve this Doc View Source

ByteArray

A bare immutable Byte array of the digest.

Declaration
public readonly ImmutableArray<byte> ByteArray { get; }
Property Value
Type Description
ImmutableArray<Byte>
Remarks

It is immutable. For a mutable array, use ToByteArray() method instead.

See Also
ToByteArray()

Methods

| Improve this Doc View Source

DeriveFrom(Byte[])

Computes a hash digest of the algorithm T from the given input bytes.

Declaration
[Pure]
public static HashDigest<T> DeriveFrom(byte[] input)
Parameters
Type Name Description
Byte[] input

The bytes to compute its hash.

Returns
Type Description
HashDigest<T>

The hash digest derived from input.

See Also
HashAlgorithm
| Improve this Doc View Source

DeriveFrom(ImmutableArray<Byte>)

Computes a hash digest of the algorithm T from the given input bytes.

Declaration
[Pure]
public static HashDigest<T> DeriveFrom(ImmutableArray<byte> input)
Parameters
Type Name Description
ImmutableArray<Byte> input

The bytes to compute its hash.

Returns
Type Description
HashDigest<T>

The hash digest derived from input.

See Also
HashAlgorithm
| Improve this Doc View Source

DeriveFrom(ReadOnlySpan<Byte>)

Computes a hash digest of the algorithm T from the given input bytes.

Declaration
[Pure]
public static HashDigest<T> DeriveFrom(ReadOnlySpan<byte> input)
Parameters
Type Name Description
ReadOnlySpan<Byte> input

The bytes to compute its hash.

Returns
Type Description
HashDigest<T>

The hash digest derived from input.

See Also
HashAlgorithm
| Improve this Doc View Source

Equals(HashDigest<T>)

A value type to represent digest bytes determined by a HashAlgorithm. For more type safety, it takes a type parameter T of HashAlgorithm.

Declaration
[Pure]
public readonly bool Equals(HashDigest<T> other)
Parameters
Type Name Description
HashDigest<T> other
Returns
Type Description
Boolean
See Also
HashAlgorithm
| Improve this Doc View Source

Equals(Object)

A value type to represent digest bytes determined by a HashAlgorithm. For more type safety, it takes a type parameter T of HashAlgorithm.

Declaration
[Pure]
public override readonly bool Equals(object obj)
Parameters
Type Name Description
Object obj
Returns
Type Description
Boolean
Overrides
ValueType.Equals(Object)
See Also
HashAlgorithm
| Improve this Doc View Source

FromString(String)

Converts a given hexadecimal representation of a digest into a HashDigest<T> object.

This is an inverse function of ToString() method.

Declaration
[Pure]
public static HashDigest<T> FromString(string hexDigest)
Parameters
Type Name Description
String hexDigest

A hexadecimal representation of a HashDigest<T>.

Returns
Type Description
HashDigest<T>

A corresponding HashDigest<T> value.

Exceptions
Type Condition
ArgumentNullException

Thrown when the given hexDigest is null.

ArgumentOutOfRangeException

Thrown when the given hexDigest's length is not the double of the Size, the hash algorithm (i.e., T requires.

See Also
ToString()
ToHashDigest<T>(String)
| Improve this Doc View Source

GetHashCode()

A value type to represent digest bytes determined by a HashAlgorithm. For more type safety, it takes a type parameter T of HashAlgorithm.

Declaration
[Pure]
public override readonly int GetHashCode()
Returns
Type Description
Int32
Overrides
ValueType.GetHashCode()
See Also
HashAlgorithm
| Improve this Doc View Source

GetObjectData(SerializationInfo, StreamingContext)

A value type to represent digest bytes determined by a HashAlgorithm. For more type safety, it takes a type parameter T of HashAlgorithm.

Declaration
public readonly void GetObjectData(SerializationInfo info, StreamingContext context)
Parameters
Type Name Description
SerializationInfo info
StreamingContext context
See Also
HashAlgorithm
| Improve this Doc View Source

ToByteArray()

Gets a bare mutable Byte array of the digest.

Declaration
[Pure]
public readonly byte[] ToByteArray()
Returns
Type Description
Byte[]

A new mutable Byte array of the digest. Since a returned array is created every time the method is called, any mutations on that array does not affect to the digest object.

See Also
ByteArray
| Improve this Doc View Source

ToString()

Gets a hexadecimal representation of a digest.

This is an inverse function of FromString(String).

Declaration
[Pure]
public override readonly string ToString()
Returns
Type Description
String

A hexadecimal representation of a digest.

Overrides
ValueType.ToString()
See Also
FromString(String)

Implements

System.Runtime.Serialization.ISerializable
System.IEquatable<T>

See Also

HashAlgorithm
  • Improve this Doc
  • View Source
In This Article
Back to top Copyright © 2018–2023 Planetarium