From ce5b5f88efba422b80d82cef27cdee96b5f46587 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Sat, 9 Jun 2018 14:29:18 +0200 Subject: [PATCH] Rebase on master --- .../omemo/AbstractOmemoMessageListener.java | 2 +- .../smackx/omemo/OmemoManagerSetupHelper.java | 18 ++--- .../omemo/signal/SignalCachingOmemoStore.java | 6 +- .../signal/SignalFileBasedOmemoStore.java | 6 +- .../omemo/signal/SignalOmemoKeyUtil.java | 10 +-- .../omemo/signal/SignalOmemoRatchet.java | 11 ++- .../omemo/signal/SignalOmemoService.java | 12 +-- .../omemo/LegacySignalOmemoKeyUtilTest.java | 13 ++- .../smackx/omemo/CachingOmemoStore.java | 9 +-- .../smackx/omemo/FileBasedOmemoStore.java | 6 +- .../smackx/omemo/OmemoManager.java | 55 +++++-------- .../smackx/omemo/OmemoRatchet.java | 3 +- .../smackx/omemo/OmemoService.java | 80 +++++++++---------- .../jivesoftware/smackx/omemo/OmemoStore.java | 20 ++--- .../omemo/element/OmemoHeaderElement.java | 2 +- .../smackx/omemo/element/OmemoKeyElement.java | 2 +- .../smackx/omemo/OmemoStoreTest.java | 16 ++-- version.gradle | 2 +- 18 files changed, 117 insertions(+), 156 deletions(-) diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/AbstractOmemoMessageListener.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/AbstractOmemoMessageListener.java index ded1a7fda..1ad4fa0bf 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/AbstractOmemoMessageListener.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/AbstractOmemoMessageListener.java @@ -43,7 +43,7 @@ public class AbstractOmemoMessageListener implements OmemoMessageListener { private static class SyncPointListener extends AbstractOmemoMessageListener { protected final ResultSyncPoint syncPoint; - public SyncPointListener(ResultSyncPoint syncPoint) { + SyncPointListener(ResultSyncPoint syncPoint) { this.syncPoint = syncPoint; } diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoManagerSetupHelper.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoManagerSetupHelper.java index 80a644a3d..8f5556ba6 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoManagerSetupHelper.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoManagerSetupHelper.java @@ -60,8 +60,7 @@ public class OmemoManagerSetupHelper { final XMPPConnection target, String targetNick, String[] targetGroups) - throws Exception - { + throws Exception { final SimpleResultSyncPoint subscribed = new SimpleResultSyncPoint(); Roster subscriberRoster = Roster.getInstanceFor(subscriber); @@ -194,16 +193,14 @@ public class OmemoManagerSetupHelper { pm.getLeafNode(OmemoConstants.PEP_NODE_BUNDLE_FROM_DEVICE_ID(id)).deleteAllItems(); } catch (InterruptedException | SmackException.NoResponseException | SmackException.NotConnectedException | PubSubException.NotALeafNodeException | XMPPException.XMPPErrorException | - PubSubException.NotAPubSubNodeException e) - { + PubSubException.NotAPubSubNodeException e) { // Silent } try { pm.deleteNode(OmemoConstants.PEP_NODE_BUNDLE_FROM_DEVICE_ID(id)); } catch (SmackException.NoResponseException | InterruptedException | SmackException.NotConnectedException - | XMPPException.XMPPErrorException e) - { + | XMPPException.XMPPErrorException e) { // Silent } } @@ -212,16 +209,14 @@ public class OmemoManagerSetupHelper { pm.getLeafNode(OmemoConstants.PEP_NODE_DEVICE_LIST).deleteAllItems(); } catch (InterruptedException | SmackException.NoResponseException | SmackException.NotConnectedException | PubSubException.NotALeafNodeException | XMPPException.XMPPErrorException | - PubSubException.NotAPubSubNodeException e) - { + PubSubException.NotAPubSubNodeException e) { // Silent } try { pm.deleteNode(OmemoConstants.PEP_NODE_DEVICE_LIST); } catch (SmackException.NoResponseException | InterruptedException | SmackException.NotConnectedException | - XMPPException.XMPPErrorException e) - { + XMPPException.XMPPErrorException e) { // Silent } } @@ -232,8 +227,7 @@ public class OmemoManagerSetupHelper { try { roster.removeEntry(r); } catch (InterruptedException | SmackException.NoResponseException | SmackException.NotConnectedException | - XMPPException.XMPPErrorException | SmackException.NotLoggedInException e) - { + XMPPException.XMPPErrorException | SmackException.NotLoggedInException e) { // Silent } } diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalCachingOmemoStore.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalCachingOmemoStore.java index b70ee2409..084d95f2b 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalCachingOmemoStore.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalCachingOmemoStore.java @@ -39,8 +39,7 @@ import org.whispersystems.libsignal.state.SignedPreKeyRecord; * excessive storage access, or it can be used standalone as an ephemeral store, which doesn't persist its contents. */ public class SignalCachingOmemoStore extends CachingOmemoStore -{ + SignedPreKeyRecord, SessionRecord, SignalProtocolAddress, ECPublicKey, PreKeyBundle, SessionCipher> { /** * Create a new SignalCachingOmemoStore as a caching layer around a persisting OmemoStore @@ -48,8 +47,7 @@ public class SignalCachingOmemoStore extends CachingOmemoStore wrappedStore) - { + SessionRecord, SignalProtocolAddress, ECPublicKey, PreKeyBundle, SessionCipher> wrappedStore) { super(wrappedStore); } diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalFileBasedOmemoStore.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalFileBasedOmemoStore.java index c7ff2ffe3..f474b9b19 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalFileBasedOmemoStore.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalFileBasedOmemoStore.java @@ -43,16 +43,14 @@ import org.whispersystems.libsignal.state.SignedPreKeyRecord; @SuppressWarnings("unused") public class SignalFileBasedOmemoStore extends FileBasedOmemoStore -{ + SignalProtocolAddress, ECPublicKey, PreKeyBundle, SessionCipher> { public SignalFileBasedOmemoStore(File base) { super(base); } @Override - public OmemoKeyUtil keyUtil() - { + public OmemoKeyUtil keyUtil() { return new SignalOmemoKeyUtil(); } } diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoKeyUtil.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoKeyUtil.java index 33c129070..34568b47a 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoKeyUtil.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoKeyUtil.java @@ -47,8 +47,8 @@ import org.whispersystems.libsignal.util.KeyHelper; * @author Paul Schaub */ public class SignalOmemoKeyUtil extends OmemoKeyUtil -{ + SessionRecord, ECPublicKey, PreKeyBundle> { + @Override public IdentityKeyPair generateOmemoIdentityKeyPair() { return KeyHelper.generateIdentityKeyPair(); @@ -66,8 +66,7 @@ public class SignalOmemoKeyUtil extends OmemoKeyUtil -{ + SignalProtocolAddress, ECPublicKey, PreKeyBundle, SessionCipher> { + private static final Logger LOGGER = Logger.getLogger(OmemoRatchet.class.getName()); private final SignalOmemoStoreConnector storeConnector; SignalOmemoRatchet(OmemoManager omemoManager, OmemoStore store) - { + SessionCipher> store) { super(omemoManager, store); this.storeConnector = new SignalOmemoStoreConnector(omemoManager, store); } @@ -74,8 +73,8 @@ public class SignalOmemoRatchet @Override public byte[] doubleRatchetDecrypt(OmemoDevice sender, byte[] encryptedKey) throws CorruptedOmemoKeyException, NoRawSessionException, CryptoFailedException, - UntrustedOmemoIdentityException - { + UntrustedOmemoIdentityException { + SessionCipher cipher = getCipher(sender); byte[] decryptedKey; diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoService.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoService.java index 78221c5fc..68f8f2d3a 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoService.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoService.java @@ -48,8 +48,8 @@ import org.whispersystems.libsignal.state.SignedPreKeyRecord; @SuppressWarnings("unused") public final class SignalOmemoService extends OmemoService -{ + SignalProtocolAddress, ECPublicKey, PreKeyBundle, SessionCipher> { + private static SignalOmemoService INSTANCE; private static boolean LICENSE_ACKNOWLEDGED = false; @@ -57,8 +57,8 @@ public final class SignalOmemoService protected SignalOmemoRatchet instantiateOmemoRatchet( OmemoManager manager, OmemoStore store) - { + SignalProtocolAddress, ECPublicKey, PreKeyBundle, SessionCipher> store) { + return new SignalOmemoRatchet(manager, getOmemoStoreBackend()); } @@ -95,8 +95,8 @@ public final class SignalOmemoService protected void processBundle(OmemoManager omemoManager, PreKeyBundle contactsBundle, OmemoDevice contactsDevice) - throws CorruptedOmemoKeyException - { + throws CorruptedOmemoKeyException { + SignalOmemoStoreConnector connector = new SignalOmemoStoreConnector(omemoManager, getOmemoStoreBackend()); SessionBuilder builder = new SessionBuilder(connector, connector, connector, connector, SignalOmemoStoreConnector.asAddress(contactsDevice)); diff --git a/smack-omemo-signal/src/test/java/org/jivesoftware/smackx/omemo/LegacySignalOmemoKeyUtilTest.java b/smack-omemo-signal/src/test/java/org/jivesoftware/smackx/omemo/LegacySignalOmemoKeyUtilTest.java index ce3839231..737d3b24c 100644 --- a/smack-omemo-signal/src/test/java/org/jivesoftware/smackx/omemo/LegacySignalOmemoKeyUtilTest.java +++ b/smack-omemo-signal/src/test/java/org/jivesoftware/smackx/omemo/LegacySignalOmemoKeyUtilTest.java @@ -45,20 +45,17 @@ public class LegacySignalOmemoKeyUtilTest extends SmackTestSuite { private final SignalOmemoKeyUtil keyUtil = new SignalOmemoKeyUtil(); @Test - public void omemoIdentityKeyPairSerializationTest() { + public void omemoIdentityKeyPairSerializationTest() throws CorruptedOmemoKeyException { IdentityKeyPair ikp = keyUtil.generateOmemoIdentityKeyPair(); byte[] bytes = keyUtil.identityKeyPairToBytes(ikp); assertNotNull("serialized identityKeyPair must not be null.", bytes); assertNotSame("serialized identityKeyPair must not be of length 0.", 0, bytes.length); - try { - IdentityKeyPair ikp2 = keyUtil.identityKeyPairFromBytes(bytes); - assertTrue("Deserialized IdentityKeyPairs PublicKey must equal the originals one.", - ikp.getPublicKey().equals(ikp2.getPublicKey())); - } catch (CorruptedOmemoKeyException e) { - fail("Caught exception while deserializing IdentityKeyPair."); - } + + IdentityKeyPair ikp2 = keyUtil.identityKeyPairFromBytes(bytes); + assertTrue("Deserialized IdentityKeyPairs PublicKey must equal the originals one.", + ikp.getPublicKey().equals(ikp2.getPublicKey())); } @Test diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java index 2e7b5cda0..ec4b23a46 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java @@ -47,8 +47,7 @@ import org.jxmpp.jid.BareJid; * @param */ public class CachingOmemoStore - extends OmemoStore -{ + extends OmemoStore { private final HashMap> caches = new HashMap<>(); private final OmemoStore persistent; @@ -81,8 +80,7 @@ public class CachingOmemoStore managers = INSTANCES.get(connection); if (managers == null) { managers = new TreeMap<>(); @@ -308,8 +307,7 @@ public final class OmemoManager extends Manager { public OmemoMessage.Sent encrypt(BareJid recipient, String message) throws CryptoFailedException, UndecidedOmemoIdentityException, InterruptedException, SmackException.NotConnectedException, - SmackException.NoResponseException, SmackException.NotLoggedInException - { + SmackException.NoResponseException, SmackException.NotLoggedInException { synchronized (LOCK) { Set recipients = new HashSet<>(); recipients.add(recipient); @@ -333,8 +331,7 @@ public final class OmemoManager extends Manager { public OmemoMessage.Sent encrypt(Set recipients, String message) throws CryptoFailedException, UndecidedOmemoIdentityException, InterruptedException, SmackException.NotConnectedException, - SmackException.NoResponseException, SmackException.NotLoggedInException - { + SmackException.NoResponseException, SmackException.NotLoggedInException { synchronized (LOCK) { LoggedInOmemoManager guard = new LoggedInOmemoManager(this); Set devices = getDevicesOf(getOwnJid()); @@ -364,8 +361,7 @@ public final class OmemoManager extends Manager { throws UndecidedOmemoIdentityException, CryptoFailedException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException, NoOmemoSupportException, - SmackException.NotLoggedInException - { + SmackException.NotLoggedInException { synchronized (LOCK) { if (!multiUserChatSupportsOmemo(muc)) { throw new NoOmemoSupportException(); @@ -396,8 +392,7 @@ public final class OmemoManager extends Manager { */ public OmemoMessage.Received decrypt(BareJid sender, OmemoElement omemoElement) throws SmackException.NotLoggedInException, CorruptedOmemoKeyException, NoRawSessionException, - CryptoFailedException - { + CryptoFailedException { LoggedInOmemoManager managerGuard = new LoggedInOmemoManager(this); return getOmemoService().decryptMessage(managerGuard, sender, omemoElement); } @@ -415,8 +410,7 @@ public final class OmemoManager extends Manager { * @throws SmackException.NotLoggedInException if the OmemoManager is not authenticated */ public List decryptMAMQueryResult(MamManager.MamQueryResult result) - throws SmackException.NotLoggedInException - { + throws SmackException.NotLoggedInException { LoggedInOmemoManager managerGuard = new LoggedInOmemoManager(this); ArrayList decryptedMessages = new ArrayList<>(); @@ -512,8 +506,7 @@ public final class OmemoManager extends Manager { public void sendRatchetUpdateMessage(OmemoDevice recipient) throws SmackException.NotLoggedInException, CorruptedOmemoKeyException, InterruptedException, SmackException.NoResponseException, NoSuchAlgorithmException, SmackException.NotConnectedException, - CryptoFailedException, CannotEstablishOmemoSessionException - { + CryptoFailedException, CannotEstablishOmemoSessionException { synchronized (LOCK) { Message message = new Message(); message.setFrom(getOwnJid()); @@ -542,8 +535,7 @@ public final class OmemoManager extends Manager { */ public boolean contactSupportsOmemo(BareJid contact) throws InterruptedException, PubSubException.NotALeafNodeException, XMPPException.XMPPErrorException, - SmackException.NotConnectedException, SmackException.NoResponseException - { + SmackException.NotConnectedException, SmackException.NoResponseException { synchronized (LOCK) { OmemoCachedDeviceList deviceList = getOmemoService().refreshDeviceList(connection(), getOwnDevice(), contact); return !deviceList.getActiveDevices().isEmpty(); @@ -563,8 +555,7 @@ public final class OmemoManager extends Manager { */ public boolean multiUserChatSupportsOmemo(MultiUserChat multiUserChat) throws XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, - SmackException.NoResponseException - { + SmackException.NoResponseException { EntityBareJid jid = multiUserChat.getRoom(); RoomInfo roomInfo = MultiUserChatManager.getInstanceFor(connection()).getRoomInfo(jid); return roomInfo.isNonanonymous() && roomInfo.isMembersOnly(); @@ -583,8 +574,7 @@ public final class OmemoManager extends Manager { */ public static boolean serverSupportsOmemo(XMPPConnection connection, DomainBareJid server) throws XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, - SmackException.NoResponseException - { + SmackException.NoResponseException { return ServiceDiscoveryManager.getInstanceFor(connection) .discoverInfo(server).containsFeature(PubSub.NAMESPACE); } @@ -597,8 +587,7 @@ public final class OmemoManager extends Manager { * @throws CorruptedOmemoKeyException if our identityKey is corrupted. */ public OmemoFingerprint getOwnFingerprint() - throws SmackException.NotLoggedInException, CorruptedOmemoKeyException - { + throws SmackException.NotLoggedInException, CorruptedOmemoKeyException { synchronized (LOCK) { if (getOwnJid() == null) { throw new SmackException.NotLoggedInException(); @@ -652,8 +641,7 @@ public final class OmemoManager extends Manager { public HashMap getActiveFingerprints(BareJid contact) throws SmackException.NotLoggedInException, CorruptedOmemoKeyException, CannotEstablishOmemoSessionException, SmackException.NotConnectedException, InterruptedException, - SmackException.NoResponseException - { + SmackException.NoResponseException { synchronized (LOCK) { if (getOwnJid() == null) { throw new SmackException.NotLoggedInException(); @@ -740,8 +728,7 @@ public final class OmemoManager extends Manager { */ public void purgeDeviceList() throws SmackException.NotLoggedInException, InterruptedException, XMPPException.XMPPErrorException, - SmackException.NotConnectedException, SmackException.NoResponseException - { + SmackException.NotConnectedException, SmackException.NoResponseException { synchronized (LOCK) { getOmemoService().purgeDeviceList(new LoggedInOmemoManager(this)); } @@ -761,8 +748,7 @@ public final class OmemoManager extends Manager { */ public void rotateSignedPreKey() throws CorruptedOmemoKeyException, SmackException.NotLoggedInException, XMPPException.XMPPErrorException, - SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException - { + SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException { synchronized (LOCK) { if (!connection().isAuthenticated()) { throw new SmackException.NotLoggedInException(); @@ -862,8 +848,7 @@ public final class OmemoManager extends Manager { * @param stanza original stanza * @param decryptedMessage decrypted OmemoMessage. */ - void notifyOmemoMessageReceived(Stanza stanza, OmemoMessage.Received decryptedMessage) - { + void notifyOmemoMessageReceived(Stanza stanza, OmemoMessage.Received decryptedMessage) { for (OmemoMessageListener l : omemoMessageListeners) { l.onOmemoMessageReceived(stanza, decryptedMessage); } @@ -878,8 +863,7 @@ public final class OmemoManager extends Manager { */ void notifyOmemoMucMessageReceived(MultiUserChat muc, Stanza stanza, - OmemoMessage.Received decryptedMessage) - { + OmemoMessage.Received decryptedMessage) { for (OmemoMucMessageListener l : omemoMucMessageListeners) { l.onOmemoMucMessageReceived(muc, stanza, decryptedMessage); } @@ -949,8 +933,7 @@ public final class OmemoManager extends Manager { public void rebuildSessionWith(OmemoDevice contactsDevice) throws InterruptedException, SmackException.NoResponseException, CorruptedOmemoKeyException, SmackException.NotConnectedException, CannotEstablishOmemoSessionException, - SmackException.NotLoggedInException - { + SmackException.NotLoggedInException { if (!connection().isAuthenticated()) { throw new SmackException.NotLoggedInException(); } @@ -1039,7 +1022,7 @@ public final class OmemoManager extends Manager { continue; } - for (ExtensionElement item : ((ItemsExtension) items).getItems()) { + for (ExtensionElement item : ((ItemsExtension) items).getExtensions()) { if (!(item instanceof PayloadItem)) { continue; } diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoRatchet.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoRatchet.java index 287c809f6..88d40d033 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoRatchet.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoRatchet.java @@ -154,8 +154,7 @@ public abstract class OmemoRatchet - implements OmemoCarbonCopyStanzaReceivedListener, OmemoMessageStanzaReceivedListener -{ + implements OmemoCarbonCopyStanzaReceivedListener, OmemoMessageStanzaReceivedListener { + static { Security.addProvider(new BouncyCastleProvider()); } @@ -243,8 +243,8 @@ public abstract class OmemoService contactsDevices, String message) throws InterruptedException, UndecidedOmemoIdentityException, CryptoFailedException, - SmackException.NotConnectedException, SmackException.NoResponseException - { + SmackException.NotConnectedException, SmackException.NoResponseException { + byte[] key, iv; iv = OmemoMessageBuilder.generateIv(); @@ -553,8 +552,8 @@ public abstract class OmemoService(deviceList)); } @@ -651,8 +650,8 @@ public abstract class OmemoService buildMissingSessionsWithContact(XMPPConnection connection, - OmemoDevice userDevice, - BareJid contact) - throws SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException - { + OmemoDevice userDevice, + BareJid contact) + throws SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException { + OmemoCachedDeviceList contactsDeviceIds = getOmemoStoreBackend().loadCachedDeviceList(userDevice, contact); Set contactsDevices = new HashSet<>(); for (int deviceId : contactsDeviceIds.getActiveDevices()) { @@ -814,9 +813,10 @@ public abstract class OmemoService buildMissingSessionsWithDevices(XMPPConnection connection, - OmemoDevice userDevice, - Set devices) + OmemoDevice userDevice, + Set devices) throws SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException { + Set devicesWithSession = new HashSet<>(); for (OmemoDevice device : devices) { @@ -855,10 +855,10 @@ public abstract class OmemoService buildMissingSessionsWithContacts(XMPPConnection connection, - OmemoDevice userDevice, - Set contacts) - throws SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException - { + OmemoDevice userDevice, + Set contacts) + throws SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException { + Set devicesWithSessions = new HashSet<>(); for (BareJid contact : contacts) { @@ -1338,8 +1338,8 @@ public abstract class OmemoService before = store.generateOmemoPreKeys(1, 10); assertEquals("The store must have no prekeys before this test.", 0, store.loadOmemoPreKeys(alice).size()); @@ -210,8 +210,8 @@ public abstract class OmemoStoreTest before = store.loadOmemoSignedPreKeys(alice); assertEquals("At this stage, there must be no signed prekeys in the store.", 0, before.size()); diff --git a/version.gradle b/version.gradle index 3ec3022ea..5e4f1146d 100644 --- a/version.gradle +++ b/version.gradle @@ -1,6 +1,6 @@ allprojects { ext { - shortVersion = '4.2.5' + shortVersion = '4.4.0-alpha1' isSnapshot = true jxmppVersion = '0.6.2' miniDnsVersion = '0.3.0'