aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain/src
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2013-09-16 12:16:54 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2013-09-16 12:16:54 +0200
commit4e23cf2edc27903b0fa875dd55c48aafe99b83c7 (patch)
treed2229d6ef5e98c01ee39cd29009242623ca8a5f9 /OpenPGP-Keychain/src
parent53f33dc3cb331ad111a67f5bb9ee69a1e1f34e79 (diff)
downloadopen-keychain-4e23cf2edc27903b0fa875dd55c48aafe99b83c7.tar.gz
open-keychain-4e23cf2edc27903b0fa875dd55c48aafe99b83c7.tar.bz2
open-keychain-4e23cf2edc27903b0fa875dd55c48aafe99b83c7.zip
API update: boolean to allow/disallow user interaction allow real background pgp operations that will not require user input
Diffstat (limited to 'OpenPGP-Keychain/src')
-rw-r--r--OpenPGP-Keychain/src/org/openintents/openpgp/IOpenPgpService.aidl20
-rw-r--r--OpenPGP-Keychain/src/org/sufficientlysecure/keychain/service/remote/OpenPgpService.java37
2 files changed, 36 insertions, 21 deletions
diff --git a/OpenPGP-Keychain/src/org/openintents/openpgp/IOpenPgpService.aidl b/OpenPGP-Keychain/src/org/openintents/openpgp/IOpenPgpService.aidl
index bc5220985..ca291469c 100644
--- a/OpenPGP-Keychain/src/org/openintents/openpgp/IOpenPgpService.aidl
+++ b/OpenPGP-Keychain/src/org/openintents/openpgp/IOpenPgpService.aidl
@@ -33,10 +33,13 @@ interface IOpenPgpService {
* User Ids (emails) of recipients
* @param asciiArmor
* Encode for ASCII (Radix-64, 33 percent overhead compared to binary)
+ * @param allowUserInteraction
+ * Allows the OpenPGP Provider to handle missing keys by showing activities
* @param callback
* Callback where to return results
*/
- oneway void encrypt(in byte[] inputBytes, in String[] encryptionUserIds, in boolean asciiArmor, in IOpenPgpCallback callback);
+ oneway void encrypt(in byte[] inputBytes, in String[] encryptionUserIds,
+ in boolean asciiArmor, in boolean allowUserInteraction, in IOpenPgpCallback callback);
/**
* Sign
@@ -45,10 +48,13 @@ interface IOpenPgpService {
* Byte array you want to encrypt
* @param asciiArmor
* Encode for ASCII (Radix-64, 33 percent overhead compared to binary)
+ * @param allowUserInteraction
+ * Allows the OpenPGP Provider to handle missing keys by showing activities
* @param callback
* Callback where to return results
*/
- oneway void sign(in byte[] inputBytes, in boolean asciiArmor, in IOpenPgpCallback callback);
+ oneway void sign(in byte[] inputBytes, in boolean asciiArmor, in boolean allowUserInteraction,
+ in IOpenPgpCallback callback);
/**
* Sign then encrypt
@@ -61,10 +67,13 @@ interface IOpenPgpService {
* User Ids (email) of sender
* @param asciiArmor
* Encode for ASCII (Radix-64, 33 percent overhead compared to binary)
+ * @param allowUserInteraction
+ * Allows the OpenPGP Provider to handle missing keys by showing activities
* @param callback
* Callback where to return results
*/
- oneway void signAndEncrypt(in byte[] inputBytes, in String[] encryptionUserIds, in boolean asciiArmor, in IOpenPgpCallback callback);
+ oneway void signAndEncrypt(in byte[] inputBytes, in String[] encryptionUserIds,
+ in boolean asciiArmor, in boolean allowUserInteraction, in IOpenPgpCallback callback);
/**
* Decrypts and verifies given input bytes. If no signature is present this method
@@ -72,9 +81,12 @@ interface IOpenPgpService {
*
* @param inputBytes
* Byte array you want to decrypt and verify
+ * @param allowUserInteraction
+ * Allows the OpenPGP Provider to handle missing keys by showing activities
* @param callback
* Callback where to return results
*/
- oneway void decryptAndVerify(in byte[] inputBytes, in IOpenPgpCallback callback);
+ oneway void decryptAndVerify(in byte[] inputBytes, in boolean allowUserInteraction,
+ in IOpenPgpCallback callback);
} \ No newline at end of file
diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/service/remote/OpenPgpService.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/service/remote/OpenPgpService.java
index 4b451ecfb..af3554237 100644
--- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/service/remote/OpenPgpService.java
+++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/service/remote/OpenPgpService.java
@@ -217,8 +217,8 @@ public class OpenPgpService extends RemoteService {
};
private synchronized void encryptAndSignSafe(byte[] inputBytes, String[] encryptionUserIds,
- boolean asciiArmor, IOpenPgpCallback callback, AppSettings appSettings, boolean sign)
- throws RemoteException {
+ boolean asciiArmor, boolean allowUserInteraction, IOpenPgpCallback callback,
+ AppSettings appSettings, boolean sign) throws RemoteException {
try {
// build InputData and write into OutputStream
InputStream inputStream = new ByteArrayInputStream(inputBytes);
@@ -269,8 +269,8 @@ public class OpenPgpService extends RemoteService {
}
// TODO: asciiArmor?!
- private void signSafe(byte[] inputBytes, IOpenPgpCallback callback, AppSettings appSettings)
- throws RemoteException {
+ private void signSafe(byte[] inputBytes, boolean allowUserInteraction,
+ IOpenPgpCallback callback, AppSettings appSettings) throws RemoteException {
try {
Log.d(Constants.TAG, "current therad id: " + Thread.currentThread().getId());
@@ -309,8 +309,8 @@ public class OpenPgpService extends RemoteService {
}
}
- private synchronized void decryptAndVerifySafe(byte[] inputBytes, IOpenPgpCallback callback,
- AppSettings appSettings) throws RemoteException {
+ private synchronized void decryptAndVerifySafe(byte[] inputBytes, boolean allowUserInteraction,
+ IOpenPgpCallback callback, AppSettings appSettings) throws RemoteException {
try {
// TODO: this is not really needed
// checked if it is text with BEGIN and END tags
@@ -459,7 +459,8 @@ public class OpenPgpService extends RemoteService {
@Override
public void encrypt(final byte[] inputBytes, final String[] encryptionUserIds,
- final boolean asciiArmor, final IOpenPgpCallback callback) throws RemoteException {
+ final boolean asciiArmor, final boolean allowUserInteraction,
+ final IOpenPgpCallback callback) throws RemoteException {
final AppSettings settings = getAppSettings();
@@ -468,8 +469,8 @@ public class OpenPgpService extends RemoteService {
@Override
public void run() {
try {
- encryptAndSignSafe(inputBytes, encryptionUserIds, asciiArmor, callback,
- settings, false);
+ encryptAndSignSafe(inputBytes, encryptionUserIds, asciiArmor,
+ allowUserInteraction, callback, settings, false);
} catch (RemoteException e) {
Log.e(Constants.TAG, "OpenPgpService", e);
}
@@ -481,7 +482,8 @@ public class OpenPgpService extends RemoteService {
@Override
public void signAndEncrypt(final byte[] inputBytes, final String[] encryptionUserIds,
- final boolean asciiArmor, final IOpenPgpCallback callback) throws RemoteException {
+ final boolean asciiArmor, final boolean allowUserInteraction,
+ final IOpenPgpCallback callback) throws RemoteException {
final AppSettings settings = getAppSettings();
@@ -490,8 +492,8 @@ public class OpenPgpService extends RemoteService {
@Override
public void run() {
try {
- encryptAndSignSafe(inputBytes, encryptionUserIds, asciiArmor, callback,
- settings, true);
+ encryptAndSignSafe(inputBytes, encryptionUserIds, asciiArmor,
+ allowUserInteraction, callback, settings, true);
} catch (RemoteException e) {
Log.e(Constants.TAG, "OpenPgpService", e);
}
@@ -503,7 +505,8 @@ public class OpenPgpService extends RemoteService {
@Override
public void sign(final byte[] inputBytes, boolean asciiArmor,
- final IOpenPgpCallback callback) throws RemoteException {
+ final boolean allowUserInteraction, final IOpenPgpCallback callback)
+ throws RemoteException {
final AppSettings settings = getAppSettings();
Runnable r = new Runnable() {
@@ -511,7 +514,7 @@ public class OpenPgpService extends RemoteService {
@Override
public void run() {
try {
- signSafe(inputBytes, callback, settings);
+ signSafe(inputBytes, allowUserInteraction, callback, settings);
} catch (RemoteException e) {
Log.e(Constants.TAG, "OpenPgpService", e);
}
@@ -523,8 +526,8 @@ public class OpenPgpService extends RemoteService {
}
@Override
- public void decryptAndVerify(final byte[] inputBytes, final IOpenPgpCallback callback)
- throws RemoteException {
+ public void decryptAndVerify(final byte[] inputBytes, final boolean allowUserInteraction,
+ final IOpenPgpCallback callback) throws RemoteException {
final AppSettings settings = getAppSettings();
@@ -533,7 +536,7 @@ public class OpenPgpService extends RemoteService {
@Override
public void run() {
try {
- decryptAndVerifySafe(inputBytes, callback, settings);
+ decryptAndVerifySafe(inputBytes, allowUserInteraction, callback, settings);
} catch (RemoteException e) {
Log.e(Constants.TAG, "OpenPgpService", e);
}