|
|
|
@ -6,6 +6,7 @@ import android.util.Log;
|
|
|
|
|
import org.whispersystems.libaxolotl.DuplicateMessageException;
|
|
|
|
|
import org.whispersystems.libaxolotl.InvalidMessageException;
|
|
|
|
|
import org.whispersystems.libaxolotl.LegacyMessageException;
|
|
|
|
|
import org.whispersystems.libaxolotl.NoSessionException;
|
|
|
|
|
import org.whispersystems.libaxolotl.ecc.ECKeyPair;
|
|
|
|
|
import org.whispersystems.libaxolotl.groups.GroupCipher;
|
|
|
|
|
import org.whispersystems.libaxolotl.groups.GroupSessionBuilder;
|
|
|
|
@ -21,7 +22,7 @@ import java.util.List;
|
|
|
|
|
public class GroupCipherTest extends AndroidTestCase {
|
|
|
|
|
|
|
|
|
|
public void testBasicEncryptDecrypt()
|
|
|
|
|
throws LegacyMessageException, DuplicateMessageException, InvalidMessageException
|
|
|
|
|
throws LegacyMessageException, DuplicateMessageException, InvalidMessageException, NoSessionException
|
|
|
|
|
{
|
|
|
|
|
InMemorySenderKeyStore aliceStore = new InMemorySenderKeyStore();
|
|
|
|
|
InMemorySenderKeyStore bobStore = new InMemorySenderKeyStore();
|
|
|
|
@ -49,7 +50,7 @@ public class GroupCipherTest extends AndroidTestCase {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void testBasicRatchet()
|
|
|
|
|
throws LegacyMessageException, DuplicateMessageException, InvalidMessageException
|
|
|
|
|
throws LegacyMessageException, DuplicateMessageException, InvalidMessageException, NoSessionException
|
|
|
|
|
{
|
|
|
|
|
InMemorySenderKeyStore aliceStore = new InMemorySenderKeyStore();
|
|
|
|
|
InMemorySenderKeyStore bobStore = new InMemorySenderKeyStore();
|
|
|
|
@ -92,7 +93,7 @@ public class GroupCipherTest extends AndroidTestCase {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void testOutOfOrder()
|
|
|
|
|
throws LegacyMessageException, DuplicateMessageException, InvalidMessageException
|
|
|
|
|
throws LegacyMessageException, DuplicateMessageException, InvalidMessageException, NoSessionException
|
|
|
|
|
{
|
|
|
|
|
InMemorySenderKeyStore aliceStore = new InMemorySenderKeyStore();
|
|
|
|
|
InMemorySenderKeyStore bobStore = new InMemorySenderKeyStore();
|
|
|
|
@ -129,6 +130,17 @@ public class GroupCipherTest extends AndroidTestCase {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void testEncryptNoSession() {
|
|
|
|
|
InMemorySenderKeyStore aliceStore = new InMemorySenderKeyStore();
|
|
|
|
|
GroupCipher aliceGroupCipher = new GroupCipher(aliceStore, "groupWithBobInIt");
|
|
|
|
|
try {
|
|
|
|
|
aliceGroupCipher.encrypt("up the punks".getBytes());
|
|
|
|
|
throw new AssertionError("Should have failed!");
|
|
|
|
|
} catch (NoSessionException nse) {
|
|
|
|
|
// good
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private int randomInt() {
|
|
|
|
|
try {
|
|
|
|
|
return SecureRandom.getInstance("SHA1PRNG").nextInt(Integer.MAX_VALUE);
|
|
|
|
|