示例#1
0
        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;
        }
        private HandleCertificateState(
            IServiceProvider serviceProvider,

            EndConfig endConfig,
            CertificateConfig certificateConfig,

            CertificateMessage handshake)
        {
            _serviceProvider = serviceProvider;

            _endConfig         = endConfig;
            _certificateConfig = certificateConfig;

            _handshake = handshake;
        }
示例#3
0
        /// <exception cref="NetMQSecurityException">Must be able to verify the certificate.</exception>
        /// <exception cref="NetMQSecurityException">The certificate message must not be received while expecting a another message.</exception>
        private void OnCertificate(NetMQMessage incomingMessage)
        {
            if (m_lastReceivedMessage != HandshakeType.ServerHello || m_lastSentMessage != HandshakeType.ClientHello)
            {
                throw new NetMQSecurityException(NetMQSecurityErrorCode.HandshakeUnexpectedMessage, "Certificate received when expecting another message");
            }

            HashLocalAndRemote(incomingMessage);

            var certificateMessage = new CertificateMessage();

            certificateMessage.SetFromNetMQMessage(incomingMessage);

            if (!VerifyCertificate(certificateMessage.Certificate))
            {
                throw new NetMQSecurityException(NetMQSecurityErrorCode.HandshakeUnexpectedMessage, "Unable to verify certificate");
            }

            RemoteCertificate = certificateMessage.Certificate;
        }