public SchemeFfcMqv2( IDsaFfc dsa, IKdfOneStepFactory kdfFactory, IKeyConfirmationFactory keyConfirmationFactory, INoKeyConfirmationFactory noKeyConfirmationFactory, IOtherInfoFactory otherInfoFactory, IEntropyProvider entropyProvider, SchemeParametersBase <KasDsaAlgoAttributesFfc> schemeParameters, KdfParameters kdfParameters, MacParameters macParameters, IMqv <FfcDomainParameters, FfcKeyPair> mqv ) : base( dsa, kdfFactory, keyConfirmationFactory, noKeyConfirmationFactory, otherInfoFactory, entropyProvider, schemeParameters, kdfParameters, macParameters ) { _mqv = mqv; if (SchemeParameters.KasAlgoAttributes.Scheme != FfcScheme.Mqv2) { throw new ArgumentException(nameof(SchemeParameters.KasAlgoAttributes.Scheme)); } }
public SchemeFfcDhHybrid1( IDsaFfc dsa, IKdfOneStepFactory kdfFactory, IKeyConfirmationFactory keyConfirmationFactory, INoKeyConfirmationFactory noKeyConfirmationFactory, IOtherInfoFactory otherInfoFactory, IEntropyProvider entropyProvider, SchemeParametersBase <KasDsaAlgoAttributesFfc> schemeParameters, KdfParameters kdfParameters, MacParameters macParameters, IDiffieHellman <FfcDomainParameters, FfcKeyPair> diffieHellman ) : base( dsa, kdfFactory, keyConfirmationFactory, noKeyConfirmationFactory, otherInfoFactory, entropyProvider, schemeParameters, kdfParameters, macParameters ) { _diffieHellman = diffieHellman; if (SchemeParameters.KasAlgoAttributes.Scheme != FfcScheme.DhHybrid1) { throw new ArgumentException(nameof(SchemeParameters.KasAlgoAttributes.Scheme)); } }
public SchemeFfcDiffieHellmanEphemeral( IDsaFfc dsa, IKdfOneStepFactory kdfFactory, IKeyConfirmationFactory keyConfirmationFactory, INoKeyConfirmationFactory noKeyConfirmationFactory, IOtherInfoFactory otherInfoFactory, IEntropyProvider entropyProvider, SchemeParametersBase<KasDsaAlgoAttributesFfc> schemeParameters, KdfParameters kdfParameters, MacParameters macParameters, IDiffieHellman<FfcDomainParameters, FfcKeyPair> dh ) : base(dsa, kdfFactory, keyConfirmationFactory, noKeyConfirmationFactory, otherInfoFactory, entropyProvider, schemeParameters, kdfParameters, macParameters) { _diffieHellman = dh; if (SchemeParameters.KasAlgoAttributes.Scheme != FfcScheme.DhEphem) { throw new ArgumentException(nameof(SchemeParameters.KasAlgoAttributes.Scheme)); } if (SchemeParameters.KasMode == KasMode.KdfKc) { throw new ArgumentException($"{SchemeParameters.KasMode} not possible with {SchemeParameters.KasAlgoAttributes.Scheme}"); } }
public SchemeFfcDhOneFlow( IDsaFfc dsa, IKdfOneStepFactory kdfFactory, IKeyConfirmationFactory keyConfirmationFactory, INoKeyConfirmationFactory noKeyConfirmationFactory, IOtherInfoFactory otherInfoFactory, IEntropyProvider entropyProvider, SchemeParametersBase <KasDsaAlgoAttributesFfc> schemeParameters, KdfParameters kdfParameters, MacParameters macParameters, IDiffieHellman <FfcDomainParameters, FfcKeyPair> diffieHellman ) : base( dsa, kdfFactory, keyConfirmationFactory, noKeyConfirmationFactory, otherInfoFactory, entropyProvider, schemeParameters, kdfParameters, macParameters ) { _diffieHellman = diffieHellman; if (SchemeParameters.KasAlgoAttributes.Scheme != FfcScheme.DhOneFlow) { throw new ArgumentException(nameof(SchemeParameters.KasAlgoAttributes.Scheme)); } if (SchemeParameters.KeyConfirmationDirection == KeyConfirmationDirection.Bilateral || (SchemeParameters.KeyAgreementRole == KeyAgreementRole.InitiatorPartyU && SchemeParameters.KeyConfirmationRole == KeyConfirmationRole.Provider) || (SchemeParameters.KeyAgreementRole == KeyAgreementRole.ResponderPartyV && SchemeParameters.KeyConfirmationRole == KeyConfirmationRole.Recipient)) { throw new ArgumentException("Only unilateral Key confirmation possible party V to U"); } }
protected SchemeBaseFfc( IDsaFfc dsa, IKdfOneStepFactory kdfFactory, IKeyConfirmationFactory keyConfirmationFactory, INoKeyConfirmationFactory noKeyConfirmationFactory, IOtherInfoFactory otherInfoFactory, IEntropyProvider entropyProvider, SchemeParametersBase <KasDsaAlgoAttributesFfc> schemeParameters, KdfParameters kdfParameters, MacParameters macParameters ) : base( kdfFactory, keyConfirmationFactory, noKeyConfirmationFactory, otherInfoFactory, entropyProvider, schemeParameters, kdfParameters, macParameters ) { Dsa = dsa; }