Beispiel #1
0
        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;
        }