[tor-commits] [obfsproxy/master] Use more readable error messages.
asn at torproject.org
asn at torproject.org
Tue Jul 15 12:23:07 UTC 2014
commit b498fe6feffda4a4d73112a099ecc9cdc134ffb6
Author: Philipp Winter <phw at torproject.org>
Date: Sun Mar 9 00:45:27 2014 +0100
Use more readable error messages.
To a user, it's not immediately clear that a given password was not well
formed. The refactored error messages should fix that. See bug
<https://bugs.torproject.org/11143> for context.
---
obfsproxy/transports/scramblesuit/scramblesuit.py | 28 +++++++++++++++------
1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/obfsproxy/transports/scramblesuit/scramblesuit.py b/obfsproxy/transports/scramblesuit/scramblesuit.py
index 87a7370..8e04cc5 100644
--- a/obfsproxy/transports/scramblesuit/scramblesuit.py
+++ b/obfsproxy/transports/scramblesuit/scramblesuit.py
@@ -117,8 +117,16 @@ class ScrambleSuitTransport( base.BaseTransport ):
if cls.weAreServer and not cls.weAreExternal:
cfg = transportConfig.getServerTransportOptions()
if cfg and "password" in cfg:
- cls.uniformDHSecret = base64.b32decode(util.sanitiseBase32(
- cfg["password"]))
+ try:
+ cls.uniformDHSecret = base64.b32decode(util.sanitiseBase32(
+ cfg["password"]))
+ except TypeError as error:
+ log.error(error.message)
+ raise base.PluggableTransportError("Given password '%s' " \
+ "is not valid Base32! Run " \
+ "'generate_password.py' to generate a good " \
+ "password." % cfg["password"])
+
cls.uniformDHSecret = cls.uniformDHSecret.strip()
@classmethod
@@ -562,9 +570,9 @@ class ScrambleSuitTransport( base.BaseTransport ):
args.uniformDHSecret))
except (TypeError, AttributeError) as error:
log.error(error.message)
- raise base.PluggableTransportError(
- "UniformDH password '%s' isn't valid base32!"
- % args.uniformDHSecret)
+ raise base.PluggableTransportError("Given password '%s' is not " \
+ "valid Base32! Run 'generate_password.py' to generate " \
+ "a good password." % args.uniformDHSecret)
parentalApproval = super(
ScrambleSuitTransport, cls).validate_external_mode_cli(args)
@@ -611,8 +619,14 @@ class ScrambleSuitTransport( base.BaseTransport ):
log.warning("A UniformDH password was already specified over "
"the command line. Using the SOCKS secret instead.")
- self.uniformDHSecret = base64.b32decode(util.sanitiseBase32(
- args[0].split('=')[1].strip()))
+ try:
+ self.uniformDHSecret = base64.b32decode(util.sanitiseBase32(
+ args[0].split('=')[1].strip()))
+ except TypeError as error:
+ log.error(error.message)
+ raise base.PluggableTransportError("Given password '%s' is not " \
+ "valid Base32! Run 'generate_password.py' to generate " \
+ "a good password." % args[0].split('=')[1].strip())
rawLength = len(self.uniformDHSecret)
if rawLength != const.SHARED_SECRET_LENGTH:
More information about the tor-commits
mailing list