Ejemplo n.º 1
0
        public ECDHEKeyExchange(
            IServiceProvider serviceProvider,
            IRandom random,

            MasterSecretCalculator masterSecretCalculator,
            CipherSuitesRegistry cipherSuitesRegistry,
            NamedCurvesRegistry namedCurvesRegistry,

            ECDHExchangeConfig ecdhExchangeConfig,
            SupportedGroupsConfig supportedGroupsConfig,
            CertificateConfig certificateConfig)
            : base(
                masterSecretCalculator,
                cipherSuitesRegistry,

                ecdhExchangeConfig,
                certificateConfig)
        {
            _serviceProvider = serviceProvider;
            _random          = random;

            _namedCurvesRegistry = namedCurvesRegistry;

            _supportedGroupsConfig = supportedGroupsConfig;
        }
Ejemplo n.º 2
0
        public DHServerKeyExchange(
            CertificateManager certificateManager,
            MasterSecretCalculator masterSecretCalculator,

            CertificateConfig certificateConfig)
        {
            _certificateManager     = certificateManager;
            _masterSecretCalculator = masterSecretCalculator;

            _certificateConfig = certificateConfig;
        }
Ejemplo n.º 3
0
        public virtual void HandleClientKeyExchange(ClientKeyExchangeMessage message)
        {
            var qc = ReadMessage(message);

            var sharedSecret = CalculatePoint(qc);

            var preMasterSecret = sharedSecret.X.Value.ToByteArray(Endianness.BigEndian);

            var masterSecret = MasterSecretCalculator.Compute(preMasterSecret);

            MasterSecretCalculator.ComputeKeysAndUpdateConfig(masterSecret);
        }
Ejemplo n.º 4
0
        protected ECDHKeyExchangeBase(
            MasterSecretCalculator masterSecretCalculator,
            CipherSuitesRegistry cipherSuitesRegistry,


            ECDHExchangeConfig ecdhExchangeConfig,
            CertificateConfig certificateConfig)
        {
            MasterSecretCalculator = masterSecretCalculator;
            CipherSuitesRegistry   = cipherSuitesRegistry;

            ECDHExchangeConfig = ecdhExchangeConfig;
            CertificateConfig  = certificateConfig;
        }
Ejemplo n.º 5
0
        public RSAKeyExchange(
            IRandom random,
            CertificateManager certificateManager,
            MasterSecretCalculator masterSecretCalculator,

            VersionConfig versionConfig,
            CertificateConfig certificateConfig)
        {
            _random                 = random;
            _certificateManager     = certificateManager;
            _masterSecretCalculator = masterSecretCalculator;

            _versionConfig     = versionConfig;
            _certificateConfig = certificateConfig;
        }
Ejemplo n.º 6
0
        public DHEClientKeyExchange(
            IServiceProvider serviceProvider,

            IRandom random,
            MasterSecretCalculator masterSecretCalculator,

            DHParameterConfig dhParameterConfig,
            DHExchangeConfig dhExchangeConfig)
        {
            _serviceProvider = serviceProvider;

            _random = random;
            _masterSecretCalculator = masterSecretCalculator;

            _dhParameterConfig = dhParameterConfig;
            _dhExchangeConfig  = dhExchangeConfig;
        }
Ejemplo n.º 7
0
        public ECDHKeyExchange(
            MasterSecretCalculator masterSecretCalculator,
            CertificateManager certificateManager,
            CipherSuitesRegistry cipherSuitesRegistry,
            NamedCurvesRegistry namedCurvesRegistry,

            ECDHExchangeConfig ecdhExchangeConfig,
            SupportedGroupsConfig supportedGroupsConfig,
            CertificateConfig certificateConfig)
            : base(
                masterSecretCalculator,
                cipherSuitesRegistry,

                ecdhExchangeConfig,
                certificateConfig)
        {
            _certificateManager  = certificateManager;
            _namedCurvesRegistry = namedCurvesRegistry;

            _supportedGroupsConfig = supportedGroupsConfig;
        }