Table of Contents

Class SHA3_256

Namespace
CryptoHives.Foundation.Security.Cryptography.Hash
Assembly
CryptoHives.Foundation.Security.Cryptography.dll

Computes the SHA3-256 hash for the input data.

public sealed class SHA3_256 : KeccakHashCore, ICryptoTransform, IDisposable, IResettable
Inheritance
SHA3_256
Implements
Inherited Members

Remarks

This is a fully managed implementation of SHA3-256 based on the Keccak sponge construction. It does not rely on OS or hardware cryptographic APIs, ensuring deterministic behavior across all platforms and runtimes.

SHA3-256 produces a 256-bit (32-byte) hash value.

Constructors

SHA3_256()

Initializes a new instance of the SHA3_256 class.

public SHA3_256()

Fields

CapacityBytes

The capacity in bytes.

public const int CapacityBytes = 64

Field Value

int

HashSizeBits

The hash size in bits.

public const int HashSizeBits = 256

Field Value

int

HashSizeBytes

The hash size in bytes.

public const int HashSizeBytes = 32

Field Value

int

RateBytes

The rate in bytes (1088 bits for SHA3-256).

public const int RateBytes = 136

Field Value

int

Properties

AlgorithmName

Gets the name of the hash algorithm.

public override string AlgorithmName { get; }

Property Value

string

BlockSize

Gets the block size in bytes used by the hash algorithm.

public override int BlockSize { get; }

Property Value

int

Methods

Create()

Creates a new instance of the SHA3_256 class.

public static SHA3_256 Create()

Returns

SHA3_256

A new SHA3-256 hash algorithm instance.

HashData(in ReadOnlySequence<byte>)

Computes the SHA3-256 hash of source and returns it as a new byte array.

public static byte[] HashData(in ReadOnlySequence<byte> source)

Parameters

source ReadOnlySequence<byte>

The (possibly multi-segment) input sequence to hash.

Returns

byte[]

A new byte array containing the SHA3-256 hash.

HashData(ReadOnlySpan<byte>)

Computes the SHA3-256 hash of source and returns it as a new byte array.

public static byte[] HashData(ReadOnlySpan<byte> source)

Parameters

source ReadOnlySpan<byte>

The input data to hash.

Returns

byte[]

A new byte array containing the SHA3-256 hash.

TryHashData(in ReadOnlySequence<byte>, Span<byte>, out int)

Computes the SHA3-256 hash of source and writes it into destination.

public static bool TryHashData(in ReadOnlySequence<byte> source, Span<byte> destination, out int bytesWritten)

Parameters

source ReadOnlySequence<byte>

The (possibly multi-segment) input sequence to hash.

destination Span<byte>

The buffer to receive the hash value. Must be at least HashSizeBytes bytes.

bytesWritten int

When this method returns, the number of bytes written into destination.

Returns

bool

true if destination was large enough; otherwise, false.

TryHashData(ReadOnlySpan<byte>, Span<byte>, out int)

Computes the SHA3-256 hash of source and writes it into destination.

public static bool TryHashData(ReadOnlySpan<byte> source, Span<byte> destination, out int bytesWritten)

Parameters

source ReadOnlySpan<byte>

The input data to hash.

destination Span<byte>

The buffer to receive the hash value. Must be at least HashSizeBytes bytes.

bytesWritten int

When this method returns, the number of bytes written into destination.

Returns

bool

true if destination was large enough; otherwise, false.