test: add algorithm choice tests

This commit is contained in:
Vincent Breitmoser 2014-07-12 01:28:27 +02:00
parent 54bc874ce5
commit d4c1b781db
3 changed files with 77 additions and 3 deletions

View File

@ -15,6 +15,6 @@ before_install:
- ./install-custom-gradle-test-plugin.sh - ./install-custom-gradle-test-plugin.sh
install: echo "Installation done" install: echo "Installation done"
script: script:
- gradle -PwithTesting=true assemble -S -q - gradle assemble -S -q
- gradle -PwithTesting=true --info OpenKeychain-Test:testDebug - gradle --info OpenKeychain-Test:testDebug

View File

@ -68,6 +68,8 @@ public class PgpKeyOperationTest {
OperationResultParcel.OperationLog log = new OperationResultParcel.OperationLog(); OperationResultParcel.OperationLog log = new OperationResultParcel.OperationLog();
staticRing = op.createSecretKeyRing(parcel, log, 0); staticRing = op.createSecretKeyRing(parcel, log, 0);
Assert.assertNotNull("initial test key creation must succeed", staticRing);
// we sleep here for a second, to make sure all new certificates have different timestamps // we sleep here for a second, to make sure all new certificates have different timestamps
Thread.sleep(1000); Thread.sleep(1000);
} }
@ -87,6 +89,78 @@ public class PgpKeyOperationTest {
} }
@Test
public void testAlgorithmChoice() {
OperationResultParcel.OperationLog log = new OperationResultParcel.OperationLog();
{
parcel.reset();
parcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(
Constants.choice.algorithm.rsa, new Random().nextInt(256)+255, KeyFlags.CERTIFY_OTHER, null));
parcel.mAddUserIds.add("shy");
parcel.mNewPassphrase = "swag";
UncachedKeyRing ring = op.createSecretKeyRing(parcel, log, 0);
Assert.assertNull("creating ring with < 512 bytes keysize should fail", ring);
}
{
parcel.reset();
parcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(
Constants.choice.algorithm.elgamal, 1024, KeyFlags.CERTIFY_OTHER, null));
parcel.mAddUserIds.add("shy");
parcel.mNewPassphrase = "swag";
UncachedKeyRing ring = op.createSecretKeyRing(parcel, log, 0);
Assert.assertNull("creating ring with ElGamal master key should fail", ring);
}
{
parcel.reset();
parcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(
12345, 1024, KeyFlags.CERTIFY_OTHER, null));
parcel.mAddUserIds.add("shy");
parcel.mNewPassphrase = "swag";
UncachedKeyRing ring = op.createSecretKeyRing(parcel, log, 0);
Assert.assertNull("creating ring with bad algorithm choice should fail", ring);
}
{
parcel.reset();
parcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(
Constants.choice.algorithm.rsa, 1024, KeyFlags.SIGN_DATA, null));
parcel.mAddUserIds.add("shy");
parcel.mNewPassphrase = "swag";
UncachedKeyRing ring = op.createSecretKeyRing(parcel, log, 0);
Assert.assertNull("creating ring with non-certifying master key should fail", ring);
}
{
parcel.reset();
parcel.mAddSubKeys.add(new SaveKeyringParcel.SubkeyAdd(
Constants.choice.algorithm.rsa, 1024, KeyFlags.CERTIFY_OTHER, null));
parcel.mNewPassphrase = "swag";
UncachedKeyRing ring = op.createSecretKeyRing(parcel, log, 0);
Assert.assertNull("creating ring without user ids should fail", ring);
}
{
parcel.reset();
parcel.mAddUserIds.add("shy");
parcel.mNewPassphrase = "swag";
UncachedKeyRing ring = op.createSecretKeyRing(parcel, log, 0);
Assert.assertNull("creating ring without subkeys should fail", ring);
}
}
@Test @Test
// this is a special case since the flags are in user id certificates rather than // this is a special case since the flags are in user id certificates rather than
// subkey binding certificates // subkey binding certificates

View File

@ -1,5 +1,5 @@
include ':OpenKeychain' include ':OpenKeychain'
if (hasProperty('withTesting') && withTesting) include ':OpenKeychain-Test' include ':OpenKeychain-Test'
include ':extern:openpgp-api-lib' include ':extern:openpgp-api-lib'
include ':extern:openkeychain-api-lib' include ':extern:openkeychain-api-lib'
include ':extern:html-textview' include ':extern:html-textview'