Age | Commit message (Collapse) | Author |
|
|
|
I've decided not to include any lib, but to copy the SRPParameters class
to our codebase and Util.trim method to ConfigHelper.
|
|
Some more constants added to ConfigHelper.
This solves #2908.
|
|
This resolves the first step from issue #2908.
Next step: Put user message strings into an appropiate place.
|
|
It's working against cdev.bitmask.net and bitmask.net. Look at #2840 for
further explanation about self signed certificates.
I've also removed some file dependant configuration (when a provider was
custom, ConfigurationWizard still tried to read from file a
provider.json that now I store in memory via ProviderItem class).
|
|
There was a problem on the assets file "bitmask.url". It had an error in
the eip-service url.
We should use this file only for main url, and proceed as if it were a
new provider but with a preseeded main url.
|
|
We were using it to save certificate and provider.json files from chosen
provider, so that exporting them was easily done.
We don't need that files, because if we wanted to export that files we
would be able to recover them easily and updated.
This fixes #2783
|
|
Variables from LeapSRPSession were there because I used it while testing
srp calculations, comparing that strings with the ones from javascript.
Unused method from ProviderAPI was there because I foresee I'll have to
implement it in the future, but I've removed it since it's already in
the history.
This fixes #2781.
|
|
from provider.json.
This fixes bug #2780
|
|
boolean, JSONObject)
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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).
|
|
problems assuming user wanted to trust it since s/he entered by
him/herself the URL.
Next step: refactor a bit, to make code more beautiful.
|
|
can download eip-service.json and ca.crt without having the latter as a
predefined trusted certificate. It does not ask anything about trusting
the new certificate as far as selecting a custom provider means that the
user trusts that url.
Next step: make provider.json also downloadable from https address using
ca.cert not trusted.
|
|
custom provider is selected.
Tested using https://bitmask.net as url for custom provider.
|
|
Going to hit some bugs before continuing with this work.
|
|
will have to audit it.
|
|
Cleaned some code, pending the M2 one (testing with M1).
|
|
M1 is not OK, because errors (with null description, awkward) are
received from posting M1 to the server instead of M2.
Next step: purge user database from leap_webapp and start testing again.
|
|
Refactored downloadJsonFiles in ProviderAPI, new method from block in
the intent identification.
|
|
|
|
Next step: get cookies understood, how do I get server's sent
parameters?
|
|
Next steps:
Implement async communication with the server to receive salt, send A
and receive B.
|
|
ProviderListFragment, and then the user can choose it.
|
|
the website, just as bitmask.net/provider.json), and writes it to a file
in ~/leap_android.
Next steps: parse that file and download eip-service and cert.
|
|
|
|
in eip.
Downloads certificate and eip from web, and loads provider from assets.
KeyStore not created with latest version of BouncyCastle. Looking
forward to file a bug and look for a solution.
|
|
and bitmask.net.
Both prefs are downloaded and parsed to SharedPreferences.
|
|
the saveSharedPrefs method and an unimplemented rescueFromJSONException.
Next step: managing HttpsURLConnection for the
CertPathValidatorException.
|
|
eip-service.json file.
provider.json downloads and parses itself OK to SharedPreferences.
It also does not link OK to the Dashboard, I do not know how to do it
properly and I'm so tired (eyes hurting).
Beginning with security things :) Happy to have gotten around
DownloadManager problem with a simple HTTP connection.
|