From 8335b0ef0333e0e7e7204182783fa05cc93dff7d Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Mon, 6 Apr 2015 12:28:16 -0700 Subject: Throw NoSessionException in GroupCipher decrypt() --- .../org/whispersystems/libaxolotl/groups/GroupCipher.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'java') diff --git a/java/src/main/java/org/whispersystems/libaxolotl/groups/GroupCipher.java b/java/src/main/java/org/whispersystems/libaxolotl/groups/GroupCipher.java index 55e261ac..cac2ccd8 100644 --- a/java/src/main/java/org/whispersystems/libaxolotl/groups/GroupCipher.java +++ b/java/src/main/java/org/whispersystems/libaxolotl/groups/GroupCipher.java @@ -102,7 +102,7 @@ public class GroupCipher { * @throws DuplicateMessageException */ public byte[] decrypt(byte[] senderKeyMessageBytes) - throws LegacyMessageException, DuplicateMessageException, InvalidMessageException + throws LegacyMessageException, DuplicateMessageException, InvalidMessageException, NoSessionException { return decrypt(senderKeyMessageBytes, new NullDecryptionCallback()); } @@ -123,11 +123,17 @@ public class GroupCipher { * @throws DuplicateMessageException */ public byte[] decrypt(byte[] senderKeyMessageBytes, DecryptionCallback callback) - throws LegacyMessageException, InvalidMessageException, DuplicateMessageException + throws LegacyMessageException, InvalidMessageException, DuplicateMessageException, + NoSessionException { synchronized (LOCK) { try { - SenderKeyRecord record = senderKeyStore.loadSenderKey(senderKeyId); + SenderKeyRecord record = senderKeyStore.loadSenderKey(senderKeyId); + + if (record.isEmpty()) { + throw new NoSessionException("No sender key for: " + senderKeyId); + } + SenderKeyMessage senderKeyMessage = new SenderKeyMessage(senderKeyMessageBytes); SenderKeyState senderKeyState = record.getSenderKeyState(senderKeyMessage.getKeyId()); -- cgit v1.2.3