CryptographicOperations.FixedTimeEquals Method

Definition

Determines the equality of two byte sequences in an amount of time that depends on the length of the sequences, but not their values.

public:
 static bool FixedTimeEquals(ReadOnlySpan<System::Byte> left, ReadOnlySpan<System::Byte> right);
public static bool FixedTimeEquals (ReadOnlySpan<byte> left, ReadOnlySpan<byte> right);
static member FixedTimeEquals : ReadOnlySpan<byte> * ReadOnlySpan<byte> -> bool
Public Shared Function FixedTimeEquals (left As ReadOnlySpan(Of Byte), right As ReadOnlySpan(Of Byte)) As Boolean

Parameters

left
ReadOnlySpan<Byte>

The first buffer to compare.

right
ReadOnlySpan<Byte>

The second buffer to compare.

Returns

true if left and right have the same values for Length and the same contents; otherwise, false.

Remarks

This method compares the contents from two buffers for equality in a way that doesn't leak timing information, making it ideal for use within cryptographic routines.

This method will short-circuit and return false only if left and right have different lengths.

Fixed-time behavior is guaranteed in all other cases, including when left and right reference the same address.

Applies to