mirror of
https://github.com/vanitasvitae/Smack.git
synced 2024-11-27 14:32:06 +01:00
Add method to manually decrypt OmemoElement
This commit is contained in:
parent
0a681f7353
commit
2b71b20a3e
2 changed files with 25 additions and 1 deletions
|
@ -61,6 +61,7 @@ import org.jivesoftware.smackx.omemo.exceptions.CannotEstablishOmemoSessionExcep
|
||||||
import org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException;
|
import org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException;
|
||||||
import org.jivesoftware.smackx.omemo.exceptions.CryptoFailedException;
|
import org.jivesoftware.smackx.omemo.exceptions.CryptoFailedException;
|
||||||
import org.jivesoftware.smackx.omemo.exceptions.NoOmemoSupportException;
|
import org.jivesoftware.smackx.omemo.exceptions.NoOmemoSupportException;
|
||||||
|
import org.jivesoftware.smackx.omemo.exceptions.NoRawSessionException;
|
||||||
import org.jivesoftware.smackx.omemo.exceptions.UndecidedOmemoIdentityException;
|
import org.jivesoftware.smackx.omemo.exceptions.UndecidedOmemoIdentityException;
|
||||||
import org.jivesoftware.smackx.omemo.internal.OmemoCachedDeviceList;
|
import org.jivesoftware.smackx.omemo.internal.OmemoCachedDeviceList;
|
||||||
import org.jivesoftware.smackx.omemo.internal.OmemoDevice;
|
import org.jivesoftware.smackx.omemo.internal.OmemoDevice;
|
||||||
|
@ -373,10 +374,33 @@ public final class OmemoManager extends Manager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Manually decrypt an OmemoElement.
|
||||||
|
* This method should only be used for use-cases, where the internal listeners don't pick up on an incoming message.
|
||||||
|
* (for example MAM query results).
|
||||||
|
*
|
||||||
|
* @param sender bareJid of the message sender (must be the jid of the contact who sent the message)
|
||||||
|
* @param omemoElement omemoElement
|
||||||
|
* @return decrypted OmemoMessage
|
||||||
|
*
|
||||||
|
* @throws SmackException.NotLoggedInException if the Manager is not authenticated
|
||||||
|
* @throws CorruptedOmemoKeyException if our or their key is corrupted
|
||||||
|
* @throws NoRawSessionException if the message was not a preKeyMessage, but we had no session with the contact
|
||||||
|
* @throws CryptoFailedException if decryption fails
|
||||||
|
*/
|
||||||
|
public OmemoMessage.Received decrypt(BareJid sender, OmemoElement omemoElement)
|
||||||
|
throws SmackException.NotLoggedInException, CorruptedOmemoKeyException, NoRawSessionException,
|
||||||
|
CryptoFailedException
|
||||||
|
{
|
||||||
|
LoggedInOmemoManager managerGuard = new LoggedInOmemoManager(this);
|
||||||
|
return getOmemoService().decryptMessage(managerGuard, sender, omemoElement);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trust that a fingerprint belongs to an OmemoDevice.
|
* Trust that a fingerprint belongs to an OmemoDevice.
|
||||||
* The fingerprint must be the lowercase, hexadecimal fingerprint of the identityKey of the device and must
|
* The fingerprint must be the lowercase, hexadecimal fingerprint of the identityKey of the device and must
|
||||||
* be of length 64.
|
* be of length 64.
|
||||||
|
*
|
||||||
* @param device device
|
* @param device device
|
||||||
* @param fingerprint fingerprint
|
* @param fingerprint fingerprint
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -433,7 +433,7 @@ public abstract class OmemoService<T_IdKeyPair, T_IdKey, T_PreKey, T_SigPreKey,
|
||||||
* @throws CryptoFailedException if decryption fails.
|
* @throws CryptoFailedException if decryption fails.
|
||||||
* @throws NoRawSessionException if we have no session with the device and it sent a normal (non-preKey) message.
|
* @throws NoRawSessionException if we have no session with the device and it sent a normal (non-preKey) message.
|
||||||
*/
|
*/
|
||||||
private OmemoMessage.Received decryptMessage(OmemoManager.LoggedInOmemoManager managerGuard,
|
OmemoMessage.Received decryptMessage(OmemoManager.LoggedInOmemoManager managerGuard,
|
||||||
BareJid senderJid,
|
BareJid senderJid,
|
||||||
OmemoElement omemoElement)
|
OmemoElement omemoElement)
|
||||||
throws CorruptedOmemoKeyException, CryptoFailedException, NoRawSessionException
|
throws CorruptedOmemoKeyException, CryptoFailedException, NoRawSessionException
|
||||||
|
|
Loading…
Reference in a new issue