Isolate default identity.
MODIFY
WalletWasabi/Tor/Socks5/TorSocks5Client.cs
WalletWasabi/Tor/Socks5/TorSocks5Client.cs
@@ -100,7 +100,17 @@ namespace WalletWasabi.Tor.Socks5
/// </summary>
public async Task HandshakeAsync(bool isolateStream = true, CancellationToken cancellationToken = default)
{
- string identity = isolateStream ? RandomString.CapitalAlphaNumeric(21) : "";
+ // https://github.com/torproject/torspec/blob/master/socks-extensions.txt
+ // The "NO AUTHENTICATION REQUIRED" (SOCKS5) authentication method [00] is
+ // supported; and as of Tor 0.2.3.2 - alpha, the "USERNAME/PASSWORD"(SOCKS5)
+ // authentication method[02] is supported too, and used as a method to
+ // implement stream isolation.As an extension to support some broken clients,
+ // we allow clients to pass "USERNAME/PASSWORD" authentication message to us
+ // even if no authentication was selected.Furthermore, we allow
+ // username / password fields of this message to be empty. This technically
+ // violates RFC1929[4], but ensures interoperability with somewhat broken
+ // SOCKS5 client implementations.
+ string identity = isolateStream ? RandomString.CapitalAlphaNumeric(21) : "default";
await HandshakeAsync(identity, cancellationToken).ConfigureAwait(false);
}

Isolate default identity.