Ejemplo n.º 1
0
        static BoringValidationTestParameters Create(TestContext ctx, ValidationTestCategory category, BoringValidationTestType type)
        {
            var parameters = CreateParameters(category, type);

            switch (type)
            {
            case BoringValidationTestType.Simple:
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.VerifyParamType = BoringVerifyParamType.None;
                parameters.AddTrustedRoots = true;
                parameters.ExpectSuccess   = true;
                break;

            case BoringValidationTestType.SslClientParameters:
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.VerifyParamType = BoringVerifyParamType.SslClient;
                parameters.AddTrustedRoots = true;
                parameters.ExpectSuccess   = true;
                break;

            case BoringValidationTestType.NoTrustedRoots:
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.AddTrustedRoots = false;
                parameters.ExpectedResult  = BtlsX509Error.UNABLE_TO_GET_ISSUER_CERT_LOCALLY;
                break;

            case BoringValidationTestType.ExplicitTrustedRoot:
                parameters.Add(CertificateResourceType.ServerCertificateFromLocalCA);
                parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA);
                parameters.ExpectSuccess = true;
                break;

            case BoringValidationTestType.BeforeExpirationDate:
                parameters.Add(CertificateResourceType.TlsTestXamDevExpired);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.VerifyParamType = BoringVerifyParamType.CopySslServer;
                parameters.CheckTime       = new DateTime(2016, 3, 17);
                parameters.AddTrustedRoots = true;
                parameters.ExpectSuccess   = true;
                break;

            case BoringValidationTestType.AfterExpirationDate:
                parameters.Add(CertificateResourceType.TlsTestXamDevExpired);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.VerifyParamType = BoringVerifyParamType.CopySslServer;
                parameters.CheckTime       = new DateTime(2016, 4, 17);
                parameters.ExpectedResult  = BtlsX509Error.CERT_HAS_EXPIRED;
                parameters.AddTrustedRoots = true;
                break;

            case BoringValidationTestType.WrongPurpose:
                parameters.Add(CertificateResourceType.ServerCertificateFromLocalCA);
                parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA);
                parameters.VerifyParamType = BoringVerifyParamType.SslClient;
                parameters.ExpectedResult  = BtlsX509Error.INVALID_PURPOSE;
                break;

            case BoringValidationTestType.CorrectHost:
                parameters.Add(CertificateResourceType.ServerCertificateFromLocalCA);
                parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA);
                parameters.VerifyParamType = BoringVerifyParamType.CopySslServer;
                parameters.Host            = "Hamiller-Tube.local";
                parameters.ExpectSuccess   = true;
                break;

            case BoringValidationTestType.IncorrectHost:
                parameters.Add(CertificateResourceType.ServerCertificateFromLocalCA);
                parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA);
                parameters.VerifyParamType = BoringVerifyParamType.CopySslServer;
                parameters.Host            = "Hamiller-TubeX.local";
                parameters.ExpectedResult  = BtlsX509Error.HOSTNAME_MISMATCH;
                break;

            case BoringValidationTestType.MissingIntermediateCert:
                parameters.Add(CertificateResourceType.IntermediateServer);
                parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA);
                parameters.VerifyParamType = BoringVerifyParamType.CopySslServer;
                parameters.Host            = "intermediate-server.local";
                parameters.ExpectedResult  = BtlsX509Error.UNABLE_TO_GET_ISSUER_CERT_LOCALLY;
                break;

            case BoringValidationTestType.IntermediateServer:
                parameters.Add(CertificateResourceType.IntermediateServer);
                parameters.Add(CertificateResourceType.IntermediateCA);
                parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA);
                parameters.VerifyParamType = BoringVerifyParamType.CopySslServer;
                parameters.Host            = "intermediate-server.local";
                parameters.ExpectSuccess   = true;
                break;

            case BoringValidationTestType.IntermediateServerChain:
                parameters.Add(CertificateResourceType.IntermediateServer);
                parameters.Add(CertificateResourceType.IntermediateCA);
                parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA);
                parameters.AddExpectedChainEntry(CertificateResourceType.IntermediateServer);
                parameters.AddExpectedChainEntry(CertificateResourceType.IntermediateCA);
                parameters.AddExpectedChainEntry(CertificateResourceType.HamillerTubeCA);
                parameters.VerifyParamType = BoringVerifyParamType.CopySslServer;
                parameters.Host            = "intermediate-server.local";
                parameters.ExpectSuccess   = true;
                break;

            case BoringValidationTestType.WrongChainOrder:
                parameters.Add(CertificateResourceType.IntermediateCA);
                parameters.Add(CertificateResourceType.IntermediateServer);
                parameters.AddTrustedRoot(CertificateResourceType.HamillerTubeCA);
                parameters.VerifyParamType = BoringVerifyParamType.CopySslServer;
                parameters.Host            = "intermediate-server.local";
                parameters.ExpectedResult  = BtlsX509Error.INVALID_PURPOSE;
                break;

            case BoringValidationTestType.SelfSignedServer:
                parameters.Add(CertificateResourceType.SelfSignedServerCertificate);
                parameters.VerifyParamType = BoringVerifyParamType.CopySslServer;
                parameters.ExpectedResult  = BtlsX509Error.DEPTH_ZERO_SELF_SIGNED_CERT;
                break;

            case BoringValidationTestType.MartinTest:
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.AddTrustedRoots = true;
                parameters.ExpectSuccess   = true;
                break;

            default:
                ctx.AssertFail("Unsupported validation type: '{0}'.", type);
                break;
            }

            return(parameters);
        }
 public BoringValidationTestParametersAttribute(BoringValidationTestType type)
     : base(null, TestFlags.Browsable | TestFlags.ContinueOnError)
 {
     Type = type;
 }
Ejemplo n.º 3
0
        static BoringValidationTestParameters CreateParameters(ValidationTestCategory category, BoringValidationTestType type, params object[] args)
        {
            var sb = new StringBuilder();

            sb.Append(type);
            foreach (var arg in args)
            {
                sb.AppendFormat(":{0}", arg);
            }
            var name = sb.ToString();

            return(new BoringValidationTestParameters(category, type, name));
        }
Ejemplo n.º 4
0
 public BoringValidationTestParameters(ValidationTestCategory category, BoringValidationTestType type, string identifier)
     : base(category, identifier)
 {
     Type = type;
 }