aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain-API-Demo
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-01-27 14:44:20 +0100
committerDominik Schürmann <dominik@dominikschuermann.de>2014-01-27 14:44:20 +0100
commitca462a2d6c2783c380a40ccfb528e3e308fc6410 (patch)
treee3285a94164432cb00f7c846a8f51db15527146f /OpenPGP-Keychain-API-Demo
parente360bb10f6a7d59adfeb81a89d92baa341f6a387 (diff)
downloadopen-keychain-ca462a2d6c2783c380a40ccfb528e3e308fc6410.tar.gz
open-keychain-ca462a2d6c2783c380a40ccfb528e3e308fc6410.tar.bz2
open-keychain-ca462a2d6c2783c380a40ccfb528e3e308fc6410.zip
New gradle folder structure for API Demo
Diffstat (limited to 'OpenPGP-Keychain-API-Demo')
-rw-r--r--OpenPGP-Keychain-API-Demo/build.gradle62
-rw-r--r--OpenPGP-Keychain-API-Demo/build.xml83
-rw-r--r--OpenPGP-Keychain-API-Demo/proguard-project.txt20
-rw-r--r--OpenPGP-Keychain-API-Demo/project.properties11
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/AndroidManifest.xml (renamed from OpenPGP-Keychain-API-Demo/AndroidManifest.xml)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/IOpenPgpCallback.aidl (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpCallback.aidl)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/IOpenPgpKeyIdsCallback.aidl (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpKeyIdsCallback.aidl)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/IOpenPgpService.aidl (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/OpenPgpData.aidl (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpData.aidl)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/OpenPgpError.aidl (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.aidl)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/OpenPgpSignatureResult.aidl (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.aidl)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpCallback.aidl45
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpKeyIdsCallback.aidl39
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpService.aidl143
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpConstants.java (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpConstants.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpData.aidl20
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpData.java (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpData.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpError.aidl20
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpError.java (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpHelper.java (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpHelper.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpListPreference.java (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpListPreference.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpServiceConnection.java (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpSignatureResult.aidl20
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpSignatureResult.java (renamed from OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/AidlDemoActivity2.java (renamed from OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/AidlDemoActivity2.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/BaseActivity.java (renamed from OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/BaseActivity.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/Constants.java (renamed from OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/Constants.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java (renamed from OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/res/drawable-hdpi/ic_launcher.png (renamed from OpenPGP-Keychain-API-Demo/res/drawable-hdpi/ic_launcher.png)bin2626 -> 2626 bytes
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/res/drawable-mdpi/ic_launcher.png (renamed from OpenPGP-Keychain-API-Demo/res/drawable-mdpi/ic_launcher.png)bin1732 -> 1732 bytes
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/res/drawable-xhdpi/ic_launcher.png (renamed from OpenPGP-Keychain-API-Demo/res/drawable-xhdpi/ic_launcher.png)bin3517 -> 3517 bytes
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/res/drawable-xxhdpi/ic_launcher.png (renamed from OpenPGP-Keychain-API-Demo/res/drawable-xxhdpi/ic_launcher.png)bin5717 -> 5717 bytes
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/res/layout/aidl_demo2.xml (renamed from OpenPGP-Keychain-API-Demo/res/layout/aidl_demo2.xml)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/res/layout/crypto_provider_demo.xml (renamed from OpenPGP-Keychain-API-Demo/res/layout/crypto_provider_demo.xml)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/res/layout/intent_demo.xml (renamed from OpenPGP-Keychain-API-Demo/res/layout/intent_demo.xml)0
-rw-r--r--OpenPGP-Keychain-API-Demo/src/main/res/xml/base_preference.xml (renamed from OpenPGP-Keychain-API-Demo/res/xml/base_preference.xml)0
36 files changed, 349 insertions, 114 deletions
diff --git a/OpenPGP-Keychain-API-Demo/build.gradle b/OpenPGP-Keychain-API-Demo/build.gradle
new file mode 100644
index 000000000..164c3e83c
--- /dev/null
+++ b/OpenPGP-Keychain-API-Demo/build.gradle
@@ -0,0 +1,62 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ }
+
+ dependencies {
+ classpath 'com.android.tools.build:gradle:0.7.3'
+ }
+}
+
+apply plugin: 'android'
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ compile 'com.android.support:support-v4:19.0.+'
+}
+
+android {
+ compileSdkVersion 19
+ buildToolsVersion "19"
+
+ defaultConfig {
+ minSdkVersion 8
+ targetSdkVersion 19
+ }
+
+ /*
+ * To sign release build, create file gradle.properties in ~/.gradle/ with this content:
+ *
+ * signingStoreLocation=/home/key.store
+ * signingStorePassword=xxx
+ * signingKeyAlias=alias
+ * signingKeyPassword=xxx
+ */
+ if (project.hasProperty('signingStoreLocation') &&
+ project.hasProperty('signingStorePassword') &&
+ project.hasProperty('signingKeyAlias') &&
+ project.hasProperty('signingKeyPassword')) {
+ println "Found sign properties in gradle.properties! Signing build…"
+
+ signingConfigs {
+ release {
+ storeFile file(signingStoreLocation)
+ storePassword signingStorePassword
+ keyAlias signingKeyAlias
+ keyPassword signingKeyPassword
+ }
+ }
+
+ buildTypes.release.signingConfig = signingConfigs.release
+ } else {
+ buildTypes.release.signingConfig = null
+ }
+
+ // Do not abort build if lint finds errors
+ lintOptions {
+ abortOnError false
+ }
+}
diff --git a/OpenPGP-Keychain-API-Demo/build.xml b/OpenPGP-Keychain-API-Demo/build.xml
deleted file mode 100644
index 3e6cfa272..000000000
--- a/OpenPGP-Keychain-API-Demo/build.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="Keychain-API-Demo" default="help">
-
- <!-- The local.properties file is created and updated by the 'android' tool.
- It contains the path to the SDK. It should *NOT* be checked into
- Version Control Systems. -->
- <property file="local.properties" />
-
- <!-- The ant.properties file can be created by you. It is only edited by the
- 'android' tool to add properties to it.
- This is the place to change some Ant specific build properties.
- Here are some properties you may want to change/update:
-
- source.dir
- The name of the source directory. Default is 'src'.
- out.dir
- The name of the output directory. Default is 'bin'.
-
- For other overridable properties, look at the beginning of the rules
- files in the SDK, at tools/ant/build.xml
-
- Properties related to the SDK location or the project target should
- be updated using the 'android' tool with the 'update' action.
-
- This file is an integral part of the build system for your
- application and should be checked into Version Control Systems.
-
- -->
- <property file="ant.properties" />
-
- <!-- The project.properties file is created and updated by the 'android'
- tool, as well as ADT.
-
- This contains project specific properties such as project target, and library
- dependencies. Lower level build properties are stored in ant.properties
- (or in .classpath for Eclipse projects).
-
- This file is an integral part of the build system for your
- application and should be checked into Version Control Systems. -->
- <loadproperties srcFile="project.properties" />
-
- <!-- quick check on sdk.dir -->
- <fail
- message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
- unless="sdk.dir"
- />
-
- <!--
- Import per project custom build rules if present at the root of the project.
- This is the place to put custom intermediary targets such as:
- -pre-build
- -pre-compile
- -post-compile (This is typically used for code obfuscation.
- Compiled code location: ${out.classes.absolute.dir}
- If this is not done in place, override ${out.dex.input.absolute.dir})
- -post-package
- -post-build
- -pre-clean
- -->
- <import file="custom_rules.xml" optional="true" />
-
- <!-- Import the actual build file.
-
- To customize existing targets, there are two options:
- - Customize only one target:
- - copy/paste the target into this file, *before* the
- <import> task.
- - customize it to your needs.
- - Customize the whole content of build.xml
- - copy/paste the content of the rules files (minus the top node)
- into this file, replacing the <import> task.
- - customize to your needs.
-
- ***********************
- ****** IMPORTANT ******
- ***********************
- In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
- in order to avoid having your file be overridden by tools such as "android update project"
- -->
- <!-- version-tag: 1 -->
- <import file="${sdk.dir}/tools/ant/build.xml" />
-
-</project>
diff --git a/OpenPGP-Keychain-API-Demo/proguard-project.txt b/OpenPGP-Keychain-API-Demo/proguard-project.txt
deleted file mode 100644
index f2fe1559a..000000000
--- a/OpenPGP-Keychain-API-Demo/proguard-project.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# To enable ProGuard in your project, edit project.properties
-# to define the proguard.config property as described in that file.
-#
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in ${sdk.dir}/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the ProGuard
-# include property in project.properties.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
diff --git a/OpenPGP-Keychain-API-Demo/project.properties b/OpenPGP-Keychain-API-Demo/project.properties
deleted file mode 100644
index a5578ba09..000000000
--- a/OpenPGP-Keychain-API-Demo/project.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must be checked in Version Control Systems.
-#
-# To customize properties used by the Ant build system use,
-# "ant.properties", and override values to adapt the script to your
-# project structure.
-
-# Project target.
-target=android-19
diff --git a/OpenPGP-Keychain-API-Demo/AndroidManifest.xml b/OpenPGP-Keychain-API-Demo/src/main/AndroidManifest.xml
index 8b8c43776..8b8c43776 100644
--- a/OpenPGP-Keychain-API-Demo/AndroidManifest.xml
+++ b/OpenPGP-Keychain-API-Demo/src/main/AndroidManifest.xml
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpCallback.aidl b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/IOpenPgpCallback.aidl
index ba41de1ba..ba41de1ba 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpCallback.aidl
+++ b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/IOpenPgpCallback.aidl
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpKeyIdsCallback.aidl b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/IOpenPgpKeyIdsCallback.aidl
index 4ca356fad..4ca356fad 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpKeyIdsCallback.aidl
+++ b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/IOpenPgpKeyIdsCallback.aidl
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/IOpenPgpService.aidl
index 8f9e8a0fd..8f9e8a0fd 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl
+++ b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/IOpenPgpService.aidl
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpData.aidl b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/OpenPgpData.aidl
index 3711e4fb4..3711e4fb4 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpData.aidl
+++ b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/OpenPgpData.aidl
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.aidl b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/OpenPgpError.aidl
index 7a6bed1e6..7a6bed1e6 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.aidl
+++ b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/OpenPgpError.aidl
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.aidl b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/OpenPgpSignatureResult.aidl
index e246792d0..e246792d0 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.aidl
+++ b/OpenPGP-Keychain-API-Demo/src/main/aidl/org/openintents/openpgp/OpenPgpSignatureResult.aidl
diff --git a/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpCallback.aidl b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpCallback.aidl
new file mode 100644
index 000000000..ba41de1ba
--- /dev/null
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpCallback.aidl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2013 Dominik Schürmann <dominik@dominikschuermann.de>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openintents.openpgp;
+
+import org.openintents.openpgp.OpenPgpData;
+import org.openintents.openpgp.OpenPgpSignatureResult;
+import org.openintents.openpgp.OpenPgpError;
+
+interface IOpenPgpCallback {
+
+ /**
+ * onSuccess returns on successful OpenPGP operations.
+ *
+ * @param output
+ * contains resulting output (decrypted content (when input was encrypted)
+ * or content without signature (when input was signed-only))
+ * @param signatureResult
+ * signatureResult is only non-null if decryptAndVerify() was called and the content
+ * was encrypted or signed-and-encrypted.
+ */
+ oneway void onSuccess(in OpenPgpData output, in OpenPgpSignatureResult signatureResult);
+
+ /**
+ * onError returns on errors or when allowUserInteraction was set to false, but user interaction
+ * was required execute an OpenPGP operation.
+ *
+ * @param error
+ * See OpenPgpError class for more information.
+ */
+ oneway void onError(in OpenPgpError error);
+} \ No newline at end of file
diff --git a/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpKeyIdsCallback.aidl b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpKeyIdsCallback.aidl
new file mode 100644
index 000000000..4ca356fad
--- /dev/null
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpKeyIdsCallback.aidl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2013 Dominik Schürmann <dominik@dominikschuermann.de>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openintents.openpgp;
+
+import org.openintents.openpgp.OpenPgpError;
+
+interface IOpenPgpKeyIdsCallback {
+
+ /**
+ * onSuccess returns on successful getKeyIds operations.
+ *
+ * @param keyIds
+ * returned key ids
+ */
+ oneway void onSuccess(in long[] keyIds);
+
+ /**
+ * onError returns on errors or when allowUserInteraction was set to false, but user interaction
+ * was required execute an OpenPGP operation.
+ *
+ * @param error
+ * See OpenPgpError class for more information.
+ */
+ oneway void onError(in OpenPgpError error);
+} \ No newline at end of file
diff --git a/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpService.aidl b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpService.aidl
new file mode 100644
index 000000000..8f9e8a0fd
--- /dev/null
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/IOpenPgpService.aidl
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2013 Dominik Schürmann <dominik@dominikschuermann.de>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openintents.openpgp;
+
+import org.openintents.openpgp.OpenPgpData;
+import org.openintents.openpgp.IOpenPgpCallback;
+import org.openintents.openpgp.IOpenPgpKeyIdsCallback;
+
+/**
+ * All methods are oneway, which means they are asynchronous and non-blocking.
+ * Results are returned to the callback, which has to be implemented on client side.
+ */
+interface IOpenPgpService {
+
+ /**
+ * Sign
+ *
+ * After successful signing, callback's onSuccess will contain the resulting output.
+ *
+ * @param input
+ * OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
+ * @param output
+ * Request output format by defining OpenPgpData object
+ *
+ * new OpenPgpData(OpenPgpData.TYPE_STRING)
+ * Returns as String
+ * (OpenPGP Radix-64, 33 percent overhead compared to binary, see http://tools.ietf.org/html/rfc4880#page-53)
+ * new OpenPgpData(OpenPgpData.TYPE_BYTE_ARRAY)
+ * Returns as byte[]
+ * new OpenPgpData(uri)
+ * Writes output to given Uri
+ * new OpenPgpData(fileDescriptor)
+ * Writes output to given ParcelFileDescriptor
+ * @param callback
+ * Callback where to return results
+ */
+ oneway void sign(in OpenPgpData input, in OpenPgpData output, in IOpenPgpCallback callback);
+
+ /**
+ * Encrypt
+ *
+ * After successful encryption, callback's onSuccess will contain the resulting output.
+ *
+ * @param input
+ * OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
+ * @param output
+ * Request output format by defining OpenPgpData object
+ *
+ * new OpenPgpData(OpenPgpData.TYPE_STRING)
+ * Returns as String
+ * (OpenPGP Radix-64, 33 percent overhead compared to binary, see http://tools.ietf.org/html/rfc4880#page-53)
+ * new OpenPgpData(OpenPgpData.TYPE_BYTE_ARRAY)
+ * Returns as byte[]
+ * new OpenPgpData(uri)
+ * Writes output to given Uri
+ * new OpenPgpData(fileDescriptor)
+ * Writes output to given ParcelFileDescriptor
+ * @param keyIds
+ * Key Ids of recipients. Can be retrieved with getKeyIds()
+ * @param callback
+ * Callback where to return results
+ */
+ oneway void encrypt(in OpenPgpData input, in OpenPgpData output, in long[] keyIds, in IOpenPgpCallback callback);
+
+ /**
+ * Sign then encrypt
+ *
+ * After successful signing and encryption, callback's onSuccess will contain the resulting output.
+ *
+ * @param input
+ * OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
+ * @param output
+ * Request output format by defining OpenPgpData object
+ *
+ * new OpenPgpData(OpenPgpData.TYPE_STRING)
+ * Returns as String
+ * (OpenPGP Radix-64, 33 percent overhead compared to binary, see http://tools.ietf.org/html/rfc4880#page-53)
+ * new OpenPgpData(OpenPgpData.TYPE_BYTE_ARRAY)
+ * Returns as byte[]
+ * new OpenPgpData(uri)
+ * Writes output to given Uri
+ * new OpenPgpData(fileDescriptor)
+ * Writes output to given ParcelFileDescriptor
+ * @param keyIds
+ * Key Ids of recipients. Can be retrieved with getKeyIds()
+ * @param callback
+ * Callback where to return results
+ */
+ oneway void signAndEncrypt(in OpenPgpData input, in OpenPgpData output, in long[] keyIds, in IOpenPgpCallback callback);
+
+ /**
+ * Decrypts and verifies given input bytes. This methods handles encrypted-only, signed-and-encrypted,
+ * and also signed-only input.
+ *
+ * After successful decryption/verification, callback's onSuccess will contain the resulting output.
+ * The signatureResult in onSuccess is only non-null if signed-and-encrypted or signed-only inputBytes were given.
+ *
+ * @param input
+ * OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
+ * @param output
+ * Request output format by defining OpenPgpData object
+ *
+ * new OpenPgpData(OpenPgpData.TYPE_STRING)
+ * Returns as String
+ * (OpenPGP Radix-64, 33 percent overhead compared to binary, see http://tools.ietf.org/html/rfc4880#page-53)
+ * new OpenPgpData(OpenPgpData.TYPE_BYTE_ARRAY)
+ * Returns as byte[]
+ * new OpenPgpData(uri)
+ * Writes output to given Uri
+ * new OpenPgpData(fileDescriptor)
+ * Writes output to given ParcelFileDescriptor
+ * @param callback
+ * Callback where to return results
+ */
+ oneway void decryptAndVerify(in OpenPgpData input, in OpenPgpData output, in IOpenPgpCallback callback);
+
+ /**
+ * Get available key ids based on given user ids
+ *
+ * @param ids
+ * User Ids (emails) of recipients OR key ids
+ * @param allowUserInteraction
+ * Enable user interaction to lookup and import unknown keys
+ * @param callback
+ * Callback where to return results (different type than callback in other functions!)
+ */
+ oneway void getKeyIds(in String[] ids, in boolean allowUserInteraction, in IOpenPgpKeyIdsCallback callback);
+
+} \ No newline at end of file
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpConstants.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpConstants.java
index b1ca1bfe6..b1ca1bfe6 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpConstants.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpConstants.java
diff --git a/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpData.aidl b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpData.aidl
new file mode 100644
index 000000000..3711e4fb4
--- /dev/null
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpData.aidl
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2013 Dominik Schürmann <dominik@dominikschuermann.de>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openintents.openpgp;
+
+// Declare OpenPgpData so AIDL can find it and knows that it implements the parcelable protocol.
+parcelable OpenPgpData; \ No newline at end of file
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpData.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpData.java
index 6615c2146..6615c2146 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpData.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpData.java
diff --git a/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpError.aidl b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpError.aidl
new file mode 100644
index 000000000..7a6bed1e6
--- /dev/null
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpError.aidl
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2013 Dominik Schürmann <dominik@dominikschuermann.de>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openintents.openpgp;
+
+// Declare OpenPgpError so AIDL can find it and knows that it implements the parcelable protocol.
+parcelable OpenPgpError; \ No newline at end of file
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpError.java
index f108d3169..f108d3169 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpError.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpError.java
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpHelper.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpHelper.java
index 7305c47ce..7305c47ce 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpHelper.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpHelper.java
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpListPreference.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpListPreference.java
index c8e709df9..c8e709df9 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpListPreference.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpListPreference.java
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpServiceConnection.java
index f7ba06aaf..f7ba06aaf 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpServiceConnection.java
diff --git a/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpSignatureResult.aidl b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpSignatureResult.aidl
new file mode 100644
index 000000000..e246792d0
--- /dev/null
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpSignatureResult.aidl
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2013 Dominik Schürmann <dominik@dominikschuermann.de>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openintents.openpgp;
+
+// Declare OpenPgpSignatureResult so AIDL can find it and knows that it implements the parcelable protocol.
+parcelable OpenPgpSignatureResult; \ No newline at end of file
diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpSignatureResult.java
index 829f8f8cf..829f8f8cf 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpSignatureResult.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/openintents/openpgp/OpenPgpSignatureResult.java
diff --git a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/AidlDemoActivity2.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/AidlDemoActivity2.java
index b6e211955..b6e211955 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/AidlDemoActivity2.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/AidlDemoActivity2.java
diff --git a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/BaseActivity.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/BaseActivity.java
index 5b286f208..5b286f208 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/BaseActivity.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/BaseActivity.java
diff --git a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/Constants.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/Constants.java
index 03e76254c..03e76254c 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/Constants.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/Constants.java
diff --git a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java b/OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java
index 4a96de5a1..4a96de5a1 100644
--- a/OpenPGP-Keychain-API-Demo/src/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java
+++ b/OpenPGP-Keychain-API-Demo/src/main/java/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java
diff --git a/OpenPGP-Keychain-API-Demo/res/drawable-hdpi/ic_launcher.png b/OpenPGP-Keychain-API-Demo/src/main/res/drawable-hdpi/ic_launcher.png
index cf114d7db..cf114d7db 100644
--- a/OpenPGP-Keychain-API-Demo/res/drawable-hdpi/ic_launcher.png
+++ b/OpenPGP-Keychain-API-Demo/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/OpenPGP-Keychain-API-Demo/res/drawable-mdpi/ic_launcher.png b/OpenPGP-Keychain-API-Demo/src/main/res/drawable-mdpi/ic_launcher.png
index d55318843..d55318843 100644
--- a/OpenPGP-Keychain-API-Demo/res/drawable-mdpi/ic_launcher.png
+++ b/OpenPGP-Keychain-API-Demo/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/OpenPGP-Keychain-API-Demo/res/drawable-xhdpi/ic_launcher.png b/OpenPGP-Keychain-API-Demo/src/main/res/drawable-xhdpi/ic_launcher.png
index 13ed3d450..13ed3d450 100644
--- a/OpenPGP-Keychain-API-Demo/res/drawable-xhdpi/ic_launcher.png
+++ b/OpenPGP-Keychain-API-Demo/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/OpenPGP-Keychain-API-Demo/res/drawable-xxhdpi/ic_launcher.png b/OpenPGP-Keychain-API-Demo/src/main/res/drawable-xxhdpi/ic_launcher.png
index 831c993d4..831c993d4 100644
--- a/OpenPGP-Keychain-API-Demo/res/drawable-xxhdpi/ic_launcher.png
+++ b/OpenPGP-Keychain-API-Demo/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/OpenPGP-Keychain-API-Demo/res/layout/aidl_demo2.xml b/OpenPGP-Keychain-API-Demo/src/main/res/layout/aidl_demo2.xml
index 73abd9b5c..73abd9b5c 100644
--- a/OpenPGP-Keychain-API-Demo/res/layout/aidl_demo2.xml
+++ b/OpenPGP-Keychain-API-Demo/src/main/res/layout/aidl_demo2.xml
diff --git a/OpenPGP-Keychain-API-Demo/res/layout/crypto_provider_demo.xml b/OpenPGP-Keychain-API-Demo/src/main/res/layout/crypto_provider_demo.xml
index 9f2a0e6ee..9f2a0e6ee 100644
--- a/OpenPGP-Keychain-API-Demo/res/layout/crypto_provider_demo.xml
+++ b/OpenPGP-Keychain-API-Demo/src/main/res/layout/crypto_provider_demo.xml
diff --git a/OpenPGP-Keychain-API-Demo/res/layout/intent_demo.xml b/OpenPGP-Keychain-API-Demo/src/main/res/layout/intent_demo.xml
index a765343f9..a765343f9 100644
--- a/OpenPGP-Keychain-API-Demo/res/layout/intent_demo.xml
+++ b/OpenPGP-Keychain-API-Demo/src/main/res/layout/intent_demo.xml
diff --git a/OpenPGP-Keychain-API-Demo/res/xml/base_preference.xml b/OpenPGP-Keychain-API-Demo/src/main/res/xml/base_preference.xml
index 5febfad44..5febfad44 100644
--- a/OpenPGP-Keychain-API-Demo/res/xml/base_preference.xml
+++ b/OpenPGP-Keychain-API-Demo/src/main/res/xml/base_preference.xml