Table of Contents

Class AsconXof128

Namespace
Org.BouncyCastle.Crypto.Digests
Assembly
BouncyCastle.Cryptography.dll

Ascon-XOF128 was introduced in NIST Special Publication (SP) 800-232 (Initial Public Draft).

public sealed class AsconXof128 : IXof, IDigest
Inheritance
AsconXof128
Implements
Inherited Members

Remarks

Additional details and the specification can be found in: NIST SP 800-232 (Initial Public Draft). For reference source code and implementation details, please see: Reference, highly optimized, masked C and ASM implementations of Ascon (NIST SP 800-232).

Constructors

AsconXof128()

public AsconXof128()

Properties

AlgorithmName

The algorithm name.

public string AlgorithmName { get; }

Property Value

string

Methods

BlockUpdate(byte[], int, int)

Update the message digest with a block of bytes.

public void BlockUpdate(byte[] input, int inOff, int inLen)

Parameters

input byte[]

The byte array containing the data.

inOff int

The offset into the byte array where the data starts.

inLen int

The length of the data.

BlockUpdate(ReadOnlySpan<byte>)

Update the message digest with a span of bytes.

public void BlockUpdate(ReadOnlySpan<byte> input)

Parameters

input ReadOnlySpan<byte>

The span containing the data.

DoFinal(byte[], int)

Close the digest, producing the final digest value.

public int DoFinal(byte[] output, int outOff)

Parameters

output byte[]

The byte array the digest is to be copied into.

outOff int

The offset into the byte array the digest is to start at.

Returns

int

The number of bytes written.

Remarks

This call leaves the digest reset.

DoFinal(Span<byte>)

Close the digest, producing the final digest value.

public int DoFinal(Span<byte> output)

Parameters

output Span<byte>

The span the digest is to be copied into.

Returns

int

The number of bytes written.

Remarks

This call leaves the digest reset.

GetByteLength()

Return the size, in bytes, of the internal buffer used by this digest.

public int GetByteLength()

Returns

int

The size, in bytes, of the internal buffer used by this digest.

GetDigestSize()

Return the size, in bytes, of the digest produced by this message digest.

public int GetDigestSize()

Returns

int

The size, in bytes, of the digest produced by this message digest.

Output(byte[], int, int)

Start outputting the results of the final calculation for this XOF. Unlike DoFinal, this method will continue producing output until the XOF is explicitly reset, or signals otherwise.

public int Output(byte[] output, int outOff, int outLen)

Parameters

output byte[]

output array to write the output bytes to.

outOff int

offset to start writing the bytes at.

outLen int

the number of output bytes requested.

Returns

int

the number of bytes written

Output(Span<byte>)

Start outputting the results of the final calculation for this XOF. Unlike OutputFinal, this method will continue producing output until the XOF is explicitly reset, or signals otherwise.

public int Output(Span<byte> output)

Parameters

output Span<byte>

span to fill with the output bytes.

Returns

int

the number of bytes written

OutputFinal(byte[], int, int)

Output the results of the final calculation for this XOF to outLen number of bytes.

public int OutputFinal(byte[] output, int outOff, int outLen)

Parameters

output byte[]

output array to write the output bytes to.

outOff int

offset to start writing the bytes at.

outLen int

the number of output bytes requested.

Returns

int

the number of bytes written

OutputFinal(Span<byte>)

Output the results of the final calculation for this XOF to fill the output span.

public int OutputFinal(Span<byte> output)

Parameters

output Span<byte>

span to fill with the output bytes.

Returns

int

the number of bytes written

Reset()

Reset the digest back to its initial state.

public void Reset()

Update(byte)

Update the message digest with a single byte.

public void Update(byte input)

Parameters

input byte

The input byte to be entered.