Age | Commit message (Collapse) | Author |
|
The problem was the encoding of the bytes when calculating the password
hash. I supposed that it was UTF-8 (I already saw that encoding in the
html code from leap_web), but not, it was ISO-8859-1 (trial/error).
|
|
"https://" is automatically appended.
|
|
LeapSRPSession was doing bad SRP calculations when salt byte array
started with a 0. Now I trimmed that array before using it.
ProviderAPI was not timing out when a server didn't respond. Now, I use
a timeout of 1 second to stop waiting for a response.
|
|
Using two test with values from my localhost leap_web deployment, I've
achieved to login with passwords containing ! and $ without problems.
This should fix bug #2348.
|
|
|
|
Name is mandatory, if not provided android chooses "MainActivity" and
adb install command fails because "LEAP Android-debug.apk" does not
exist.
Target is not mandatory, but for future references (if anybody wants to
change the target, they can do it easier) I've added that flag to the
command.
|
|
|
|
I've entered a new script: compile.sh
I've also simlinked README.txt to README. In the future, if we want to
write another file in another format (MarkDown?), we will only have to
change the target of the README file.
|
|
I've also simlinked README.txt to README. In the future, if we want to
write another file in another format (MarkDown?), we will only have to
change the target of the README file.
|
|
If I execute AndroidRun, run.sh is not called but echoes are printed.
|
|
It just runs the emulator, installs leap_android and runs it. No
debugger session is returned.
|
|
I've found the way to detect if the emulator has finished booting, so
that I can install and start leap_android without problems.
I've moved the last sleep before the pid calculation, because sometimes
it wasn't calculated well (I think because I asked for it too soon).
|
|
This is the first commit of this branch. It contains the README file
with instructions for different user targets (Compiling, Running on the
emulator and Debugging from console), and the ant build.xml file.
debug.sh is an experimental script, because it uses "sleep" to
synchronize between Emulator and adb install and run. If you want to use
it, please look for that "sleep" lines and update their numbers
according to your experience.
|
|
I download the anon certificate only if allow_anonymous is true, and
before launching Dashboard.
I store it in SharedPreferences, with "cert" key, as a JSON object.
|
|
I've upper cased ConfigHelper constants.
I've created a new method in ConfigHelper, to send requests to a server,
that it's used when sending A and M1.
|
|
Allow registration is present in provider.json.
Provider.json is downloaded from both preseeded and custom providers.
Authentication success or fail is notified correctly to the user.
|
|
It is stored in SharedPrefs, with ConfigHelper.cert_key (="cert") key.
|
|
certificate.
Next step in this branch: detect what the selected provider support in
terms of authenticated/anon users, and show login/logout methods
consecuently.
|
|
The problem was that I needed to append the api_version to the api_uri.
I was doing well in tests because I hardcoded the api urls, but in
production code I was getting from provider.json only api_url and not
api_version.
|
|
request a log in without certificates problems.
I've removed the addition of the certificate when downloaded
eip-service.json, because I already do that in LeapHttpClient.
Solves issue 2367: https://leap.se/code/issues/2367
|
|
Refactored LeapSRPSession so that there is no need to send A twice.
|
|
entered, so that if in the future the client tries to log in or
whatever, it can use the certificate downloaded when added.
Log in dialog works ok, showing a toast when authentication fails (by
this time, I have not managed to get a correct login due to
dev.bitmask.net problems).
dev.bitmask.net works perfectly, via adding it as a new provider
(MeanderingCode, this is for you ;) ).
All GET requests are done by default Android URL class, which means that
certificates trusted by Android are also trusted by us. If there are
problems when logging in due to certificates, the app is able to use
only the certificate associated to the provider in the moment it was
selected as the chosen provider.
|
|
|
|
I need to implement bypass for dev.bitmask.net, because bitmask.net is
down.
|
|
|
|
- SRP algorithm improved (validate method uses trim, and some other
trims have been added).
- Refactored calculatePasswordHash, so that it receives a String instead
of a char array, and now it is capable of escaping "\" correctly.
- A 1000*2 successful logins, with a new test that performs 1000 trials
for 2 different username/password/server trios.
Next step: think about how the user is going to trigger the log in
fragment.
|
|
localhost, but I cannot succeed in api.bitmask.net with my personal account. Next step: add tests from api.bitmask.net.
|
|
|
|
|
|
|
|
New provider dialog works OK.
|
|
The problem was in the keystore, which did not contain the certificate
used in https://bitmask.net/ca.cert.
For the future, we should be able to easily manage this kind of
certificate upgrade/renewal without having to search again
(http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html)
for the keytool command to import a certificate. Script?
|
|
Next step: understand why ca.cert from bitmask is not being downloaded
correctly.
|
|
Conflicts:
src/se/leap/leapclient/ConfigHelper.java
src/se/leap/leapclient/ConfigurationWizard.java
src/se/leap/leapclient/ProviderAPI.java
|
|
strings used to check everything's fine manually.
|
|
(not included here, still to decide if push it publicly).
Next steps: make code beautiful, Android GUI SRP and real
communication server, and add even more tests (in my spare time, just to
check with more users).
|
|
tests I've written for it.
Next step: verify()
|
|
individually are. But in reality it's not.
Tried to fix final hash putting a trim in every byte array, but it did
not work.
Next step: check the final hash, looking for padding issues.
|
|
Next step: fix response() calculations.
|
|
Next step: understand why SHA-256 digest from NG_1024 is not equals to
the one leap_web is calculating.
|
|
|
|
calculation, since right now (using tests) response() method is not
doing OK.
Added new SRPSession modifying response() method from JBoss SRP
implementation.
Added hosts-for-android-emulator. Use with the following commands to be
able to test on api.lvh.me:
adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
adb push ~/workspace/leap_android/hosts-for-android-emulator
/system/etc/hosts
|
|
not SRP-6a. That means, for example, that M1 is calculated differently
from what we need.
|
|
the salt, and because of our messageflow I cannot obtain it before
starting Authentication. That's why on line 132 from ProviderAPI I tried
to get a new SRPClientSession using the newly obtained salt, but of
course it fails since A cannot be restored from previous initialization.
Next step: try with srpforjava.
Next next step: if srpforjava does not work for us, use lower level
methods to implement our own http srp flow.
|
|
|
|
used the provider alias, but a predefined (I forgot removing quotes from
argument) string.
|
|
|
|
errors because of classes not yet found.
|
|
|
|
ConfigurationWizard works without problem for both new and preseeded
providers. I've added flow control for the activity to finish when all
files have been downloaded, managing errors with
setResult(RESULT_CANCELED).
|