【发布时间】:2019-03-04 13:47:09
【问题描述】:
我正在使用 Omemo 和 smack 库来创建聊天应用程序。我有以下情况: 我想在两个设备之间进行通信,设备 A 和设备 B。A 正在向 B 发送消息。我想发现 B 的指纹,以便检查我是否信任该设备。我正在做的是使用这种方法:
HashMap<OmemoDevice, OmemoFingerprint> activeFingerprints =
omemoManager.getActiveFingerprints(JidCreate.bareFrom(jid));
for (final Map.Entry<OmemoDevice, OmemoFingerprint> entry : activeFingerprints.entrySet()) {
result = omemoManager.isTrustedOmemoIdentity(entry.getKey(), entry.getValue());
if (!result) {
break;
}
}
但这有时会返回给我 6 个指纹,我不知道哪个是确切的。因此,我认为我经常收到这条消息:
2019-03-04 13:28:30.111 4291-5181/com.inpedio.sphone W/System.err: org.matrix.olm.OlmException: BAD_MESSAGE_MAC 2019-03-04 13:28:30.111 4291-5181/com.inpedio.sphone W/System.err: 在 org.matrix.olm.OlmSession.decryptMessage(OlmSession.java:336) 2019-03-04 13:28:30.112 4291-5181/com.inpedio.sphone W/System.err:在 org.livesoftware.smackx.omemo.olm.OlmOmemoSession.decryptMessageKey(OlmOmemoSession.java:128) 2019-03-04 13:28:30.112 4291-5181/com.inpedio.sphone W/System.err:在 org.jivesoftware.smackx.omemo.internal.OmemoSession.decryptTransportedKey(OmemoSession.java:109) 2019-03-04 13:28:30.112 4291-5181/com.inpedio.sphone W/System.err: 在 org.jivesoftware.smackx.omemo.OmemoService.decryptTransportedOmemoKey(OmemoService.java:917) 2019-03-04 13:28:30.112 4291-5181/com.inpedio.sphone W/System.err: 在 org.jivesoftware.smackx.omemo.OmemoService.decryptOmemoMessageElement(OmemoService.java:887) 2019-03-04 13:28:30.113 4291-5181/com.inpedio.sphone W/System.err: 在 org.jivesoftware.smackx.omemo.OmemoService.processReceivingMessage(OmemoService.java:711) 2019-03-04 13:28:30.114 4291-5181/com.inpedio.sphone W/System.err:在 org.jivesoftware.smackx.omemo.OmemoService.access$200(OmemoService.java:104) 2019-03-04 13:28:30.114 4291-5181/com.inpedio.sphone W/System.err: 在 org.jivesoftware.smackx.omemo.OmemoService$OmemoStanzaListener.processStanza(OmemoService.java:1238) 2019-03-04 13:28:30.114 4291-5181/com.inpedio.sphone W/System.err: 在 org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.java:1204) 2019-03-04 13:28:30.115 4291-5181/com.inpedio.sphone W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 2019-03-04 13:28:30.115 4291-5181/com.inpedio.sphone W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 2019-03-04 13:28:30.115 4291-5181/com.inpedio.sphone W/System.err: at java.lang.Thread.run(Thread.java:764) 2019-03-04 13:28:30.116 4291-5181/com.inpedio.sphone W/OmemoService:内部 omemoMessageListener 无法解密传入的 OMEMO 消息:传输的密钥无法解密,因为没有提供消息密钥。提供密钥:[1546815194]
我正在使用 OlmOmemo 和 smack 库。
【问题讨论】: