service: use new constants, check for address instead of full user id

This commit is contained in:
Vincent Breitmoser
2016-06-07 14:54:26 +02:00
parent f234cd614c
commit b7b7be0e7a
2 changed files with 20 additions and 8 deletions

View File

@@ -21,6 +21,8 @@ package org.sufficientlysecure.keychain.pgp;
import java.util.ArrayList; import java.util.ArrayList;
import org.openintents.openpgp.OpenPgpSignatureResult; import org.openintents.openpgp.OpenPgpSignatureResult;
import org.openintents.openpgp.util.OpenPgpUtils;
import org.openintents.openpgp.util.OpenPgpUtils.UserId;
import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException; import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException;
import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.provider.ProviderHelper;
@@ -122,12 +124,12 @@ public class OpenPgpSignatureResultBuilder {
setUserIds(allUserIds, confirmedUserIds); setUserIds(allUserIds, confirmedUserIds);
if (mSenderAddress != null) { if (mSenderAddress != null) {
if (confirmedUserIds.contains(mSenderAddress)) { if (userIdListContainsAddress(mSenderAddress, confirmedUserIds)) {
setSenderStatus(OpenPgpSignatureResult.SENDER_RESULT_CONFIRMED); setSenderStatus(OpenPgpSignatureResult.SENDER_RESULT_UID_CONFIRMED);
} else if (allUserIds.contains(mSenderAddress)) { } else if (allUserIds.contains(mSenderAddress)) {
setSenderStatus(OpenPgpSignatureResult.SENDER_RESULT_UNCONFIRMED); setSenderStatus(OpenPgpSignatureResult.SENDER_RESULT_UID_UNCONFIRMED);
} else { } else {
setSenderStatus(OpenPgpSignatureResult.SENDER_RESULT_MISSING); setSenderStatus(OpenPgpSignatureResult.SENDER_RESULT_UID_MISSING);
} }
} else { } else {
setSenderStatus(OpenPgpSignatureResult.SENDER_RESULT_NO_SENDER); setSenderStatus(OpenPgpSignatureResult.SENDER_RESULT_NO_SENDER);
@@ -142,6 +144,16 @@ public class OpenPgpSignatureResultBuilder {
setKeyRevoked(signingRing.isRevoked() || signingKey.isRevoked()); setKeyRevoked(signingRing.isRevoked() || signingKey.isRevoked());
} }
private static boolean userIdListContainsAddress(String senderAddress, ArrayList<String> confirmedUserIds) {
for (String rawUserId : confirmedUserIds) {
UserId userId = OpenPgpUtils.splitUserId(rawUserId);
if (senderAddress.equals(userId.email)) {
return true;
}
}
return false;
}
public OpenPgpSignatureResult build() { public OpenPgpSignatureResult build() {
if (!mSignatureAvailable) { if (!mSignatureAvailable) {
Log.d(Constants.TAG, "RESULT_NO_SIGNATURE"); Log.d(Constants.TAG, "RESULT_NO_SIGNATURE");
@@ -167,13 +179,13 @@ public class OpenPgpSignatureResultBuilder {
signatureStatus = OpenPgpSignatureResult.RESULT_INVALID_KEY_EXPIRED; signatureStatus = OpenPgpSignatureResult.RESULT_INVALID_KEY_EXPIRED;
} else if (mInsecure) { } else if (mInsecure) {
Log.d(Constants.TAG, "RESULT_INVALID_INSECURE"); Log.d(Constants.TAG, "RESULT_INVALID_INSECURE");
signatureStatus = OpenPgpSignatureResult.RESULT_INVALID_INSECURE; signatureStatus = OpenPgpSignatureResult.RESULT_INVALID_KEY_INSECURE;
} else if (mIsSignatureKeyCertified) { } else if (mIsSignatureKeyCertified) {
Log.d(Constants.TAG, "RESULT_VALID_CONFIRMED"); Log.d(Constants.TAG, "RESULT_VALID_CONFIRMED");
signatureStatus = OpenPgpSignatureResult.RESULT_VALID_CONFIRMED; signatureStatus = OpenPgpSignatureResult.RESULT_VALID_KEY_CONFIRMED;
} else { } else {
Log.d(Constants.TAG, "RESULT_VALID_UNCONFIRMED"); Log.d(Constants.TAG, "RESULT_VALID_UNCONFIRMED");
signatureStatus = OpenPgpSignatureResult.RESULT_VALID_UNCONFIRMED; signatureStatus = OpenPgpSignatureResult.RESULT_VALID_KEY_UNCONFIRMED;
} }
return OpenPgpSignatureResult.createWithValidSignature( return OpenPgpSignatureResult.createWithValidSignature(