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
loggerILogger<FfcKeyAgreement>
Methods
Ephemeral(FfcEphemeralKeyPair, FfcEphemeralPublicKey)
dhEphem, C(2e, 0s): Z = FFC DH(local ephemeral, remote ephemeral).
public byte[] Ephemeral(FfcEphemeralKeyPair localEphemeral, FfcEphemeralPublicKey remoteEphemeral)
Parameters
localEphemeralFfcEphemeralKeyPairremoteEphemeralFfcEphemeralPublicKey
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
localStaticFfcStaticKeyPairlocalEphemeralFfcEphemeralKeyPairremoteStaticFfcStaticPublicKeyremoteEphemeralFfcEphemeralPublicKey
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
localStaticFfcStaticKeyPairlocalEphemeralFfcEphemeralKeyPairremoteStaticFfcStaticPublicKey
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
localStaticFfcStaticKeyPairremoteStaticFfcStaticPublicKeyremoteEphemeralFfcEphemeralPublicKey
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
localStaticFfcStaticKeyPairlocalEphemeralFfcEphemeralKeyPairremoteStaticFfcStaticPublicKey
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
localStaticFfcStaticKeyPairremoteStaticFfcStaticPublicKeyremoteEphemeralFfcEphemeralPublicKey
Returns
- byte[]
Mqv2(FfcStaticKeyPair, FfcEphemeralKeyPair, FfcStaticPublicKey, FfcEphemeralPublicKey)
MQV2, C(2e, 2s).
public byte[] Mqv2(FfcStaticKeyPair localStatic, FfcEphemeralKeyPair localEphemeral, FfcStaticPublicKey remoteStatic, FfcEphemeralPublicKey remoteEphemeral)
Parameters
localStaticFfcStaticKeyPairlocalEphemeralFfcEphemeralKeyPairremoteStaticFfcStaticPublicKeyremoteEphemeralFfcEphemeralPublicKey
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
localEphemeralFfcEphemeralKeyPairremoteStaticFfcStaticPublicKey
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
localStaticFfcStaticKeyPairremoteEphemeralFfcEphemeralPublicKey
Returns
- byte[]
Static(FfcStaticKeyPair, FfcStaticPublicKey)
dhStatic, C(0e, 2s): Z = FFC DH(local static, remote static).
public byte[] Static(FfcStaticKeyPair localStatic, FfcStaticPublicKey remoteStatic)
Parameters
localStaticFfcStaticKeyPairremoteStaticFfcStaticPublicKey
Returns
- byte[]