ChatSecure / ChatSecure-iOS

ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.
https://chatsecure.org
Other
3.13k stars 1.03k forks source link

Omemo Message Delivery failed #1269

Open daakuser opened 11 months ago

daakuser commented 11 months ago

Hi Team ,

I'm facing this issue ,

     'org.whispersystems.libsignal.InvalidKeyException: Invalid signature on device key!'

     i tried it from conversations code

Non working Bundle

<items](http://jabber.org/protocol/pubsub%22%3E%3Citems) node="eu.siacs.conversations.axolotl.bundles:2041762935" xmlns="http://jabber.org/protocol/pubsub"><item xmlns="http://jabber.org/protocol/pubsub" id="current">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

when trying to process this bundle :-

final PreKeyBundle preKeyBundle = new PreKeyBundle(0, address.getDeviceId(), preKey.getPreKeyId(), preKey.getPreKey(), bundle.getSignedPreKeyId(), bundle.getSignedPreKey(), bundle.getSignedPreKeySignature(), bundle.getIdentityKey());

        try {
            SessionBuilder builder = new SessionBuilder(axolotlStore, address);
            builder.process(preKeyBundle);}

Internally this method gives me an error

public void process(PreKeyBundle preKey) throws InvalidKeyException, UntrustedIdentityException { synchronized (SessionCipher.SESSION_LOCK) { if (!identityKeyStore.isTrustedIdentity(remoteAddress, preKey.getIdentityKey(), IdentityKeyStore.Direction.SENDING)) { throw new UntrustedIdentityException(remoteAddress.getName(), preKey.getIdentityKey()); }

// this exception I'm getting

if (preKey.getSignedPreKey() != null && !Curve.verifySignature(preKey.getIdentityKey().getPublicKey(), preKey.getSignedPreKey().serialize(), preKey.getSignedPreKeySignature())) { throw new InvalidKeyException("Invalid signature on device key!"); }

what can be reason for it , Can anyone help to guide us how we can resolve this problem?

Neustradamus commented 10 months ago

To follow