Table of Contents

Class HMac

Namespace
Org.BouncyCastle.Crypto.Macs
Assembly
BouncyCastle.Cryptography.dll
public class HMac : IMac
Inheritance
HMac
Implements
Inherited Members

Constructors

HMac(IDigest)

public HMac(IDigest digest)

Parameters

digest IDigest

HMac(IDigest, int)

public HMac(IDigest digest, int blockLength)

Parameters

digest IDigest
blockLength int

Properties

AlgorithmName

The algorithm name.

public virtual string AlgorithmName { get; }

Property Value

string

Methods

BlockUpdate(byte[], int, int)

Update the MAC with a block of bytes.

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

Parameters

input byte[]

the byte array containing the data.

inOff int

the offset into the byte array where the data starts.

len int

BlockUpdate(ReadOnlySpan<byte>)

Update the MAC with a span of bytes.

public virtual void BlockUpdate(ReadOnlySpan<byte> input)

Parameters

input ReadOnlySpan<byte>

the span containing the data.

DoFinal(byte[], int)

Perform final calculations, producing the result MAC.

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

Parameters

output byte[]

the byte array the MAC is to be copied into.

outOff int

the offset into the byte array the MAC is to start at.

Returns

int

the number of bytes written

Remarks

This call leaves the MAC reset.

DoFinal(Span<byte>)

Perform final calculations, producing the result MAC.

public virtual int DoFinal(Span<byte> output)

Parameters

output Span<byte>

the span the MAC is to be copied into.

Returns

int

the number of bytes written

Remarks

This call leaves the MAC reset.

GetMacSize()

Return the size, in bytes, of the MAC produced by this implementation.

public virtual int GetMacSize()

Returns

int

the size, in bytes, of the MAC produced by this implementation.

GetUnderlyingDigest()

public virtual IDigest GetUnderlyingDigest()

Returns

IDigest

Init(ICipherParameters)

Initialise the MAC.

public virtual void Init(ICipherParameters parameters)

Parameters

parameters ICipherParameters

The key or other data required by the MAC.

Reset()

public virtual void Reset()

Update(byte)

Update the MAC with a single byte.

public virtual void Update(byte input)

Parameters

input byte

the input byte to be entered.