public ProxyServer(FirewallCheckCallback firewallCallback, MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback, BadCertificateCallback badCertificateCallback = null)
        {
            if (firewallCallback == null)
            {
                throw new ArgumentException("The firewall callback MUST be defined.");
            }

            if (messageBeginCallback == null)
            {
                throw new ArgumentException("The message begin callback MUST be defined.");
            }

            if (messageEndCallback == null)
            {
                throw new ArgumentException("The message end callback MUST be defined.");
            }

            m_fwCallback = firewallCallback;
            FilterResponseHandlerFactory.Default.MessageBeginCallback   = messageBeginCallback;
            FilterResponseHandlerFactory.Default.MessageEndCallback     = messageEndCallback;
            FilterResponseHandlerFactory.Default.BadCertificateCallback = badCertificateCallback;
        }
Exemple #2
0
 public AbstractFilterResponseHandler(MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback)
 {
     m_msgBeginCb = messageBeginCallback;
     m_msgEndCb   = messageEndCallback;
 }
 /// <summary>
 /// Creates a new WindowsProxyServer instance. Really there should only ever be a single instance
 /// created at a time.
 /// </summary>
 /// <param name="authorityCommonName">
 /// The common name to use when generating the certificate authority. Basically, all SSL
 /// sites will show that they are secured by a certificate authority with this name that is
 /// supplied here.
 /// </param>
 /// <param name="firewallCallback">
 /// The firewall check callback. Used to allow the user to determine if a binary should have
 /// its associated traffic pushed through the filter or not.
 /// </param>
 /// <param name="messageBeginCallback">
 /// Message begin callback enables users to inspect and filter messages immediately after
 /// they begin. Users also have the power to direct how the proxy will continue to handle the
 /// overall transaction that this message belongs to.
 /// </param>
 /// <param name="messageEndCallback">
 /// Message end callback enables users to inspect and filter messages once they have completed.
 /// </param>
 /// <exception cref="ArgumentException">
 /// Will throw if any one of the callbacks are not defined.
 /// </exception>
 public WindowsProxyServer(string authorityCommonName, FirewallCheckCallback firewallCallback, MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback) : base(authorityCommonName, firewallCallback, messageBeginCallback, messageEndCallback)
 {
 }
Exemple #4
0
 public FilterHttpResponseHandler(MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback) : base(messageBeginCallback, messageEndCallback)
 {
 }
Exemple #5
0
 public FilterHttpResponseHandler(MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback, BadCertificateCallback badCertificateCallback) : base(messageBeginCallback, messageEndCallback, badCertificateCallback)
 {
 }
Exemple #6
0
 public WindowsProxyServer(FirewallCheckCallback firewallCallback, MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback, BadCertificateCallback badCertificateCallback)
     : base(firewallCallback, messageBeginCallback, messageEndCallback, badCertificateCallback)
 {
 }
 public FilterWebsocketHandler(MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback) : base(messageBeginCallback, messageEndCallback)
 {
 }
Exemple #8
0
 public WindowsProxyServer(FirewallCheckCallback firewallCallback, MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback) : base(firewallCallback, messageBeginCallback, messageEndCallback)
 {
 }
 public FilterWebsocketHandler(MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback) : base(messageBeginCallback, messageEndCallback)
 {
     Console.WriteLine("New FilterWebsocketHandler");
 }
 public FilterPassthroughResponseHandler(MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback) : base(messageBeginCallback, messageEndCallback)
 {
 }
 public AbstractFilterResponseHandler(MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback, BadCertificateCallback onBadCertificate)
 {
     m_msgBeginCb       = messageBeginCallback;
     m_msgEndCb         = messageEndCallback;
     m_onBadCertificate = onBadCertificate;
 }
Exemple #12
0
        /// <summary>
        /// Creates a new proxy server instance. Really there should only ever be a single instance
        /// created at a time.
        /// </summary>
        /// <param name="authorityCommonName">
        /// The common name to use when generating the certificate authority. Basically, all SSL
        /// sites will show that they are secured by a certificate authority with this name that is
        /// supplied here.
        /// </param>
        /// <param name="firewallCallback">
        /// The firewall check callback. Used to allow the user to determine if a binary should have
        /// its associated traffic pushed through the filter or not.
        /// </param>
        /// <param name="messageBeginCallback">
        /// Message begin callback enables users to inspect and filter messages immediately after
        /// they begin. Users also have the power to direct how the proxy will continue to handle the
        /// overall transaction that this message belongs to.
        /// </param>
        /// <param name="messageEndCallback">
        /// Message end callback enables users to inspect and filter messages once they have completed.
        /// </param>
        /// <exception cref="ArgumentException">
        /// Will throw if any one of the callbacks are not defined.
        /// </exception>
        public ProxyServer(string authorityCommonName, FirewallCheckCallback firewallCallback, MessageBeginCallback messageBeginCallback, MessageEndCallback messageEndCallback)
        {
            m_tlsConnAdapter = new TlsSniConnectionAdapter(authorityCommonName);
            m_fwCallback     = firewallCallback ?? throw new ArgumentException("The firewall callback MUST be defined.");
            FilterResponseHandlerFactory.Default.MessageBeginCallback = messageBeginCallback ?? throw new ArgumentException("The message begin callback MUST be defined.");
            FilterResponseHandlerFactory.Default.MessageEndCallback   = messageEndCallback ?? throw new ArgumentException("The message end callback MUST be defined.");

            // Hook the cert verification callback.
            ServicePointManager.ServerCertificateValidationCallback += CertificateVerificationHandler;
        }