Example #1
0
        public void Setup()
        {
            var shaFactory     = new NativeShaFactory();
            var hmacFactory    = new HmacFactory(shaFactory);
            var entropyFactory = new EntropyProviderFactory();
            var rsa            = new Rsa(new RsaVisitor());

            var kdfVisitor = new KdfVisitor(
                new KdfOneStepFactory(shaFactory, new HmacFactory(shaFactory), new KmacFactory(new CSHAKEWrapper())),
                new Crypto.KDF.KdfFactory(new CmacFactory(new BlockCipherEngineFactory(), new ModeBlockCipherFactory()),
                                          hmacFactory), hmacFactory,
                new CmacFactory(new BlockCipherEngineFactory(), new ModeBlockCipherFactory()),
                new IkeV1Factory(hmacFactory, shaFactory),
                new IkeV2Factory(hmacFactory),
                new TlsKdfFactory(hmacFactory),
                new HkdfFactory(hmacFactory));

            _rsaSve = new RsaSve(rsa, _entropyProvider);

            _kasBuilderPartyU    = new KasIfcBuilder();
            _schemeBuilderPartyU = new SchemeIfcBuilder(kdfVisitor);

            _kasBuilderPartyV    = new KasIfcBuilder();
            _schemeBuilderPartyV = new SchemeIfcBuilder(kdfVisitor);

            _secretKeyingMaterialBuilderPartyU = new IfcSecretKeyingMaterialBuilder();
            _secretKeyingMaterialBuilderPartyV = new IfcSecretKeyingMaterialBuilder();

            _kdfFactory             = new KdfFactory(kdfVisitor);
            _kdfParameterVisitor    = new KdfParameterVisitor(entropyFactory.GetEntropyProvider(EntropyProviderTypes.Random));
            _ktsFactory             = new KtsFactory(shaFactory, rsa, entropyFactory);
            _keyConfirmationFactory = new KeyConfirmationFactory(new KeyConfirmationMacDataCreator());
            _fixedInfoFactory       = new FixedInfoFactory(new FixedInfoStrategyFactory());
        }
Example #2
0
 protected SchemeBase(
     IEntropyProvider entropyProvider,
     SchemeParametersIfc schemeParameters,
     IFixedInfoFactory fixedInfoFactory,
     FixedInfoParameter fixedInfoParameter,
     IIfcSecretKeyingMaterialBuilder thisPartyKeyingMaterialBuilder,
     IKeyConfirmationFactory keyConfirmationFactory,
     MacParameters macParameters)
 {
     EntropyProvider                 = entropyProvider;
     SchemeParameters                = schemeParameters;
     _fixedInfoFactory               = fixedInfoFactory;
     _fixedInfoParameter             = fixedInfoParameter;
     _thisPartyKeyingMaterialBuilder = thisPartyKeyingMaterialBuilder;
     _keyConfirmationFactory         = keyConfirmationFactory;
     _macParameters = macParameters;
 }
Example #3
0
 protected SchemeBaseKas
 (
     IEntropyProvider entropyProvider,
     SchemeParametersIfc schemeParameters,
     IFixedInfoFactory fixedInfoFactory,
     FixedInfoParameter fixedInfoParameter,
     IIfcSecretKeyingMaterialBuilder thisPartyKeyingMaterialBuilder,
     IKeyConfirmationFactory keyConfirmationFactory,
     MacParameters macParameters,
     IKdfVisitor kdfVisitor,
     IKdfParameter kdfParameter,
     IRsaSve rsaSve
 ) : base(entropyProvider, schemeParameters, fixedInfoFactory, fixedInfoParameter, thisPartyKeyingMaterialBuilder, keyConfirmationFactory, macParameters)
 {
     _kdfVisitor   = kdfVisitor;
     _kdfParameter = kdfParameter;
     _rsaSve       = rsaSve;
 }
Example #4
0
 protected SchemeBase(
     SchemeParameters schemeParameters,
     ISecretKeyingMaterial thisPartyKeyingMaterial,
     IFixedInfoFactory fixedInfoFactory,
     FixedInfoParameter fixedInfoParameter,
     IKdfFactory kdfFactory,
     IKdfParameter kdfParameter,
     IKeyConfirmationFactory keyConfirmationFactory,
     MacParameters keyConfirmationParameter)
 {
     SchemeParameters          = schemeParameters;
     ThisPartyKeyingMaterial   = thisPartyKeyingMaterial;
     _fixedInfoFactory         = fixedInfoFactory;
     _fixedInfoParameter       = fixedInfoParameter;
     _kdfFactory               = kdfFactory;
     _kdfParameter             = kdfParameter;
     _keyConfirmationFactory   = keyConfirmationFactory;
     _keyConfirmationParameter = keyConfirmationParameter;
 }
