Exemple #1
0
        public void Send_Asynchronous_InvalidSignature_Ignore()
        {
            Settings.IgnoreCertificateErrorOnSend = true;
            CertificateValidator.SetError((c, u) => (u == X509KeyUsageFlags.NonRepudiation) ? CertificateErrors.StartDate : CertificateErrors.None);

            var message = CreateMessage();

            RunAndHandleMessagingException(Client.SendAndContinueAsync(Logger, message), EventIds.LocalCertificate);
        }
Exemple #2
0
        public void Send_Asynchronous_InvalidEncryption_Ignore()
        {
            Settings.IgnoreCertificateErrorOnSend = true;
            CertificateValidator.SetError((c, u) => (u == X509KeyUsageFlags.DataEncipherment) ? CertificateErrors.StartDate : CertificateErrors.None);

            var message = CreateMessage();

            RunAndHandleException(Client.SendAndContinueAsync(Logger, message));
        }
Exemple #3
0
        public void Asynchronous_Receive_LocalCertificateRevokedUnknown()
        {
            CertificateValidator.SetError(
                (c, u) => (u == X509KeyUsageFlags.DataEncipherment) ? CertificateErrors.RevokedUnknown : CertificateErrors.None);

            RunAsynchronousReceive(
                postValidation: () =>
            {
                Assert.AreEqual(0, MockFactory.Helsenorge.Asynchronous.Messages.Count);
                Assert.AreEqual(0, MockFactory.OtherParty.Error.Messages.Count);
                Assert.IsNotNull(MockLoggerProvider.FindEntry(EventIds.LocalCertificateRevocation));
            },
                wait: () => _completedCalled,
                received: (m) => { Assert.IsTrue(m.DecryptionError != CertificateErrors.None); },
                messageModification: (m) => { });
        }
Exemple #4
0
        public void Asynchronous_Receive_RemoteCertificateRevokedUnknown()
        {
            CertificateValidator.SetError(
                (c, u) => (u == X509KeyUsageFlags.NonRepudiation) ? CertificateErrors.RevokedUnknown : CertificateErrors.None);

            RunAsynchronousReceive(
                postValidation: () =>
            {
                Assert.AreEqual(0, MockFactory.Helsenorge.Asynchronous.Messages.Count);
                Assert.AreEqual(1, MockFactory.OtherParty.Error.Messages.Count);
                Assert.IsNotNull(MockLoggerProvider.FindEntry(EventIds.RemoteCertificateRevocation));
                CheckError(MockFactory.OtherParty.Error.Messages, "transport:revoked-certificate", "Unable to determine revocation status", string.Empty);
            },
                wait: () => _completedCalled,
                received: (m) => { Assert.IsTrue(m.SignatureError != CertificateErrors.None); },
                messageModification: (m) => { });
        }
Exemple #5
0
        public void Asynchronous_Receive_RemoteCertificateMultiple()
        {
            CertificateValidator.SetError(
                (c, u) =>
                (u == X509KeyUsageFlags.NonRepudiation)
                                                   ? CertificateErrors.StartDate | CertificateErrors.EndDate
                                                   : CertificateErrors.None);

            RunAsynchronousReceive(
                postValidation: () =>
            {
                Assert.AreEqual(0, MockFactory.Helsenorge.Asynchronous.Messages.Count);
                Assert.AreEqual(1, MockFactory.OtherParty.Error.Messages.Count);
                Assert.IsNotNull(MockLoggerProvider.FindEntry(EventIds.RemoteCertificate));
                CheckError(MockFactory.OtherParty.Error.Messages, "transport:invalid-certificate", "More than one error with certificate", string.Empty);
            },
                wait: () => _completedCalled,
                received: (m) => { Assert.IsTrue(m.SignatureError != CertificateErrors.None); },
                messageModification: (m) => { });
        }
Exemple #6
0
        public void Asynchronous_Receive_RemoteCertificateMissing()
        {
            CertificateValidator.SetError((c, u) => CertificateErrors.Missing);

            RunAsynchronousReceive(
                postValidation: () =>
            {
                Assert.AreEqual(0, MockFactory.Helsenorge.Asynchronous.Messages.Count);
                Assert.AreEqual(0, MockFactory.OtherParty.Error.Messages.Count);
                var error = MockLoggerProvider.Entries
                            .Where(a =>
                                   a.LogLevel == LogLevel.Warning &&
                                   a.Message.Contains("Certificate is missing for message. MessageFunction: DIALOG_INNBYGGER_EKONTAKT"))
                            .ToList();
                Assert.AreEqual(1, error.Count);
                Assert.IsTrue(error.Single().Message.Contains("MessageFunction: DIALOG_INNBYGGER_EKONTAKT FromHerId: 93252 ToHerId: 93238"));
            },
                wait: () => _completedCalled,
                received: (m) => { Assert.IsTrue(m.SignatureError == CertificateErrors.Missing); },
                messageModification: (m) => { });
        }