mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-23 18:02:15 -05:00
Handle SIGNATURE_SUCCESS_UNCERTIFIED, code cleanup
This commit is contained in:
parent
4a69ef1509
commit
f5b1ed920b
@ -23,7 +23,7 @@
|
||||
android:maxLines="1"
|
||||
android:padding="2dp"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:textColor="?android:textColorPrimaryInverse"
|
||||
android:textIsSelectable="false" />
|
||||
|
||||
|
@ -1157,11 +1157,13 @@ Please submit bug reports, contribute new features and ask questions at
|
||||
<!-- === OpenPGP specific ================================================================== -->
|
||||
<string name="openpgp_decrypting_verifying">Decrypting/Verifying…</string>
|
||||
<string name="openpgp_successful_decryption">Successful decryption</string>
|
||||
<string name="openpgp_signature_valid">Valid signature</string>
|
||||
<string name="openpgp_signature_valid_certified">Valid signature (certified)</string>
|
||||
<string name="openpgp_signature_valid_uncertified">Valid signature but uncertified</string>
|
||||
<string name="openpgp_signature_unknown">Unknown signer</string>
|
||||
<string name="openpgp_signature_invalid">Invalid signature</string>
|
||||
<string name="openpgp_signature_unknown_text">Missing public key for this signature</string>
|
||||
<string name="openpgp_successful_decryption_valid_signature">Successful decryption and valid signature</string>
|
||||
<string name="openpgp_successful_decryption_valid_signature_certified">Successful decryption and valid signature (certified)</string>
|
||||
<string name="openpgp_successful_decryption_valid_signature_uncertified">Successful decryption and valid signature but uncertified</string>
|
||||
<string name="openpgp_successful_decryption_unknown_signature">Successful decryption but missing public key</string>
|
||||
<string name="openpgp_get_key">Lookup missing key</string>
|
||||
<string name="openpgp_error">OpenPGP Error:</string>
|
||||
|
@ -116,15 +116,17 @@ public class MessageOpenPgpView extends LinearLayout {
|
||||
return;
|
||||
}
|
||||
if (decryptedData != null && signatureResult == null) {
|
||||
// only decrypt
|
||||
// encrypted-only
|
||||
Log.d(K9.LOG_TAG, "null!");
|
||||
|
||||
MessageOpenPgpView.this.setBackgroundColor(mFragment.getResources().getColor(
|
||||
R.color.openpgp_blue));
|
||||
mText.setText(R.string.openpgp_successful_decryption);
|
||||
|
||||
// don't process further
|
||||
return;
|
||||
} else if (signatureResult != null && decryptedData != null) {
|
||||
// decryptAndVerify / only verify
|
||||
} else if (decryptedData != null && signatureResult != null) {
|
||||
// signed-only and signed-and-encrypted
|
||||
|
||||
switch (signatureResult.getStatus()) {
|
||||
case OpenPgpSignatureResult.SIGNATURE_ERROR:
|
||||
@ -133,16 +135,16 @@ public class MessageOpenPgpView extends LinearLayout {
|
||||
MessageOpenPgpView.this.setBackgroundColor(mFragment.getResources().getColor(
|
||||
R.color.openpgp_red));
|
||||
|
||||
// mSignatureStatusImage.setImageResource(R.drawable.overlay_error);
|
||||
mSignatureStatusImage.setImageResource(R.drawable.overlay_error);
|
||||
mSignatureLayout.setVisibility(View.GONE);
|
||||
break;
|
||||
|
||||
case OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED:
|
||||
if (signatureResult.isSignatureOnly()) {
|
||||
mText.setText(R.string.openpgp_signature_valid);
|
||||
mText.setText(R.string.openpgp_signature_valid_certified);
|
||||
}
|
||||
else {
|
||||
mText.setText(R.string.openpgp_successful_decryption_valid_signature);
|
||||
mText.setText(R.string.openpgp_successful_decryption_valid_signature_certified);
|
||||
}
|
||||
MessageOpenPgpView.this.setBackgroundColor(mFragment.getResources().getColor(
|
||||
R.color.openpgp_green));
|
||||
@ -170,6 +172,22 @@ public class MessageOpenPgpView extends LinearLayout {
|
||||
|
||||
break;
|
||||
|
||||
case OpenPgpSignatureResult.SIGNATURE_SUCCESS_UNCERTIFIED:
|
||||
if (signatureResult.isSignatureOnly()) {
|
||||
mText.setText(R.string.openpgp_signature_valid_uncertified);
|
||||
}
|
||||
else {
|
||||
mText.setText(R.string.openpgp_successful_decryption_valid_signature_uncertified);
|
||||
}
|
||||
MessageOpenPgpView.this.setBackgroundColor(mFragment.getResources().getColor(
|
||||
R.color.openpgp_orange));
|
||||
|
||||
mSignatureUserId.setText(signatureResult.getUserId());
|
||||
mSignatureStatusImage.setImageResource(R.drawable.overlay_ok);
|
||||
mSignatureLayout.setVisibility(View.VISIBLE);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -294,8 +312,11 @@ public class MessageOpenPgpView extends LinearLayout {
|
||||
sigResult = result.getParcelableExtra(OpenPgpApi.RESULT_SIGNATURE);
|
||||
}
|
||||
|
||||
if (sigResult == null)
|
||||
Log.d(K9.LOG_TAG, "sig null");
|
||||
|
||||
if (K9.DEBUG)
|
||||
Log.d(OpenPgpApi.TAG, "result: " + os.toByteArray().length
|
||||
Log.d(K9.LOG_TAG, "result: " + os.toByteArray().length
|
||||
+ " str=" + output);
|
||||
|
||||
// missing key -> PendingIntent to get keys
|
||||
@ -323,7 +344,7 @@ public class MessageOpenPgpView extends LinearLayout {
|
||||
}
|
||||
case OpenPgpApi.RESULT_CODE_ERROR: {
|
||||
OpenPgpError error = result.getParcelableExtra(OpenPgpApi.RESULT_ERRORS);
|
||||
handleError(error, true);
|
||||
handleError(error);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -337,12 +358,11 @@ public class MessageOpenPgpView extends LinearLayout {
|
||||
// try again after user interaction
|
||||
if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_CODE_DECRYPT_VERIFY) {
|
||||
/*
|
||||
* The data originally given to the pgp method are are again
|
||||
* returned here to be used when calling again after user
|
||||
* interaction. They also contain results from the user interaction
|
||||
* which happened, for example selected key ids.
|
||||
* The data originally given to the decryptVerify() method, is again
|
||||
* returned here to be used when calling decryptVerify() after user
|
||||
* interaction. The Intent now also contains results from the user
|
||||
* interaction, for example selected key ids.
|
||||
*/
|
||||
|
||||
decryptVerify(data);
|
||||
|
||||
return true;
|
||||
@ -351,7 +371,7 @@ public class MessageOpenPgpView extends LinearLayout {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void handleError(final OpenPgpError error, final boolean changeColor) {
|
||||
private void handleError(final OpenPgpError error) {
|
||||
mFragment.getActivity().runOnUiThread(new Runnable() {
|
||||
|
||||
@Override
|
||||
@ -359,15 +379,12 @@ public class MessageOpenPgpView extends LinearLayout {
|
||||
mProgress.setVisibility(View.GONE);
|
||||
|
||||
if (K9.DEBUG) {
|
||||
Log.d(K9.LOG_TAG, "handleError getErrorId:" + error.getErrorId());
|
||||
Log.d(K9.LOG_TAG, "handleError getMessage:" + error.getMessage());
|
||||
Log.d(K9.LOG_TAG, "OpenPGP Error ID:" + error.getErrorId());
|
||||
Log.d(K9.LOG_TAG, "OpenPGP Error Message:" + error.getMessage());
|
||||
}
|
||||
|
||||
// TODO: better error handling with ids?
|
||||
mText.setText(mFragment.getString(R.string.openpgp_error) + " "
|
||||
+ error.getMessage());
|
||||
|
||||
if (changeColor)
|
||||
MessageOpenPgpView.this.setBackgroundColor(mFragment.getResources().getColor(
|
||||
R.color.openpgp_red));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user