mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-23 17:22:16 -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 {
|
@Test public void testImportNoFlagKey() throws Exception {
|
||||||
|
|
||||||
UncachedKeyRing pub = readRingFromResource("/test-keys/mailvelope_07_no_key_flags.asc");
|
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_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_PUBLIC (LogLevel.DEBUG, R.string.msg_is_merge_public),
|
||||||
MSG_IS_MERGE_SECRET (LogLevel.DEBUG, R.string.msg_is_merge_secret),
|
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_IMPORTING_SUBKEYS (LogLevel.DEBUG, R.string.msg_is_importing_subkeys),
|
||||||
MSG_IS_PUBRING_GENERATE (LogLevel.DEBUG, R.string.msg_is_pubring_generate),
|
MSG_IS_PUBRING_GENERATE (LogLevel.DEBUG, R.string.msg_is_pubring_generate),
|
||||||
MSG_IS_SUBKEY_NONEXISTENT (LogLevel.DEBUG, R.string.msg_is_subkey_nonexistent),
|
MSG_IS_SUBKEY_NONEXISTENT (LogLevel.DEBUG, R.string.msg_is_subkey_nonexistent),
|
||||||
|
@ -135,9 +135,7 @@ public class ProviderHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void clearLog() {
|
public void clearLog() {
|
||||||
if (mLog != null) {
|
mLog = new OperationLog();
|
||||||
mLog.clear();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we ever switch to api level 11, we can ditch this whole mess!
|
// 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
|
// This is a safe cast, because we made sure this is a secret ring above
|
||||||
canSecretRing = (CanonicalizedSecretKeyRing) secretRing.canonicalize(mLog, mIndent);
|
canSecretRing = (CanonicalizedSecretKeyRing) secretRing.canonicalize(mLog, mIndent);
|
||||||
if (canSecretRing == null) {
|
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_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_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_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_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_nonexistent">"Subkey %s unavailable in secret key"</string>
|
||||||
<string name="msg_is_subkey_ok">"Marked secret subkey %s as available"</string>
|
<string name="msg_is_subkey_ok">"Marked secret subkey %s as available"</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user