public async void Hello ()
		{
			RequireMonoServer ();

			var parameters = new MonoClientAndServerParameters {
				RequireClientCertificate = true, ClientCertificate = ResourceManager.MonkeyCertificate,
				TrustedCA = ResourceManager.LocalCACertificate, VerifyPeerCertificate = true
			};

			parameters.ServerInstrumentation.Add (NegotiationState.InitialServerConnection, c => new ServerConnectionHandler (c, false));

			await Run (parameters);
		}
		public async void HelloClient ()
		{
			RequireMonoClient ();

			var certParams = new ClientCertificateParameters ();
			certParams.SignatureAndHashAlgorithms.Add (new SignatureAndHashAlgorithm (HashAlgorithmType.Sha512, SignatureAlgorithmType.Rsa));
			certParams.EnsureDefaultValues ();

			var parameters = new MonoClientAndServerParameters {
				RequireClientCertificate = true, ClientCertificate = ResourceManager.MonkeyCertificate,
				TrustedCA = ResourceManager.LocalCACertificate, VerifyPeerCertificate = true,
				ClientCertificateParameters = certParams
			};

			parameters.ClientInstrumentation.Add (NegotiationState.ServerHello, c => new ServerHelloHandler (c));

			await Run (parameters);
		}
		protected MonoClientAndServerParameters (MonoClientAndServerParameters other)
			: base (other)
		{
			ExpectedCipher = other.ExpectedCipher;
		}
		public MonoClientAndServerTestRunner (IMonoServer server, IMonoClient client, MonoClientAndServerParameters parameters)
			: base (server, client, parameters)
		{
		}
		protected MonoClientAndServerParameters (MonoClientAndServerParameters other)
			: base (other)
		{
		}