diff options
author | Vincent <valodim@mugenguild.com> | 2016-02-10 18:39:55 +0100 |
---|---|---|
committer | Vincent <valodim@mugenguild.com> | 2016-02-10 18:39:55 +0100 |
commit | 2eac4ebb950c9f36fbb8852b4266529065ff6731 (patch) | |
tree | da193d233e2f753e2c31d9c446f4c2cb5ad23248 /OpenKeychain/src/test/java | |
parent | a94713103b6c72136fbf4886bf561616b2a01e4e (diff) | |
parent | da6dfb57a0aa816919cd23752e1707ba6a2e8cae (diff) | |
download | open-keychain-2eac4ebb950c9f36fbb8852b4266529065ff6731.tar.gz open-keychain-2eac4ebb950c9f36fbb8852b4266529065ff6731.tar.bz2 open-keychain-2eac4ebb950c9f36fbb8852b4266529065ff6731.zip |
Merge pull request #1708 from open-keychain/performance
performance improvements
Diffstat (limited to 'OpenKeychain/src/test/java')
4 files changed, 51 insertions, 23 deletions
diff --git a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperationTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperationTest.java index 33857a96e..442e252af 100644 --- a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperationTest.java +++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperationTest.java @@ -145,7 +145,7 @@ public class PromoteKeyOperationTest { for (CanonicalizedSecretKey key : ring.secretKeyIterator()) { Assert.assertEquals("all subkeys must be divert-to-card", - SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyType()); + SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyTypeSuperExpensive()); Assert.assertArrayEquals("all subkeys must have correct iv", aid, key.getIv()); } @@ -176,12 +176,12 @@ public class PromoteKeyOperationTest { for (CanonicalizedSecretKey key : ring.secretKeyIterator()) { if (key.getKeyId() == keyId) { Assert.assertEquals("subkey must be divert-to-card", - SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyType()); + SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyTypeSuperExpensive()); Assert.assertArrayEquals("subkey must have correct iv", aid, key.getIv()); } else { Assert.assertEquals("some subkeys must be gnu dummy", - SecretKeyType.GNU_DUMMY, key.getSecretKeyType()); + SecretKeyType.GNU_DUMMY, key.getSecretKeyTypeSuperExpensive()); } } diff --git a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperationTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperationTest.java index 213a79b11..19fb0345b 100644 --- a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperationTest.java +++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperationTest.java @@ -1254,7 +1254,7 @@ public class PgpKeyOperationTest { modified.getEncoded(), false, 0); Assert.assertEquals("secret key type should be 'pin' after this", SecretKeyType.PIN, - secretRing.getSecretKey().getSecretKeyType()); + secretRing.getSecretKey().getSecretKeyTypeSuperExpensive()); // need to sleep for a sec, so the timestamp changes for notation data Thread.sleep(1000); diff --git a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/InteropTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/InteropTest.java index 503ff9a7c..3393f61b3 100644 --- a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/InteropTest.java +++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/InteropTest.java @@ -30,6 +30,7 @@ import org.openintents.openpgp.OpenPgpSignatureResult; import org.robolectric.RobolectricGradleTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; +import org.robolectric.shadows.ShadowLog; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.sufficientlysecure.keychain.WorkaroundBuildConfig; import org.sufficientlysecure.keychain.operations.results.DecryptVerifyResult; @@ -37,10 +38,12 @@ import org.sufficientlysecure.keychain.operations.results.OperationResult.Operat import org.sufficientlysecure.keychain.pgp.CanonicalizedKeyRing; import org.sufficientlysecure.keychain.pgp.CanonicalizedPublicKey; import org.sufficientlysecure.keychain.pgp.CanonicalizedPublicKeyRing; +import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType; import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKeyRing; import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyInputParcel; import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyOperation; import org.sufficientlysecure.keychain.pgp.UncachedKeyRing; +import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; @@ -64,6 +67,7 @@ public class InteropTest { @BeforeClass public static void setUpOnce() throws Exception { Security.insertProviderAt(new BouncyCastleProvider(), 1); + ShadowLog.stream = System.out; } @Test @@ -243,21 +247,45 @@ public class InteropTest { KeyRings.buildUnifiedKeyRingsFindBySubkeyUri(verify.getMasterKeyId()) : null; ProviderHelper helper = new ProviderHelper(RuntimeEnvironment.application) { - @Override - public CanonicalizedPublicKeyRing getCanonicalizedPublicKeyRing(Uri q) - throws NotFoundException { - Assert.assertEquals(msg + ": query should be for verification key", - q, verifyUri); - return verify; - } - @Override - public CanonicalizedSecretKeyRing getCanonicalizedSecretKeyRing(Uri q) - throws NotFoundException { - Assert.assertEquals(msg + ": query should be for the decryption key", - q, decryptUri); - return decrypt; - } - }; + + @Override + public CachedPublicKeyRing getCachedPublicKeyRing(Uri queryUri) throws PgpKeyNotFoundException { + Assert.assertEquals(msg + ": query should be for the decryption key", queryUri, decryptUri); + return new CachedPublicKeyRing(this, queryUri) { + @Override + public long getMasterKeyId() throws PgpKeyNotFoundException { + return decrypt.getMasterKeyId(); + } + + @Override + public SecretKeyType getSecretKeyType(long keyId) throws NotFoundException { + return decrypt.getSecretKey(keyId).getSecretKeyTypeSuperExpensive(); + } + }; + } + + @Override + public CanonicalizedPublicKeyRing getCanonicalizedPublicKeyRing(Uri q) + throws NotFoundException { + Assert.assertEquals(msg + ": query should be for verification key", q, verifyUri); + return verify; + } + + @Override + public CanonicalizedSecretKeyRing getCanonicalizedSecretKeyRing(Uri q) + throws NotFoundException { + Assert.assertEquals(msg + ": query should be for the decryption key", q, decryptUri); + return decrypt; + } + + @Override + public CanonicalizedSecretKeyRing getCanonicalizedSecretKeyRing(long masterKeyId) + throws NotFoundException { + Assert.assertEquals(msg + ": query should be for the decryption key", + masterKeyId, decrypt.getMasterKeyId()); + return decrypt; + } + }; return new PgpDecryptVerifyOperation(RuntimeEnvironment.application, helper, null) { @Override diff --git a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java index 0bbbbc58f..8190fa03e 100644 --- a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java +++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java @@ -153,7 +153,7 @@ public class ProviderHelperSaveTest { Assert.assertEquals("first subkey should be of type sign+certify", KeyFlags.CERTIFY_OTHER | KeyFlags.SIGN_DATA, (int) key.getKeyUsage()); Assert.assertEquals("first subkey should be divert-to-card", - SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyType()); + SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyTypeSuperExpensive()); Assert.assertTrue("canCertify() should be true", key.canCertify()); Assert.assertTrue("canSign() should be true", key.canSign()); @@ -168,7 +168,7 @@ public class ProviderHelperSaveTest { Assert.assertEquals("second subkey should be of type authenticate", KeyFlags.AUTHENTICATION, (int) key.getKeyUsage()); Assert.assertEquals("second subkey should be divert-to-card", - SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyType()); + SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyTypeSuperExpensive()); Assert.assertTrue("canAuthenticate() should be true", key.canAuthenticate()); // cached @@ -182,7 +182,7 @@ public class ProviderHelperSaveTest { Assert.assertEquals("first subkey should be of type encrypt (both types)", KeyFlags.ENCRYPT_COMMS | KeyFlags.ENCRYPT_STORAGE, (int) key.getKeyUsage()); Assert.assertEquals("third subkey should be divert-to-card", - SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyType()); + SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyTypeSuperExpensive()); Assert.assertTrue("canEncrypt() should be true", key.canEncrypt()); // cached @@ -237,7 +237,7 @@ public class ProviderHelperSaveTest { Assert.assertTrue("master key should have sign flag", ring.getPublicKey().canSign()); Assert.assertTrue("master key should have encrypt flag", ring.getPublicKey().canEncrypt()); - signId = ring.getSecretSignId(); + signId = mProviderHelper.getCachedPublicKeyRing(masterKeyId).getSecretSignId(); Assert.assertNotEquals("encrypt id should not be 0", 0, signId); Assert.assertNotEquals("encrypt key should be different from master key", masterKeyId, signId); } |