Prepare API for OpenPgpSignatureResult extensions
This commit is contained in:
@@ -78,7 +78,7 @@ public class OpenPgpSignatureResultBuilder {
|
||||
if (mKnownKey) {
|
||||
if (mValidSignature) {
|
||||
result.setKeyId(mKeyId);
|
||||
result.setUserId(mUserId);
|
||||
result.setPrimaryUserId(mUserId);
|
||||
|
||||
if (mIsSignatureKeyCertified) {
|
||||
Log.d(Constants.TAG, "SIGNATURE_SUCCESS_CERTIFIED");
|
||||
@@ -94,8 +94,8 @@ public class OpenPgpSignatureResultBuilder {
|
||||
} else {
|
||||
result.setKeyId(mKeyId);
|
||||
|
||||
Log.d(Constants.TAG, "SIGNATURE_UNKNOWN_PUB_KEY");
|
||||
result.setStatus(OpenPgpSignatureResult.SIGNATURE_UNKNOWN_PUB_KEY);
|
||||
Log.d(Constants.TAG, "SIGNATURE_KEY_MISSING");
|
||||
result.setStatus(OpenPgpSignatureResult.SIGNATURE_KEY_MISSING);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
@@ -31,7 +31,6 @@ import org.openintents.openpgp.OpenPgpError;
|
||||
import org.openintents.openpgp.OpenPgpSignatureResult;
|
||||
import org.openintents.openpgp.util.OpenPgpApi;
|
||||
import org.openkeychain.nfc.NfcActivity;
|
||||
import org.spongycastle.util.Arrays;
|
||||
import org.sufficientlysecure.keychain.Constants;
|
||||
import org.sufficientlysecure.keychain.R;
|
||||
import org.sufficientlysecure.keychain.pgp.PgpDecryptVerify;
|
||||
@@ -447,7 +446,15 @@ public class OpenPgpService extends RemoteService {
|
||||
if (signatureResult != null) {
|
||||
result.putExtra(OpenPgpApi.RESULT_SIGNATURE, signatureResult);
|
||||
|
||||
if (signatureResult.getStatus() == OpenPgpSignatureResult.SIGNATURE_UNKNOWN_PUB_KEY) {
|
||||
if (data.getIntExtra(OpenPgpApi.EXTRA_API_VERSION, -1) < 5) {
|
||||
// SIGNATURE_KEY_REVOKED and SIGNATURE_KEY_EXPIRED have been added in version 5
|
||||
if (signatureResult.getStatus() == OpenPgpSignatureResult.SIGNATURE_KEY_REVOKED
|
||||
|| signatureResult.getStatus() == OpenPgpSignatureResult.SIGNATURE_KEY_EXPIRED) {
|
||||
signatureResult.setStatus(OpenPgpSignatureResult.SIGNATURE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
if (signatureResult.getStatus() == OpenPgpSignatureResult.SIGNATURE_KEY_MISSING) {
|
||||
// If signature is unknown we return an _additional_ PendingIntent
|
||||
// to retrieve the missing key
|
||||
Intent intent = new Intent(getBaseContext(), ImportKeysActivity.class);
|
||||
@@ -577,9 +584,10 @@ public class OpenPgpService extends RemoteService {
|
||||
|
||||
// version code is required and needs to correspond to version code of service!
|
||||
// History of versions in org.openintents.openpgp.util.OpenPgpApi
|
||||
// we support 3 and 4
|
||||
// we support 3, 4, 5
|
||||
if (data.getIntExtra(OpenPgpApi.EXTRA_API_VERSION, -1) != 3
|
||||
&& data.getIntExtra(OpenPgpApi.EXTRA_API_VERSION, -1) != 4) {
|
||||
&& data.getIntExtra(OpenPgpApi.EXTRA_API_VERSION, -1) != 4
|
||||
&& data.getIntExtra(OpenPgpApi.EXTRA_API_VERSION, -1) != 5) {
|
||||
Intent result = new Intent();
|
||||
OpenPgpError error = new OpenPgpError
|
||||
(OpenPgpError.INCOMPATIBLE_API_VERSIONS, "Incompatible API versions!\n"
|
||||
|
||||
@@ -110,7 +110,7 @@ public abstract class DecryptFragment extends Fragment {
|
||||
|
||||
mSignatureKeyId = signatureResult.getKeyId();
|
||||
|
||||
String userId = signatureResult.getUserId();
|
||||
String userId = signatureResult.getPrimaryUserId();
|
||||
String[] userIdSplit = KeyRing.splitUserId(userId);
|
||||
if (userIdSplit[0] != null) {
|
||||
mUserId.setText(userIdSplit[0]);
|
||||
@@ -153,7 +153,7 @@ public abstract class DecryptFragment extends Fragment {
|
||||
break;
|
||||
}
|
||||
|
||||
case OpenPgpSignatureResult.SIGNATURE_UNKNOWN_PUB_KEY: {
|
||||
case OpenPgpSignatureResult.SIGNATURE_KEY_MISSING: {
|
||||
if (signatureResult.isSignatureOnly()) {
|
||||
mResultText.setText(R.string.decrypt_result_signature_unknown_pub_key);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user