diff options
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | data/leap_client.pro | 56 | ||||
| -rw-r--r-- | data/translations/es.qm | bin | 12207 -> 12111 bytes | |||
| -rw-r--r-- | data/ts/en_US.ts | 664 | ||||
| -rw-r--r-- | src/leap/crypto/srpauth.py | 13 | 
5 files changed, 551 insertions, 184 deletions
| @@ -27,7 +27,7 @@ RESOURCES = locale.qrc loggerwindow.qrc mainwindow.qrc icons.qrc  #pyuic4 and pyrcc4 binaries  PYUIC = pyside-uic  PYRCC = pyside-rcc -PYLUP = pylupdate4 +PYLUP = pyside-lupdate  LRELE = lrelease diff --git a/data/leap_client.pro b/data/leap_client.pro index e91497c0..ff26ad1a 100644 --- a/data/leap_client.pro +++ b/data/leap_client.pro @@ -2,31 +2,51 @@  # is not there a f*** way of expanding this? other to template with python I mean... -SOURCES += ../src/leap/gui/mainwindow.py \ -           ../src/leap/gui/wizardpage.py \ -           ../src/leap/gui/wizard.py \ -           ../src/leap/config/provider_spec.py \ -           ../src/leap/config/pluggableconfig.py \ +# to get a list of python files we can use: +# find . -iname "*.py" | grep -Ev "__init__.py|/build/|/docs/|/gui/ui_[a-z]*.py|/gui/[a-z]*_rc.py|./.venv/|/tests/" +# and remove by hand the few files that we do not want. + +SOURCES += ../src/leap/app.py \ +           ../src/leap/config/leapsettings.py \             ../src/leap/config/providerconfig.py \ -           ../src/leap/config/prefixers.py \ -           ../src/leap/config/baseconfig.py \ -           ../src/leap/app.py \ -           ../src/leap/util/checkerthread.py \ -           ../src/leap/util/leap_argparse.py \ -           ../src/leap/util/check.py \ -           ../src/leap/crypto/constants.py \             ../src/leap/crypto/srpauth.py \             ../src/leap/crypto/srpregister.py \ +           ../src/leap/gui/loggerwindow.py \ +           ../src/leap/gui/login.py \ +           ../src/leap/gui/mainwindow.py \ +           ../src/leap/gui/statuspanel.py \ +           ../src/leap/gui/twisted_main.py \ +           ../src/leap/gui/wizardpage.py \ +           ../src/leap/gui/wizard.py \ +           ../src/leap/platform_init/initializers.py \ +           ../src/leap/platform_init/locks.py \ +           ../src/leap/provider/supportedapis.py \ +           ../src/leap/services/abstractbootstrapper.py \             ../src/leap/services/eip/eipbootstrapper.py \ +           ../src/leap/services/eip/eipconfig.py \ +           ../src/leap/services/eip/providerbootstrapper.py \             ../src/leap/services/eip/udstelnet.py \ -           ../src/leap/services/eip/eipspec.py \ -           ../src/leap/services/eip/vpn.py \             ../src/leap/services/eip/vpnlaunchers.py \ -           ../src/leap/services/eip/providerbootstrapper.py \ -           ../src/leap/services/eip/eipconfig.py +           ../src/leap/services/eip/vpnprocess.py \ +           ../src/leap/services/mail/smtpbootstrapper.py \ +           ../src/leap/services/mail/smtpconfig.py \ +           ../src/leap/services/soledad/soledadbootstrapper.py \ +           ../src/leap/services/soledad/soledadconfig.py \ +           ../src/leap/services/tx.py \ +           ../src/leap/util/constants.py \ +           ../src/leap/util/keyring_helpers.py \ +           ../src/leap/util/leap_argparse.py \ +           ../src/leap/util/leap_log_handler.py \ +           ../src/leap/util/privilege_policies.py \ +           ../src/leap/util/pyside_tests_helper.py \ +           ../src/leap/util/request_helpers.py \ +           ../src/leap/util/requirement_checker.py -FORMS += ../src/leap/gui/ui/mainwindow.ui \ -         ../src/leap/gui/ui/wizard.ui +FORMS += ../src/leap/gui/ui/loggerwindow.ui \ +         ../src/leap/gui/ui/login.ui \ +         ../src/leap/gui/ui/mainwindow.ui \ +         ../src/leap/gui/ui/statuspanel.ui \ +         ../src/leap/gui/ui/wizard.ui \  # where to generate ts files -- tx will pick from here diff --git a/data/translations/es.qm b/data/translations/es.qmBinary files differ index 9b32cdcf..d75644ba 100644 --- a/data/translations/es.qm +++ b/data/translations/es.qm diff --git a/data/ts/en_US.ts b/data/ts/en_US.ts index 426acfbc..250b58ce 100644 --- a/data/ts/en_US.ts +++ b/data/ts/en_US.ts @@ -1,246 +1,421 @@  <?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS><TS version="2.0"> +<!DOCTYPE TS><TS version="1.1"> +<context> +    <name>EIPBootstrapper</name> +    <message> +        <location filename="../src/leap/services/eip/eipbootstrapper.py" line="151"/> +        <source>The downloaded certificate is not a valid PEM file</source> +        <translation type="unfinished"></translation> +    </message> +</context> +<context> +    <name>LinuxVPNLauncher</name> +    <message> +        <location filename="../src/leap/services/eip/vpnlaunchers.py" line="380"/> +        <source>No gateway was found!</source> +        <translation type="unfinished"></translation> +    </message> +</context> +<context> +    <name>LoggerWindow</name> +    <message> +        <location filename="../src/leap/gui/ui/loggerwindow.ui" line="14"/> +        <source>Logs</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/loggerwindow.ui" line="29"/> +        <source>Debug</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/loggerwindow.ui" line="49"/> +        <source>Info</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/loggerwindow.ui" line="69"/> +        <source>Warning</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/loggerwindow.ui" line="89"/> +        <source>Error</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/loggerwindow.ui" line="109"/> +        <source>Critical</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/loggerwindow.ui" line="129"/> +        <source>Save to file</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/loggerwindow.py" line="113"/> +        <source>Save As</source> +        <translation type="unfinished"></translation> +    </message> +</context> +<context> +    <name>LoginWidget</name> +    <message> +        <location filename="../src/leap/gui/ui/login.ui" line="14"/> +        <source>Form</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/login.ui" line="49"/> +        <source>Create a new account</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/login.ui" line="56"/> +        <source><b>Provider:</b></source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/login.ui" line="76"/> +        <source>Remember username and password</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/login.ui" line="83"/> +        <source><b>Username:</b></source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/login.ui" line="93"/> +        <source><b>Password:</b></source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/login.ui" line="103"/> +        <source>Log In</source> +        <translation type="unfinished"></translation> +    </message> +</context>  <context>      <name>MainWindow</name>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="592"/> -        <source>Encryption is OFF</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="14"/> +        <source>LEAP</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="155"/> -        <source>Stop</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="62"/> +        <source>There are new updates available, please restart.</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="257"/> -        <source>Hide</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="78"/> +        <source>More...</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="259"/> -        <source>Show</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="233"/> +        <source>Show Log</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="288"/> -        <source>About LEAP</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="261"/> +        <source>&Session</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="288"/> -        <source>LEAP is a non-profit dedicated to giving all internet users access to secure communication. Our focus is on adapting encryption technology to make it easy to use and widely available. <a href="https://leap.se">More about LEAP</a></source> +        <location filename="../src/leap/gui/mainwindow.py" line="521"/> +        <source>Help</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="433"/> -        <source>Could not load provider configuration</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="281"/> +        <source>&Sign out</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="459"/> -        <source>Please select a valid provider</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="286"/> +        <source>&Quit</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="463"/> -        <source>Please provide a valid username</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="291"/> +        <source>About &LEAP</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="467"/> -        <source>Please provide a valid Password</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="296"/> +        <source>&Help</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="470"/> -        <source>Logging in...</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="301"/> +        <source>&Wizard</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="549"/> -        <source>Stop EIP</source> +        <location filename="../src/leap/gui/ui/mainwindow.ui" line="306"/> +        <source>Show &logs</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="558"/> -        <source>EIP has stopped</source> +        <location filename="../src/leap/gui/mainwindow.py" line="230"/> +        <source>No default provider</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="560"/> -        <source>Start EIP</source> +        <location filename="../src/leap/gui/mainwindow.py" line="233"/> +        <source>Encrypted internet is OFF</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="573"/> -        <source>Checking configuration, please wait...</source> +        <location filename="../src/leap/gui/mainwindow.py" line="1051"/> +        <source>Turn ON</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="581"/> -        <source>%s does not support EIP</source> +        <location filename="../src/leap/gui/mainwindow.py" line="553"/> +        <source>Hide Main Window</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="596"/> -        <source>Encryption is ON</source> +        <location filename="../src/leap/gui/mainwindow.py" line="391"/> +        <source>The LEAPClient app is ready to update, please restart the application.</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/mainwindow.py" line="400"/> +        <source> The following components will be updated: +%s</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/mainwindow.py" line="403"/> +        <source>Updates available</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/mainwindow.py" line="519"/> +        <source>Preferences</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/mainwindow.py" line="552"/> +        <source>Show Main Window</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/mainwindow.py" line="606"/> +        <source>About LEAP - %s</source>          <translation type="unfinished"></translation>      </message>      <message>          <location filename="../src/leap/gui/mainwindow.py" line="614"/> -        <source>VPN: Authenticating...</source> +        <source>version: <b>%s</b><br>LEAP is a non-profit dedicated to giving all internet users access to secure communication. Our focus is on adapting encryption technology to make it easy to use and widely available. <a href="https://leap.se">More about LEAP</a></source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="616"/> -        <source>VPN: Retrieving configuration...</source> +        <location filename="../src/leap/gui/mainwindow.py" line="716"/> +        <source>Could not load provider configuration.</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="618"/> -        <source>VPN: Connected!</source> +        <location filename="../src/leap/gui/mainwindow.py" line="746"/> +        <source>Please select a valid provider</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="672"/> -        <source>Signing out...</source> +        <location filename="../src/leap/gui/mainwindow.py" line="751"/> +        <source>Please provide a valid username</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="14"/> -        <source>LEAP</source> +        <location filename="../src/leap/gui/mainwindow.py" line="756"/> +        <source>Please provide a valid Password</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="80"/> -        <source>Remember</source> +        <location filename="../src/leap/gui/mainwindow.py" line="759"/> +        <source>Logging in...</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="103"/> -        <source>Login</source> +        <location filename="../src/leap/gui/mainwindow.py" line="995"/> +        <source>Turn OFF</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="123"/> -        <source><b>Provider:</b></source> +        <location filename="../src/leap/gui/mainwindow.py" line="1009"/> +        <source>We could not find any authentication agent in your system.<br/>Make sure you have <b>polkit-gnome-authentication-agent-1</b> running and try again.</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="133"/> -        <source><b>Password:</b></source> +        <location filename="../src/leap/gui/mainwindow.py" line="1015"/> +        <source>We could not find <b>pkexec</b> in your system.</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="153"/> -        <source><b>User:</b></source> +        <location filename="../src/leap/gui/mainwindow.py" line="1020"/> +        <source>We could not find openvpn binary.</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="219"/> -        <source>0.0 Kb</source> +        <location filename="../src/leap/gui/mainwindow.py" line="1048"/> +        <source>OFF</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="272"/> -        <source>Disconnected</source> +        <location filename="../src/leap/gui/mainwindow.py" line="1100"/> +        <source>Starting...</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="332"/> -        <source>&Session</source> +        <location filename="../src/leap/gui/mainwindow.py" line="1108"/> +        <source>Not supported</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="340"/> -        <source>Help</source> +        <location filename="../src/leap/gui/mainwindow.py" line="1111"/> +        <source>Disabled</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="348"/> -        <source>S&ettings</source> +        <location filename="../src/leap/gui/mainwindow.py" line="1139"/> +        <source>Could not load Encrypted Internet Configuration.</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="359"/> -        <source>&Sign out</source> +        <location filename="../src/leap/gui/mainwindow.py" line="1239"/> +        <source>Encrypted Internet could not be launched because you did not authenticate properly.</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="364"/> -        <source>&Quit</source> +        <location filename="../src/leap/gui/mainwindow.py" line="1245"/> +        <source>Encrypted Internet finished in an unexpected manner!</source>          <translation type="unfinished"></translation>      </message> +</context> +<context> +    <name>ProviderBootstrapper</name>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="369"/> -        <source>About &LEAP</source> +        <location filename="../src/leap/services/eip/providerbootstrapper.py" line="113"/> +        <source>Provider certificate could not be verified</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="374"/> -        <source>&Help</source> +        <location filename="../src/leap/services/eip/providerbootstrapper.py" line="116"/> +        <source>Provider does not support HTTPS</source>          <translation type="unfinished"></translation>      </message> +</context> +<context> +    <name>SRPAuth</name>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="379"/> -        <source>&Wizard</source> +        <location filename="../src/leap/crypto/srpauth.py" line="598"/> +        <source>Succeeded</source> +        <translation type="unfinished"></translation> +    </message> +</context> +<context> +    <name>StatusPanel</name> +    <message> +        <location filename="../src/leap/gui/ui/statuspanel.ui" line="14"/> +        <source>Form</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/statuspanel.ui" line="23"/> +        <source>user@domain.org</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/statuspanel.ui" line="44"/> +        <source>Encrypted Internet: </source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/statuspanel.ui" line="54"/> +        <source>Off</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/mainwindow.py" line="620"/> -        <source>VPN: Waiting to start...</source> +        <location filename="../src/leap/gui/ui/statuspanel.ui" line="83"/> +        <source>Turn On</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/mainwindow.ui" line="176"/> -        <source>Automatically login</source> +        <location filename="../src/leap/gui/ui/statuspanel.ui" line="178"/> +        <source>0.0 Kb</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/statuspanel.ui" line="209"/> +        <source>...</source>          <translation type="unfinished"></translation>      </message>  </context>  <context> -    <name>Wizard</name> +    <name>StatusPanelWidget</name>      <message> -        <location filename="../src/leap/gui/wizard.py" line="152"/> -        <source>Passwords don't match</source> +        <location filename="../src/leap/gui/statuspanel.py" line="180"/> +        <source>Turn OFF</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/wizard.py" line="155"/> -        <source>Password too short</source> +        <location filename="../src/leap/gui/statuspanel.py" line="190"/> +        <source>Turn ON</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/wizard.py" line="158"/> -        <source>Password too easy</source> +        <location filename="../src/leap/gui/statuspanel.py" line="232"/> +        <source>ON</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/wizard.py" line="161"/> -        <source>Password equal to username</source> +        <location filename="../src/leap/gui/statuspanel.py" line="236"/> +        <source>Authenticating...</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/wizard.py" line="189"/> -        <source>Starting registration...</source> +        <location filename="../src/leap/gui/statuspanel.py" line="238"/> +        <source>Retrieving configuration...</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/wizard.py" line="195"/> -        <source><font color='green'><b>User registration OK</b></font></source> +        <location filename="../src/leap/gui/statuspanel.py" line="240"/> +        <source>Waiting to start...</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/wizard.py" line="202"/> -        <source>Unknown error</source> +        <location filename="../src/leap/gui/statuspanel.py" line="242"/> +        <source>Assigning IP</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/wizard.py" line="303"/> -        <source>Unable to load provider configuration</source> +        <location filename="../src/leap/gui/statuspanel.py" line="250"/> +        <source>Unable to start VPN, it's already running.</source>          <translation type="unfinished"></translation>      </message>      <message> +        <location filename="../src/leap/gui/statuspanel.py" line="264"/> +        <source>Encryption is OFF</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/statuspanel.py" line="269"/> +        <source>Turning ON</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/statuspanel.py" line="271"/> +        <source>Encryption is ON</source> +        <translation type="unfinished"></translation> +    </message> +</context> +<context> +    <name>Wizard</name> +    <message>          <location filename="../src/leap/gui/ui/wizard.ui" line="14"/>          <source>LEAP First run</source>          <translation type="unfinished"></translation> @@ -277,220 +452,383 @@      </message>      <message>          <location filename="../src/leap/gui/ui/wizard.ui" line="103"/> -        <source>Please enter the domain of the provider you want to user for your connection</source> +        <source>Please enter the domain of the provider you want to use for your connection</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="128"/> -        <source>https://</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="131"/> +        <source>Check</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="368"/> -        <source>Checking provider</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="151"/> +        <source>https://</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="147"/> -        <source>Download provider information</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="161"/> +        <source>Checking for a valid provider</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="154"/> -        <source>HTTPS Connection</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="167"/> +        <source>Getting provider information</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="209"/> -        <source>Name resolution</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="174"/> +        <source>Can we stablish a secure connection?</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="232"/> -        <source>Check</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="247"/> +        <source>Can we reach this provider?</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="253"/> +        <location filename="../src/leap/gui/ui/wizard.ui" line="278"/>          <source>Provider Information</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="256"/> -        <source>Services offered by this provider</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="281"/> +        <source>Description of services offered by this provider</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="278"/> -        <source><b>Enrollment policy:</b></source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="290"/> +        <source>Name</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="285"/> -        <source>URL</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="322"/> +        <source>Desc</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="292"/> -        <source>Name</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="332"/> +        <source><b>Services offered:</b></source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/wizard.ui" line="342"/> +        <source>services</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/wizard.ui" line="362"/> +        <source><b>Enrollment policy:</b></source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="325"/> +        <location filename="../src/leap/gui/ui/wizard.ui" line="372"/>          <source>policy</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="332"/> -        <source>Desc</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="392"/> +        <source><b>URL:</b></source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/wizard.ui" line="402"/> +        <source>URL</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/wizard.ui" line="409"/> +        <source><b>Description:</b></source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="356"/> +        <location filename="../src/leap/gui/ui/wizard.ui" line="420"/>          <source>Provider setup</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="359"/> +        <location filename="../src/leap/gui/ui/wizard.ui" line="423"/>          <source>Gathering configuration options for this provider</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="406"/> -        <source>Download CA Certificate</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="445"/> +        <source>We are downloading some bits that we need to establish a secure connection with the provider for the first time.</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="413"/> -        <source>Check CA Certificate Fingerprint</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="468"/> +        <source>Setting up provider</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="420"/> -        <source>Check API Certificate</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="518"/> +        <source>Getting info from the Certificate Authority</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="486"/> -        <source>Register new user</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="525"/> +        <source>Do we trust this Certificate Authority?</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="489"/> -        <source>Register a new user with provider</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="532"/> +        <source>Establishing a trust relationship with this provider</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="524"/> -        <source><b>User:</b></source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="591"/> +        <source>Register new user</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/ui/wizard.ui" line="594"/> +        <source>Register a new user with provider</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="534"/> +        <location filename="../src/leap/gui/ui/wizard.ui" line="609"/>          <source><b>Password:</b></source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="553"/> +        <location filename="../src/leap/gui/ui/wizard.ui" line="628"/>          <source><b>Re-enter password:</b></source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="563"/> +        <location filename="../src/leap/gui/ui/wizard.ui" line="638"/>          <source>Register</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="584"/> -        <source>EIP Setup</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="671"/> +        <source><b>User:</b></source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="587"/> -        <source>Setting up Encrypted Internet</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="684"/> +        <source>Remember my username and password</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="609"/> -        <source>Checking EIP</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="708"/> +        <source>Service selection</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="615"/> -        <source>Download EIP configuration</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="711"/> +        <source>Please select the services you would like to have</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="622"/> -        <source>Download client certificate</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="733"/> +        <source>Congratulations!</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="691"/> -        <source>Congratulations!</source> +        <location filename="../src/leap/gui/ui/wizard.ui" line="736"/> +        <source>You have successfully configured the LEAP Client.</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="86"/> +        <source>Encrypted Internet</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="88"/> +        <source>Encrypted Mail</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="92"/> +        <source>(will need admin password to start)</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="155"/> +        <source>&Next ></source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="157"/> +        <source>Connect</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="214"/> +        <source>Passwords don't match</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/gui/ui/wizard.ui" line="694"/> -        <source>You have successfully configured the LEAP client.</source> +        <location filename="../src/leap/gui/wizard.py" line="217"/> +        <source>Password too short</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="220"/> +        <source>Password too easy</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="223"/> +        <source>Password equal to username</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="252"/> +        <source>Starting registration...</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="281"/> +        <source>User %s successfully registered.</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="301"/> +        <source>Unknown error</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="407"/> +        <source><font color='red'><b>Non-existent provider</b></font></source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="425"/> +        <source><font color='red'><b>%s</b></font></source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="453"/> +        <source>Unable to load provider configuration</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="459"/> +        <source><font color='red'><b>Not a valid provider</b></font></source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="525"/> +        <source>Services by %s</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="544"/> +        <source>Something went wrong while trying to load service %s</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="561"/> +        <source>Gathering configuration options for %s</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="570"/> +        <source>Description of services offered by %s</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/gui/wizard.py" line="591"/> +        <source>Register a new user with %s</source>          <translation type="unfinished"></translation>      </message>  </context>  <context>      <name>__impl</name>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="161"/> +        <location filename="../src/leap/crypto/srpauth.py" line="259"/>          <source>Unknown user</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="167"/> +        <location filename="../src/leap/crypto/srpauth.py" line="271"/>          <source>The server did not send the salt parameter</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="171"/> +        <location filename="../src/leap/crypto/srpauth.py" line="275"/>          <source>The server did not send the B parameter</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="199"/> +        <location filename="../src/leap/crypto/srpauth.py" line="307"/>          <source>The data sent from the server had errors</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="220"/> +        <location filename="../src/leap/crypto/srpauth.py" line="329"/>          <source>Could not connect to the server</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="228"/> +        <location filename="../src/leap/crypto/srpauth.py" line="348"/>          <source>Wrong password</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="234"/> +        <location filename="../src/leap/crypto/srpauth.py" line="355"/>          <source>Unknown error (%s)</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="243"/> +        <location filename="../src/leap/crypto/srpauth.py" line="386"/>          <source>Problem getting data from server</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="264"/> +        <location filename="../src/leap/crypto/srpauth.py" line="410"/>          <source>Bad data from server</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="270"/> +        <location filename="../src/leap/crypto/srpauth.py" line="417"/>          <source>Auth verification failed</source>          <translation type="unfinished"></translation>      </message>      <message> -        <location filename="../src/leap/crypto/srpauth.py" line="400"/> -        <source>Succeeded</source> +        <location filename="../src/leap/crypto/srpauth.py" line="425"/> +        <source>Session cookie verification failed</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/crypto/srpauth.py" line="262"/> +        <source>There was a problem with authentication</source> +        <translation type="unfinished"></translation> +    </message> +</context> +<context> +    <name>msg</name> +    <message> +        <location filename="../src/leap/platform_init/initializers.py" line="89"/> +        <source>Missing up/down scripts</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/platform_init/initializers.py" line="175"/> +        <source>TAP Driver</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/platform_init/initializers.py" line="299"/> +        <source>LEAPClient needs to install the necessary drivers for Encrypted Internet to work. Would you like to proceed?</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/platform_init/initializers.py" line="182"/> +        <source>Encrypted Internet uses VPN, which needs a TAP device installed and none has been found. This will ask for administrative privileges.</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/platform_init/initializers.py" line="296"/> +        <source>TUN Driver</source> +        <translation type="unfinished"></translation> +    </message> +    <message> +        <location filename="../src/leap/platform_init/initializers.py" line="304"/> +        <source>Encrypted Internet uses VPN, which needs a kernel extension for a TUN device installed, and none has been found. This will ask for administrative privileges.</source>          <translation type="unfinished"></translation>      </message>  </context> diff --git a/src/leap/crypto/srpauth.py b/src/leap/crypto/srpauth.py index 8e228e79..6474bdbb 100644 --- a/src/leap/crypto/srpauth.py +++ b/src/leap/crypto/srpauth.py @@ -51,18 +51,21 @@ class SRPAuthConnectionError(SRPAuthenticationError):      """      pass +  class SRPAuthUnknownUser(SRPAuthenticationError):      """      Exception raised when trying to authenticate an unknown user      """      pass +  class SRPAuthBadStatusCode(SRPAuthenticationError):      """      Exception raised when we received an unknown bad status code      """      pass +  class SRPAuthNoSalt(SRPAuthenticationError):      """      Exception raised when we don't receive the salt param at a @@ -70,6 +73,7 @@ class SRPAuthNoSalt(SRPAuthenticationError):      """      pass +  class SRPAuthNoB(SRPAuthenticationError):      """      Exception raised when we don't receive the B param at a specific @@ -77,12 +81,14 @@ class SRPAuthNoB(SRPAuthenticationError):      """      pass +  class SRPAuthBadDataFromServer(SRPAuthenticationError):      """      Generic exception when we receive bad data from the server.      """      pass +  class SRPAuthJSONDecodeError(SRPAuthenticationError):      """      Exception raised when there's a problem decoding the JSON content @@ -90,12 +96,14 @@ class SRPAuthJSONDecodeError(SRPAuthenticationError):      """      pass +  class SRPAuthBadPassword(SRPAuthenticationError):      """      Exception raised when the user provided a bad password to auth.      """      pass +  class SRPAuthVerificationFailed(SRPAuthenticationError):      """      Exception raised when we can't verify the SRP data received from @@ -103,6 +111,7 @@ class SRPAuthVerificationFailed(SRPAuthenticationError):      """      pass +  class SRPAuthNoSessionId(SRPAuthenticationError):      """      Exception raised when we don't receive a session id from the @@ -110,6 +119,7 @@ class SRPAuthNoSessionId(SRPAuthenticationError):      """      pass +  class SRPAuth(QtCore.QObject):      """      SRPAuth singleton @@ -451,8 +461,7 @@ class SRPAuth(QtCore.QObject):                  username=username)              d.addCallback(                  partial(self._threader, -                        self._extract_data), -                username=username) +                        self._extract_data))              d.addCallback(partial(self._threader,                                    self._verify_session)) | 