Example #5
0
 protected SchemeBaseEcc(
     SchemeParameters schemeParameters,
     ISecretKeyingMaterial thisPartyKeyingMaterial,
     IFixedInfoFactory fixedInfoFactory,
     FixedInfoParameter fixedInfoParameter,
     IKdfFactory kdfFactory,
     IKdfParameter kdfParameter,
     IKeyConfirmationFactory keyConfirmationFactory,
     MacParameters keyConfirmationParameter)
     : base(
         schemeParameters,
         thisPartyKeyingMaterial,
         fixedInfoFactory,
         fixedInfoParameter,
         kdfFactory,
         kdfParameter,
         keyConfirmationFactory,
         keyConfirmationParameter)
 {
 }
Example #6
0
 public SchemeEccFullUnified(
     SchemeParameters schemeParameters,
     ISecretKeyingMaterial thisPartyKeyingMaterial,
     IFixedInfoFactory fixedInfoFactory,
     FixedInfoParameter fixedInfoParameter,
     IKdfFactory kdfFactory,
     IKdfParameter kdfParameter,
     IKeyConfirmationFactory keyConfirmationFactory,
     MacParameters keyConfirmationParameter,
     IDiffieHellman <EccDomainParameters, EccKeyPair> diffieHellman)
     : base(
         schemeParameters,
         thisPartyKeyingMaterial,
         fixedInfoFactory,
         fixedInfoParameter,
         kdfFactory,
         kdfParameter,
         keyConfirmationFactory,
         keyConfirmationParameter)
 {
     _diffieHellman = diffieHellman;
 }
Example #7
0
 public SchemeEccFullMqv(
     SchemeParameters schemeParameters,
     ISecretKeyingMaterial thisPartyKeyingMaterial,
     IFixedInfoFactory fixedInfoFactory,
     FixedInfoParameter fixedInfoParameter,
     IKdfFactory kdfFactory,
     IKdfParameter kdfParameter,
     IKeyConfirmationFactory keyConfirmationFactory,
     MacParameters keyConfirmationParameter,
     IMqv <EccDomainParameters, EccKeyPair> mqv)
     : base(
         schemeParameters,
         thisPartyKeyingMaterial,
         fixedInfoFactory,
         fixedInfoParameter,
         kdfFactory,
         kdfParameter,
         keyConfirmationFactory,
         keyConfirmationParameter)
 {
     _mqv = mqv;
 }
 public SchemeFfcDhHybridOneFlow(
     SchemeParameters schemeParameters,
     ISecretKeyingMaterial thisPartyKeyingMaterial,
     IFixedInfoFactory fixedInfoFactory,
     FixedInfoParameter fixedInfoParameter,
     IKdfFactory kdfFactory,
     IKdfParameter kdfParameter,
     IKeyConfirmationFactory keyConfirmationFactory,
     MacParameters keyConfirmationParameter,
     IDiffieHellman <FfcDomainParameters, FfcKeyPair> diffieHellman)
     : base(
         schemeParameters,
         thisPartyKeyingMaterial,
         fixedInfoFactory,
         fixedInfoParameter,
         kdfFactory,
         kdfParameter,
         keyConfirmationFactory,
         keyConfirmationParameter)
 {
     _diffieHellman = diffieHellman;
 }
Example #9
0
 public SchemeBaseKasOneKeyPair(
     IEntropyProvider entropyProvider,
     SchemeParametersIfc schemeParameters,
     IFixedInfoFactory fixedInfoFactory,
     FixedInfoParameter fixedInfoParameter,
     IIfcSecretKeyingMaterialBuilder thisPartyKeyingMaterialBuilder,
     IKeyConfirmationFactory keyConfirmationFactory,
     MacParameters macParameters,
     IKdfVisitor kdfVisitor,
     IKdfParameter kdfParameter,
     IRsaSve rsaSve)
     : base(
         entropyProvider,
         schemeParameters,
         fixedInfoFactory,
         fixedInfoParameter,
         thisPartyKeyingMaterialBuilder,
         keyConfirmationFactory,
         macParameters,
         kdfVisitor,
         kdfParameter,
         rsaSve)
 {
 }
Example #10
0
 public SchemeKts(
     IEntropyProvider entropyProvider,
     SchemeParametersIfc schemeParameters,
     IFixedInfoFactory fixedInfoFactory,
     FixedInfoParameter fixedInfoParameter,
     IIfcSecretKeyingMaterialBuilder thisPartyKeyingMaterialBuilder,
     IKeyConfirmationFactory keyConfirmationFactory,
     MacParameters macParameters,
     IKtsFactory ktsFactory,
     KtsParameter ktsParameter
     )
     : base
     (
         entropyProvider,
         schemeParameters,
         fixedInfoFactory,
         fixedInfoParameter,
         thisPartyKeyingMaterialBuilder,
         keyConfirmationFactory,
         macParameters)
 {
     _ktsFactory   = ktsFactory;
     _ktsParameter = ktsParameter;
 }
Example #11
0
 public ISchemeIfcBuilder WithFixedInfo(IFixedInfoFactory factory, FixedInfoParameter parameter)
 {
     _fixedInfoFactory   = factory;
     _fixedInfoParameter = parameter;
     return(this);
 }