Table of Contents

Class FfcKeyAgreement

Namespace
Kdf108
Assembly
Kdf108.dll

The logging implementation of IFfcKeyAgreement. Stateless and thread-safe.

public sealed class FfcKeyAgreement : IFfcKeyAgreement
Inheritance
FfcKeyAgreement
Implements
Inherited Members

Constructors

FfcKeyAgreement(ILogger<FfcKeyAgreement>?)

The logging implementation of IFfcKeyAgreement. Stateless and thread-safe.

public FfcKeyAgreement(ILogger<FfcKeyAgreement>? logger = null)

Parameters

logger ILogger<FfcKeyAgreement>

Methods

Ephemeral(FfcEphemeralKeyPair, FfcEphemeralPublicKey)

dhEphem, C(2e, 0s): Z = FFC DH(local ephemeral, remote ephemeral).

public byte[] Ephemeral(FfcEphemeralKeyPair localEphemeral, FfcEphemeralPublicKey remoteEphemeral)

Parameters

localEphemeral FfcEphemeralKeyPair
remoteEphemeral FfcEphemeralPublicKey

Returns

byte[]

Hybrid(FfcStaticKeyPair, FfcEphemeralKeyPair, FfcStaticPublicKey, FfcEphemeralPublicKey)

dhHybrid1, C(2e, 2s): Z = Ze || Zs.

public byte[] Hybrid(FfcStaticKeyPair localStatic, FfcEphemeralKeyPair localEphemeral, FfcStaticPublicKey remoteStatic, FfcEphemeralPublicKey remoteEphemeral)

Parameters

localStatic FfcStaticKeyPair
localEphemeral FfcEphemeralKeyPair
remoteStatic FfcStaticPublicKey
remoteEphemeral FfcEphemeralPublicKey

Returns

byte[]

HybridOneFlowAsPartyU(FfcStaticKeyPair, FfcEphemeralKeyPair, FfcStaticPublicKey)

dhHybridOneFlow, C(1e, 2s), as party U: Z = DH(U's ephemeral, V's static) || DH(U's static, V's static).

public byte[] HybridOneFlowAsPartyU(FfcStaticKeyPair localStatic, FfcEphemeralKeyPair localEphemeral, FfcStaticPublicKey remoteStatic)

Parameters

localStatic FfcStaticKeyPair
localEphemeral FfcEphemeralKeyPair
remoteStatic FfcStaticPublicKey

Returns

byte[]

HybridOneFlowAsPartyV(FfcStaticKeyPair, FfcStaticPublicKey, FfcEphemeralPublicKey)

dhHybridOneFlow, C(1e, 2s), as party V: Z = DH(V's static, U's ephemeral) || DH(V's static, U's static).

public byte[] HybridOneFlowAsPartyV(FfcStaticKeyPair localStatic, FfcStaticPublicKey remoteStatic, FfcEphemeralPublicKey remoteEphemeral)

Parameters

localStatic FfcStaticKeyPair
remoteStatic FfcStaticPublicKey
remoteEphemeral FfcEphemeralPublicKey

Returns

byte[]

Mqv1AsPartyU(FfcStaticKeyPair, FfcEphemeralKeyPair, FfcStaticPublicKey)

MQV1, C(1e, 2s), as party U: V's static key stands in for V's ephemeral key.

public byte[] Mqv1AsPartyU(FfcStaticKeyPair localStatic, FfcEphemeralKeyPair localEphemeral, FfcStaticPublicKey remoteStatic)

Parameters

localStatic FfcStaticKeyPair
localEphemeral FfcEphemeralKeyPair
remoteStatic FfcStaticPublicKey

Returns

byte[]

Mqv1AsPartyV(FfcStaticKeyPair, FfcStaticPublicKey, FfcEphemeralPublicKey)

MQV1, C(1e, 2s), as party V: V's static key stands in for its own ephemeral key.

public byte[] Mqv1AsPartyV(FfcStaticKeyPair localStatic, FfcStaticPublicKey remoteStatic, FfcEphemeralPublicKey remoteEphemeral)

Parameters

localStatic FfcStaticKeyPair
remoteStatic FfcStaticPublicKey
remoteEphemeral FfcEphemeralPublicKey

Returns

byte[]

Mqv2(FfcStaticKeyPair, FfcEphemeralKeyPair, FfcStaticPublicKey, FfcEphemeralPublicKey)

MQV2, C(2e, 2s).

public byte[] Mqv2(FfcStaticKeyPair localStatic, FfcEphemeralKeyPair localEphemeral, FfcStaticPublicKey remoteStatic, FfcEphemeralPublicKey remoteEphemeral)

Parameters

localStatic FfcStaticKeyPair
localEphemeral FfcEphemeralKeyPair
remoteStatic FfcStaticPublicKey
remoteEphemeral FfcEphemeralPublicKey

Returns

byte[]

OneFlowAsPartyU(FfcEphemeralKeyPair, FfcStaticPublicKey)

dhOneFlow, C(1e, 1s), as party U: Z = FFC DH(U's ephemeral, V's static).

public byte[] OneFlowAsPartyU(FfcEphemeralKeyPair localEphemeral, FfcStaticPublicKey remoteStatic)

Parameters

localEphemeral FfcEphemeralKeyPair
remoteStatic FfcStaticPublicKey

Returns

byte[]

OneFlowAsPartyV(FfcStaticKeyPair, FfcEphemeralPublicKey)

dhOneFlow, C(1e, 1s), as party V: Z = FFC DH(V's static, U's ephemeral).

public byte[] OneFlowAsPartyV(FfcStaticKeyPair localStatic, FfcEphemeralPublicKey remoteEphemeral)

Parameters

localStatic FfcStaticKeyPair
remoteEphemeral FfcEphemeralPublicKey

Returns

byte[]

Static(FfcStaticKeyPair, FfcStaticPublicKey)

dhStatic, C(0e, 2s): Z = FFC DH(local static, remote static).

public byte[] Static(FfcStaticKeyPair localStatic, FfcStaticPublicKey remoteStatic)

Parameters

localStatic FfcStaticKeyPair
remoteStatic FfcStaticPublicKey

Returns

byte[]