Skip to content

Commit b53e9f6

Browse files
Use tor-interface implementation unified into libp2p-tor
1 parent 31342ca commit b53e9f6

File tree

4 files changed

+27
-38
lines changed

4 files changed

+27
-38
lines changed

Cargo.lock

Lines changed: 4 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

swap/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@ electrum-pool = { path = "../electrum-pool" }
4141
futures = { version = "0.3", default-features = false, features = ["std"] }
4242
hex = "0.4"
4343
libp2p = { version = "0.53.2", features = ["tcp", "yamux", "dns", "noise", "request-response", "ping", "rendezvous", "identify", "macros", "cbor", "json", "tokio", "serde", "rsa"] }
44-
libp2p-community-tor = { git = "https://github.com/umgefahren/libp2p-tor", rev = "e6b913e0f1ac1fc90b3ee4dd31b5511140c4a9af", features = ["listen-onion-service"] }
45-
libp2p-community-tor-interface = { git = "https://github.com/nabijaczleweli/libp2p-tor-interface", features = ["legacy-tor-provider"] }
44+
libp2p-community-tor = { git = "https://github.com/nabijaczleweli/libp2p-tor", branch = "US4", features = ["listen-onion-service", "legacy-tor-provider"] }
4645
moka = { version = "0.12", features = ["sync", "future"] }
4746
monero = { version = "0.12", features = ["serde_support"] }
4847
monero-rpc = { path = "../monero-rpc" }

swap/src/asb/network.rs

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ pub mod transport {
2929

3030
use arti_client::{config::onion_service::OnionServiceConfigBuilder, TorClient};
3131
use libp2p::{core::transport::{OptionalTransport, OrTransport}, dns, identity, tcp, Transport};
32-
use libp2p_community_tor::AddressConversion;
32+
use libp2p_community_tor::{AddressConversion, tor_interface};
3333
use tor_rtcompat::tokio::TokioRustlsRuntime;
3434
use crate::common::tor::existing_tor_config;
3535

@@ -65,31 +65,34 @@ pub mod transport {
6565
num_intro_points: u8,
6666
) -> Result<OnionTransportWithAddresses> {
6767
let (yesmaybe, maybe_tor_transport, onion_addresses) = if let Some((reuse_config, bindaddr)) = existing_tor_config() {
68-
let client = libp2p_community_tor_interface::tor_interface::legacy_tor_client::LegacyTorClient::new(reuse_config)?;
69-
let mut tor_transport = libp2p_community_tor_interface::TorInterfaceTransport::from_provider(
70-
libp2p_community_tor_interface::AddressConversion::DnsOnly, Arc::new(Mutex::new(client)), None)?;
68+
let client = tor_interface::legacy_tor_client::LegacyTorClient::new(reuse_config)?;
69+
let mut tor_transport = libp2p_community_tor::TorInterfaceTransport::from_provider(
70+
AddressConversion::DnsOnly, Arc::new(Mutex::new(client)), None)?;
7171

7272
let pk_path = config_data_dir.join(ASB_ONION_SERVICE_NICKNAME).with_extension("pk");
73-
let loaded_pk = fs::read_to_string(&pk_path).ok()
74-
.and_then(|pk| libp2p_community_tor_interface::tor_interface::tor_crypto::Ed25519PrivateKey::from_key_blob(pk.lines().next()?).ok());
73+
let pk = match fs::read_to_string(&pk_path).ok()
74+
.and_then(|pk| tor_interface::tor_crypto::Ed25519PrivateKey::from_key_blob(pk.lines().next()?).ok()) {
75+
Some(pk) => pk,
76+
None => {
77+
let pk = tor_interface::tor_crypto::Ed25519PrivateKey::generate();
78+
let _ = mode600(fs::OpenOptions::new()
79+
.create(true)
80+
.truncate(true)
81+
.write(true))
82+
.open(&pk_path)
83+
.and_then(|mut f| f.write_all(pk.to_key_blob().as_bytes()).and_then(|_| f.write_all(b"\n")));
84+
pk
85+
}
86+
};
7587

7688
let addresses = if register_hidden_service {
77-
match tor_transport.add_customised_onion_service(loaded_pk.as_ref(), ASB_ONION_SERVICE_PORT, None, bindaddr)
89+
match tor_transport.add_onion_service(&pk, ASB_ONION_SERVICE_PORT, None, Some(bindaddr))
7890
{
79-
Ok((addr, pk)) => {
91+
Ok(addr) => {
8092
tracing::debug!(
8193
%addr,
8294
"Setting up onion service for libp2p to listen on"
8395
);
84-
if loaded_pk.is_none() {
85-
let writeback = pk.to_key_blob();
86-
let _ = mode600(fs::OpenOptions::new()
87-
.create(true)
88-
.truncate(true)
89-
.write(true))
90-
.open(&pk_path)
91-
.and_then(|mut f| f.write_all(writeback.as_bytes()).and_then(|_| f.write_all(b"\n")));
92-
}
9396
vec![addr]
9497
}
9598
Err(err) => {

swap/src/common/tor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ fn is_whonix() -> bool {
1414
}
1515

1616
pub fn existing_tor_config() -> Option<(
17-
libp2p_community_tor_interface::tor_interface::legacy_tor_client::LegacyTorClientConfig,
17+
libp2p_community_tor::tor_interface::legacy_tor_client::LegacyTorClientConfig,
1818
std::net::SocketAddr,
1919
)> {
2020
if is_whonix() {
21-
Some((libp2p_community_tor_interface::tor_interface::legacy_tor_client::LegacyTorClientConfig::system_from_environment().expect("whonix always $TOR_... set"),
21+
Some((libp2p_community_tor::tor_interface::legacy_tor_client::LegacyTorClientConfig::system_from_environment().expect("whonix always $TOR_... set"),
2222
([0, 0, 0, 0], 9939).into()))
2323
} else {
2424
None

0 commit comments

Comments
 (0)