Exemplo n.º 1
0
        public async Task WhenAllTestAreTcpConnectionFailedShouldReturnOneError()
        {
            EvaluatorResult expectedResult  = EvaluatorResult.INCONCLUSIVE;
            string          expectedMessage =
                "We were unable to create a TLS connection with this server. This could be because the server does not support TLS "
                + "or because Mail Check servers have been blocked. We will keep trying to test TLS with this server, so please check back later or get in touch "
                + "if you think there's a problem.";

            var mxHostTlsResults = new TlsTestResults("abc.def.gov.uk", false, false, new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null),
                                                      new BouncyCastleTlsTestResult(TlsError.TCP_CONNECTION_FAILED, "", null), null);

            IMxSecurityEvaluator          mxSecurityEvaluator = A.Fake <IMxSecurityEvaluator>();
            ILogger <EvaluationProcessor> log = A.Fake <ILogger <EvaluationProcessor> >();

            IEvaluationProcessor processor = new EvaluationProcessor(mxSecurityEvaluator, log);
            TlsResultsEvaluated  results   = await processor.Process(mxHostTlsResults);


            Assert.AreEqual(expectedResult, results.TlsRecords.Tls12AvailableWithBestCipherSuiteSelected.TlsEvaluatedResult.Result.Value);
            Assert.AreEqual(expectedMessage, results.TlsRecords.Tls12AvailableWithBestCipherSuiteSelected.TlsEvaluatedResult.Description);
        }
 public static EvaluatorOutputViewModel FromModel(EvaluatorResult model)
 {
     return(new EvaluatorOutputViewModel()
     {
         IsSuccessful = model.IsSuccessful,
         Result = model.Result,
         Diagnostics = model.Diagnostics?.Select(DiagnosticsEntryViewModel.FromModel).ToArray()
     });
 }
        private MessageType GetMessageType(EvaluatorResult tlsEvaluatedResult)
        {
            switch (tlsEvaluatedResult)
            {
            case EvaluatorResult.FAIL:
                return(MessageType.error);

            case EvaluatorResult.WARNING:
                return(MessageType.warning);

            case EvaluatorResult.INCONCLUSIVE:
            case EvaluatorResult.INFORMATIONAL:
                return(MessageType.info);
            }

            throw new InvalidOperationException("unsupported result type");
        }
        public async Task Test(TlsError?tlsError, EvaluatorResult expectedEvaluatorResult, string expectedDescription)
        {
            Tls10Available tls10Available = new Tls10Available();

            BouncyCastleTlsTestResult tlsConnectionResult =
                new BouncyCastleTlsTestResult(null, null, null, null, tlsError, null, new List <string>());

            TlsTestResults connectionTestResults = TlsTestDataUtil.CreateMxHostTlsResults(
                TlsTestType.Tls10AvailableWithBestCipherSuiteSelected, tlsConnectionResult);

            List <RuleTypedTlsEvaluationResult> ruleTypedTlsEvaluationResults =
                await tls10Available.Evaluate(connectionTestResults);

            Assert.That(ruleTypedTlsEvaluationResults.Count, Is.EqualTo(1));
            Assert.That(ruleTypedTlsEvaluationResults[0].TlsEvaluatedResult.Result, Is.EqualTo(expectedEvaluatorResult));
            StringAssert.StartsWith(expectedDescription, ruleTypedTlsEvaluationResults[0].TlsEvaluatedResult.Description);
        }
Exemplo n.º 5
0
        private Status MapStatus(EvaluatorResult result)
        {
            switch (result)
            {
            case EvaluatorResult.PASS:
                return(Status.Success);

            case EvaluatorResult.WARNING:
                return(Status.Warning);

            case EvaluatorResult.FAIL:
                return(Status.Error);

            case EvaluatorResult.INCONCLUSIVE:
                return(Status.None);

            case EvaluatorResult.PENDING:
                return(Status.Pending);

            default:
                throw new ArgumentOutOfRangeException(nameof(result), result, null);
            }
        }
Exemplo n.º 6
0
 public EvaluateCompletedEventArgs(EvaluatorResult result, Exception error, bool cancelled, object userState)
     : base(error, cancelled, userState)
 {
     this.result = result;
 }
Exemplo n.º 7
0
 public EvaluateCompletedEventArgs(EvaluatorResult result, Exception error, bool cancelled, object userState)
     : base(error, cancelled, userState)
 {
     this.result = result;
 }