예제 #1
0
        private void AddServerHelloDone(OutgoingMessageBag outgoingMessages)
        {
            var          serverHelloDoneMessage = new ServerHelloDoneMessage();
            NetMQMessage outgoingMessage        = serverHelloDoneMessage.ToNetMQMessage();

            HashLocalAndRemote(outgoingMessage);
            outgoingMessages.AddHandshakeMessage(outgoingMessage);
            m_lastSentMessage = HandshakeType.ServerHelloDone;
        }
예제 #2
0
        /// <exception cref="NetMQSecurityException">The server hello message must not be received while expecting another message.</exception>
        private void OnServerHelloDone(NetMQMessage incomingMessage,
                                       OutgoingMessageBag outgoingMessages)
        {
            if (m_lastReceivedMessage != HandshakeType.Certificate || m_lastSentMessage != HandshakeType.ClientHello)
            {
                throw new NetMQSecurityException(NetMQSecurityErrorCode.HandshakeUnexpectedMessage, "Server Hello Done received when expecting another message");
            }

            HashLocalAndRemote(incomingMessage);

            var serverHelloDoneMessage = new ServerHelloDoneMessage();

            serverHelloDoneMessage.SetFromNetMQMessage(incomingMessage);

            AddClientKeyExchange(outgoingMessages);

            InvokeChangeCipherSuite();

            AddFinished(outgoingMessages);
        }
예제 #3
0
        public static HandleServerHelloDoneState New(IServiceProvider serviceProvider, ServerHelloDoneMessage handshake)
        {
            return(new HandleServerHelloDoneState(
                       serviceProvider,
                       serviceProvider.GetRequiredService <ICipherSuitesProvider>(),

                       serviceProvider.GetRequiredService <Connection>(),
                       serviceProvider.GetRequiredService <HandshakeWriter>(),
                       serviceProvider.GetRequiredService <HandshakeFinishedService>(),

                       serviceProvider.GetRequiredService <CipherSuiteConfig>(),
                       serviceProvider.GetRequiredService <VersionConfig>()));
        }