コード例 #1
0
		protected RenegotiationInstrumentParameters (RenegotiationInstrumentParameters other)
			: base (other)
		{
			Type = other.Type;
			ClientRenegotiationFlags = other.ClientRenegotiationFlags;
			ServerRenegotiationFlags = other.ServerRenegotiationFlags;
			RequestServerRenegotiation = other.RequestServerRenegotiation;
			RequestClientRenegotiation = other.RequestClientRenegotiation;
			QueueServerReadFirst = other.QueueServerReadFirst;
			ServerWriteDuringClientRenegotiation = other.ServerWriteDuringClientRenegotiation;
			NeedCustomCertificateSelectionCallback = other.NeedCustomCertificateSelectionCallback;
		}
コード例 #2
0
 protected RenegotiationInstrumentParameters(RenegotiationInstrumentParameters other)
     : base(other)
 {
     Type = other.Type;
     ClientRenegotiationFlags               = other.ClientRenegotiationFlags;
     ServerRenegotiationFlags               = other.ServerRenegotiationFlags;
     RequestServerRenegotiation             = other.RequestServerRenegotiation;
     RequestClientRenegotiation             = other.RequestClientRenegotiation;
     QueueServerReadFirst                   = other.QueueServerReadFirst;
     ServerWriteDuringClientRenegotiation   = other.ServerWriteDuringClientRenegotiation;
     NeedCustomCertificateSelectionCallback = other.NeedCustomCertificateSelectionCallback;
 }
コード例 #3
0
 public RenegotiationInstrumentParameters(InstrumentationCategory category, RenegotiationInstrumentType type, string identifier, IServerCertificate certificate)
     : base(category, identifier, certificate)
 {
     Type = type;
 }
コード例 #4
0
 public RenegotiationInstrumentParametersAttribute(RenegotiationInstrumentType type)
     : base(null, TestFlags.Browsable | TestFlags.ContinueOnError)
 {
     Type = type;
 }
コード例 #5
0
        static RenegotiationInstrumentParameters Create(TestContext ctx, InstrumentationCategory category, RenegotiationInstrumentType type)
        {
            var parameters = CreateParameters(category, type);

            switch (type)
            {
            case RenegotiationInstrumentType.RequestRenegotiation:
                parameters.Add(HandshakeInstrumentType.RequestServerRenegotiation);
                break;

            case RenegotiationInstrumentType.SendBlobBeforeHelloRequest:
                parameters.Add(HandshakeInstrumentType.RequestServerRenegotiation, HandshakeInstrumentType.SendBlobBeforeHelloRequest);
                break;

            case RenegotiationInstrumentType.SendBlobAfterHelloRequest:
                parameters.Add(HandshakeInstrumentType.RequestServerRenegotiation, HandshakeInstrumentType.SendBlobAfterHelloRequest);
                break;

            case RenegotiationInstrumentType.SendBlobBeforeAndAfterHelloRequest:
                parameters.Add(HandshakeInstrumentType.RequestServerRenegotiation);
                parameters.Add(HandshakeInstrumentType.SendBlobBeforeHelloRequest, HandshakeInstrumentType.SendBlobAfterHelloRequest);
                break;

            case RenegotiationInstrumentType.SendDuplicateHelloRequest:
                parameters.Add(HandshakeInstrumentType.RequestServerRenegotiation, HandshakeInstrumentType.SendDuplicateHelloRequest);
                break;

            case RenegotiationInstrumentType.RequestServerRenegotiation:
                parameters.RequestServerRenegotiation = true;
                break;

            case RenegotiationInstrumentType.RequestServerRenegotiationWithPendingRead:
                parameters.RequestServerRenegotiation = true;
                parameters.QueueServerReadFirst       = true;
                break;

            case RenegotiationInstrumentType.SendBlobBeforeRenegotiatingHello:
                parameters.RequestServerRenegotiation = true;
                parameters.QueueServerReadFirst       = true;
                parameters.Add(HandshakeInstrumentType.SendBlobBeforeRenegotiatingHello);
                break;

            case RenegotiationInstrumentType.SendBlobBeforeRenegotiatingHelloNoPendingRead:
                parameters.RequestServerRenegotiation = true;
                parameters.Add(HandshakeInstrumentType.SendBlobBeforeRenegotiatingHello);
                break;

            case RenegotiationInstrumentType.RequestClientRenegotiation:
                parameters.RequestClientRenegotiation = true;
                break;

            case RenegotiationInstrumentType.RequestClientRenegotiationWithPendingWrite:
                parameters.RequestClientRenegotiation           = true;
                parameters.ServerWriteDuringClientRenegotiation = true;
                parameters.UseStreamInstrumentation             = true;
                break;

            case RenegotiationInstrumentType.MartinTest:
                parameters.RequestServerRenegotiation = true;
                parameters.Add(HandshakeInstrumentType.AskForClientCertificate);
                parameters.NeedCustomCertificateSelectionCallback = true;
                parameters.EnableDebugging = true;
                break;

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

            return(parameters);
        }
コード例 #6
0
        static RenegotiationInstrumentParameters CreateParameters(InstrumentationCategory category, RenegotiationInstrumentType 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 RenegotiationInstrumentParameters(category, type, name, ResourceManager.SelfSignedServerCertificate)
            {
                ClientCertificateValidator = AcceptAnyCertificate, ServerCertificateValidator = AcceptAnyCertificate,
                ProtocolVersion = ProtocolVersions.Tls12
            });
        }
