private void AddServerHelloDone(OutgoingMessageBag outgoingMessages) { var serverHelloDoneMessage = new ServerHelloDoneMessage(); NetMQMessage outgoingMessage = serverHelloDoneMessage.ToNetMQMessage(); HashLocalAndRemote(outgoingMessage); outgoingMessages.AddHandshakeMessage(outgoingMessage); m_lastSentMessage = HandshakeType.ServerHelloDone; }
/// <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); }
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>())); }