Beispiel #1
0
        /// <summary>
        /// Returns a connected and authenticated a Tor control client for the running Tor process. The caller is
        /// responsible for disposing of the returned control client.
        /// </summary>
        /// <returns>The Tor control client that is already connected and authenticated.</returns>
        public async Task <TorControlClient> GetControlClientAsync()
        {
            var client = new TorControlClient();
            await client.ConnectAsync(TorHostName, _settings.TorSettings.ControlPort).ConfigureAwait(false);

            await client.AuthenticateAsync(_settings.TorSettings.ControlPassword).ConfigureAwait(false);

            return(client);
        }
Beispiel #2
0
        public async Task <string> GetCircuitStatusAsync()
        {
            using (var client = new TorControlClient())
            {
                await client.ConnectAsync("localhost", _settings.TorControlPort).ConfigureAwait(false);

                await client.AuthenticateAsync(_settings.TorControlPassword).ConfigureAwait(false);

                return(await client.GetInfoAsync("circuit-status"));
            }
        }
Beispiel #3
0
        public async Task GetNewIdentityAsync()
        {
            using (var client = new TorControlClient())
            {
                await client.ConnectAsync("localhost", _settings.TorControlPort).ConfigureAwait(false);

                await client.AuthenticateAsync(_settings.TorControlPassword).ConfigureAwait(false);

                await client.CleanCircuitsAsync();
            }
        }
Beispiel #4
0
        public async Task <string> CloseCircuitAsync(string circuitId)
        {
            using (var client = new TorControlClient())
            {
                await client.ConnectAsync("localhost", _settings.TorControlPort).ConfigureAwait(false);

                await client.AuthenticateAsync(_settings.TorControlPassword).ConfigureAwait(false);

                return(await client.CloseCircuitAsync(circuitId));
            }
        }
Beispiel #5
0
        public async Task <string> GetNetworkStatusForORAsync(string orName)
        {
            using (var client = new TorControlClient())
            {
                await client.ConnectAsync("localhost", _settings.TorControlPort).ConfigureAwait(false);

                await client.AuthenticateAsync(_settings.TorControlPassword).ConfigureAwait(false);

                return(await client.GetInfoAsync($"ns/name/{orName}"));
            }
        }
        public async Task CanDisposeAfterFailedConnect()
        {
            TorControlClient client = null;

            try
            {
                client = new TorControlClient();
                await client.ConnectAsync("300.0.0.0", 12345);
            }
            catch
            {
            }
            finally
            {
                client.Dispose();
            }
        }