allow passphrase as parameter

This commit is contained in:
Dominik Schürmann 2014-02-15 02:44:03 +01:00
parent e0111c2ec4
commit 3b0f76bf60
2 changed files with 21 additions and 4 deletions

View File

@ -141,7 +141,12 @@ public class OpenPgpService extends RemoteService {
private Bundle signImpl(Bundle params, ParcelFileDescriptor input, ParcelFileDescriptor output, AppSettings appSettings) { private Bundle signImpl(Bundle params, ParcelFileDescriptor input, ParcelFileDescriptor output, AppSettings appSettings) {
try { try {
// get passphrase from cache, if key has "no" passphrase, this returns an empty String // get passphrase from cache, if key has "no" passphrase, this returns an empty String
String passphrase = PassphraseCacheService.getCachedPassphrase(getContext(), appSettings.getKeyId()); String passphrase;
if (params.containsKey(OpenPgpConstants.PARAMS_PASSPHRASE)) {
passphrase = params.getString(OpenPgpConstants.PARAMS_PASSPHRASE);
} else {
passphrase = PassphraseCacheService.getCachedPassphrase(getContext(), appSettings.getKeyId());
}
if (passphrase == null) { if (passphrase == null) {
// get PendingIntent for passphrase input, add it to given params and return to client // get PendingIntent for passphrase input, add it to given params and return to client
Bundle passphraseBundle = getPassphraseBundleIntent(params, appSettings.getKeyId()); Bundle passphraseBundle = getPassphraseBundleIntent(params, appSettings.getKeyId());
@ -212,8 +217,13 @@ public class OpenPgpService extends RemoteService {
PgpOperation operation = new PgpOperation(getContext(), null, inputData, os); PgpOperation operation = new PgpOperation(getContext(), null, inputData, os);
if (sign) { if (sign) {
String passphrase = PassphraseCacheService.getCachedPassphrase(getContext(), String passphrase;
appSettings.getKeyId()); if (params.containsKey(OpenPgpConstants.PARAMS_PASSPHRASE)) {
passphrase = params.getString(OpenPgpConstants.PARAMS_PASSPHRASE);
} else {
passphrase = PassphraseCacheService.getCachedPassphrase(getContext(),
appSettings.getKeyId());
}
if (passphrase == null) { if (passphrase == null) {
// get PendingIntent for passphrase input, add it to given params and return to client // get PendingIntent for passphrase input, add it to given params and return to client
Bundle passphraseBundle = getPassphraseBundleIntent(params, appSettings.getKeyId()); Bundle passphraseBundle = getPassphraseBundleIntent(params, appSettings.getKeyId());
@ -335,7 +345,12 @@ public class OpenPgpService extends RemoteService {
// Log.d(Constants.TAG, "secretKeyId " + secretKeyId); // Log.d(Constants.TAG, "secretKeyId " + secretKeyId);
// NOTE: currently this only gets the passphrase for the saved key // NOTE: currently this only gets the passphrase for the saved key
String passphrase = PassphraseCacheService.getCachedPassphrase(getContext(), appSettings.getKeyId()); String passphrase;
if (params.containsKey(OpenPgpConstants.PARAMS_PASSPHRASE)) {
passphrase = params.getString(OpenPgpConstants.PARAMS_PASSPHRASE);
} else {
passphrase = PassphraseCacheService.getCachedPassphrase(getContext(), appSettings.getKeyId());
}
if (passphrase == null) { if (passphrase == null) {
// get PendingIntent for passphrase input, add it to given params and return to client // get PendingIntent for passphrase input, add it to given params and return to client
Bundle passphraseBundle = getPassphraseBundleIntent(params, appSettings.getKeyId()); Bundle passphraseBundle = getPassphraseBundleIntent(params, appSettings.getKeyId());

View File

@ -32,6 +32,8 @@ public class OpenPgpConstants {
// (for encrypt method) // (for encrypt method)
public static final String PARAMS_USER_IDS = "user_ids"; public static final String PARAMS_USER_IDS = "user_ids";
public static final String PARAMS_KEY_IDS = "key_ids"; public static final String PARAMS_KEY_IDS = "key_ids";
// optional parameter:
public static final String PARAMS_PASSPHRASE = "passphrase";
/* Service Bundle returns */ /* Service Bundle returns */
public static final String RESULT_CODE = "result_code"; public static final String RESULT_CODE = "result_code";