aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Jacq <mig@mig5.net>2021-08-27 15:52:29 +1000
committerMiguel Jacq <mig@mig5.net>2021-08-27 15:52:29 +1000
commit0bf8f53d30ded17dde0b3ebf66d98ea7d8e5313d (patch)
treef90e773c3951188248ac3085de31db71f29451cf
parentf63e0c37d10dda759554321e7bf36a64477daaaa (diff)
downloadonionshare-0bf8f53d30ded17dde0b3ebf66d98ea7d8e5313d.tar.gz
onionshare-0bf8f53d30ded17dde0b3ebf66d98ea7d8e5313d.zip
ClientAuthV3 fixes
* Remove Client Auth as an explicit option (it's on by default). * Update wording about Public mode * Fix tuple error when raising TorTooOldStealth exception in CLI * Move Private Key button next to URL button in GUI * Replace visual references of ClientAuth to Private Key * Remove HTTPAuth Flask dependency and remove a lot of code to do with password generation, 401 auth triggers/invalid password rate limit detection etc * Test updates * Remove obsolete locale keys
-rw-r--r--cli/onionshare_cli/__init__.py64
-rw-r--r--cli/onionshare_cli/mode_settings.py3
-rw-r--r--cli/onionshare_cli/onion.py10
-rw-r--r--cli/onionshare_cli/onionshare.py4
-rw-r--r--cli/onionshare_cli/resources/templates/401.html21
-rw-r--r--cli/onionshare_cli/web/web.py88
-rw-r--r--cli/poetry.lock18
-rw-r--r--cli/pyproject.toml3
-rw-r--r--cli/tests/test_cli_web.py90
-rw-r--r--desktop/src/onionshare/main_window.py2
-rw-r--r--desktop/src/onionshare/resources/locale/af.json1
-rw-r--r--desktop/src/onionshare/resources/locale/am.json1
-rw-r--r--desktop/src/onionshare/resources/locale/ar.json2
-rw-r--r--desktop/src/onionshare/resources/locale/bg.json1
-rw-r--r--desktop/src/onionshare/resources/locale/bn.json2
-rw-r--r--desktop/src/onionshare/resources/locale/ca.json3
-rw-r--r--desktop/src/onionshare/resources/locale/ckb.json1
-rw-r--r--desktop/src/onionshare/resources/locale/da.json3
-rw-r--r--desktop/src/onionshare/resources/locale/de.json5
-rw-r--r--desktop/src/onionshare/resources/locale/el.json2
-rw-r--r--desktop/src/onionshare/resources/locale/en.json20
-rw-r--r--desktop/src/onionshare/resources/locale/es.json3
-rw-r--r--desktop/src/onionshare/resources/locale/fa.json1
-rw-r--r--desktop/src/onionshare/resources/locale/fi.json2
-rw-r--r--desktop/src/onionshare/resources/locale/fr.json3
-rw-r--r--desktop/src/onionshare/resources/locale/ga.json1
-rw-r--r--desktop/src/onionshare/resources/locale/gl.json1
-rw-r--r--desktop/src/onionshare/resources/locale/gu.json1
-rw-r--r--desktop/src/onionshare/resources/locale/he.json1
-rw-r--r--desktop/src/onionshare/resources/locale/hi.json1
-rw-r--r--desktop/src/onionshare/resources/locale/hr.json2
-rw-r--r--desktop/src/onionshare/resources/locale/hu.json1
-rw-r--r--desktop/src/onionshare/resources/locale/id.json2
-rw-r--r--desktop/src/onionshare/resources/locale/is.json3
-rw-r--r--desktop/src/onionshare/resources/locale/it.json2
-rw-r--r--desktop/src/onionshare/resources/locale/ja.json2
-rw-r--r--desktop/src/onionshare/resources/locale/ka.json1
-rw-r--r--desktop/src/onionshare/resources/locale/km.json1
-rw-r--r--desktop/src/onionshare/resources/locale/ko.json1
-rw-r--r--desktop/src/onionshare/resources/locale/lg.json1
-rw-r--r--desktop/src/onionshare/resources/locale/lt.json2
-rw-r--r--desktop/src/onionshare/resources/locale/mk.json1
-rw-r--r--desktop/src/onionshare/resources/locale/ms.json1
-rw-r--r--desktop/src/onionshare/resources/locale/nb_NO.json3
-rw-r--r--desktop/src/onionshare/resources/locale/nl.json2
-rw-r--r--desktop/src/onionshare/resources/locale/pa.json1
-rw-r--r--desktop/src/onionshare/resources/locale/pl.json2
-rw-r--r--desktop/src/onionshare/resources/locale/pt_BR.json2
-rw-r--r--desktop/src/onionshare/resources/locale/pt_PT.json2
-rw-r--r--desktop/src/onionshare/resources/locale/ro.json1
-rw-r--r--desktop/src/onionshare/resources/locale/ru.json2
-rw-r--r--desktop/src/onionshare/resources/locale/si.json1
-rw-r--r--desktop/src/onionshare/resources/locale/sk.json1
-rw-r--r--desktop/src/onionshare/resources/locale/sl.json1
-rw-r--r--desktop/src/onionshare/resources/locale/sn.json1
-rw-r--r--desktop/src/onionshare/resources/locale/sr_Latn.json2
-rw-r--r--desktop/src/onionshare/resources/locale/sv.json3
-rw-r--r--desktop/src/onionshare/resources/locale/sw.json1
-rw-r--r--desktop/src/onionshare/resources/locale/te.json1
-rw-r--r--desktop/src/onionshare/resources/locale/tr.json3
-rw-r--r--desktop/src/onionshare/resources/locale/uk.json2
-rw-r--r--desktop/src/onionshare/resources/locale/wo.json1
-rw-r--r--desktop/src/onionshare/resources/locale/yo.json1
-rw-r--r--desktop/src/onionshare/resources/locale/zh_Hans.json2
-rw-r--r--desktop/src/onionshare/resources/locale/zh_Hant.json2
-rw-r--r--desktop/src/onionshare/tab/mode/__init__.py2
-rw-r--r--desktop/src/onionshare/tab/mode/chat_mode/__init__.py1
-rw-r--r--desktop/src/onionshare/tab/mode/mode_settings_widget.py18
-rw-r--r--desktop/src/onionshare/tab/mode/receive_mode/__init__.py1
-rw-r--r--desktop/src/onionshare/tab/mode/share_mode/__init__.py1
-rw-r--r--desktop/src/onionshare/tab/mode/website_mode/__init__.py1
-rw-r--r--desktop/src/onionshare/tab/server_status.py61
-rw-r--r--desktop/src/onionshare/tab/tab.py5
-rw-r--r--desktop/src/onionshare/threads.py7
-rw-r--r--desktop/tests/gui_base_test.py47
-rw-r--r--desktop/tests/test_gui_chat.py22
-rw-r--r--desktop/tests/test_gui_share.py116
-rw-r--r--desktop/tests/test_gui_website.py23
78 files changed, 110 insertions, 610 deletions
diff --git a/cli/onionshare_cli/__init__.py b/cli/onionshare_cli/__init__.py
index b5595367..a359f770 100644
--- a/cli/onionshare_cli/__init__.py
+++ b/cli/onionshare_cli/__init__.py
@@ -38,14 +38,6 @@ from .onionshare import OnionShare
from .mode_settings import ModeSettings
-def build_url(mode_settings, app, web):
- # Build the URL
- if mode_settings.get("general", "public"):
- return f"http://{app.onion_host}"
- else:
- return f"http://onionshare:{web.password}@{app.onion_host}"
-
-
def main(cwd=None):
"""
The main() function implements all of the logic that the command-line version of
@@ -113,7 +105,7 @@ def main(cwd=None):
action="store_true",
dest="public",
default=False,
- help="Don't use a password",
+ help="Don't use a private key",
)
parser.add_argument(
"--auto-start-timer",
@@ -129,13 +121,6 @@ def main(cwd=None):
default=0,
help="Stop onion service at schedule time (N seconds from now)",
)
- parser.add_argument(
- "--client-auth",
- action="store_true",
- dest="client_auth",
- default=False,
- help="Use client authorization",
- )
# Share args
parser.add_argument(
"--no-autostop-sharing",
@@ -208,7 +193,6 @@ def main(cwd=None):
public = bool(args.public)
autostart_timer = int(args.autostart_timer)
autostop_timer = int(args.autostop_timer)
- client_auth = bool(args.client_auth)
autostop_sharing = not bool(args.no_autostop_sharing)
data_dir = args.data_dir
webhook_url = args.webhook_url
@@ -249,7 +233,6 @@ def main(cwd=None):
mode_settings.set("general", "public", public)
mode_settings.set("general", "autostart_timer", autostart_timer)
mode_settings.set("general", "autostop_timer", autostop_timer)
- mode_settings.set("general", "client_auth", client_auth)
if mode == "share":
mode_settings.set("share", "autostop_sharing", autostop_sharing)
if mode == "receive":
@@ -336,11 +319,6 @@ def main(cwd=None):
try:
common.settings.load()
- if mode_settings.get("general", "public"):
- web.password = None
- else:
- web.generate_password(mode_settings.get("onion", "password"))
-
# Receive mode needs to know the tor proxy details for webhooks
if mode == "receive":
if local_only:
@@ -365,7 +343,7 @@ def main(cwd=None):
sys.exit()
app.start_onion_service(mode, mode_settings, False)
- url = build_url(mode_settings, app, web)
+ url = f"http://{app.onion_host}"
schedule = datetime.now() + timedelta(seconds=autostart_timer)
if mode == "receive":
print(
@@ -378,21 +356,21 @@ def main(cwd=None):
"what you are doing."
)
print("")
- if mode_settings.get("general", "client_auth"):
+ if not mode_settings.get("general", "public"):
print(
- f"Give this address and ClientAuth line to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}"
+ f"Give this address and private key to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}"
)
- print(f"ClientAuth: {app.auth_string}")
+ print(f"Private key: {app.auth_string}")
else:
print(
f"Give this address to your sender, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}"
)
else:
- if mode_settings.get("general", "client_auth"):
+ if not mode_settings.get("general", "public"):
print(
- f"Give this address and ClientAuth line to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}"
+ f"Give this address and private key to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}"
)
- print(f"ClientAuth: {app.auth_string}")
+ print(f"Private key: {app.auth_string}")
else:
print(
f"Give this address to your recipient, and tell them it won't be accessible until: {schedule.strftime('%I:%M:%S%p, %b %d, %y')}"
@@ -410,7 +388,6 @@ def main(cwd=None):
sys.exit()
except (TorTooOldEphemeral, TorTooOldStealth, TorErrorProtocolError) as e:
print("")
- print(e.args[0])
sys.exit()
if mode == "website":
@@ -442,21 +419,14 @@ def main(cwd=None):
t.start()
try: # Trap Ctrl-C
- # Wait for web.generate_password() to finish running
time.sleep(0.2)
# start auto-stop timer thread
if app.autostop_timer > 0:
app.autostop_timer_thread.start()
- # Save the web password if we are using a persistent private key
- if mode_settings.get("persistent", "enabled"):
- if not mode_settings.get("onion", "password"):
- mode_settings.set("onion", "password", web.password)
- # mode_settings.save()
-
# Build the URL
- url = build_url(mode_settings, app, web)
+ url = f"http://{app.onion_host}"
print("")
if autostart_timer > 0:
@@ -474,21 +444,21 @@ def main(cwd=None):
)
print("")
- if mode_settings.get("general", "client_auth"):
- print("Give this address and ClientAuth to the sender:")
+ if mode_settings.get("general", "public"):
+ print("Give this address to the sender:")
print(url)
- print(f"ClientAuth: {app.auth_string}")
else:
- print("Give this address to the sender:")
+ print("Give this address and private key to the sender:")
print(url)
+ print(f"Private key: {app.auth_string}")
else:
- if mode_settings.get("general", "client_auth"):
- print("Give this address and ClientAuth line to the recipient:")
+ if mode_settings.get("general", "public"):
+ print("Give this address to the recipient:")
print(url)
- print(f"ClientAuth: {app.auth_string}")
else:
- print("Give this address to the recipient:")
+ print("Give this address and private key to the recipient:")
print(url)
+ print(f"Private key: {app.auth_string}")
print("")
print("Press Ctrl+C to stop the server")
diff --git a/cli/onionshare_cli/mode_settings.py b/cli/onionshare_cli/mode_settings.py
index 89ca00ea..47ff1c63 100644
--- a/cli/onionshare_cli/mode_settings.py
+++ b/cli/onionshare_cli/mode_settings.py
@@ -37,8 +37,6 @@ class ModeSettings:
self.default_settings = {
"onion": {
"private_key": None,
- "hidservauth_string": None,
- "password": None,
"client_auth_priv_key": None,
"client_auth_pub_key": None,
},
@@ -48,7 +46,6 @@ class ModeSettings:
"public": False,
"autostart_timer": False,
"autostop_timer": False,
- "client_auth": False,
"service_id": None,
},
"share": {"autostop_sharing": True, "filenames": []},
diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py
index 198f05c3..7f6faa17 100644
--- a/cli/onionshare_cli/onion.py
+++ b/cli/onionshare_cli/onion.py
@@ -640,7 +640,10 @@ class Onion(object):
debug_message += f", key_content={key_content}"
self.common.log("Onion", "start_onion_service", debug_message)
- if mode_settings.get("general", "client_auth"):
+ if mode_settings.get("general", "public"):
+ client_auth_priv_key = None
+ client_auth_pub_key = None
+ else:
if not self.supports_stealth:
print(
"Your version of Tor is too old, stealth onion services are not supported"
@@ -657,9 +660,6 @@ class Onion(object):
# These should have been saved in settings from the previous run of a persistent onion
client_auth_priv_key = mode_settings.get("onion", "client_auth_priv_key")
client_auth_pub_key = mode_settings.get("onion", "client_auth_pub_key")
- else:
- client_auth_priv_key = None
- client_auth_pub_key = None
try:
if not self.supports_stealth:
@@ -701,7 +701,7 @@ class Onion(object):
# because we need to send the public key to ADD_ONION (if we restart this
# same share at a later date), and the private key to the other user for
# their Tor Browser.
- if mode_settings.get("general", "client_auth"):
+ if not mode_settings.get("general", "public"):
mode_settings.set("onion", "client_auth_priv_key", client_auth_priv_key)
mode_settings.set("onion", "client_auth_pub_key", client_auth_pub_key)
# If we were pasting the client auth directly into the filesystem behind a Tor client,
diff --git a/cli/onionshare_cli/onionshare.py b/cli/onionshare_cli/onionshare.py
index d055b639..c2711b89 100644
--- a/cli/onionshare_cli/onionshare.py
+++ b/cli/onionshare_cli/onionshare.py
@@ -74,7 +74,7 @@ class OnionShare(object):
if self.local_only:
self.onion_host = f"127.0.0.1:{self.port}"
- if mode_settings.get("general", "client_auth"):
+ if not mode_settings.get("general", "public"):
self.auth_string = "E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA"
return
@@ -82,7 +82,7 @@ class OnionShare(object):
mode, mode_settings, self.port, await_publication
)
- if mode_settings.get("general", "client_auth"):
+ if not mode_settings.get("general", "public"):
self.auth_string = self.onion.auth_string
def stop_onion_service(self, mode_settings):
diff --git a/cli/onionshare_cli/resources/templates/401.html b/cli/onionshare_cli/resources/templates/401.html
deleted file mode 100644
index 5e43ca01..00000000
--- a/cli/onionshare_cli/resources/templates/401.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-
-<head>
- <title>OnionShare: 401 Unauthorized Access</title>
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link href="{{ static_url_path }}/img/favicon.ico" rel="icon" type="image/x-icon" />
- <link rel="stylesheet" rel="subresource" type="text/css" href="{{ static_url_path }}/css/style.css" media="all">
-</head>
-
-<body>
- <div class="info-wrapper">
- <div class="info">
- <p><img class="logo" src="{{ static_url_path }}/img/logo_large.png" title="OnionShare"></p>
- <p class="info-header">401 Unauthorized Access</p>
- </div>
- </div>
-</body>
-
-</html>
diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py
index 04919185..b33e0ee1 100644
--- a/cli/onionshare_cli/web/web.py
+++ b/cli/onionshare_cli/web/web.py
@@ -34,7 +34,6 @@ from flask import (
send_file,
__version__ as flask_version,
)
-from flask_httpauth import HTTPBasicAuth
from flask_socketio import SocketIO
from .share_mode import ShareModeWeb
@@ -75,7 +74,6 @@ class Web:
REQUEST_INDIVIDUAL_FILE_CANCELED = 12
REQUEST_ERROR_DATA_DIR_CANNOT_CREATE = 13
REQUEST_OTHER = 14
- REQUEST_INVALID_PASSWORD = 15
def __init__(self, common, is_gui, mode_settings, mode="share"):
self.common = common
@@ -92,8 +90,6 @@ class Web:
)
self.app.secret_key = self.common.random_string(8)
self.generate_static_url_path()
- self.auth = HTTPBasicAuth()
- self.auth.error_handler(self.error401)
# Verbose mode?
if self.common.verbose:
@@ -132,9 +128,6 @@ class Web:
]
self.q = queue.Queue()
- self.password = None
-
- self.reset_invalid_passwords()
self.done = False
@@ -199,28 +192,6 @@ class Web:
Common web app routes between all modes.
"""
- @self.auth.get_password
- def get_pw(username):
- if username == "onionshare":
- return self.password
- else:
- return None
-
- @self.app.before_request
- def conditional_auth_check():
- # Allow static files without basic authentication
- if request.path.startswith(self.static_url_path + "/"):
- return None
-
- # If public mode is disabled, require authentication
- if not self.settings.get("general", "public"):
-
- @self.auth.login_required
- def _check_login():
- return None
-
- return _check_login()
-
@self.app.errorhandler(404)
def not_found(e):
mode = self.get_mode()
@@ -260,31 +231,6 @@ class Web:
f"{self.common.get_resource_path('static')}/img/favicon.ico"
)
- def error401(self):
- auth = request.authorization
- if auth:
- if (
- auth["username"] == "onionshare"
- and auth["password"] not in self.invalid_passwords
- ):
- print(f"Invalid password guess: {auth['password']}")
- self.add_request(Web.REQUEST_INVALID_PASSWORD, data=auth["password"])
-
- self.invalid_passwords.append(auth["password"])
- self.invalid_passwords_count += 1
-
- if self.invalid_passwords_count == 20:
- self.add_request(Web.REQUEST_RATE_LIMIT)
- self.force_shutdown()
- print(
- "Someone has made too many wrong attempts to guess your password, so OnionShare has stopped the server. Start sharing again and send the recipient a new address to share."
- )
-
- r = make_response(
- render_template("401.html", static_url_path=self.static_url_path), 401
- )
- return self.add_security_headers(r)
-
def error403(self):
self.add_request(Web.REQUEST_OTHER, request.path)
r = make_response(
@@ -362,21 +308,6 @@ class Web:
"""
self.q.put({"type": request_type, "path": path, "data": data})
- def generate_password(self, saved_password=None):
- self.common.log("Web", "generate_password", f"saved_password={saved_password}")
- if saved_password is not None and saved_password != "":
- self.password = saved_password
- self.common.log(
- "Web",
- "generate_password",
- f'saved_password sent, so password is: "{self.password}"',
- )
- else:
- self.password = self.common.build_password()
- self.common.log(
- "Web", "generate_password", f'built random password: "{self.password}"'
- )
-
def verbose_mode(self):
"""
Turn on verbose mode, which will log flask errors to a file.
@@ -386,10 +317,6 @@ class Web:
log_handler.setLevel(logging.WARNING)
self.app.logger.addHandler(log_handler)
- def reset_invalid_passwords(self):
- self.invalid_passwords_count = 0
- self.invalid_passwords = []
-
def force_shutdown(self):
"""
Stop the flask web server, from the context of the flask app.
@@ -446,18 +373,9 @@ class Web:
# To stop flask, load http://shutdown:[shutdown_password]@127.0.0.1/[shutdown_password]/shutdown
# (We're putting the shutdown_password in the path as well to make routing simpler)
if self.running:
- if self.password:
- requests.get(
- f"http://127.0.0.1:{port}/{self.shutdown_password}/shutdown",
- auth=requests.auth.HTTPBasicAuth("onionshare", self.password),
- )
- else:
- requests.get(
- f"http://127.0.0.1:{port}/{self.shutdown_password}/shutdown"
- )
-
- # Reset any password that was in use
- self.password = None
+ requests.get(
+ f"http://127.0.0.1:{port}/{self.shutdown_password}/shutdown"
+ )
def cleanup(self):
"""
diff --git a/cli/poetry.lock b/cli/poetry.lock
index 56280b59..c51e1d62 100644
--- a/cli/poetry.lock
+++ b/cli/poetry.lock
@@ -125,17 +125,6 @@ dotenv = ["python-dotenv"]
[[package]]
category = "main"
-description = "Basic and Digest HTTP authentication for Flask routes"
-name = "flask-httpauth"
-optional = false
-python-versions = "*"
-version = "4.4.0"
-
-[package.dependencies]
-Flask = "*"
-
-[[package]]
-category = "main"
description = "Socket.IO integration for Flask applications"
name = "flask-socketio"
optional = false
@@ -404,6 +393,7 @@ version = "1.8.1"
reference = "de3d03a03c7ee57c74c80e9c63cb88072d833717"
type = "git"
url = "https://github.com/onionshare/stem.git"
+
[[package]]
category = "dev"
description = "Python Library for Tom's Obvious, Minimal Language"
@@ -468,7 +458,7 @@ docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
[metadata]
-content-hash = "ff0a546f5801be6b68336dfe7ade607ec2dd8c456fe17938be964f36bbe7d193"
+content-hash = "181891640e59dac730905019444d42ef8e99da0c34c96fb8a616781661bae537"
python-versions = "^3.6"
[metadata.files]
@@ -559,10 +549,6 @@ flask = [
{file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"},
{file = "Flask-1.1.4.tar.gz", hash = "sha256:0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196"},
]
-flask-httpauth = [
- {file = "Flask-HTTPAuth-4.4.0.tar.gz", hash = "sha256:bcaaa7a35a3cba0b2eafd4f113b3016bf70eb78087456d96484c3c18928b813a"},
- {file = "Flask_HTTPAuth-4.4.0-py2.py3-none-any.whl", hash = "sha256:d9131122cdc5709dda63790f6e9b3142d8101447d424b0b95ffd4ee279f49539"},
-]
flask-socketio = [
{file = "Flask-SocketIO-5.0.1.tar.gz", hash = "sha256:5c4319f5214ada20807857dc8fdf3dc7d2afe8d6dd38f5c516c72e2be47d2227"},
{file = "Flask_SocketIO-5.0.1-py2.py3-none-any.whl", hash = "sha256:5d9a4438bafd806c5a3b832e74b69758781a8ee26fb6c9b1dbdda9b4fced432e"},
diff --git a/cli/pyproject.toml b/cli/pyproject.toml
index a60428e0..e0c0f55f 100644
--- a/cli/pyproject.toml
+++ b/cli/pyproject.toml
@@ -19,7 +19,6 @@ classifiers = [
python = "^3.6"
click = "*"
flask = "1.1.4"
-flask-httpauth = "*"
flask-socketio = "5.0.1"
psutil = "*"
pysocks = "*"
@@ -30,7 +29,7 @@ eventlet = "*"
setuptools = "*"
pynacl = "^1.4.0"
colorama = "*"
-stem = {git = "https://github.com/onionshare/stem.git", rev = "maint"}
+stem = {git = "https://github.com/onionshare/stem.git", rev = "1.8.1"}
[tool.poetry.dev-dependencies]
pytest = "*"
diff --git a/cli/tests/test_cli_web.py b/cli/tests/test_cli_web.py
index f8c96f9c..f2b1af62 100644
--- a/cli/tests/test_cli_web.py
+++ b/cli/tests/test_cli_web.py
@@ -48,7 +48,6 @@ def web_obj(temp_dir, common_obj, mode, num_files=0):
common_obj.settings = Settings(common_obj)
mode_settings = ModeSettings(common_obj)
web = Web(common_obj, False, mode_settings, mode)
- web.generate_password()
web.running = True
web.cleanup_filenames == []
@@ -75,23 +74,13 @@ class TestWeb:
web = web_obj(temp_dir, common_obj, "share", 3)
assert web.mode == "share"
with web.app.test_client() as c:
- # Load / without auth
+ # Load /
res = c.get("/")
res.get_data()
- assert res.status_code == 401
-
- # Load / with invalid auth
- res = c.get("/", headers=self._make_auth_headers("invalid"))
- res.get_data()
- assert res.status_code == 401
-
- # Load / with valid auth
- res = c.get("/", headers=self._make_auth_headers(web.password))
- res.get_data()
assert res.status_code == 200
# Download
- res = c.get("/download", headers=self._make_auth_headers(web.password))
+ res = c.get("/download")
res.get_data()
assert res.status_code == 200
assert (
@@ -107,7 +96,7 @@ class TestWeb:
with web.app.test_client() as c:
# Download the first time
- res = c.get("/download", headers=self._make_auth_headers(web.password))
+ res = c.get("/download")
res.get_data()
assert res.status_code == 200
assert (
@@ -127,7 +116,7 @@ class TestWeb:
with web.app.test_client() as c:
# Download the first time
- res = c.get("/download", headers=self._make_auth_headers(web.password))
+ res = c.get("/download")
res.get_data()
assert res.status_code == 200
assert (
@@ -141,18 +130,8 @@ class TestWeb:
assert web.mode == "receive"
with web.app.test_client() as c:
- # Load / without auth
- res = c.get("/")
- res.get_data()
- assert res.status_code == 401
-
- # Load / with invalid auth
- res = c.get("/", headers=self._make_auth_headers("invalid"))
- res.get_data()
- assert res.status_code == 401
-
# Load / with valid auth
- res = c.get("/", headers=self._make_auth_headers(web.password))
+ res = c.get("/",)
res.get_data()
assert res.status_code == 200
@@ -171,7 +150,7 @@ class TestWeb:
)
with web.app.test_client() as c:
- res = c.get("/", headers=self._make_auth_headers(web.password))
+ res = c.get("/")
res.get_data()
assert res.status_code == 200
@@ -180,7 +159,6 @@ class TestWeb:
buffered=True,
content_type="multipart/form-data",
data={"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg")},
- headers=self._make_auth_headers(web.password),
)
res.get_data()
assert res.status_code == 200
@@ -202,7 +180,6 @@ class TestWeb:
buffered=True,
content_type="multipart/form-data",
data={"text": "you know just sending an anonymous message"},
- headers=self._make_auth_headers(web.password),
)
content = res.get_data()
assert res.status_code == 200
@@ -237,7 +214,6 @@ class TestWeb:
"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg"),
"text": "you know just sending an anonymous message",
},
- headers=self._make_auth_headers(web.password),
)
content = res.get_data()
assert res.status_code == 200
@@ -270,7 +246,6 @@ class TestWeb:
buffered=True,
content_type="multipart/form-data",
data={"file[]": (BytesIO(b"THIS IS A TEST FILE"), "new_york.jpg")},
- headers=self._make_auth_headers(web.password),
)
content = res.get_data()
assert res.status_code == 200
@@ -303,7 +278,6 @@ class TestWeb:
buffered=True,
content_type="multipart/form-data",
data={},
- headers=self._make_auth_headers(web.password),
)
content = res.get_data()
assert res.status_code == 200
@@ -326,26 +300,6 @@ class TestWeb:
res.get_data()
assert res.status_code == 200
- def test_public_mode_off(self, temp_dir, common_obj):
- web = web_obj(temp_dir, common_obj, "receive")
- web.settings.set("general", "public", False)
-
- with web.app.test_client() as c:
- # Load / without auth
- res = c.get("/")
- res.get_data()
- assert res.status_code == 401
-
- # But static resources should work without auth
- res = c.get(f"{web.static_url_path}/css/style.css")
- res.get_data()
- assert res.status_code == 200
-
- # Load / with valid auth
- res = c.get("/", headers=self._make_auth_headers(web.password))
- res.get_data()
- assert res.status_code == 200
-
def test_cleanup(self, common_obj, temp_dir_1024, temp_file_1024):
web = web_obj(temp_dir_1024, common_obj, "share", 3)
@@ -356,12 +310,6 @@ class TestWeb:
assert os.path.exists(temp_dir_1024) is False
assert web.cleanup_filenames == []
- def _make_auth_headers(self, password):
- auth = base64.b64encode(b"onionshare:" + password.encode()).decode()
- h = Headers()
- h.add("Authorization", "Basic " + auth)
- return h
-
class TestZipWriterDefault:
@pytest.mark.parametrize(
@@ -450,8 +398,7 @@ def live_server(web):
proc.start()
url = "http://127.0.0.1:{}".format(port)
- auth = base64.b64encode(b"onionshare:" + web.password.encode()).decode()
- req = Request(url, headers={"Authorization": "Basic {}".format(auth)})
+ req = Request(url)
attempts = 20
while True:
@@ -509,7 +456,7 @@ class TestRangeRequests:
url = "/download"
with web.app.test_client() as client:
- resp = client.get(url, headers=self._make_auth_headers(web.password))
+ resp = client.get(url)
assert resp.headers["ETag"].startswith('"sha256:')
assert resp.headers["Accept-Ranges"] == "bytes"
assert resp.headers.get("Last-Modified") is not None
@@ -524,7 +471,7 @@ class TestRangeRequests:
contents = f.read()
with web.app.test_client() as client:
- resp = client.get(url, headers=self._make_auth_headers(web.password))
+ resp = client.get(url)
assert resp.status_code == 200
assert resp.data == contents
@@ -536,7 +483,7 @@ class TestRangeRequests:
contents = f.read()
with web.app.test_client() as client:
- headers = self._make_auth_headers(web.password)
+ headers = Headers()
headers.extend({"Range": "bytes=0-10"})
resp = client.get(url, headers=headers)
assert resp.status_code == 206
@@ -572,7 +519,7 @@ class TestRangeRequests:
contents = f.read()
with web.app.test_client() as client:
- headers = self._make_auth_headers(web.password)
+ headers = Headers()
resp = client.get(url, headers=headers)
assert resp.status_code == 200
@@ -587,7 +534,7 @@ class TestRangeRequests:
url = "/download"
with web.app.test_client() as client:
- headers = self._make_auth_headers(web.password)
+ headers = Headers()
resp = client.get(url, headers=headers)
assert resp.status_code == 200
last_mod = resp.headers["Last-Modified"]
@@ -602,7 +549,7 @@ class TestRangeRequests:
url = "/download"
with web.app.test_client() as client:
- headers = self._make_auth_headers(web.password)
+ headers = Headers()
resp = client.get(url, headers=headers)
assert resp.status_code == 200
@@ -621,11 +568,6 @@ class TestRangeRequests:
resp = client.get(url, headers=headers)
assert resp.status_code == 206
- def _make_auth_headers(self, password):
- auth = base64.b64encode(b"onionshare:" + password.encode()).decode()
- h = Headers()
- h.add("Authorization", "Basic " + auth)
- return h
@pytest.mark.skipif(sys.platform != "Linux", reason="requires Linux")
@check_unsupported("curl", ["--version"])
@@ -638,12 +580,9 @@ class TestRangeRequests:
with live_server(web) as url:
# Debugging help from `man curl`, on error 33
# 33 HTTP range error. The range "command" didn't work.
- auth_header = self._make_auth_headers(web.password)
subprocess.check_call(
[
"curl",
- "-H",
- str(auth_header).strip(),
"--output",
str(download),
"--continue-at",
@@ -663,12 +602,9 @@ class TestRangeRequests:
download.write("x" * 10)
with live_server(web) as url:
- auth_header = self._make_auth_headers(web.password)
subprocess.check_call(
[
"wget",
- "--header",
- str(auth_header).strip(),
"--continue",
"-O",
str(download),
diff --git a/desktop/src/onionshare/main_window.py b/desktop/src/onionshare/main_window.py
index a9d56c35..d87092b6 100644
--- a/desktop/src/onionshare/main_window.py
+++ b/desktop/src/onionshare/main_window.py
@@ -44,7 +44,7 @@ class MainWindow(QtWidgets.QMainWindow):
# Initialize the window
self.setMinimumWidth(1040)
- self.setMinimumHeight(710)
+ self.setMinimumHeight(700)
self.setWindowTitle("OnionShare")
self.setWindowIcon(QtGui.QIcon(GuiCommon.get_resource_path("images/logo.png")))
diff --git a/desktop/src/onionshare/resources/locale/af.json b/desktop/src/onionshare/resources/locale/af.json
index 1a6a057b..dd18d3ac 100644
--- a/desktop/src/onionshare/resources/locale/af.json
+++ b/desktop/src/onionshare/resources/locale/af.json
@@ -110,7 +110,6 @@
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Die outo-stoptyd kan nie dieselfde of vroeër as die outo-begintyd wees nie. Pas dit aan om te begin deel.",
"share_via_onionshare": "Deel d.m.v. OnionShare",
"gui_connect_to_tor_for_onion_settings": "Koppel aan Tor om uidiensinstellings te sien",
- "gui_use_legacy_v2_onions_checkbox": "Gebruik argaïese adresse",
"gui_save_private_key_checkbox": "Gebruik ’n blywende adres",
"gui_share_url_description": "<b>Enigeen</b> met hierdie OnionShare-adres kan u lêers d.m.v. die <b>Tor Browser aflaai</b>: <img src=\"{}\"/>",
"gui_website_url_description": "<b>Enigeen</b> met hierdie OnionShare-adres kan u webwerf d.m.v. die <b>Tor Browser besoek</b>: <img src='{}' />",
diff --git a/desktop/src/onionshare/resources/locale/am.json b/desktop/src/onionshare/resources/locale/am.json
index 4f6e0bc1..a4425b29 100644
--- a/desktop/src/onionshare/resources/locale/am.json
+++ b/desktop/src/onionshare/resources/locale/am.json
@@ -131,7 +131,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/ar.json b/desktop/src/onionshare/resources/locale/ar.json
index 3f24c661..22a20674 100644
--- a/desktop/src/onionshare/resources/locale/ar.json
+++ b/desktop/src/onionshare/resources/locale/ar.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "بلغ مؤقِّت الإيقاف أجله قبل اشتغال الخادوم. أنشئ مشاركة جديدة.",
"gui_server_autostop_timer_expired": "انتهى وقت الايقاف التلقائي للمشاركة. من فضلك عدّله للبدء بالمشاركة.",
"share_via_onionshare": "شارك باستعمال OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "استخدم صيغة العناوين التاريخية",
"gui_save_private_key_checkbox": "استخدم عنوانًا دائمًا",
"gui_share_url_description": "<b>أيّ شخص</b> لديه مسار OnionShare هذا سيكون بوسعه <b>تنزيل</b> تلك الملفات باستعمال <b>متصفّح تور</b>: <img src='{}' />",
"gui_receive_url_description": "<b>أيّ شخص</b> لديه مسار OnionShare هذا سيكون بوسعه <b>رفع</b> ملفات إلى حاسوبك باستعمال <b>متصفّح تور</b>: <img src='{}' />",
@@ -244,7 +243,6 @@
"mode_settings_receive_data_dir_browse_button": "تصفح",
"mode_settings_receive_data_dir_label": "حفظ الملفات إلى",
"mode_settings_share_autostop_sharing_checkbox": "إيقاف المشاركة بعد إرسال الملفات ( قم بإلغاء التحديد للسماح بتنزيل الملفات الفردية)",
- "mode_settings_client_auth_checkbox": "استخدم ترخيص العميل",
"mode_settings_legacy_checkbox": "استخدم عنوانًا قديمًا (النسخة الثانية من خدمة onion، لا ينصح بها)",
"mode_settings_autostop_timer_checkbox": "إيقاف خدمة Onion في ميعاد مجدول",
"mode_settings_autostart_timer_checkbox": "بدء خدمة Onion في ميعاد مجدول",
diff --git a/desktop/src/onionshare/resources/locale/bg.json b/desktop/src/onionshare/resources/locale/bg.json
index 90a40715..57a7e1b1 100644
--- a/desktop/src/onionshare/resources/locale/bg.json
+++ b/desktop/src/onionshare/resources/locale/bg.json
@@ -131,7 +131,6 @@
"gui_server_started_after_autostop_timer": "Автоматично спиращият таймер спря преди сървърът да стартира.\nМоля направете нов дял.",
"gui_server_autostop_timer_expired": "Автоматично спиращият таймер спря.\nМоля актуализирайте за да започнете споделяне.",
"share_via_onionshare": "Споделете го чрез OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Използвайте стари адреси",
"gui_save_private_key_checkbox": "Използвайте постоянни адреси (стари)",
"gui_share_url_description": "<b>Всеки</b> с този OnionShare адрес може да <b>свали</b> Вашите файлове използвайки <b>Тор браузера</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Всеки</b> с този OnionShare адрес може да <b>качи</b> файлове на Вашия компютър, използвайки <b>Тор браузера</b>: <img src='{}' />",
diff --git a/desktop/src/onionshare/resources/locale/bn.json b/desktop/src/onionshare/resources/locale/bn.json
index fb8ebc7f..a0ef4cf7 100644
--- a/desktop/src/onionshare/resources/locale/bn.json
+++ b/desktop/src/onionshare/resources/locale/bn.json
@@ -132,7 +132,6 @@
"gui_server_started_after_autostop_timer": "সার্ভার শুরু হওয়ার আগেই স্বয়ংক্রিয়-বন্ধ ঘড়ির সময় শেষ হয়ে গেছে। অনুগ্রহ করে আবার নতুনভাবে শেয়ার করো।",
"gui_server_autostop_timer_expired": "অটো-স্টপ টাইমারের সময় ইতিমধ্যেই শেষ হয়ে গিয়েছে। দয়া করে, শেয়ারিং শুরু করতে নতুনভাবে সময় সেট করো।",
"share_via_onionshare": "OnionShare এর মাধমে শেয়ার করো",
- "gui_use_legacy_v2_onions_checkbox": "লেগাসি ঠিকানা ব্যবহার করো",
"gui_save_private_key_checkbox": "একটি স্থায়ী ঠিকানা ব্যবহার করো",
"gui_share_url_description": "যার কাছেই এই ঠিকানা থাকবে সে ই <b>টর ব্রাউজার</b> ব্যবহার করে এই OnionShare ঠিকানায় গিয়ে <b>যে কেউ</b> আপনার ফাইল(গুলি) <b>ডাউনলোড</b> করতে পারবে:<img src='{}' />",
"gui_receive_url_description": "যার কাছেই এই ঠিকানা থাকবে সে ই <b>টর ব্রাউজার</b> ব্যবহার করে এই OnionShare ঠিকানায় গিয়ে <b>যে কেউ</b> আপনার কম্পিউটারে ফাইল <b>আপলোড</b> করতে পারবে:<img src='{}' />",
@@ -240,7 +239,6 @@
"gui_new_tab_receive_description": "তোমার কম্পিউটারকে একটি অনলাইন ড্রপবক্স বানাও। অন্যরা টর ব্রাউজার ব্যবহার করে তোমার কম্পিউটারে ফাইল পাঠাতে পারবে।",
"gui_new_tab_share_description": "অন্য কাউকে পাঠাতে তোমার কম্পিউটারের ফাইল নির্বাচন করো. তুমি যাকে বা যাদের কাছে ফাইল পাঠাতে চাও তাকে বা তাদেরকে তোমার কাছ থেকে ফাইল ডাউনলোড করতে টর ব্রাউজার ব্যবহার করতে হবে।",
"mode_settings_share_autostop_sharing_checkbox": "ফাইল পাঠানোর পর শেয়ার করা বন্ধ করো (স্বতন্ত্র ফাইল ডাউনলোড এর মঞ্জুরি দিতে টিক চিহ্ন তুলে দাও)",
- "mode_settings_client_auth_checkbox": "ক্লায়েন্ট অথোরাইজেশন ব্যবহার করো",
"mode_settings_autostop_timer_checkbox": "নির্ধারিত সময়ে অনিওন সেবা বন্ধ করো",
"mode_settings_autostart_timer_checkbox": "নির্ধারিত সময়ে অনিওন সেবা শুরু করো",
"mode_settings_persistent_checkbox": "এই ট্যাব সংরক্ষণ করো, এবং যখন আমি অনিওনশেয়ার খুলব তখন এটি স্বয়ংক্রিয়ভাবে খুলো",
diff --git a/desktop/src/onionshare/resources/locale/ca.json b/desktop/src/onionshare/resources/locale/ca.json
index bef1e00c..790b0fae 100644
--- a/desktop/src/onionshare/resources/locale/ca.json
+++ b/desktop/src/onionshare/resources/locale/ca.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "El temporitzador de finalització automàtica ha acabat abans que s'iniciés el servidor. Torneu a compartir-ho.",
"gui_server_autostop_timer_expired": "El temporitzador de finalització automàtica ja s'ha acabat. Ajusteu-lo per a poder compartir.",
"share_via_onionshare": "Comparteix-ho amb l'OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Fes servir adreces amb un format antic",
"gui_save_private_key_checkbox": "Fes servir una adreça persistent",
"gui_share_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>baixar</b> els vostres fitxers fent servir el <b>Navegador Tor</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>pujar</b> fitxers al vostre ordinador fent servir el <b>Navegador Tor</b>: <img src='{}' />",
@@ -223,7 +222,6 @@
"hours_first_letter": "h",
"minutes_first_letter": "min",
"seconds_first_letter": "s",
- "invalid_password_guess": "Intent de contrasenya incorrecte",
"gui_website_url_description": "<b>Qualsevol persona</b> amb aquesta adreça d'OnionShare pot <b>visitar</b> el vostre lloc web fent servir el <b>Navegador Tor</b>: <img src='{}' />",
"gui_mode_website_button": "Publica el lloc web",
"systray_site_loaded_title": "S'ha carregat el lloc web",
@@ -246,7 +244,6 @@
"mode_settings_receive_data_dir_browse_button": "Navega",
"mode_settings_receive_data_dir_label": "Desa els fitxers a",
"mode_settings_share_autostop_sharing_checkbox": "Atura la compartició després que s'hagin enviat els fitxers (desmarqueu-ho per a permetre baixar fitxers individuals)",
- "mode_settings_client_auth_checkbox": "Usa autorització del client",
"mode_settings_legacy_checkbox": "Usa una adreça antiga (servei ceba v2, no recomanat)",
"mode_settings_autostop_timer_checkbox": "Atura el servei ceba a una hora programada",
"mode_settings_autostart_timer_checkbox": "Inicia el servei ceba a una hora programada",
diff --git a/desktop/src/onionshare/resources/locale/ckb.json b/desktop/src/onionshare/resources/locale/ckb.json
index 6d357d52..fb7dd6ac 100644
--- a/desktop/src/onionshare/resources/locale/ckb.json
+++ b/desktop/src/onionshare/resources/locale/ckb.json
@@ -165,7 +165,6 @@
"mode_settings_autostart_timer_checkbox": "Servîsa onion di wextekî ayarkirî despê bike",
"mode_settings_autostop_timer_checkbox": "Servîsa onion di wextekî ayarkirî biseknîne",
"mode_settings_legacy_checkbox": "Malperekî kêrhatî bişxulîne(servîsa onion v2 nayê pêsniyar kirin)",
- "mode_settings_client_auth_checkbox": "Rastbûyîna muşterî kontrol bike",
"mode_settings_share_autostop_sharing_checkbox": "Parvekirin piştî name haitn şandin biseknîne (Ji bo destûra berjêrkirina nameyên yekane tikandin derbixe)",
"mode_settings_receive_data_dir_label": "Nameyan li qeyd bike",
"mode_settings_receive_data_dir_browse_button": "Bigere",
diff --git a/desktop/src/onionshare/resources/locale/da.json b/desktop/src/onionshare/resources/locale/da.json
index 25234f45..337b158e 100644
--- a/desktop/src/onionshare/resources/locale/da.json
+++ b/desktop/src/onionshare/resources/locale/da.json
@@ -141,7 +141,6 @@
"gui_no_downloads": "Ingen downloads endnu",
"error_tor_protocol_error_unknown": "Der opstod en ukendt fejl med Tor",
"error_invalid_private_key": "Den private nøgletype understøttes ikke",
- "gui_use_legacy_v2_onions_checkbox": "Brug udgåede adresser",
"gui_status_indicator_share_stopped": "Klar til at dele",
"gui_status_indicator_share_working": "Starter …",
"gui_status_indicator_share_started": "Deler",
@@ -226,7 +225,6 @@
"hours_first_letter": "t",
"minutes_first_letter": "m",
"seconds_first_letter": "s",
- "invalid_password_guess": "Ugyldigt adgangskodegæt",
"gui_website_url_description": "<b>Alle</b> med OnionShare-adressen kan <b>besøge</b> dit websted med <b>Tor Browser</b>: <img src='{}' />",
"gui_mode_website_button": "Udgiv websted",
"gui_website_mode_no_files": "Der er endnu ikke delt noget websted",
@@ -240,7 +238,6 @@
"gui_new_tab_receive_description": "Brug din computer som en online-dropbox. Andre vil kunne bruge Tor Browser til at sende filer til din computer.",
"mode_settings_share_autostop_sharing_checkbox": "Stop deling efter filerne er blevet sendt (fravælg for at gøre det muligt at downloade individuelle filer)",
"mode_settings_legacy_checkbox": "Brug en udgået adresse (v2 oniontjeneste, anbefales ikke)",
- "mode_settings_client_auth_checkbox": "Brug klientautentifikation",
"mode_settings_autostop_timer_checkbox": "Stop oniontjeneste på det planlagte tidspunkt",
"mode_settings_autostart_timer_checkbox": "Start oniontjeneste på det planlagte tidspunkt",
"mode_settings_persistent_checkbox": "Gem fanebladet og åbn det automatisk når jeg åbner OnionShare",
diff --git a/desktop/src/onionshare/resources/locale/de.json b/desktop/src/onionshare/resources/locale/de.json
index f7e4de12..d1022a65 100644
--- a/desktop/src/onionshare/resources/locale/de.json
+++ b/desktop/src/onionshare/resources/locale/de.json
@@ -125,7 +125,6 @@
"gui_tor_connection_error_settings": "Versuche in den Einstellungen zu ändern, wie sich OnionShare mit dem Tor-Netzwerk verbindet.",
"gui_tor_connection_canceled": "Konnte keine Verbindung zu Tor herstellen.\n\nStelle sicher, dass du mit dem Internet verbunden bist, öffne OnionShare erneut und richte die Verbindung zu Tor ein.",
"share_via_onionshare": "Teilen über OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Nutze das alte Adressformat",
"gui_save_private_key_checkbox": "Nutze eine gleichbleibende Adresse",
"gui_share_url_description": "<b>Jeder</b> mit dieser OnionShare-Adresse kann deine Dateien mit dem <b>Tor Browser</b> <b>herunterladen</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Jeder</b> mit dieser OnionShare-Adresse kann mit dem <b>Tor Browser</b> Dateien auf deinen Computer <b>hochladen</b>: <img src='{}' />",
@@ -223,7 +222,6 @@
"hours_first_letter": "h",
"minutes_first_letter": "m",
"seconds_first_letter": "s",
- "invalid_password_guess": "Ungültige Passwortratschläge",
"gui_website_url_description": "<b>Jeder</b> mit dieser OnionShare-Adresse kann deine Webseite mit dem <b>Tor Browser</b> <b>ansehen</b>: <img src='{}' />",
"gui_mode_website_button": "Webseite veröffentlichen",
"systray_site_loaded_title": "Webseite geladen",
@@ -241,7 +239,6 @@
"mode_settings_website_disable_csp_checkbox": "Content-Security-Policy-Header deaktivieren (ermöglicht es, Ressourcen von Drittanbietern auf deiner Onion-Webseite einzubinden)",
"mode_settings_receive_data_dir_browse_button": "Durchsuchen",
"mode_settings_receive_data_dir_label": "Dateien speichern unter",
- "mode_settings_client_auth_checkbox": "Benutze Client-Authorisierung",
"mode_settings_legacy_checkbox": "Benutze ein veraltetes Adressformat (Onion-Dienste-Adressformat v2, nicht empfohlen)",
"mode_settings_autostop_timer_checkbox": "Onion-Dienst zu einem festgelegten Zeitpunkt stoppen",
"mode_settings_autostart_timer_checkbox": "Onion-Dienst zu einem festgelegten Zeitpunkt starten",
@@ -301,4 +298,4 @@
"gui_status_indicator_chat_scheduled": "Geplant…",
"gui_status_indicator_chat_working": "Startet…",
"gui_status_indicator_chat_stopped": "Bereit zum Chatten"
-} \ No newline at end of file
+}
diff --git a/desktop/src/onionshare/resources/locale/el.json b/desktop/src/onionshare/resources/locale/el.json
index 2a4378c5..0474c954 100644
--- a/desktop/src/onionshare/resources/locale/el.json
+++ b/desktop/src/onionshare/resources/locale/el.json
@@ -134,7 +134,6 @@
"gui_server_started_after_autostop_timer": "Το χρονόμετρο αυτόματης διακοπής τελείωσε πριν την εκκίνηση του server. Παρακαλώ κάντε ένα νέο διαμοιρασμό.",
"gui_server_autostop_timer_expired": "Το χρονόμετρο αυτόματης διακοπής έχει ήδη τελειώσει. Παρακαλώ ρυθμίστε το για να ξεκινήσετε το διαμοιρασμό.",
"share_via_onionshare": "Μοιραστείτε μέσω OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Χρήση \"παραδοσιακών\" διευθύνσεων",
"gui_save_private_key_checkbox": "Χρήση μόνιμης διεύθυνσης",
"gui_share_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare μπορεί να <b>κατεβάσει</b> τα αρχεία σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Οποιοσδήποτε</b> με αυτή τη διεύθυνση OnionShare, μπορεί να <b>ανεβάσει</b> αρχεία στον υπολογιστή σας χρησιμοποιώντας το <b>Tor Browser</b>: <img src='{}' />",
@@ -243,7 +242,6 @@
"mode_settings_receive_data_dir_browse_button": "Επιλογή",
"mode_settings_receive_data_dir_label": "Αποθήκευση αρχείων σε",
"mode_settings_share_autostop_sharing_checkbox": "Τερματισμός κοινής χρήσης με την ολοκλήρωση αρχείων (αποεπιλέξτε για λήψη μεμονωμένων αρχείων)",
- "mode_settings_client_auth_checkbox": "Χρήση εξουσιοδότησης πελάτη",
"mode_settings_legacy_checkbox": "Χρήση παλαιάς διεύθυνσης (δεν προτείνεται η χρήση υπηρεσία v2 onion)",
"mode_settings_autostop_timer_checkbox": "Προγραμματισμένος τερματισμός",
"mode_settings_autostart_timer_checkbox": "Προγραμματισμένη εκκίνηση",
diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json
index 6cd39269..0c7ec57a 100644
--- a/desktop/src/onionshare/resources/locale/en.json
+++ b/desktop/src/onionshare/resources/locale/en.json
@@ -24,12 +24,12 @@
"gui_receive_stop_server_autostop_timer": "Stop Receive Mode ({} remaining)",
"gui_receive_flatpak_data_dir": "Because you installed OnionShare using Flatpak, you must save files to a folder in ~/OnionShare.",
"gui_copy_url": "Copy Address",
- "gui_copy_client_auth": "Copy ClientAuth",
+ "gui_copy_client_auth": "Copy Private Key",
"gui_canceled": "Canceled",
"gui_copied_url_title": "Copied OnionShare Address",
"gui_copied_url": "OnionShare address copied to clipboard",
- "gui_copied_client_auth_title": "Copied ClientAuth",
- "gui_copied_client_auth": "ClientAuth private key copied to clipboard",
+ "gui_copied_client_auth_title": "Copied Private Key",
+ "gui_copied_client_auth": "Private Key copied to clipboard",
"gui_show_url_qr_code": "Show QR Code",
"gui_qr_code_dialog_title": "OnionShare QR Code",
"gui_waiting_to_start": "Scheduled to start in {}. Click to cancel.",
@@ -87,9 +87,12 @@
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "The auto-stop time can't be the same or earlier than the auto-start time. Please adjust it to start sharing.",
"gui_server_doesnt_support_stealth": "Sorry, this version of Tor doesn't support stealth (Client Authorization). Please try with a newer version of Tor.",
"share_via_onionshare": "Share via OnionShare",
- "gui_share_url_description": "<b>Anyone</b> with this OnionShare address can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />",
- "gui_website_url_description": "<b>Anyone</b> with this OnionShare address can <b>visit</b> your website using the <b>Tor Browser</b>: <img src='{}' />",
- "gui_receive_url_description": "<b>Anyone</b> with this OnionShare address can <b>upload</b> files to your computer using the <b>Tor Browser</b>: <img src='{}' />",
+ "gui_share_url_description": "<b>Anyone</b> with this OnionShare address and private key can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />",
+ "gui_share_url_public_description": "<b>Anyone</b> with this OnionShare address can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />",
+ "gui_website_url_description": "<b>Anyone</b> with this OnionShare address and private key can <b>visit</b> your website using the <b>Tor Browser</b>: <img src='{}' />",
+ "gui_website_url_public_description": "<b>Anyone</b> with this OnionShare address can <b>visit</b> your website using the <b>Tor Browser</b>: <img src='{}' />",
+ "gui_receive_url_description": "<b>Anyone</b> with this OnionShare address and private key can <b>upload</b> files to your computer using the <b>Tor Browser</b>: <img src='{}' />",
+ "gui_receive_url_public_description": "<b>Anyone</b> with this OnionShare address can <b>upload</b> files to your computer using the <b>Tor Browser</b>: <img src='{}' />",
"gui_chat_url_description": "<b>Anyone</b> with this OnionShare address can <b>join this chat room</b> using the <b>Tor Browser</b>: <img src='{}' />",
"gui_url_label_persistent": "This share will not auto-stop.<br><br>Every subsequent share reuses the address. (To use one-time addresses, turn off \"Use persistent address\" in the settings.)",
"gui_url_label_stay_open": "This share will not auto-stop.",
@@ -177,10 +180,9 @@
"mode_settings_advanced_toggle_hide": "Hide advanced settings",
"mode_settings_title_label": "Custom title",
"mode_settings_persistent_checkbox": "Save this tab, and automatically open it when I open OnionShare",
- "mode_settings_public_checkbox": "Don't use a password",
+ "mode_settings_public_checkbox": "This is a public OnionShare service (disables client authentication)",
"mode_settings_autostart_timer_checkbox": "Start onion service at scheduled time",
"mode_settings_autostop_timer_checkbox": "Stop onion service at scheduled time",
- "mode_settings_client_auth_checkbox": "Use client authorization",
"mode_settings_share_autostop_sharing_checkbox": "Stop sharing after files have been sent (uncheck to allow downloading individual files)",
"mode_settings_receive_data_dir_label": "Save files to",
"mode_settings_receive_data_dir_browse_button": "Browse",
@@ -207,4 +209,4 @@
"error_port_not_available": "OnionShare port not available",
"history_receive_read_message_button": "Read Message",
"error_tor_protocol_error": "There was an error with Tor: {}"
-} \ No newline at end of file
+}
diff --git a/desktop/src/onionshare/resources/locale/es.json b/desktop/src/onionshare/resources/locale/es.json
index 27030ad8..de28da6b 100644
--- a/desktop/src/onionshare/resources/locale/es.json
+++ b/desktop/src/onionshare/resources/locale/es.json
@@ -94,7 +94,6 @@
"gui_server_started_after_autostop_timer": "El temporizador de parada automática expiró antes de que se iniciara el servidor. Por favor crea un recurso compartido nuevo.",
"gui_server_autostop_timer_expired": "El temporizador de parada automática ya expiró. Por favor ajústalo para comenzar a compartir.",
"share_via_onionshare": "Compartir con OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Usar direcciones obsoletas",
"gui_save_private_key_checkbox": "Usar una dirección persistente",
"gui_share_url_description": "<b>Cualquiera</b> con esta dirección OnionShare puede <b>descargar</b> tus archivos usando el <b>Navegador Tor</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Cualquiera</b> con esta dirección OnionShare puede <b>cargar</b> archivos a tu equipo usando el <b>Navegador Tor</b>: <img src='{}' />",
@@ -227,7 +226,6 @@
"hours_first_letter": "h",
"minutes_first_letter": "m",
"seconds_first_letter": "s",
- "invalid_password_guess": "Intento de contraseña incorrecto",
"gui_website_url_description": "<b>Cualquiera</b> con esta dirección OnionShare puede <b>visitar</b> tu sitio web usando el <b>Navegador Tor</b>: <img src='{}' />",
"gui_mode_website_button": "Publicar sitio web",
"systray_site_loaded_title": "Sitio web cargado",
@@ -243,7 +241,6 @@
"systray_individual_file_downloaded_message": "Archivo individual {} visto",
"gui_settings_csp_header_disabled_option": "Deshabilitar encabezado de Política de Seguridad de Contenido",
"gui_settings_website_label": "Configuración de sitio web",
- "mode_settings_client_auth_checkbox": "Utilizar autorización de cliente",
"mode_settings_legacy_checkbox": "Usar una dirección obsoleta (servicio cebolla v2, no recomendado)",
"mode_settings_autostop_timer_checkbox": "Detener el servicio cebolla a una hora determinada",
"mode_settings_autostart_timer_checkbox": "Iniciar el servicio cebolla a una hora determinada",
diff --git a/desktop/src/onionshare/resources/locale/fa.json b/desktop/src/onionshare/resources/locale/fa.json
index 94f3bb1a..e5e53a83 100644
--- a/desktop/src/onionshare/resources/locale/fa.json
+++ b/desktop/src/onionshare/resources/locale/fa.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "زمان‌سنج توقف خودکار، قبل از آغاز کارساز به پایان رسید. لطفا یک هم‌رسانی جدید درست کنید.",
"gui_server_autostop_timer_expired": "زمان‌سنج توقف خودکار به پایان رسید. لطفا برای آغاز هم‌رسانی آن را تنظیم کنید.",
"share_via_onionshare": "هم‌رسانی با OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "استفاده از آدرس‌های بازمانده",
"gui_save_private_key_checkbox": "استفاده از یک آدرس پایا",
"gui_share_url_description": "<b>هرکس</b> با این آدرس OnionShare می‌تواند روی کامپیوتر شما پرونده <b>بارگیری</b> کند از طریق <b>مرورگر تور</b>: <img src='{}' />",
"gui_receive_url_description": "<b>هرکس</b> با این آدرس OnionShare می‌تواند روی کامپیوتر شما پرونده <b>بارگذاری</b> کند از طریق <b>مرورگر تور</b>: <img src='{}' />",
diff --git a/desktop/src/onionshare/resources/locale/fi.json b/desktop/src/onionshare/resources/locale/fi.json
index fc950749..1eee3458 100644
--- a/desktop/src/onionshare/resources/locale/fi.json
+++ b/desktop/src/onionshare/resources/locale/fi.json
@@ -120,7 +120,6 @@
"gui_server_autostop_timer_expired": "Automaattinen pysäytysajastin päättyi jo.\nSäädä se jaon aloittamiseksi.",
"share_via_onionshare": "Jaa OnionSharella",
"gui_connect_to_tor_for_onion_settings": "Yhdistä Tor-verkkoon nähdäksesi onion palvelun asetukset",
- "gui_use_legacy_v2_onions_checkbox": "Käytä vanhoja osoitteita",
"gui_save_private_key_checkbox": "Käytä pysyviä osoitteita",
"gui_share_url_description": "<b>Kaikki</b> joilla on tämä OnionShare-osoite voivat <b>ladata</b> tiedostojasi käyttämällä <b>Tor-selainta</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Kaikki</b> joilla on tämä OnionShare-osoite voivat <b>lähettää</b>tiedostoja tietokoneellesi käyttämällä <b>Tor-selainta</b>: <img src='{}' />",
@@ -218,7 +217,6 @@
"gui_new_tab_tooltip": "Avaa uusi välilehti",
"gui_new_tab": "Uusi välilehti",
"mode_settings_website_disable_csp_checkbox": "Poista 'Sisällön suojauskäytännön' otsikko käytöstä (mahdollistaa kolmansien osapuolien resurssien käytön nettisivussasi)",
- "mode_settings_client_auth_checkbox": "Käytä asiakkaan valtuutusta",
"mode_settings_legacy_checkbox": "Käytä vanhaa osoitetta (v2 onion-palvelu, ei suositella)",
"mode_settings_autostop_timer_checkbox": "Lopeta onion-palvelu tiettyyn kellon aikaan",
"mode_settings_autostart_timer_checkbox": "Aloita onion-palvelu tiettyyn kellon aikaan",
diff --git a/desktop/src/onionshare/resources/locale/fr.json b/desktop/src/onionshare/resources/locale/fr.json
index 13a68f8a..27bc3b2f 100644
--- a/desktop/src/onionshare/resources/locale/fr.json
+++ b/desktop/src/onionshare/resources/locale/fr.json
@@ -159,7 +159,6 @@
"update_error_invalid_latest_version": "Impossible de vérifier la présence d’une mise à jour : le site Web d’OnionShare indique que la version la plus récente est la « {} » qui n’est pas reconnue…",
"gui_tor_connection_ask": "Ouvrir les paramètres pour résoudre le problème de connexion à Tor ?",
"gui_tor_connection_canceled": "Impossible de se connecter à Tor.\n\nAssurez-vous d’être connecté à Internet, puis rouvrez OnionShare et configurez sa connexion à Tor.",
- "gui_use_legacy_v2_onions_checkbox": "Utiliser les adresses héritées",
"info_in_progress_uploads_tooltip": "{} envoi(s) en cours",
"info_completed_uploads_tooltip": "{} envoi(s) terminé(s)",
"error_cannot_create_downloads_dir": "Impossible de créer le dossier du mode réception : {}",
@@ -229,7 +228,6 @@
"systray_website_started_title": "Début du partage du site Web",
"systray_website_started_message": "Quelqu’un visite votre site Web",
"gui_website_mode_no_files": "Aucun site Web n’a encore été partagé",
- "invalid_password_guess": "La tentative de mot de passe est invalide",
"gui_mode_website_button": "Publier un site Web",
"incorrect_password": "Le mot de passe est erroné",
"gui_settings_individual_downloads_label": "Décocher pour permettre le téléchargement de fichiers individuels",
@@ -254,7 +252,6 @@
"mode_settings_receive_data_dir_browse_button": "Parcourir",
"mode_settings_receive_data_dir_label": "Enregistrer les fichiers dans",
"mode_settings_share_autostop_sharing_checkbox": "Cesser le partage une fois que les fichiers ont été envoyés (décocher afin de permettre le téléchargement de fichiers individuels)",
- "mode_settings_client_auth_checkbox": "Utiliser l’autorisation du client",
"mode_settings_legacy_checkbox": "Utiliser une ancienne adresse (service onion v2, non recommandée)",
"mode_settings_public_checkbox": "Ne pas utiliser un mot de passe",
"mode_settings_persistent_checkbox": "Enregistrer cet onglet et l’ouvrir automatiquement quand j’ouvre OnionShare",
diff --git a/desktop/src/onionshare/resources/locale/ga.json b/desktop/src/onionshare/resources/locale/ga.json
index 621234ae..f0a734f1 100644
--- a/desktop/src/onionshare/resources/locale/ga.json
+++ b/desktop/src/onionshare/resources/locale/ga.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "Bhí an t-amadóir uathstoptha caite sular thosaigh an freastalaí. Caithfidh tú comhroinnt nua a chruthú.",
"gui_server_autostop_timer_expired": "Tá an t-amadóir uathstoptha caite cheana. Caithfidh tú é a athshocrú sular féidir leat comhaid a chomhroinnt.",
"share_via_onionshare": "Comhroinn trí OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Úsáid seoltaí sean-nóis",
"gui_save_private_key_checkbox": "Úsáid seoladh seasmhach",
"gui_share_url_description": "Tá <b>aon duine</b> a bhfuil an seoladh OnionShare aige/aici in ann do chuid comhad a <b>íoslódáil</b> le <b>Brabhsálaí Tor</b>: <img src='{}' />",
"gui_receive_url_description": "Tá <b>aon duine</b> a bhfuil an seoladh OnionShare aige/aici in ann comhaid a <b>uaslódáil</b> go dtí do ríomhaire le <b>Brabhsálaí Tor</b>: <img src='{}' />",
diff --git a/desktop/src/onionshare/resources/locale/gl.json b/desktop/src/onionshare/resources/locale/gl.json
index cc42a347..ae92e589 100644
--- a/desktop/src/onionshare/resources/locale/gl.json
+++ b/desktop/src/onionshare/resources/locale/gl.json
@@ -166,7 +166,6 @@
"mode_settings_autostart_timer_checkbox": "Iniciar o servizo onion na hora programada",
"mode_settings_autostop_timer_checkbox": "Deter o servizo onion na hora programada",
"mode_settings_legacy_checkbox": "Usar enderezos antigos (servizo onion v2, non recomendado)",
- "mode_settings_client_auth_checkbox": "Usar autorización do cliente",
"mode_settings_share_autostop_sharing_checkbox": "Deixar de compartir unha vez enviado o ficheiro (desmarca para permitir a descarga de ficheiros individuais)",
"mode_settings_receive_data_dir_label": "Gardar ficheiros en",
"mode_settings_receive_data_dir_browse_button": "Navegar",
diff --git a/desktop/src/onionshare/resources/locale/gu.json b/desktop/src/onionshare/resources/locale/gu.json
index fc95952c..bbfc9b78 100644
--- a/desktop/src/onionshare/resources/locale/gu.json
+++ b/desktop/src/onionshare/resources/locale/gu.json
@@ -131,7 +131,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/he.json b/desktop/src/onionshare/resources/locale/he.json
index 9a765db7..047e6233 100644
--- a/desktop/src/onionshare/resources/locale/he.json
+++ b/desktop/src/onionshare/resources/locale/he.json
@@ -134,7 +134,6 @@
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_connect_to_tor_for_onion_settings": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/src/onionshare/resources/locale/hi.json
index 2f09534e..6ffe1522 100644
--- a/desktop/src/onionshare/resources/locale/hi.json
+++ b/desktop/src/onionshare/resources/locale/hi.json
@@ -119,7 +119,6 @@
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_connect_to_tor_for_onion_settings": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/hr.json b/desktop/src/onionshare/resources/locale/hr.json
index c3b79245..dbc67cd0 100644
--- a/desktop/src/onionshare/resources/locale/hr.json
+++ b/desktop/src/onionshare/resources/locale/hr.json
@@ -110,7 +110,6 @@
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vrijeme za automatsko prekidanje ne može biti isto kao vrijeme za automatsko pokretanje ili ranije. Za pokretanje dijeljenja, podesi vrijeme.",
"share_via_onionshare": "Dijeli putem OnionSharea",
"gui_connect_to_tor_for_onion_settings": "Poveži se s Torom za prikaz postavki Onion usluge",
- "gui_use_legacy_v2_onions_checkbox": "Koristi stare adrese",
"gui_save_private_key_checkbox": "Koristi trajnu adresu",
"gui_share_url_description": "<b>Svatko</b> s ovom OnionShare adresom može <b>preuzeti</b> tvoje datoteke koristeći <b>Tor preglednik</b>: <img src='{}' />",
"gui_website_url_description": "<b>Svatko</b> s ovom OnionShare adresom može <b>posjetiti</b> tvoju web-stranicu koristeći <b>Tor preglednik</b>: <img src='{}' />",
@@ -180,7 +179,6 @@
"mode_settings_receive_data_dir_browse_button": "Pregledaj",
"mode_settings_receive_data_dir_label": "Spremi datoteke u",
"mode_settings_share_autostop_sharing_checkbox": "Prekini dijeljenje nakon što se datoteke pošalju (deaktiviraj za preuzimanje pojedinačnih datoteka)",
- "mode_settings_client_auth_checkbox": "Koristi autorizaciju klijenta",
"mode_settings_legacy_checkbox": "Koristi stare adrese (v2 onion usluge, ne preporučuje se)",
"mode_settings_autostop_timer_checkbox": "Prekini onion uslugu u planirano vrijeme",
"mode_settings_autostart_timer_checkbox": "Pokreni onion uslugu u planirano vrijeme",
diff --git a/desktop/src/onionshare/resources/locale/hu.json b/desktop/src/onionshare/resources/locale/hu.json
index 370c2d63..41dbe03a 100644
--- a/desktop/src/onionshare/resources/locale/hu.json
+++ b/desktop/src/onionshare/resources/locale/hu.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/id.json b/desktop/src/onionshare/resources/locale/id.json
index c3f5bb70..0a33e0a1 100644
--- a/desktop/src/onionshare/resources/locale/id.json
+++ b/desktop/src/onionshare/resources/locale/id.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "Timer berhenti otomatis habis sebelum server dimulai. Silakan buat pembagian baru.",
"gui_server_autostop_timer_expired": "Timer berhenti otomatis sudah habis. Silakan sesuaikan untuk mulai berbagi.",
"share_via_onionshare": "Bagikan via OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "<b>Siapa saja</b> dengan alamat OnionShare ini dapat <b>mengunduh</b> berkas Anda menggunakan <b>Tor Browser</b>:<img src='{}' />",
"gui_receive_url_description": "<b>Siapa saja</b> dengan alamat OnionShare ini dapat <b>mengunggah</b> berkas ke komputer Anda menggunakan <b>Tor Browser</b>:<img src='{}' />",
@@ -213,7 +212,6 @@
"mode_settings_receive_data_dir_browse_button": "Telusur",
"mode_settings_receive_data_dir_label": "Simpan file ke",
"mode_settings_share_autostop_sharing_checkbox": "Berhenti berbagi setelah file dikirim (hapus centang untuk memperbolehkan mengunduh file individual)",
- "mode_settings_client_auth_checkbox": "Gunakan otorisasi klien",
"mode_settings_legacy_checkbox": "Gunakan alamat legacy (layanan onion v2, tidak disarankan)",
"mode_settings_autostop_timer_checkbox": "Hentikan layanan onion pada waktu yang dijadwalkan",
"mode_settings_autostart_timer_checkbox": "Mulai layanan onion pada waktu yang dijadwalkan",
diff --git a/desktop/src/onionshare/resources/locale/is.json b/desktop/src/onionshare/resources/locale/is.json
index 4a21da40..b8c1ecab 100644
--- a/desktop/src/onionshare/resources/locale/is.json
+++ b/desktop/src/onionshare/resources/locale/is.json
@@ -129,7 +129,6 @@
"gui_tor_connection_lost": "Aftengt frá Tor.",
"gui_server_autostop_timer_expired": "Sjálfvirkri niðurtalningu er þegar lokið. Lagaðu hana til að hefja deilingu.",
"share_via_onionshare": "Deila með OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Nota eldri vistföng",
"gui_save_private_key_checkbox": "Nota viðvarandi vistföng",
"gui_share_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang getur <b>sótt</b> skrárnar þínar með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang getur <b>sent skrár inn</b> á tölvuna þína með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
@@ -222,7 +221,6 @@
"hours_first_letter": "klst",
"minutes_first_letter": "mín",
"seconds_first_letter": "sek",
- "invalid_password_guess": "Ógilt lykilorð",
"gui_website_url_description": "<b>Hver sem er</b> með þetta OnionShare vistfang getur <b>skoðað</b> vefsvæðið þitt með því að nota <b>Tor-vafrann</b>: <img src='{}' />",
"gui_mode_website_button": "Birta vefsvæði",
"gui_website_mode_no_files": "Ennþá hefur engu vefsvæði verið deilt",
@@ -252,7 +250,6 @@
"mode_settings_advanced_toggle_show": "Birta ítarlegar stillingar",
"gui_new_tab_tooltip": "Opna nýjan flipa",
"gui_new_tab_receive_button": "Taka á móti skrám",
- "mode_settings_client_auth_checkbox": "Nota auðkenningu biðlaraforrits",
"mode_settings_advanced_toggle_hide": "Fela ítarlegar stillingar",
"gui_quit_warning_cancel": "Hætta við",
"gui_close_tab_warning_title": "Ertu viss?",
diff --git a/desktop/src/onionshare/resources/locale/it.json b/desktop/src/onionshare/resources/locale/it.json
index f48fd618..b658d5c3 100644
--- a/desktop/src/onionshare/resources/locale/it.json
+++ b/desktop/src/onionshare/resources/locale/it.json
@@ -136,7 +136,6 @@
"gui_server_autostop_timer_expired": "Il timer di arresto automatico è già scaduto. Si prega di modificarlo per iniziare la condivisione.",
"share_via_onionshare": "Condividi via OnionShare",
"gui_connect_to_tor_for_onion_settings": "Connetti a Tor per vedere le impostazioni del servizio onion",
- "gui_use_legacy_v2_onions_checkbox": "Usa gli indirizzi legacy",
"gui_save_private_key_checkbox": "Usa un indirizzo persistente",
"gui_share_url_description": "<b>1 Tutti</b>2 con questo l'indirizzo di OnionShare possono <b>3 scaricare</b>4 i tuoi file usando <b>5 il Browser Tor</b>6: <img src='{}' />7",
"gui_receive_url_description": "<b>1 Tutti</b>2 con questo indirizzo OnionShare possono <b>3 caricare</b>4 file nel tuo computer usando <b>5 Tor Browser</b>6: <img src='{}' />7",
@@ -262,7 +261,6 @@
"gui_close_tab_warning_website_description": "Stai ospitando un sito web. Sei sicuro di voler chiudere questa scheda?",
"mode_settings_website_disable_csp_checkbox": "Non inviare l'intestazione della Politica sulla Sicurezza dei Contenuti (consente al sito web di utilizzare risorse di terze parti)",
"mode_settings_receive_data_dir_browse_button": "Naviga",
- "mode_settings_client_auth_checkbox": "Usa l'autorizzazione del client",
"mode_settings_autostop_timer_checkbox": "Interrompere il servizio onion all'ora pianificata",
"mode_settings_autostart_timer_checkbox": "Avviare il servizio onion all'ora pianificata",
"mode_settings_persistent_checkbox": "Salva questa scheda e aprirla automaticamente quando apro OnionShare",
diff --git a/desktop/src/onionshare/resources/locale/ja.json b/desktop/src/onionshare/resources/locale/ja.json
index 1ed6883f..81e89547 100644
--- a/desktop/src/onionshare/resources/locale/ja.json
+++ b/desktop/src/onionshare/resources/locale/ja.json
@@ -134,7 +134,6 @@
"gui_server_autostop_timer_expired": "自動停止タイマーはすでにタイムアウトしています。共有し始めるにはタイマーを調整して下さい。",
"share_via_onionshare": "OnionShareで共有する",
"gui_connect_to_tor_for_onion_settings": "onionサービス設定を見るのにTorと接続して下さい",
- "gui_use_legacy_v2_onions_checkbox": "レガシーアドレスを使用する",
"gui_save_private_key_checkbox": "永続的アドレスを使用する",
"gui_share_url_description": "このOnionShareアドレスを持つ限り<b>誰でも</b>は<b>Tor Browser</b>を利用してこのファイルを<b>ダウンロードできます</b>:<img src='{}' />",
"gui_receive_url_description": "このOnionShareアドレスを持つ限り<b>誰でも</b>は<b>Tor Browser</b>を利用してこのPCにファイルを<b>アップロードできます</b>:<img src='{}' />",
@@ -234,7 +233,6 @@
"mode_settings_receive_data_dir_browse_button": "閲覧",
"mode_settings_receive_data_dir_label": "保存するファイルの位置",
"mode_settings_share_autostop_sharing_checkbox": "ファイル送信が終了したら共有を停止(個別ファイルのダウンロードを許可するにはチェックマークを消す)",
- "mode_settings_client_auth_checkbox": "クライアント認証を利用",
"mode_settings_legacy_checkbox": "レガシーアドレスを利用する(v2 onionサービス、非推奨)",
"mode_settings_autostop_timer_checkbox": "指定の日時にonionサービスを停止する",
"mode_settings_autostart_timer_checkbox": "指定の日時にonionサービスを起動する",
diff --git a/desktop/src/onionshare/resources/locale/ka.json b/desktop/src/onionshare/resources/locale/ka.json
index 5de442f4..95b77549 100644
--- a/desktop/src/onionshare/resources/locale/ka.json
+++ b/desktop/src/onionshare/resources/locale/ka.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/km.json b/desktop/src/onionshare/resources/locale/km.json
index f27aa52c..041aaac8 100644
--- a/desktop/src/onionshare/resources/locale/km.json
+++ b/desktop/src/onionshare/resources/locale/km.json
@@ -107,7 +107,6 @@
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"share_via_onionshare": "",
"gui_connect_to_tor_for_onion_settings": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/ko.json b/desktop/src/onionshare/resources/locale/ko.json
index a57f8ba8..641b8cd7 100644
--- a/desktop/src/onionshare/resources/locale/ko.json
+++ b/desktop/src/onionshare/resources/locale/ko.json
@@ -131,7 +131,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/lg.json b/desktop/src/onionshare/resources/locale/lg.json
index f72c18c6..f26aeaae 100644
--- a/desktop/src/onionshare/resources/locale/lg.json
+++ b/desktop/src/onionshare/resources/locale/lg.json
@@ -131,7 +131,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/lt.json b/desktop/src/onionshare/resources/locale/lt.json
index f3e76e9b..3c4935a9 100644
--- a/desktop/src/onionshare/resources/locale/lt.json
+++ b/desktop/src/onionshare/resources/locale/lt.json
@@ -109,7 +109,6 @@
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Automatinio sustabdymo laikas negali būti toks pat arba ankstesnis už automatinio paleidimo laiką. Sureguliuokite jį, kad galėtumėte pradėti dalytis.",
"share_via_onionshare": "Bendrinti per OnionShare",
"gui_connect_to_tor_for_onion_settings": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "<b>Visi</b>, turintys šį OnionShare adresą gali <b>atsisiųsti</b> jūsų failus, naudodamiesi <b>Tor Naršykle</b>: <img src='{}' />",
"gui_website_url_description": "<b>Kiekvienas</b>, turintis šį „OnionShare“ adresą, gali <b>apsilankyti</b> jūsų svetainėje naudodamas <b>„Tor“ naršyklę</b>: <img src='{}' />",
@@ -200,7 +199,6 @@
"mode_settings_autostart_timer_checkbox": "Pradėti onion paslaugos paleidimą suplanuotu laiku",
"mode_settings_autostop_timer_checkbox": "Sustabdyti onion paslaugos paleidimą suplanuotu laiku",
"mode_settings_legacy_checkbox": "Naudoti senąjį adresą (nerekomenduojama naudoti v2 onion paslaugos)",
- "mode_settings_client_auth_checkbox": "Naudoti kliento autorizavimą",
"mode_settings_share_autostop_sharing_checkbox": "Sustabdyti dalijimąsi po to, kai failai buvo išsiųsti (atžymėkite, jei norite leisti atsisiųsti atskirus failus)",
"mode_settings_receive_data_dir_label": "Įrašyti failus į",
"mode_settings_receive_data_dir_browse_button": "Naršyti",
diff --git a/desktop/src/onionshare/resources/locale/mk.json b/desktop/src/onionshare/resources/locale/mk.json
index a605df67..1293f1ed 100644
--- a/desktop/src/onionshare/resources/locale/mk.json
+++ b/desktop/src/onionshare/resources/locale/mk.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/ms.json b/desktop/src/onionshare/resources/locale/ms.json
index 3b9c9a5c..44c7ce5b 100644
--- a/desktop/src/onionshare/resources/locale/ms.json
+++ b/desktop/src/onionshare/resources/locale/ms.json
@@ -119,7 +119,6 @@
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_connect_to_tor_for_onion_settings": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/nb_NO.json b/desktop/src/onionshare/resources/locale/nb_NO.json
index e854e76f..1e31e3ba 100644
--- a/desktop/src/onionshare/resources/locale/nb_NO.json
+++ b/desktop/src/onionshare/resources/locale/nb_NO.json
@@ -131,7 +131,6 @@
"gui_server_started_after_autostop_timer": "Tidsavbruddsuret gikk ut før tjeneren startet. Lag en ny deling.",
"gui_server_autostop_timer_expired": "Tidsavbruddsuret har gått ut allerede. Juster det for å starte deling.",
"share_via_onionshare": "Del via OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Bruk gammeldagse adresser",
"gui_save_private_key_checkbox": "Bruk en vedvarende adresse",
"gui_share_url_description": "<b>Alle</b> som har denne OnionShare-adressen kan <b>Laste ned</b> filene dine ved bruk av <b>Tor-Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Alle</b> som har denne OnionShare-adressen kan <b>Laste opp</b> filer til din datamaskin ved bruk av <b>Tor-Browser</b>: <img src='{}' />",
@@ -234,7 +233,6 @@
"systray_website_started_title": "Starter deling av nettside",
"systray_website_started_message": "Noen besøker din nettside",
"gui_website_mode_no_files": "Ingen nettside delt enda",
- "invalid_password_guess": "Feil passord",
"incorrect_password": "Feil passord",
"gui_settings_individual_downloads_label": "Forby nedlasting av enkeltfiler",
"history_requests_tooltip": "{} vevforespørsler",
@@ -274,7 +272,6 @@
"gui_open_folder_error": "Klarte ikke å åpne mappe med xdg-open. Filen er her: {}",
"gui_receive_flatpak_data_dir": "Fordi du har installert OnionShare som Flatpak må du lagre filer til en mappe i ~/OnionShare.",
"mode_settings_share_autostop_sharing_checkbox": "Stopp deling etter at filer er sendt (fravelg for å tillate nedlasting av individuelle filer)",
- "mode_settings_client_auth_checkbox": "Bruk klient-identitetsgodkjennelse",
"gui_close_tab_warning_persistent_description": "Denne fanen er vedvarende. Hvis du lukker den vil du miste onion-adressen den bruker. Er du sikker på at du vil lukke den?",
"gui_tab_name_chat": "Prat",
"gui_tab_name_website": "Nettside",
diff --git a/desktop/src/onionshare/resources/locale/nl.json b/desktop/src/onionshare/resources/locale/nl.json
index 2a9449b2..0e465476 100644
--- a/desktop/src/onionshare/resources/locale/nl.json
+++ b/desktop/src/onionshare/resources/locale/nl.json
@@ -132,7 +132,6 @@
"error_tor_protocol_error_unknown": "Er was een onbekende fout met Tor",
"error_invalid_private_key": "Dit type privésleutel wordt niet ondersteund",
"gui_tor_connection_lost": "De verbinding met Tor is verbroken.",
- "gui_use_legacy_v2_onions_checkbox": "Gebruik ouderwetse adressen",
"gui_save_private_key_checkbox": "Gebruik een vast adres",
"gui_share_url_description": "<b>1Iedereen</b>2 met dit OnionShare-adres kan je bestanden <b>3binnenhalen</b>4 met de <b>5Tor Browser</b>6: <img src='{}' />",
"gui_receive_url_description": "<b>Iedereen</b> met dit OnionShare adres kan bestanden op je computer <b>plaatsen</b> met de <b>Tor Browser</b>: <img src='{}' />",
@@ -255,7 +254,6 @@
"mode_settings_website_disable_csp_checkbox": "Stuur geen Content Security Policy header (hiermee kan uw website bronnen van derden gebruiken)",
"mode_settings_receive_data_dir_browse_button": "Blader",
"mode_settings_receive_data_dir_label": "Bewaar bestanden in",
- "mode_settings_client_auth_checkbox": "Gebruik client authorisatie",
"mode_settings_autostop_timer_checkbox": "Stop onion service op een geplande tijd",
"mode_settings_autostart_timer_checkbox": "Start onion service op een geplande tijd",
"mode_settings_persistent_checkbox": "Bewaar dit tabblad en open het automatisch wanneer ik OnionShare open",
diff --git a/desktop/src/onionshare/resources/locale/pa.json b/desktop/src/onionshare/resources/locale/pa.json
index f48df060..68496d46 100644
--- a/desktop/src/onionshare/resources/locale/pa.json
+++ b/desktop/src/onionshare/resources/locale/pa.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/pl.json b/desktop/src/onionshare/resources/locale/pl.json
index 21f352bf..2418775d 100644
--- a/desktop/src/onionshare/resources/locale/pl.json
+++ b/desktop/src/onionshare/resources/locale/pl.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "Czasomierz automatycznego rozpoczęcia wygasł przed uruchomieniem serwera. Utwórz nowy udział.",
"gui_server_autostop_timer_expired": "Czasomierz automatycznego rozpoczęcia wygasł. Dostosuj go, aby rozpocząć udostępnianie.",
"share_via_onionshare": "Udostępniaj przez OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Użyj starszych adresów",
"gui_save_private_key_checkbox": "Użyj stałego adresu",
"gui_share_url_description": "<b>Każdy</b> z tym adresem OnionShare może <b> pobrać</b> Twoje pliki za pomocą przeglądarki <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Każdy</b> z tym adresem OnionShare może <b>przesyłać</b> pliki na komputer za pomocą przeglądarki <b>Tor Browser</b>: <img src='{}' />",
@@ -261,7 +260,6 @@
"mode_settings_receive_data_dir_browse_button": "Przeglądaj",
"mode_settings_receive_data_dir_label": "Zapisz pliki do",
"mode_settings_share_autostop_sharing_checkbox": "Zatrzymaj udostępnianie po wysłaniu plików (usuń zaznaczenie, aby umożliwić pobieranie pojedynczych plików)",
- "mode_settings_client_auth_checkbox": "Użyj autoryzacji klienta",
"mode_settings_legacy_checkbox": "Użyj starszego adresu (onion service v2, niezalecane)",
"mode_settings_autostop_timer_checkbox": "Zatrzymaj usługę cebulową w zaplanowanym czasie",
"mode_settings_autostart_timer_checkbox": "Uruchomienie usługi cebulowej w zaplanowanym czasie",
diff --git a/desktop/src/onionshare/resources/locale/pt_BR.json b/desktop/src/onionshare/resources/locale/pt_BR.json
index faf314f6..553ffbe0 100644
--- a/desktop/src/onionshare/resources/locale/pt_BR.json
+++ b/desktop/src/onionshare/resources/locale/pt_BR.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "O cronômetro de parada automática acabou antes que o servidor fosse iniciado. Por favor, faça um novo compartilhamento.",
"gui_server_autostop_timer_expired": "O cronômetro já esgotou. Por favor, ajuste-o para começar a compartilhar.",
"share_via_onionshare": "Compartilhar via OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Usar endereços do tipo antigo",
"gui_save_private_key_checkbox": "Usar o mesmo endereço",
"gui_share_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>baixar</b> seus arquivos usando o <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>carregar</b> arquivos no seu computador usando o <b>Tor Browser</b>: <img src='{}' />",
@@ -235,7 +234,6 @@
"mode_settings_receive_data_dir_browse_button": "Navegar",
"mode_settings_receive_data_dir_label": "Salvar arquivos em",
"mode_settings_share_autostop_sharing_checkbox": "Interrompa o compartilhamento após o envio dos arquivos (desmarque para permitir o download de arquivos individuais)",
- "mode_settings_client_auth_checkbox": "Usar autorização de cliente",
"mode_settings_legacy_checkbox": "Usar um endereço herdado (serviço de onion v2, não recomendado)",
"mode_settings_autostop_timer_checkbox": "Interromper o serviço de onion na hora programada",
"mode_settings_autostart_timer_checkbox": "Iniciar serviço de onion na hora programada",
diff --git a/desktop/src/onionshare/resources/locale/pt_PT.json b/desktop/src/onionshare/resources/locale/pt_PT.json
index 96627344..21f0e05d 100644
--- a/desktop/src/onionshare/resources/locale/pt_PT.json
+++ b/desktop/src/onionshare/resources/locale/pt_PT.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "O cronómetro de paragem automática atingiu o tempo limite antes do servidor iniciar. Crie uma nova partilha.",
"gui_server_autostop_timer_expired": "O cronómetro de paragem automática expirou. Por favor, ajuste-o para começar a partilhar.",
"share_via_onionshare": "Partilhar via OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Usar endereços antigos",
"gui_save_private_key_checkbox": "Usar um endereço persistente",
"gui_share_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>descarregar</b> os seus ficheiros utilizando o <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Qualquer pessoa</b> com este endereço do OnionShare pode <b>enviar</b> ficheiros para o seu computador utilizando o <b>Tor Browser</b>: <img src='{}' />",
@@ -251,7 +250,6 @@
"mode_settings_receive_data_dir_browse_button": "Navegar",
"mode_settings_receive_data_dir_label": "Guardar ficheiros para",
"mode_settings_share_autostop_sharing_checkbox": "Parar a partilha de ficheiros após terem sido enviados (desmarque para permitir o descarregamento de ficheiros individuais)",
- "mode_settings_client_auth_checkbox": "Utilizar autorização do cliente",
"mode_settings_legacy_checkbox": "Utilize um endereço de herança (serviço onion v2, não é recomendado)",
"mode_settings_persistent_checkbox": "Guarda esta aba e abre-a automaticamente quando eu inicio o OnionShare",
"gui_quit_warning_description": "A partilha está ativa em algumas das suas abas. Se sair, todas as abas serão fechadas. Tem a certeza que pretende sair?",
diff --git a/desktop/src/onionshare/resources/locale/ro.json b/desktop/src/onionshare/resources/locale/ro.json
index 914a247a..d38979d8 100644
--- a/desktop/src/onionshare/resources/locale/ro.json
+++ b/desktop/src/onionshare/resources/locale/ro.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "Cronometrul de oprire automată a expirat înainte de pornirea serverului. Vă rugăm să faceți o nouă partajare.",
"gui_server_autostop_timer_expired": "Timpul pentru cronometrul auto-stop a expirat deja. Vă rugăm să îl modificați pentru a începe distribuirea.",
"share_via_onionshare": "Partajați prin OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Folosire adrese moștenite",
"gui_save_private_key_checkbox": "Folosiți o adresă persistentă",
"gui_share_url_description": "<b>Oricine</b> are această adresă OnionShare poate <b>descărca</b> fișierele dvs. folosind <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Oricine</b> are această adresă OnionShare poate <b>încărca</b> fișiere pe computerul dvs. folosind <b>Tor Browser</b>: <img src='{}' />",
diff --git a/desktop/src/onionshare/resources/locale/ru.json b/desktop/src/onionshare/resources/locale/ru.json
index ae99854b..34ff05a0 100644
--- a/desktop/src/onionshare/resources/locale/ru.json
+++ b/desktop/src/onionshare/resources/locale/ru.json
@@ -137,7 +137,6 @@
"gui_server_started_after_autostop_timer": "Время стоп-таймера истекло до того, как сервер был запущен. Пожалуйста, отправьте файлы заново.",
"gui_server_autostop_timer_expired": "Время стоп-таймера истекло. Пожалуйста, отрегулируйте его для начала отправки.",
"share_via_onionshare": "Поделиться через OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Используйте устаревшие адреса",
"gui_save_private_key_checkbox": "Используйте постоянный адрес",
"gui_share_url_description": "<b>Кто угодно</b> c этим адресом OnionShare может <b>скачать</b> Ваши файлы при помощи <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Кто угодно</b> c этим адресом OnionShare может <b>загрузить</b> файлы на ваш компьютер с помощью<b>Tor Browser</b>: <img src='{}' />",
@@ -236,7 +235,6 @@
"mode_settings_receive_data_dir_browse_button": "Обзор файлов",
"mode_settings_receive_data_dir_label": "Сохранять файлы в",
"mode_settings_share_autostop_sharing_checkbox": "Закрыть доступ к файлам после их отправки (отмените чтобы разрешить скачивание отдельных файлов)",
- "mode_settings_client_auth_checkbox": "Использовать авторизацию клиента",
"mode_settings_legacy_checkbox": "Использовать устаревшую версию адресов (версия 2 сервиса Тор, не рукомендуем)",
"mode_settings_autostop_timer_checkbox": "Отключить сервис onion в назначенное время",
"mode_settings_autostart_timer_checkbox": "Запустить сервис onion в назначенное время",
diff --git a/desktop/src/onionshare/resources/locale/si.json b/desktop/src/onionshare/resources/locale/si.json
index 6d6477cc..506dd446 100644
--- a/desktop/src/onionshare/resources/locale/si.json
+++ b/desktop/src/onionshare/resources/locale/si.json
@@ -167,7 +167,6 @@
"mode_settings_autostart_timer_checkbox": "",
"mode_settings_autostop_timer_checkbox": "",
"mode_settings_legacy_checkbox": "",
- "mode_settings_client_auth_checkbox": "",
"mode_settings_share_autostop_sharing_checkbox": "",
"mode_settings_receive_data_dir_label": "",
"mode_settings_receive_data_dir_browse_button": "",
diff --git a/desktop/src/onionshare/resources/locale/sk.json b/desktop/src/onionshare/resources/locale/sk.json
index b489e808..62c6f861 100644
--- a/desktop/src/onionshare/resources/locale/sk.json
+++ b/desktop/src/onionshare/resources/locale/sk.json
@@ -166,7 +166,6 @@
"mode_settings_autostart_timer_checkbox": "Spustiť onion službu v plánovanom čase",
"mode_settings_autostop_timer_checkbox": "Zastaviť onion službu v plánovanom čase",
"mode_settings_legacy_checkbox": "Použiť staršiu adresu (v2 onion služba, neodporúča sa)",
- "mode_settings_client_auth_checkbox": "Použiť autorizáciu klienta",
"mode_settings_share_autostop_sharing_checkbox": "Po odoslaní súborov zastaviť zdieľanie (zrušením začiarknutia povolíte sťahovanie jednotlivých súborov)",
"mode_settings_receive_data_dir_label": "Uložiť súbory do",
"mode_settings_receive_data_dir_browse_button": "Prechádzať",
diff --git a/desktop/src/onionshare/resources/locale/sl.json b/desktop/src/onionshare/resources/locale/sl.json
index c5867e7b..7e02d0d2 100644
--- a/desktop/src/onionshare/resources/locale/sl.json
+++ b/desktop/src/onionshare/resources/locale/sl.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/sn.json b/desktop/src/onionshare/resources/locale/sn.json
index af8c4ff8..f3e96a43 100644
--- a/desktop/src/onionshare/resources/locale/sn.json
+++ b/desktop/src/onionshare/resources/locale/sn.json
@@ -134,7 +134,6 @@
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
"gui_connect_to_tor_for_onion_settings": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/sr_Latn.json b/desktop/src/onionshare/resources/locale/sr_Latn.json
index f862a53b..dd1871ba 100644
--- a/desktop/src/onionshare/resources/locale/sr_Latn.json
+++ b/desktop/src/onionshare/resources/locale/sr_Latn.json
@@ -110,7 +110,6 @@
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Vreme automatskog zaustavljanja ne može biti isto ili ranije od vremena početka automatskog pokretanja. Podesi ga da bi započelo deljenje.",
"share_via_onionshare": "Deljenje pomoću OnionShare",
"gui_connect_to_tor_for_onion_settings": "Poveži se sa Torom da bi video postavke onion servisa",
- "gui_use_legacy_v2_onions_checkbox": "Koristi nasleđene adrese",
"gui_save_private_key_checkbox": "Koristi trajnu adresu",
"gui_share_url_description": "<b>Svako</b> sa ovom OnionShare sdresom može <b>preuzeti</b> tvoje datoteke koristeći <b>Tor Browser</b>: <img src='{}' />",
"gui_website_url_description": "<b>Svako</b> sa ovom OnionShare adresom može <b>posetiti</b> tvoju veb-stranicu koristeći <b>Tor Browser</b>: <img src='{}' />",
@@ -188,7 +187,6 @@
"gui_close_tab_warning_persistent_description": "Ovaj jezičak je postojan. Ako ga zatvorite, izgubićete onion adresu koju koristite. Da li ste sigurni da želite zatvoriti?",
"mode_settings_receive_data_dir_browse_button": "Pronađi",
"mode_settings_receive_data_dir_label": "Sačuvaj fajlove u",
- "mode_settings_client_auth_checkbox": "Koristi klijentsku autorizaciju",
"mode_settings_legacy_checkbox": "Koristite zastarelu adresu (v2 onion servis, nije preporučeno)",
"mode_settings_autostop_timer_checkbox": "Zaustavi onion servis u planirano vreme",
"mode_settings_autostart_timer_checkbox": "Pokreni onion servis u planirano vreme",
diff --git a/desktop/src/onionshare/resources/locale/sv.json b/desktop/src/onionshare/resources/locale/sv.json
index be9ca203..2bf7a97f 100644
--- a/desktop/src/onionshare/resources/locale/sv.json
+++ b/desktop/src/onionshare/resources/locale/sv.json
@@ -131,7 +131,6 @@
"gui_server_started_after_autostop_timer": "Tiden för den automatiska stopp-tidtagaren löpte ut innan servern startades.\nVänligen gör en ny delning.",
"gui_server_autostop_timer_expired": "Den automatiska stopp-tidtagaren har redan löpt ut. Vänligen justera den för att starta delning.",
"share_via_onionshare": "Dela med OnionShare",
- "gui_use_legacy_v2_onions_checkbox": "Använd äldre adresser",
"gui_save_private_key_checkbox": "Använd en beständig adress",
"gui_share_url_description": "<b>Alla</b> med denna OnionShare-adress kan <b>hämta</b> dina filer med <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Alla</b> med denna OnionShare-adress kan <b>ladda upp</b> filer till din dator med <b>Tor Browser</b>: <img src='{}' />",
@@ -222,7 +221,6 @@
"hours_first_letter": "t",
"minutes_first_letter": "m",
"seconds_first_letter": "s",
- "invalid_password_guess": "Ogiltig lösenordsgissning",
"gui_website_url_description": "<b>Alla</b> med denna OnionShare-adress kan <b>besöka</b> din webbplats med <b>Tor Browser</b>: <img src='{}' />",
"gui_mode_website_button": "Publicera webbplats",
"systray_site_loaded_title": "Webbplats inläst",
@@ -243,7 +241,6 @@
"mode_settings_receive_data_dir_browse_button": "Bläddra",
"mode_settings_receive_data_dir_label": "Spara filer till",
"mode_settings_share_autostop_sharing_checkbox": "Stoppa delning efter att filer har skickats (avmarkera för att tillåta hämtning av enskilda filer)",
- "mode_settings_client_auth_checkbox": "Använd klientauktorisering",
"mode_settings_legacy_checkbox": "Använd en äldre adress (v2-oniontjänst, rekommenderas inte)",
"mode_settings_autostart_timer_checkbox": "Starta oniontjänsten vid schemalagd tid",
"mode_settings_autostop_timer_checkbox": "Stoppa oniontjänsten vid schemalagd tid",
diff --git a/desktop/src/onionshare/resources/locale/sw.json b/desktop/src/onionshare/resources/locale/sw.json
index 45fe5eff..dc7dadb8 100644
--- a/desktop/src/onionshare/resources/locale/sw.json
+++ b/desktop/src/onionshare/resources/locale/sw.json
@@ -107,7 +107,6 @@
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "",
"share_via_onionshare": "",
"gui_connect_to_tor_for_onion_settings": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/te.json b/desktop/src/onionshare/resources/locale/te.json
index 65593d46..50ed3a58 100644
--- a/desktop/src/onionshare/resources/locale/te.json
+++ b/desktop/src/onionshare/resources/locale/te.json
@@ -107,7 +107,6 @@
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "స్వయంచాలక ఆగు సమయం అనేది స్వయంచాలక ప్రారంభ సమయంతో సమానంగా లేదా అంతకు ముందు ఉండకూడదు. పంచుకోవడం ప్రారంభించడం కొరకు దయచేసి దానిని నవీకరించండి.",
"share_via_onionshare": "OnionShare చేయి",
"gui_connect_to_tor_for_onion_settings": "Onion సేవా అమరికలను చూచుటకు Torతో అనుసంధానించు",
- "gui_use_legacy_v2_onions_checkbox": "పాత చిరునామాలు వాడు",
"gui_save_private_key_checkbox": "ఒక నిరంతర చిరునామాను వాడు",
"gui_share_url_description": "ఈOnionShare చిరునామా గల <b>ఎవరైనా</b> మీ దస్త్రాలను <b>Tor విహారిణి</b>తో <b>దింపుకోవచ్చు</b>: <img src='{}' />",
"gui_receive_url_description": "ఈOnionShare చిరునామా గల <b>ఎవరైనా</b> మీ దస్త్రాలను <b>Tor విహారిణి</b>తో <b>ఎక్కించుకోవచ్చు</b>:<img src='{}' />",
diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/src/onionshare/resources/locale/tr.json
index 0fe9067a..d8ff16fe 100644
--- a/desktop/src/onionshare/resources/locale/tr.json
+++ b/desktop/src/onionshare/resources/locale/tr.json
@@ -120,7 +120,6 @@
"gui_server_autostop_timer_expired": "Otomatik durma sayacı zaten sona ermiş. Paylaşmaya başlamak için sayacı ayarlayın.",
"share_via_onionshare": "OnionShare ile paylaş",
"gui_connect_to_tor_for_onion_settings": "Onion hizmet ayarlarını görmek için Tor bağlantısı kurun",
- "gui_use_legacy_v2_onions_checkbox": "Eski adresler kullanılsın",
"gui_save_private_key_checkbox": "Kalıcı bir adres kullanılsın",
"gui_share_url_description": "Bu OnionShare adresine sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak dosyalarınızı <b>indirebilir</b>: <img src='{}' />",
"gui_receive_url_description": "Bu OnionShare adresine sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak dosyaları bilgisayarınıza <b>yükleyebilir</b>: <img src='{}' />",
@@ -193,7 +192,6 @@
"hours_first_letter": "s",
"minutes_first_letter": "d",
"seconds_first_letter": "sn",
- "invalid_password_guess": "Geçersiz parola tahmini",
"gui_website_url_description": "Bu OnionShare adresine sahip olan <b>herkes</b> <b>Tor Browser</b> kullanarak web sitenizi <b>ziyaret edebilir</b>: <img src='{}' />",
"gui_mode_website_button": "Web Sitesini Yayınla",
"gui_website_mode_no_files": "Henüz Bir Web Sitesi Paylaşılmadı",
@@ -206,7 +204,6 @@
"mode_settings_receive_data_dir_browse_button": "Göz at",
"mode_settings_receive_data_dir_label": "Dosyaları şuraya kaydet",
"mode_settings_share_autostop_sharing_checkbox": "Dosyalar gönderildikten sonra paylaşmayı durdur (dosyaların tek tek indirilmesine izin vermek için işareti kaldırın)",
- "mode_settings_client_auth_checkbox": "İstemci kimlik doğrulaması kullan",
"mode_settings_legacy_checkbox": "Eski bir adres kullan (v2 onion hizmeti, tavsiye edilmez)",
"mode_settings_autostop_timer_checkbox": "Onion hizmetini zamanlanan saatte durdur",
"mode_settings_autostart_timer_checkbox": "Onion hizmetini zamanlanan saatte başlat",
diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/src/onionshare/resources/locale/uk.json
index 0e559e61..e5027ace 100644
--- a/desktop/src/onionshare/resources/locale/uk.json
+++ b/desktop/src/onionshare/resources/locale/uk.json
@@ -107,7 +107,6 @@
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Час автоспину не може бути однаковим або ранішим за час автоматичного запуску. Налаштуйте його, щоб почати надсилання.",
"share_via_onionshare": "Поділитися через OnionShare",
"gui_connect_to_tor_for_onion_settings": "З'єднайтеся з Tor, щоб побачити параметри служби onion",
- "gui_use_legacy_v2_onions_checkbox": "Використовувати застарілі адреси",
"gui_save_private_key_checkbox": "Використовувати постійну адресу",
"gui_share_url_description": "<b>Будь-хто</b>, за допомогою цієї адреси, може <b>завантажити</b> ваші файли, через <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Будь-хто</b>, за допомогою цієї адреси, може <b>завантажити</b> файли до вашого комп'ютера через <b>Tor Browser</b>: <img src='{}' />",
@@ -183,7 +182,6 @@
"mode_settings_website_disable_csp_checkbox": "Не надсилати заголовок політики безпеки вмісту (дозволяє вебсайту застосовувати сторонні ресурси)",
"mode_settings_receive_data_dir_label": "Зберігати файли до",
"mode_settings_share_autostop_sharing_checkbox": "Закрити доступ, коли файли надіслано (приберіть позначку, щоб дозволити завантаження окремих файлів)",
- "mode_settings_client_auth_checkbox": "Застосовувати авторизацію клієнта",
"mode_settings_legacy_checkbox": "Користуватися застарілою адресою (служба onion v2, не рекомендовано)",
"mode_settings_autostop_timer_checkbox": "Зупинити службу onion у запланований час",
"mode_settings_autostart_timer_checkbox": "Запускати службу onion у запланований час",
diff --git a/desktop/src/onionshare/resources/locale/wo.json b/desktop/src/onionshare/resources/locale/wo.json
index 4b3afd9a..3ec01ad9 100644
--- a/desktop/src/onionshare/resources/locale/wo.json
+++ b/desktop/src/onionshare/resources/locale/wo.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/yo.json b/desktop/src/onionshare/resources/locale/yo.json
index 40d6ff4b..3cc23c31 100644
--- a/desktop/src/onionshare/resources/locale/yo.json
+++ b/desktop/src/onionshare/resources/locale/yo.json
@@ -131,7 +131,6 @@
"gui_server_started_after_autostop_timer": "",
"gui_server_autostop_timer_expired": "",
"share_via_onionshare": "",
- "gui_use_legacy_v2_onions_checkbox": "",
"gui_save_private_key_checkbox": "",
"gui_share_url_description": "",
"gui_receive_url_description": "",
diff --git a/desktop/src/onionshare/resources/locale/zh_Hans.json b/desktop/src/onionshare/resources/locale/zh_Hans.json
index c6c8379d..d15a372c 100644
--- a/desktop/src/onionshare/resources/locale/zh_Hans.json
+++ b/desktop/src/onionshare/resources/locale/zh_Hans.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "在服务器启动之前,自动停止的定时器的计时已到。请建立一个新的共享。",
"gui_server_autostop_timer_expired": "自动停止的定时器计时已到。请对其调整以开始共享。",
"share_via_onionshare": "通过 OnionShare 共享",
- "gui_use_legacy_v2_onions_checkbox": "使用老式地址",
"gui_save_private_key_checkbox": "使用长期地址",
"gui_share_url_description": "<b>任何人</b>只要有这个 OnionShare 地址,都可以用<b> Tor Browser </b>来<b>下载</b>您的文件:<img src='{}' />",
"gui_receive_url_description": "<b>任何人</b>只要有这个 OnionShare 地址,都可以用<b> Tor Browser </b>向您的电脑<b>上传</b>文件:<img src='{}' />",
@@ -234,7 +233,6 @@
"mode_settings_receive_data_dir_browse_button": "浏览",
"mode_settings_receive_data_dir_label": "保存文件到",
"mode_settings_share_autostop_sharing_checkbox": "文件传送完后停止共享(取消选中可允许下载单个文件)",
- "mode_settings_client_auth_checkbox": "使用客户端认证",
"mode_settings_legacy_checkbox": "使用旧地址(v2 onion服务,不推荐)",
"mode_settings_autostop_timer_checkbox": "定时停止onion服务",
"mode_settings_autostart_timer_checkbox": "定时起动onion服务",
diff --git a/desktop/src/onionshare/resources/locale/zh_Hant.json b/desktop/src/onionshare/resources/locale/zh_Hant.json
index 654892b0..7cfabf7d 100644
--- a/desktop/src/onionshare/resources/locale/zh_Hant.json
+++ b/desktop/src/onionshare/resources/locale/zh_Hant.json
@@ -130,7 +130,6 @@
"gui_server_started_after_autostop_timer": "在服務器啓動之前,自動停止的定時器的計時已到。請建立一個新的共享。",
"gui_server_autostop_timer_expired": "自動停止計時器時間已到。請調整它來開始分享。",
"share_via_onionshare": "使用OnionShare分享",
- "gui_use_legacy_v2_onions_checkbox": "使用傳統地址",
"gui_save_private_key_checkbox": "使用永久地址",
"gui_share_url_description": "<b>任何人</b>只要擁有這個地址就可以<b>下載</b>你的檔案經由<b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>任何人</b>只要擁有這個地址就可以<b>上傳</b>檔案到你的電腦經由<b>Tor Browser</b>: <img src='{}' />",
@@ -266,7 +265,6 @@
"gui_rendezvous_cleanup": "等待Tor电路关闭,以确保文檔传输成功。\n\n這可能需要幾分鐘。",
"mode_settings_website_disable_csp_checkbox": "取消內容安全政策(Content Security Policy)信頭(允許您的網站使用三方資源)",
"mode_settings_share_autostop_sharing_checkbox": "檔案傳送完後停止共享(取消選中可允許下載單個檔案)",
- "mode_settings_client_auth_checkbox": "使用者端認證",
"mode_settings_legacy_checkbox": "使用舊地址(v2 onion服務,不推薦)",
"mode_settings_autostop_timer_checkbox": "定時停止onion服務",
"mode_settings_autostart_timer_checkbox": "定時起動onion服務",
diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py
index e4285cbe..ed9191b0 100644
--- a/desktop/src/onionshare/tab/mode/__init__.py
+++ b/desktop/src/onionshare/tab/mode/__init__.py
@@ -252,7 +252,7 @@ class Mode(QtWidgets.QWidget):
if (
not self.server_status.local_only
and not self.app.onion.supports_stealth
- and self.settings.get("general", "client_auth")
+ and not self.settings.get("general", "public")
):
can_start = False
diff --git a/desktop/src/onionshare/tab/mode/chat_mode/__init__.py b/desktop/src/onionshare/tab/mode/chat_mode/__init__.py
index fe3e69f1..e7a17ce7 100644
--- a/desktop/src/onionshare/tab/mode/chat_mode/__init__.py
+++ b/desktop/src/onionshare/tab/mode/chat_mode/__init__.py
@@ -130,7 +130,6 @@ class ChatMode(Mode):
"""
# Reset web counters
self.web.chat_mode.cur_history_id = 0
- self.web.reset_invalid_passwords()
def start_server_step2_custom(self):
"""
diff --git a/desktop/src/onionshare/tab/mode/mode_settings_widget.py b/desktop/src/onionshare/tab/mode/mode_settings_widget.py
index 766a3bb6..0e80023e 100644
--- a/desktop/src/onionshare/tab/mode/mode_settings_widget.py
+++ b/desktop/src/onionshare/tab/mode/mode_settings_widget.py
@@ -129,18 +129,6 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
autostop_timer_layout.addWidget(self.autostop_timer_checkbox)
autostop_timer_layout.addWidget(self.autostop_timer_widget)
- # Client auth (v3)
- self.client_auth_checkbox = QtWidgets.QCheckBox()
- self.client_auth_checkbox.clicked.connect(self.client_auth_checkbox_clicked)
- self.client_auth_checkbox.clicked.connect(self.update_ui)
- self.client_auth_checkbox.setText(
- strings._("mode_settings_client_auth_checkbox")
- )
- if self.settings.get("general", "client_auth"):
- self.client_auth_checkbox.setCheckState(QtCore.Qt.Checked)
- else:
- self.client_auth_checkbox.setCheckState(QtCore.Qt.Unchecked)
-
# Toggle advanced settings
self.toggle_advanced_button = QtWidgets.QPushButton()
self.toggle_advanced_button.clicked.connect(self.toggle_advanced_clicked)
@@ -155,7 +143,6 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
advanced_layout.addLayout(title_layout)
advanced_layout.addLayout(autostart_timer_layout)
advanced_layout.addLayout(autostop_timer_layout)
- advanced_layout.addWidget(self.client_auth_checkbox)
self.advanced_widget = QtWidgets.QWidget()
self.advanced_widget.setLayout(advanced_layout)
self.advanced_widget.hide()
@@ -250,11 +237,6 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
else:
self.autostop_timer_widget.hide()
- def client_auth_checkbox_clicked(self):
- self.settings.set(
- "general", "client_auth", self.client_auth_checkbox.isChecked()
- )
-
def toggle_advanced_clicked(self):
if self.advanced_widget.isVisible():
self.advanced_widget.hide()
diff --git a/desktop/src/onionshare/tab/mode/receive_mode/__init__.py b/desktop/src/onionshare/tab/mode/receive_mode/__init__.py
index d07b5ffc..e9f6b2ce 100644
--- a/desktop/src/onionshare/tab/mode/receive_mode/__init__.py
+++ b/desktop/src/onionshare/tab/mode/receive_mode/__init__.py
@@ -296,7 +296,6 @@ class ReceiveMode(Mode):
"""
# Reset web counters
self.web.receive_mode.cur_history_id = 0
- self.web.reset_invalid_passwords()
# Hide and reset the uploads if we have previously shared
self.reset_info_counters()
diff --git a/desktop/src/onionshare/tab/mode/share_mode/__init__.py b/desktop/src/onionshare/tab/mode/share_mode/__init__.py
index 4056d92e..5d3e3c35 100644
--- a/desktop/src/onionshare/tab/mode/share_mode/__init__.py
+++ b/desktop/src/onionshare/tab/mode/share_mode/__init__.py
@@ -219,7 +219,6 @@ class ShareMode(Mode):
"""
# Reset web counters
self.web.share_mode.cur_history_id = 0
- self.web.reset_invalid_passwords()
# Hide and reset the downloads if we have previously shared
self.reset_info_counters()
diff --git a/desktop/src/onionshare/tab/mode/website_mode/__init__.py b/desktop/src/onionshare/tab/mode/website_mode/__init__.py
index 577ea28e..a50d15b9 100644
--- a/desktop/src/onionshare/tab/mode/website_mode/__init__.py
+++ b/desktop/src/onionshare/tab/mode/website_mode/__init__.py
@@ -210,7 +210,6 @@ class WebsiteMode(Mode):
"""
# Reset web counters
self.web.website_mode.visit_count = 0
- self.web.reset_invalid_passwords()
# Hide and reset the downloads if we have previously shared
self.reset_info_counters()
diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/src/onionshare/tab/server_status.py
index 92c02744..6cd905ad 100644
--- a/desktop/src/onionshare/tab/server_status.py
+++ b/desktop/src/onionshare/tab/server_status.py
@@ -115,8 +115,8 @@ class ServerStatus(QtWidgets.QWidget):
self.copy_client_auth_button.clicked.connect(self.copy_client_auth)
url_buttons_layout = QtWidgets.QHBoxLayout()
url_buttons_layout.addWidget(self.copy_url_button)
- url_buttons_layout.addWidget(self.show_url_qr_code_button)
url_buttons_layout.addWidget(self.copy_client_auth_button)
+ url_buttons_layout.addWidget(self.show_url_qr_code_button)
url_buttons_layout.addStretch()
url_layout = QtWidgets.QVBoxLayout()
@@ -173,21 +173,41 @@ class ServerStatus(QtWidgets.QWidget):
info_image = GuiCommon.get_resource_path("images/info.png")
if self.mode == self.common.gui.MODE_SHARE:
- self.url_description.setText(
- strings._("gui_share_url_description").format(info_image)
- )
+ if self.settings.get("general", "public"):
+ self.url_description.setText(
+ strings._("gui_share_url_public_description").format(info_image)
+ )
+ else:
+ self.url_description.setText(
+ strings._("gui_share_url_description").format(info_image)
+ )
elif self.mode == self.common.gui.MODE_WEBSITE:
- self.url_description.setText(
- strings._("gui_website_url_description").format(info_image)
- )
+ if self.settings.get("general", "public"):
+ self.url_description.setText(
+ strings._("gui_website_url_public_description").format(info_image)
+ )
+ else:
+ self.url_description.setText(
+ strings._("gui_website_url_description").format(info_image)
+ )
elif self.mode == self.common.gui.MODE_RECEIVE:
- self.url_description.setText(
- strings._("gui_receive_url_description").format(info_image)
- )
+ if self.settings.get("general", "public"):
+ self.url_description.setText(
+ strings._("gui_receive_url_public_description").format(info_image)
+ )
+ else:
+ self.url_description.setText(
+ strings._("gui_receive_url_description").format(info_image)
+ )
elif self.mode == self.common.gui.MODE_CHAT:
- self.url_description.setText(
- strings._("gui_chat_url_description").format(info_image)
- )
+ if self.settings.get("general", "public"):
+ self.url_description.setText(
+ strings._("gui_chat_url_public_description").format(info_image)
+ )
+ else:
+ self.url_description.setText(
+ strings._("gui_chat_url_description").format(info_image)
+ )
# Show a Tool Tip explaining the lifecycle of this URL
if self.settings.get("persistent", "enabled"):
@@ -213,10 +233,10 @@ class ServerStatus(QtWidgets.QWidget):
self.show_url_qr_code_button.show()
- if self.settings.get("general", "client_auth"):
- self.copy_client_auth_button.show()
- else:
+ if self.settings.get("general", "public"):
self.copy_client_auth_button.hide()
+ else:
+ self.copy_client_auth_button.show()
def update(self):
"""
@@ -230,10 +250,6 @@ class ServerStatus(QtWidgets.QWidget):
self.common.settings.load()
self.show_url()
- if not self.settings.get("onion", "password"):
- self.settings.set("onion", "password", self.web.password)
- self.settings.save()
-
if self.settings.get("general", "autostop_timer"):
self.server_button.setToolTip(
strings._("gui_stop_server_autostop_timer_tooltip").format(
@@ -466,8 +482,5 @@ class ServerStatus(QtWidgets.QWidget):
"""
Returns the OnionShare URL.
"""
- if self.settings.get("general", "public"):
- url = f"http://{self.app.onion_host}"
- else:
- url = f"http://onionshare:{self.web.password}@{self.app.onion_host}"
+ url = f"http://{self.app.onion_host}"
return url
diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/src/onionshare/tab/tab.py
index 062bf6b7..b0f2a9ac 100644
--- a/desktop/src/onionshare/tab/tab.py
+++ b/desktop/src/onionshare/tab/tab.py
@@ -581,11 +581,6 @@ class Tab(QtWidgets.QWidget):
f"{strings._('other_page_loaded')}: {event['path']}"
)
- if event["type"] == Web.REQUEST_INVALID_PASSWORD:
- self.status_bar.showMessage(
- f"[#{mode.web.invalid_passwords_count}] {strings._('incorrect_password')}: {event['data']}"
- )
-
mode.timer_callback()
def copy_url(self):
diff --git a/desktop/src/onionshare/threads.py b/desktop/src/onionshare/threads.py
index c9a3dba4..b02c6f21 100644
--- a/desktop/src/onionshare/threads.py
+++ b/desktop/src/onionshare/threads.py
@@ -65,14 +65,9 @@ class OnionThread(QtCore.QThread):
# Make a new static URL path for each new share
self.mode.web.generate_static_url_path()
- # Choose port and password early, because we need them to exist in advance for scheduled shares
+ # Choose port early, because we need them to exist in advance for scheduled shares
if not self.mode.app.port:
self.mode.app.choose_port()
- if not self.mode.settings.get("general", "public"):
- if not self.mode.web.password:
- self.mode.web.generate_password(
- self.mode.settings.get("onion", "password")
- )
try:
if self.mode.obtain_onion_early:
diff --git a/desktop/tests/gui_base_test.py b/desktop/tests/gui_base_test.py
index a99c783d..83d170f1 100644
--- a/desktop/tests/gui_base_test.py
+++ b/desktop/tests/gui_base_test.py
@@ -191,30 +191,13 @@ class GuiBaseTest(unittest.TestCase):
# Upload a file
files = {"file[]": open(self.tmpfiles[0], "rb")}
url = f"http://127.0.0.1:{tab.app.port}/upload"
- if tab.settings.get("general", "public"):
- requests.post(url, files=files)
- else:
- requests.post(
- url,
- files=files,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().web.password
- ),
- )
+ requests.post(url, files=files)
QtTest.QTest.qWait(2000, self.gui.qtapp)
if type(tab.get_mode()) == ShareMode:
# Download files
url = f"http://127.0.0.1:{tab.app.port}/download"
- if tab.settings.get("general", "public"):
- requests.get(url)
- else:
- requests.get(
- url,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().web.password
- ),
- )
+ requests.get(url)
QtTest.QTest.qWait(2000, self.gui.qtapp)
# Indicator should be visible, have a value of "1"
@@ -273,13 +256,6 @@ class GuiBaseTest(unittest.TestCase):
except requests.exceptions.ConnectionError:
self.assertTrue(False)
- def have_a_password(self, tab):
- """Test that we have a valid password"""
- if not tab.settings.get("general", "public"):
- self.assertRegex(tab.get_mode().server_status.web.password, r"(\w+)-(\w+)")
- else:
- self.assertIsNone(tab.get_mode().server_status.web.password, r"(\w+)-(\w+)")
-
def add_button_visible(self, tab):
"""Test that the add button should be visible"""
if platform.system() == "Darwin":
@@ -304,13 +280,7 @@ class GuiBaseTest(unittest.TestCase):
tab.get_mode().server_status.copy_url_button.click()
clipboard = tab.common.gui.qtapp.clipboard()
- if tab.settings.get("general", "public"):
- self.assertEqual(clipboard.text(), f"http://127.0.0.1:{tab.app.port}")
- else:
- self.assertEqual(
- clipboard.text(),
- f"http://onionshare:{tab.get_mode().server_status.web.password}@127.0.0.1:{tab.app.port}",
- )
+ self.assertEqual(clipboard.text(), f"http://127.0.0.1:{tab.app.port}")
def have_show_qr_code_button(self, tab):
"""Test that the Show QR Code URL button is shown and that it loads a QR Code Dialog"""
@@ -343,16 +313,7 @@ class GuiBaseTest(unittest.TestCase):
"""Test that the web page contains a string"""
url = f"http://127.0.0.1:{tab.app.port}/"
- if tab.settings.get("general", "public"):
- r = requests.get(url)
- else:
- r = requests.get(
- url,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().web.password
- ),
- )
-
+ r = requests.get(url)
self.assertTrue(string in r.text)
def history_widgets_present(self, tab):
diff --git a/desktop/tests/test_gui_chat.py b/desktop/tests/test_gui_chat.py
index 15ecaa44..246a4494 100644
--- a/desktop/tests/test_gui_chat.py
+++ b/desktop/tests/test_gui_chat.py
@@ -11,15 +11,7 @@ class TestChat(GuiBaseTest):
def view_chat(self, tab):
"""Test that we can view the chat room"""
url = f"http://127.0.0.1:{tab.app.port}/"
- if tab.settings.get("general", "public"):
- r = requests.get(url)
- else:
- r = requests.get(
- url,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().server_status.web.password
- ),
- )
+ r = requests.get(url)
QtTest.QTest.qWait(500, self.gui.qtapp)
self.assertTrue("Chat <b>requires JavaScript</b>" in r.text)
@@ -31,16 +23,7 @@ class TestChat(GuiBaseTest):
"""Test that we can change our username"""
url = f"http://127.0.0.1:{tab.app.port}/update-session-username"
data = {"username": "oniontest"}
- if tab.settings.get("general", "public"):
- r = requests.post(url, json=data)
- else:
- r = requests.post(
- url,
- json=data,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().server_status.web.password
- ),
- )
+ r = requests.post(url, json=data)
QtTest.QTest.qWait(500, self.gui.qtapp)
jsonResponse = r.json()
@@ -53,7 +36,6 @@ class TestChat(GuiBaseTest):
self.server_status_indicator_says_starting(tab)
self.server_is_started(tab, startup_time=500)
self.web_server_is_running(tab)
- self.have_a_password(tab)
self.url_description_shown(tab)
self.have_copy_url_button(tab)
self.have_show_qr_code_button(tab)
diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py
index ee5f599e..84b9c5bd 100644
--- a/desktop/tests/test_gui_share.py
+++ b/desktop/tests/test_gui_share.py
@@ -72,15 +72,7 @@ class TestShare(GuiBaseTest):
def download_share(self, tab):
"""Test that we can download the share"""
url = f"http://127.0.0.1:{tab.app.port}/download"
- if tab.settings.get("general", "public"):
- r = requests.get(url)
- else:
- r = requests.get(
- url,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().server_status.web.password
- ),
- )
+ r = requests.get(url)
tmp_file = tempfile.NamedTemporaryFile("wb", delete=False)
tmp_file.write(r.content)
@@ -99,40 +91,16 @@ class TestShare(GuiBaseTest):
"""
url = f"http://127.0.0.1:{tab.app.port}"
download_file_url = f"http://127.0.0.1:{tab.app.port}/test.txt"
- if tab.settings.get("general", "public"):
- r = requests.get(url)
- else:
- r = requests.get(
- url,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().server_status.web.password
- ),
- )
+ r = requests.get(url)
if tab.settings.get("share", "autostop_sharing"):
self.assertFalse('a href="/test.txt"' in r.text)
- if tab.settings.get("general", "public"):
- r = requests.get(download_file_url)
- else:
- r = requests.get(
- download_file_url,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().server_status.web.password
- ),
- )
+ r = requests.get(download_file_url)
self.assertEqual(r.status_code, 404)
self.download_share(tab)
else:
self.assertTrue('a href="test.txt"' in r.text)
- if tab.settings.get("general", "public"):
- r = requests.get(download_file_url)
- else:
- r = requests.get(
- download_file_url,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().server_status.web.password
- ),
- )
+ r = requests.get(download_file_url)
tmp_file = tempfile.NamedTemporaryFile("wb", delete=False)
tmp_file.write(r.content)
@@ -144,34 +112,6 @@ class TestShare(GuiBaseTest):
QtTest.QTest.qWait(500, self.gui.qtapp)
- def hit_401(self, tab):
- """Test that the server stops after too many 401s, or doesn't when in public mode"""
- # In non-public mode, get ready to accept the dialog
- if not tab.settings.get("general", "public"):
-
- def accept_dialog():
- window = tab.common.gui.qtapp.activeWindow()
- if window:
- window.close()
-
- QtCore.QTimer.singleShot(1000, accept_dialog)
-
- # Make 20 requests with guessed passwords
- url = f"http://127.0.0.1:{tab.app.port}/"
- for _ in range(20):
- password_guess = self.gui.common.build_password()
- requests.get(
- url, auth=requests.auth.HTTPBasicAuth("onionshare", password_guess)
- )
-
- # In public mode, we should still be running (no rate-limiting)
- if tab.settings.get("general", "public"):
- self.web_server_is_running(tab)
-
- # In non-public mode, we should be shut down (rate-limiting)
- else:
- self.web_server_is_stopped(tab)
-
def set_autostart_timer(self, tab, timer):
"""Test that the timer can be set"""
schedule = QtCore.QDateTime.currentDateTime().addSecs(timer)
@@ -241,7 +181,6 @@ class TestShare(GuiBaseTest):
self.mode_settings_widget_is_hidden(tab)
self.server_is_started(tab, startup_time)
self.web_server_is_running(tab)
- self.have_a_password(tab)
self.url_description_shown(tab)
self.have_copy_url_button(tab)
self.have_show_qr_code_button(tab)
@@ -490,9 +429,9 @@ class TestShare(GuiBaseTest):
self.close_all_tabs()
- def test_persistent_password(self):
+ def test_persistent_mode(self):
"""
- Test a large download
+ Test persistent mode
"""
tab = self.new_share_tab()
tab.get_mode().mode_settings_widget.persistent_checkbox.click()
@@ -500,10 +439,9 @@ class TestShare(GuiBaseTest):
self.run_all_common_setup_tests()
self.run_all_share_mode_setup_tests(tab)
self.run_all_share_mode_started_tests(tab)
- password = tab.get_mode().server_status.web.password
self.run_all_share_mode_download_tests(tab)
self.run_all_share_mode_started_tests(tab)
- self.assertEqual(tab.get_mode().server_status.web.password, password)
+ self.assertTrue("Every subsequent share reuses the address" in tab.get_mode().server_status.url_description.toolTip())
self.run_all_share_mode_download_tests(tab)
self.close_all_tabs()
@@ -570,45 +508,6 @@ class TestShare(GuiBaseTest):
self.close_all_tabs()
- def test_401_triggers_ratelimit(self):
- """
- Rate limit should be triggered
- """
- tab = self.new_share_tab()
-
- def accept_dialog():
- window = tab.common.gui.qtapp.activeWindow()
- if window:
- window.close()
-
- tab.get_mode().autostop_sharing_checkbox.click()
-
- self.run_all_common_setup_tests()
- self.run_all_share_mode_tests(tab)
- self.hit_401(tab)
-
- self.close_all_tabs()
-
- def test_401_public_skips_ratelimit(self):
- """
- Public mode should skip the rate limit
- """
- tab = self.new_share_tab()
-
- def accept_dialog():
- window = tab.common.gui.qtapp.activeWindow()
- if window:
- window.close()
-
- tab.get_mode().autostop_sharing_checkbox.click()
- tab.get_mode().mode_settings_widget.public_checkbox.click()
-
- self.run_all_common_setup_tests()
- self.run_all_share_mode_tests(tab)
- self.hit_401(tab)
-
- self.close_all_tabs()
-
def test_client_auth(self):
"""
Test the ClientAuth is received from the backend,
@@ -617,7 +516,6 @@ class TestShare(GuiBaseTest):
"""
tab = self.new_share_tab()
tab.get_mode().mode_settings_widget.toggle_advanced_button.click()
- tab.get_mode().mode_settings_widget.client_auth_checkbox.click()
self.run_all_common_setup_tests()
self.run_all_share_mode_setup_tests(tab)
diff --git a/desktop/tests/test_gui_website.py b/desktop/tests/test_gui_website.py
index f526756a..d7a75ed6 100644
--- a/desktop/tests/test_gui_website.py
+++ b/desktop/tests/test_gui_website.py
@@ -11,32 +11,14 @@ class TestWebsite(GuiBaseTest):
def view_website(self, tab):
"""Test that we can download the share"""
url = f"http://127.0.0.1:{tab.app.port}/"
- if tab.settings.get("general", "public"):
- r = requests.get(url)
- else:
- r = requests.get(
- url,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().server_status.web.password
- ),
- )
-
+ r = requests.get(url)
QtTest.QTest.qWait(500, self.gui.qtapp)
self.assertTrue("This is a test website hosted by OnionShare" in r.text)
def check_csp_header(self, tab):
"""Test that the CSP header is present when enabled or vice versa"""
url = f"http://127.0.0.1:{tab.app.port}/"
- if tab.settings.get("general", "public"):
- r = requests.get(url)
- else:
- r = requests.get(
- url,
- auth=requests.auth.HTTPBasicAuth(
- "onionshare", tab.get_mode().server_status.web.password
- ),
- )
-
+ r = requests.get(url)
QtTest.QTest.qWait(500, self.gui.qtapp)
if tab.settings.get("website", "disable_csp"):
self.assertFalse("Content-Security-Policy" in r.headers)
@@ -63,7 +45,6 @@ class TestWebsite(GuiBaseTest):
self.add_remove_buttons_hidden(tab)
self.server_is_started(tab, startup_time)
self.web_server_is_running(tab)
- self.have_a_password(tab)
self.url_description_shown(tab)
self.have_copy_url_button(tab)
self.have_show_qr_code_button(tab)