コード例 #7
0
		public RenegotiationInstrumentParameters (InstrumentationCategory category, RenegotiationInstrumentType type, string identifier, IServerCertificate certificate)
			: base (category, identifier, certificate)
		{
			Type = type;
		}
コード例 #8
0
		static RenegotiationInstrumentParameters Create (TestContext ctx, InstrumentationCategory category, RenegotiationInstrumentType type)
		{
			var parameters = CreateParameters (category, type);

			switch (type) {
			case RenegotiationInstrumentType.RequestRenegotiation:
				parameters.Add (HandshakeInstrumentType.RequestServerRenegotiation);
				break;

			case RenegotiationInstrumentType.SendBlobBeforeHelloRequest:
				parameters.Add (HandshakeInstrumentType.RequestServerRenegotiation, HandshakeInstrumentType.SendBlobBeforeHelloRequest);
				break;

			case RenegotiationInstrumentType.SendBlobAfterHelloRequest:
				parameters.Add (HandshakeInstrumentType.RequestServerRenegotiation, HandshakeInstrumentType.SendBlobAfterHelloRequest);
				break;

			case RenegotiationInstrumentType.SendBlobBeforeAndAfterHelloRequest:
				parameters.Add (HandshakeInstrumentType.RequestServerRenegotiation);
				parameters.Add (HandshakeInstrumentType.SendBlobBeforeHelloRequest, HandshakeInstrumentType.SendBlobAfterHelloRequest);
				break;

			case RenegotiationInstrumentType.SendDuplicateHelloRequest:
				parameters.Add (HandshakeInstrumentType.RequestServerRenegotiation, HandshakeInstrumentType.SendDuplicateHelloRequest);
				break;

			case RenegotiationInstrumentType.RequestServerRenegotiation:
				parameters.RequestServerRenegotiation = true;
				break;

			case RenegotiationInstrumentType.RequestServerRenegotiationWithPendingRead:
				parameters.RequestServerRenegotiation = true;
				parameters.QueueServerReadFirst = true;
				break;

			case RenegotiationInstrumentType.SendBlobBeforeRenegotiatingHello:
				parameters.RequestServerRenegotiation = true;
				parameters.QueueServerReadFirst = true;
				parameters.Add (HandshakeInstrumentType.SendBlobBeforeRenegotiatingHello);
				break;

			case RenegotiationInstrumentType.SendBlobBeforeRenegotiatingHelloNoPendingRead:
				parameters.RequestServerRenegotiation = true;
				parameters.Add (HandshakeInstrumentType.SendBlobBeforeRenegotiatingHello);
				break;

			case RenegotiationInstrumentType.RequestClientRenegotiation:
				parameters.RequestClientRenegotiation = true;
				break;

			case RenegotiationInstrumentType.RequestClientRenegotiationWithPendingWrite:
				parameters.RequestClientRenegotiation = true;
				parameters.ServerWriteDuringClientRenegotiation = true;
				parameters.UseStreamInstrumentation = true;
				break;

			case RenegotiationInstrumentType.MartinTest:
				parameters.RequestServerRenegotiation = true;
				parameters.Add (HandshakeInstrumentType.AskForClientCertificate);
				parameters.NeedCustomCertificateSelectionCallback = true;
				parameters.EnableDebugging = true;
				break;

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

			return parameters;
		}
コード例 #9
0
		static RenegotiationInstrumentParameters CreateParameters (InstrumentationCategory category, RenegotiationInstrumentType 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 RenegotiationInstrumentParameters (category, type, name, ResourceManager.SelfSignedServerCertificate) {
				ClientCertificateValidator = AcceptAnyCertificate, ServerCertificateValidator = AcceptAnyCertificate,
				ProtocolVersion = ProtocolVersions.Tls12
			};
		}