Interface IFfcKeyAgreement
- Namespace
- Kdf108
- Assembly
- Kdf108.dll
SP 800-56A FFC key agreement as an injectable service. Mirrors FfcSchemes; inject it, or construct FfcKeyAgreement directly.
public interface IFfcKeyAgreement
Methods
Ephemeral(FfcEphemeralKeyPair, FfcEphemeralPublicKey)
dhEphem, C(2e, 0s): Z = FFC DH(local ephemeral, remote ephemeral).
byte[] Ephemeral(FfcEphemeralKeyPair localEphemeral, FfcEphemeralPublicKey remoteEphemeral)
Parameters
localEphemeralFfcEphemeralKeyPairremoteEphemeralFfcEphemeralPublicKey
Returns
- byte[]
Hybrid(FfcStaticKeyPair, FfcEphemeralKeyPair, FfcStaticPublicKey, FfcEphemeralPublicKey)
dhHybrid1, C(2e, 2s): Z = Ze || Zs.
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).
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).
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.
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.
byte[] Mqv1AsPartyV(FfcStaticKeyPair localStatic, FfcStaticPublicKey remoteStatic, FfcEphemeralPublicKey remoteEphemeral)
Parameters
localStaticFfcStaticKeyPairremoteStaticFfcStaticPublicKeyremoteEphemeralFfcEphemeralPublicKey
Returns
- byte[]
Mqv2(FfcStaticKeyPair, FfcEphemeralKeyPair, FfcStaticPublicKey, FfcEphemeralPublicKey)
MQV2, C(2e, 2s).
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).
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).
byte[] OneFlowAsPartyV(FfcStaticKeyPair localStatic, FfcEphemeralPublicKey remoteEphemeral)
Parameters
localStaticFfcStaticKeyPairremoteEphemeralFfcEphemeralPublicKey
Returns
- byte[]
Static(FfcStaticKeyPair, FfcStaticPublicKey)
dhStatic, C(0e, 2s): Z = FFC DH(local static, remote static).
byte[] Static(FfcStaticKeyPair localStatic, FfcStaticPublicKey remoteStatic)
Parameters
localStaticFfcStaticKeyPairremoteStaticFfcStaticPublicKey
Returns
- byte[]