private void OnCertificate(NetMQMessage incomingMessage, OutgoingMessageBag outgoingMessages) { if (m_lastReceivedMessage != HandshakeType.ServerHello || m_lastSentMessage != HandshakeType.ClientHello) { throw new NetMQSecurityException(NetMQSecurityErrorCode.HandshakeUnexpectedMessage, "Certificate received when expecting another message"); } HashLocalAndRemote(incomingMessage); CertificateMessage certificateMessage = new CertificateMessage(); certificateMessage.SetFromNetMQMessage(incomingMessage); if (!VerifyCertificate(certificateMessage.Certificate)) { throw new NetMQSecurityException(NetMQSecurityErrorCode.HandshakeUnexpectedMessage, "Unable to verify certificate"); } RemoteCertificate = certificateMessage.Certificate; }
private void AddCertificateMessage(OutgoingMessageBag outgoingMessages) { CertificateMessage certificateMessage = new CertificateMessage(); certificateMessage.Certificate = LocalCertificate; NetMQMessage outgoingMessage = certificateMessage.ToNetMQMessage(); HashLocalAndRemote(outgoingMessage); outgoingMessages.AddHandshakeMessage(outgoingMessage); m_lastSentMessage = HandshakeType.Certificate; }