mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-27 11:12:15 -05:00
better error handling for bad encrypted data checksum
This commit is contained in:
parent
bde58c6ff1
commit
36ecd60c1b
@ -596,6 +596,7 @@ public abstract class OperationResult implements Parcelable {
|
|||||||
MSG_DC_CLEAR_SIGNATURE_OK (LogLevel.OK, R.string.msg_dc_clear_signature_ok),
|
MSG_DC_CLEAR_SIGNATURE_OK (LogLevel.OK, R.string.msg_dc_clear_signature_ok),
|
||||||
MSG_DC_CLEAR_SIGNATURE (LogLevel.DEBUG, R.string.msg_dc_clear_signature),
|
MSG_DC_CLEAR_SIGNATURE (LogLevel.DEBUG, R.string.msg_dc_clear_signature),
|
||||||
MSG_DC_ERROR_BAD_PASSPHRASE (LogLevel.ERROR, R.string.msg_dc_error_bad_passphrase),
|
MSG_DC_ERROR_BAD_PASSPHRASE (LogLevel.ERROR, R.string.msg_dc_error_bad_passphrase),
|
||||||
|
MSG_DC_ERROR_CORRUPT_DATA (LogLevel.ERROR, R.string.msg_dc_error_corrupt_data),
|
||||||
MSG_DC_ERROR_EXTRACT_KEY (LogLevel.ERROR, R.string.msg_dc_error_extract_key),
|
MSG_DC_ERROR_EXTRACT_KEY (LogLevel.ERROR, R.string.msg_dc_error_extract_key),
|
||||||
MSG_DC_ERROR_INTEGRITY_CHECK (LogLevel.ERROR, R.string.msg_dc_error_integrity_check),
|
MSG_DC_ERROR_INTEGRITY_CHECK (LogLevel.ERROR, R.string.msg_dc_error_integrity_check),
|
||||||
MSG_DC_ERROR_INTEGRITY_MISSING (LogLevel.ERROR, R.string.msg_dc_error_integrity_missing),
|
MSG_DC_ERROR_INTEGRITY_MISSING (LogLevel.ERROR, R.string.msg_dc_error_integrity_missing),
|
||||||
|
@ -28,6 +28,7 @@ import org.spongycastle.openpgp.PGPCompressedData;
|
|||||||
import org.spongycastle.openpgp.PGPEncryptedData;
|
import org.spongycastle.openpgp.PGPEncryptedData;
|
||||||
import org.spongycastle.openpgp.PGPEncryptedDataList;
|
import org.spongycastle.openpgp.PGPEncryptedDataList;
|
||||||
import org.spongycastle.openpgp.PGPException;
|
import org.spongycastle.openpgp.PGPException;
|
||||||
|
import org.spongycastle.openpgp.PGPKeyValidationException;
|
||||||
import org.spongycastle.openpgp.PGPLiteralData;
|
import org.spongycastle.openpgp.PGPLiteralData;
|
||||||
import org.spongycastle.openpgp.PGPOnePassSignature;
|
import org.spongycastle.openpgp.PGPOnePassSignature;
|
||||||
import org.spongycastle.openpgp.PGPOnePassSignatureList;
|
import org.spongycastle.openpgp.PGPOnePassSignatureList;
|
||||||
@ -596,7 +597,12 @@ public class PgpDecryptVerify extends BaseOperation {
|
|||||||
try {
|
try {
|
||||||
PublicKeyDataDecryptorFactory decryptorFactory
|
PublicKeyDataDecryptorFactory decryptorFactory
|
||||||
= secretEncryptionKey.getDecryptorFactory(cryptoInput);
|
= secretEncryptionKey.getDecryptorFactory(cryptoInput);
|
||||||
clear = encryptedDataAsymmetric.getDataStream(decryptorFactory);
|
try {
|
||||||
|
clear = encryptedDataAsymmetric.getDataStream(decryptorFactory);
|
||||||
|
} catch (PGPKeyValidationException | ArrayIndexOutOfBoundsException e) {
|
||||||
|
log.add(LogType.MSG_DC_ERROR_CORRUPT_DATA, indent + 1);
|
||||||
|
return new DecryptVerifyResult(DecryptVerifyResult.RESULT_ERROR, log);
|
||||||
|
}
|
||||||
|
|
||||||
symmetricEncryptionAlgo = encryptedDataAsymmetric.getSymmetricAlgorithm(decryptorFactory);
|
symmetricEncryptionAlgo = encryptedDataAsymmetric.getSymmetricAlgorithm(decryptorFactory);
|
||||||
} catch (NfcSyncPublicKeyDataDecryptorFactoryBuilder.NfcInteractionNeeded e) {
|
} catch (NfcSyncPublicKeyDataDecryptorFactoryBuilder.NfcInteractionNeeded e) {
|
||||||
|
@ -1037,6 +1037,7 @@
|
|||||||
<string name="msg_dc_clear_signature">"Saving signature data for later"</string>
|
<string name="msg_dc_clear_signature">"Saving signature data for later"</string>
|
||||||
<string name="msg_dc_clear">"Processing cleartext data"</string>
|
<string name="msg_dc_clear">"Processing cleartext data"</string>
|
||||||
<string name="msg_dc_error_bad_passphrase">"Error unlocking key, bad password!"</string>
|
<string name="msg_dc_error_bad_passphrase">"Error unlocking key, bad password!"</string>
|
||||||
|
<string name="msg_dc_error_corrupt_data">"Data is corrupt!"</string>
|
||||||
<string name="msg_dc_error_extract_key">"Unknown error unlocking key!"</string>
|
<string name="msg_dc_error_extract_key">"Unknown error unlocking key!"</string>
|
||||||
<string name="msg_dc_error_integrity_check">"Integrity check error!"</string>
|
<string name="msg_dc_error_integrity_check">"Integrity check error!"</string>
|
||||||
<string name="msg_dc_error_integrity_missing">"Missing integrity check! This can happen because the encrypting application is out of date, or from a downgrade attack."</string>
|
<string name="msg_dc_error_integrity_missing">"Missing integrity check! This can happen because the encrypting application is out of date, or from a downgrade attack."</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user