mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-12-24 07:58:50 -05:00
Merge branch 'development' of github.com:open-keychain/open-keychain into development
This commit is contained in:
commit
825baeee1b
@ -77,6 +77,28 @@ public class ProviderHelperSaveTest {
|
||||
|
||||
}
|
||||
|
||||
@Test public void testImportSymantec() throws Exception {
|
||||
|
||||
// insert two keys with same long key id, make sure the second one gets rejected either way!
|
||||
UncachedKeyRing seckey =
|
||||
readRingFromResource("/test-keys/symantec_secret.asc");
|
||||
UncachedKeyRing pubkey =
|
||||
readRingFromResource("/test-keys/symantec_public.asc");
|
||||
|
||||
SaveKeyringResult result;
|
||||
|
||||
// insert secret, this should fail because of missing self-cert
|
||||
result = new ProviderHelper(Robolectric.application).saveSecretKeyRing(seckey, new ProgressScaler());
|
||||
Assert.assertFalse("secret keyring import before pubring import should fail", result.success());
|
||||
|
||||
// insert pubkey, then seckey - both should succeed
|
||||
result = new ProviderHelper(Robolectric.application).savePublicKeyRing(pubkey);
|
||||
Assert.assertTrue("public keyring import should succeed", result.success());
|
||||
result = new ProviderHelper(Robolectric.application).saveSecretKeyRing(seckey, new ProgressScaler());
|
||||
Assert.assertTrue("secret keyring import after pubring import should succeed", result.success());
|
||||
|
||||
}
|
||||
|
||||
@Test public void testImportNoFlagKey() throws Exception {
|
||||
|
||||
UncachedKeyRing pub = readRingFromResource("/test-keys/mailvelope_07_no_key_flags.asc");
|
||||
|
@ -0,0 +1,37 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: Encryption Desktop 10.3.1 (Build 13100)
|
||||
|
||||
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
|
||||
=c8vd
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
@ -0,0 +1,46 @@
|
||||
-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||
Version: Encryption Desktop 10.3.1 (Build 13100)
|
||||
|
||||
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
|
||||
=jUby
|
||||
-----END PGP PRIVATE KEY BLOCK-----
|
@ -351,6 +351,7 @@ public abstract class OperationResult implements Parcelable {
|
||||
MSG_IS_ERROR_IO_EXC(LogLevel.DEBUG, R.string.msg_is_error_io_exc),
|
||||
MSG_IS_MERGE_PUBLIC (LogLevel.DEBUG, R.string.msg_is_merge_public),
|
||||
MSG_IS_MERGE_SECRET (LogLevel.DEBUG, R.string.msg_is_merge_secret),
|
||||
MSG_IS_MERGE_SPECIAL (LogLevel.DEBUG, R.string.msg_is_merge_special),
|
||||
MSG_IS_IMPORTING_SUBKEYS (LogLevel.DEBUG, R.string.msg_is_importing_subkeys),
|
||||
MSG_IS_PUBRING_GENERATE (LogLevel.DEBUG, R.string.msg_is_pubring_generate),
|
||||
MSG_IS_SUBKEY_NONEXISTENT (LogLevel.DEBUG, R.string.msg_is_subkey_nonexistent),
|
||||
|
@ -135,9 +135,7 @@ public class ProviderHelper {
|
||||
}
|
||||
|
||||
public void clearLog() {
|
||||
if (mLog != null) {
|
||||
mLog.clear();
|
||||
}
|
||||
mLog = new OperationLog();
|
||||
}
|
||||
|
||||
// If we ever switch to api level 11, we can ditch this whole mess!
|
||||
@ -867,7 +865,21 @@ public class ProviderHelper {
|
||||
// This is a safe cast, because we made sure this is a secret ring above
|
||||
canSecretRing = (CanonicalizedSecretKeyRing) secretRing.canonicalize(mLog, mIndent);
|
||||
if (canSecretRing == null) {
|
||||
return new SaveKeyringResult(SaveKeyringResult.RESULT_ERROR, mLog, null);
|
||||
|
||||
// Special case: If keyring canonicalization failed, try again after adding
|
||||
// all self-certificates from the public key.
|
||||
try {
|
||||
log(LogType.MSG_IS_MERGE_SPECIAL);
|
||||
UncachedKeyRing oldPublicRing = getCanonicalizedPublicKeyRing(masterKeyId).getUncachedKeyRing();
|
||||
secretRing = secretRing.merge(oldPublicRing, mLog, mIndent);
|
||||
canSecretRing = (CanonicalizedSecretKeyRing) secretRing.canonicalize(mLog, mIndent);
|
||||
} catch (NotFoundException e2) {
|
||||
// nothing, this is handled right in the next line
|
||||
}
|
||||
|
||||
if (canSecretRing == null) {
|
||||
return new SaveKeyringResult(SaveKeyringResult.RESULT_ERROR, mLog, null);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -688,6 +688,7 @@
|
||||
<string name="msg_is_error_io_exc">"Error encoding keyring"</string>
|
||||
<string name="msg_is_merge_public">"Merging imported data into existing public keyring"</string>
|
||||
<string name="msg_is_merge_secret">"Merging imported data into existing public keyring"</string>
|
||||
<string name="msg_is_merge_special">"Merging in self-certificates data from public keyring"</string>
|
||||
<string name="msg_is_pubring_generate">"Generating public keyring from secret keyring"</string>
|
||||
<string name="msg_is_subkey_nonexistent">"Subkey %s unavailable in secret key"</string>
|
||||
<string name="msg_is_subkey_ok">"Marked secret subkey %s as available"</string>
|
||||
|
Loading…
Reference in New Issue
Block a user