17 Commits

Author SHA1 Message Date
Daniel Martí
967174b549 Finally get UIL working as a gradle library
The problem were the dashes in the path 'extern/Universal-Image-Loader'
2014-02-14 10:34:36 +01:00
Daniel Martí
51a02fe40f Update libraries 2014-02-14 09:12:52 +01:00
Daniel Martí
0ff1257aef Update submodules 2014-02-10 09:15:03 +01:00
Daniel Martí
d553b07af2 Update submodules 2014-01-29 23:33:22 +01:00
Daniel Martí
50ee88fbc7 Update AndroidPinning, get rid of -t android-17 2014-01-23 18:59:35 +01:00
Daniel Martí
6819d678a5 Pull from AndroidPinning, which lowers minsdk from 8 to 5 2014-01-23 09:55:48 +01:00
Daniel McCarney
254327f9a7 Adding support for SPKI pins, trust-on-first-use of TLS certs.
In order to support F-droid repositories hosted with HTTPS using
a self-signed certificate the f-droid client should prompt the user to
trust or 'memorize' the certificate presented by a repository. The
MemorizingTrustManager[0] project enables easy integration of
a prompting activity and corresponding trust manager implementation.
This behaviour is useful to projects such as Kerplapp[1] that boostrap
an F-droid repository on a user's device where it isn't possible to
acquire a long lived CA vetted TLS certificate.

In addition to Trust-on-First-Use (TOFU) behaviour, this patch
integrates the PinningTrustManager [2] project by Moxie Marlinspike to
allow the FDroid client to ship a hardcoded set of Subject Public Key
Identifier pins [3] for the official FDroid repository TLS certificate,
and the Guardian Project TLS certificate. Additional pins can be added
to the FDroidPins.java class.

The upstream release of AndroidPinning by moxie0 uses a minsdk value of
8. The Fdroid client has a minsdk of 5, presenting compatibility issues
using the AndroidPinning lib as a submodule. Fortunately it seems there
is no technical reason preventing using a minSDK of 5 with
AndroidPinning. I have created a fork with this change and submitted
a pull req upstream. Until this pull is merged we can use my fork of
AndroidPinning as the submodule.

The new 'flow' for deciding if a repositories presented TLS certificate
should be trusted is as follows:

1) If the certificate was previously trusted by a TOFU action, then the
   certificate is accepted as trusted

2) If the certificate wasn't previously trusted by a TOFU action but
   there is a matching SPKI pin then the certificate is accepted as
   trusted

3) If the certificate wasn't previously trusted by a TOFU action and
   there is no SPKI pin but the certificate is signed by a trusted
   Certificate Authority it is accepted as trusted (This is the
   behaviour of the FDroid client prior to this patch with all other
   conditions being a hard-fail).

4) If the certificate wasn't previously trusted by a TOFU action and
   there is no SPKI pin and the certificate is not signed by a trusted
   CA (i.e. self signed or otherwise) then the user is prompted to TOFU
   the certificate. The user may choose to trust the certificate for the
   current connection or forever. If the user chooses an option other
   than "deny" the certificate is accepted as trusted for the specified
   duration.

Users currently using a TLS protected repository will see *no
difference* in user experience after this patch is merged as the only
TLS protected repositories that would function prior to this patch were
providing certificates that match condition #3.

[0] https://github.com/ge0rg/MemorizingTrustManager/wiki/Integration
[1] https://github.com/guardianproject/kerplapp
[2] https://github.com/moxie0/AndroidPinning
[3] https://www.imperialviolet.org/2011/05/04/pinning.html
2014-01-08 11:01:12 -08:00
Daniel Martí
3d66f7f311 Pull UIL from master again 2014-01-07 17:45:57 +01:00
Ciaran Gultnieks
a2fb86f518 Remove bogus translations 2014-01-07 16:28:10 +00:00
Daniel Martí
5ef87602ca Update UIL, release 1.9.1 2013-12-31 11:03:34 +01:00
Daniel Martí
5c722ff07b Update UIL 2013-12-25 19:36:27 +01:00
Daniel Martí
901112b29d Update UIL 2013-12-07 12:25:48 +01:00
Daniel Martí
78caf63093 Update UIL to latest master 2013-11-27 15:23:55 +01:00
Daniel Martí
067fa54736 Update UIL from origin/master 2013-10-22 15:36:28 +02:00
Daniel Martí
c9159b8bff Make use of the new FadeIn constructor (only fade in on network/disk fetch) 2013-10-09 20:52:10 +02:00
Daniel Martí
e3789c18fb Update UIL submodule 2013-10-08 20:56:40 +02:00
Daniel Martí
017811fb92 Use UIL, don't do caching on our own.
Advantages:

* Initial setup time for icons is zero
* We don't have to deal with it ourselves
* We can use the default package icon while we load
2013-09-23 20:21:29 +02:00