Skip to content

adamPetho/OnionSharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

OnionSharp

Implement Tor easily into your C# projects.

DISCLAIMER

The Tor implementation was completely taken out of WalletWasabi. The code was stripped of its WalletWasabi related components to serve as a general Tor implementation. I do not own this code and I'm not the intellectual owner of the code. Check WalletWasabi commits for that. The project was created for learning purposes only.

Key Features

  • Use TorSettings class to customize your Tor instance.
  • Use OnionHttpClientFactory to create TorHttpClient.
  • Use TorHttpClient to send requests.
  • Use it on client and/or server side.

How to use

// You can use the EnvironmentHelpers to grab the data dir or insert your own path/of/data/directory. 
var dataDir = EnvironmentHelpers.GetDataDir("Sample-Project");

// Create your Tor Settings
var torSetting = new TorSettings(dataDir,
			distributionFolderPath: EnvironmentHelpers.GetFullBaseDirectory(),
			terminateOnExit: true,
			TorMode.Enabled,
			socksPort: 37155,
			controlPort: 37156);

// Create and start TorProcessManager which will start tor.exe
TorProcessManager torProcessManager = new TorProcessManager(torSetting);
await torProcessManager.StartAsync(attempts: 3, CancellationToken.None);

// Create the OnionHttpFactory
var onionClientFactory = new OnionHttpClientFactory(torSetting.SocksEndpoint.ToUri("socks5"));

// Create Http Clients 
var myHttpClient = onionClientFactory.CreateClient("name-of-your-client");

// Send requests to onion address (for example)
await myHttpClient.GetAsync("http://explorerzydxu5ecjrkwceayqybizmpjjznk5izmitf2modhcusuqlid.onion/api/mempool/recent");

Don't trust, verify!

The nuget package contains a built-in tor.exe. In case you don't trust it, you can replace it with a tor.exe you get by yourself. Download tor.exe from the official site and replace the executable with your new one.

About

Implement Tor easily into your C# projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages