Revision:

Revisions

# Date Author Comment
51910994 01/07/2016 10:22 pm Hans-Christoph Steiner

remove gpg signing from ant build, its in ./make-release-build now

45bc8e17 01/07/2016 10:18 pm Hans-Christoph Steiner

make-release-build: strip and gpg-sign when those are available

0fc4c33f 01/07/2016 03:06 pm Hans-Christoph Steiner

fix getIntentFromTrustedSender() to actually use the sending packageName

It was getting the recipient's packageName, not the sender's. The Intent
does not include the sender's packageName, that has to be fetched using
Activity.getCallingActivity().

Thanks to @grote for finding this.

94eb9967 12/08/2015 02:25 pm Hans-Christoph Steiner

make-release-build: remove faketime, it only causes problems

Its freezing forever and doesn't provide perfect timestamp reproducibility

6dd86be3 12/08/2015 02:14 pm Hans-Christoph Steiner

make getIntentFromTrustedSender return null if anything goes wrong

Instead of throwing an Exception, just return null. That makes this behave
more like Activity.getIntent() and the related patterns.

cba1dc86 12/08/2015 02:14 pm Hans-Christoph Steiner

move library into its own gradle-style dir

9f5bcd3f 12/08/2015 01:50 pm Hans-Christoph Steiner

add example app

Includes this as the app icon:
https://commons.wikimedia.org/wiki/File:Geogebra.svg

05a33beb 12/08/2015 01:50 pm Hans-Christoph Steiner

include signing key pin for Amnesty iilab Panic Button

7cd731b2 12/07/2015 03:52 pm Hans-Christoph Steiner

exclude generated BuildConfig from jar, its unneeded and conflicts

4b0cf180 12/07/2015 03:52 pm Hans-Christoph Steiner

include all static pin files in the release jar

2c8b2f61 12/07/2015 03:52 pm Hans-Christoph Steiner

do not include timestamp in javadoc to aid reproducibility

7127dd9c 08/28/2015 01:32 pm Hans-Christoph Steiner

generate the .pom file as part of ./make-release-build

51127330 08/28/2015 01:32 pm Hans-Christoph Steiner

fix warnings in javadoc

744948dc 08/28/2015 01:32 pm Hans-Christoph Steiner

make-release-build setup with ant custom rules

5455789f 08/28/2015 12:50 pm Hans-Christoph Steiner

setup-ant: find ANDROID_HOME and Android SDK target

7ad55713 08/28/2015 12:33 pm Hans-Christoph Steiner

add more javadoc!

42b6cdc1 08/28/2015 12:24 pm Hans-Christoph Steiner

document how LGPL works with Java

d0beb9dd 08/28/2015 12:24 pm Hans-Christoph Steiner

do not put timestamps in javadoc-generated files

This aids reproducible builds: besides the timestamp, `javadoc` will create
the exact same files across different machines, java versions, etc.

bd2a6b89 07/30/2014 11:20 pm Hans-Christoph Steiner

implement TrustedIntents.getIntentFromTrustedSender() instance method

The idea is to mimic Activity.getIntent(), but check that the Intent is
from a packageName that is trusted. The difference from getIntent() is
that this one throws Exceptions that must be caught.

1bafa22f 07/30/2014 10:41 pm Hans-Christoph Steiner

tests: make package lists reusable by other test classes

43e05883 07/30/2014 10:27 pm Hans-Christoph Steiner

add basic test of sending Intents with package/ComponentName set

This actually runs the Intent through startActivity(), so that method is
provided by ActivityUnitTestCase so it might not actually do anything.

81664f35 07/30/2014 08:06 pm Hans-Christoph Steiner

split out trust check based on packageName into separate method

This allows this method to be reused, like for isSenderTrusted().

d293996c 07/30/2014 08:03 pm Hans-Christoph Steiner

tests: use list of actually installed packages for tests

The tests includes lists of possible package names, now this creates a list
from those lists of the packages that are actually installed. That will
make the tests run reliably on various devices and emulators.

2f3b3e87 07/30/2014 07:11 pm Hans-Christoph Steiner

store PackageManager in static var so it can be used in static methods

Android has some design patterns that based on static methods, like
Intent.createChooser(), that this library should mirror. In order to
implement those, they will need access to a PackageManager instance, so...

ab803404 07/18/2014 04:05 am Hans-Christoph Steiner

tests: get TrustedIntents instance in setUp()

Most of the tests need an instance, and it should be cleared each time.

b876bccb 07/18/2014 04:05 am Hans-Christoph Steiner

add methods to remove Trusted Signers test if ApkSignaturePins are trusted

Since TrustedIntents is a singleton, there needs to be a way to remove
items from the list of trusted pins. Getting the instance will inherit any
pins that were set in the past by a given app.

1d5606ab 07/18/2014 04:05 am Hans-Christoph Steiner

test that addTrustedSigner() will not accept ApkSignaturePin.class

aeb2e7e5 07/18/2014 04:05 am Hans-Christoph Steiner

addTrustedSigner() returns whether add was successful or not

At the very least, this is useful in the tests.

76c3ca66 07/18/2014 04:05 am Hans-Christoph Steiner

isReceiverTrusted() and isIntentSane() check getComponent() for packageName

The packageName can be set with setPackage(), setClassName() or setClass().

  • getPackage() returns what is set by setPackage()
  • getComponent() returns what is set by setClassName() and setClass()
9f8a3056 07/18/2014 04:05 am Hans-Christoph Steiner

ApkSignaturePin: remove useless and unused getSHA256Fingerprint argument

getFingerprint() accesses the instance variable directly for the data.

3c4d3da0 07/18/2014 04:05 am Hans-Christoph Steiner

make addTrustedSigner's argument a Class rather than ApkSignaturePin

There is no sense in anyone instantiating the class since it is in effect a
singleton, and the only instance methods are for validating that the
certificate matches the fingerprint. Using a Class as an argument mirrors...

bcbc6670 07/18/2014 04:05 am Hans-Christoph Steiner

startActivity() comes from Context not Activity

Reflect this reality in TrustedIntents.startActivity()

3c59b997 07/18/2014 04:05 am Hans-Christoph Steiner

make startActivity() handle both setPackage() and setClassName()

An Intent can be targeted using both setPackage() and setClassName().
setPackage() narrows down the possible recipients to a given packageName,
while setClassName() set the specific Activity in an app to send to. The...

c999d6f7 07/18/2014 04:02 am Hans-Christoph Steiner

include pin: Tor Project RSA 1024-bit signing key

aa210a2f 07/18/2014 04:02 am Hans-Christoph Steiner

include pin: Guardian Project RSA 4096-bit signing key

af14c4b6 07/18/2014 04:02 am Hans-Christoph Steiner

include pin: Guardian Project RSA 1024-bit original signing key

b56fab09 07/16/2014 09:01 pm Hans-Christoph Steiner

setup-ant: use a CURDIR variable

167e88e1 06/25/2014 09:33 pm Hans-Christoph Steiner

add missing res/ folder from test project

08acb72a 06/25/2014 09:23 pm Hans-Christoph Steiner

add script for Jenkins build

Having everything in a script makes it easier to maintain. Jenkins then
runs the ant commands itself.

e1bffefb 06/24/2014 09:48 pm Hans-Christoph Steiner

script to do android ant configuration

ae232438 06/24/2014 09:47 pm Hans-Christoph Steiner

add `ant javadoc` to generate javadoc for FDroid sources

8c9c9a54 06/24/2014 09:46 pm Hans-Christoph Steiner

run JUnit tests using android-junit-report to get XML output

Jenkins needs some kind of report from the JUnit tests in order to tell
whether the tests succeeded or not. android-junit-report is a library to do
exactly that. With this setup, Jenkins should now successfully understand the...

9573c767 06/24/2014 08:40 pm Hans-Christoph Steiner

link to trusted intents blog post in README

35897639 06/24/2014 08:36 pm Hans-Christoph Steiner

add TrustedIntents.startActivity(Intent intent) convenience method

This is another way of calling it that might make more sense to some people

89f16a42 06/24/2014 08:36 pm Hans-Christoph Steiner

isReceiverTrusted() for checking an Intent before calling startActivity()

Set up APK signature pins using addTrustedSigner() then check Intents using
checkTrustedSigner() before using them in startActivity()/etc. This is the
first model for how to check that the Intent is going to the right receiver

01534004 06/24/2014 08:36 pm Hans-Christoph Steiner

include fingerprints in ApkSignaturePins as a way to double-check

The original source that generates the ApkSignaturePin subclass can include
a SHA-256 fingerprint of that certificate to, if they are unsure of the
process of converting into a byte[][] in Java code. Then the byte[][] can...

1177f831 06/24/2014 08:36 pm Hans-Christoph Steiner

add tests for signature equality method

9f30348a 06/24/2014 08:36 pm Hans-Christoph Steiner

finalize APK signature superclass as ApkSignaturePin

This class is used when generating a Pin against an APK signature. The pin
is a subclass of info.guardianproject.trustedintents.ApkSignaturePin.

86718da8 06/24/2014 08:36 pm Hans-Christoph Steiner

added android test project skeleton

f9b84add 06/24/2014 08:36 pm Hans-Christoph Steiner

first sketch of base classes

3b9eaf82 06/24/2014 08:36 pm Hans-Christoph Steiner

project skeleton

411880e4 06/23/2014 11:21 pm Hans-Christoph Steiner

add README and LICENSE

(1-52/52) Per page: 25, 50, 100, 250

Also available in: Atom