Exemple #1
0
 def handlePreKeyWhisperMessage(self, recipient_id, device_id, key):
     preKeyWhisperMessage = PreKeyWhisperMessage(serialized=key)
     if not preKeyWhisperMessage.getPreKeyId():
         raise Exception("Received PreKeyWhisperMessage without PreKey =>" +
                         recipient_id)
     sessionCipher = self.get_session_cipher(recipient_id, device_id)
     try:
         log.debug(self.account +
                   " => Received PreKeyWhisperMessage from " + recipient_id)
         key = sessionCipher.decryptPkmsg(preKeyWhisperMessage)
         # Publish new bundle after PreKey has been used
         # for building a new Session
         self.plugin.publish_bundle(self.account)
         return key
     except UntrustedIdentityException as e:
         log.info(self.account + " => Received WhisperMessage " +
                  "from Untrusted Fingerprint! => " + e.getName())
Exemple #2
0
 def handlePreKeyWhisperMessage(self, recipient_id, device_id, key):
     preKeyWhisperMessage = PreKeyWhisperMessage(serialized=key)
     if not preKeyWhisperMessage.getPreKeyId():
         raise Exception("Received PreKeyWhisperMessage without PreKey =>" +
                         recipient_id)
     sessionCipher = self.get_session_cipher(recipient_id, device_id)
     try:
         log.debug(self.account +
                   " => Received PreKeyWhisperMessage from " +
                   recipient_id)
         key = sessionCipher.decryptPkmsg(preKeyWhisperMessage)
         # Publish new bundle after PreKey has been used
         # for building a new Session
         self.plugin.publish_bundle(self.account)
         return key
     except UntrustedIdentityException as e:
         log.info(self.account + " => Received WhisperMessage " +
                  "from Untrusted Fingerprint! => " + e.getName())
Exemple #3
0
    def _process_pre_key_message(self, jid, device, key):
        self._log.info('Process pre key message from %s', jid)
        pre_key_message = PreKeyWhisperMessage(serialized=key)
        if not pre_key_message.getPreKeyId():
            raise Exception('Received Pre Key Message '
                            'without PreKey => %s' % jid)

        session_cipher = self._get_session_cipher(jid, device)
        key = session_cipher.decryptPkmsg(pre_key_message)

        identity_key = pre_key_message.getIdentityKey()
        trust = self._get_trust_from_identity_key(jid, identity_key)
        fingerprint = get_fingerprint(identity_key)

        self._storage.setIdentityLastSeen(jid, identity_key)

        self.xmpp_con.set_bundle()
        self.add_device(jid, device)
        return key, fingerprint, trust