> Build()
        {
            var schemeParameters = new SchemeParametersEcc(
                _kasDsaAlgoAttributes,
                _keyAgreementRole,
                KasMode.KdfKc,
                _keyConfirmationRole,
                _keyConfirmationDirection,
                _assurances,
                _partyId
                );

            var kdfParameters = new KdfParameters(_keyLength, _otherInfoPattern);
            var scheme        = _schemeBuilder.BuildScheme(schemeParameters, kdfParameters, _macParameters);

            return(new Kas <
                       KasDsaAlgoAttributesEcc,
                       OtherPartySharedInformation <
                           EccDomainParameters,
                           EccKeyPair
                           >,
                       EccDomainParameters,
                       EccKeyPair
                       >(scheme));
        }
            > Build()
        {
            var schemeParameters = new SchemeParametersEcc(
                _kasDsaAlgoAttributes,
                _keyAgreementRole,
                KasMode.NoKdfNoKc,
                KeyConfirmationRole.None,
                KeyConfirmationDirection.None,
                _assurances,
                _partyId
                );
            var scheme = _schemeBuilder.BuildScheme(schemeParameters, null, null);

            return(new Kas <
                       KasDsaAlgoAttributesEcc,
                       OtherPartySharedInformation <
                           EccDomainParameters,
                           EccKeyPair
                           >,
                       EccDomainParameters,
                       EccKeyPair
                       >(scheme));
        }