Ejemplo n.º 1
0
    def _set_encrypt(self, ui, envelope):
        """Find and set the encryption keys in an envolope.

        :param ui: the main user interface object
        :type ui: alot.ui.UI
        :param envolope: the envolope buffer object
        :type envolope: alot.buffers.EnvelopeBuffer

        """
        encrypt_keys = []
        for recipient in envelope.headers['To'][0].split(','):
            if not recipient:
                continue
            match = re.search("<(.*@.*)>", recipient)
            if match:
                recipient = match.group(0)
            encrypt_keys.append(recipient)

        logging.debug("encryption keys: " + str(encrypt_keys))
        keys = yield get_keys(ui, encrypt_keys, block_error=self.encrypt)
        if keys:
            envelope.encrypt_keys.update(keys)
            envelope.encrypt = True
        else:
            envelope.encrypt = False
Ejemplo n.º 2
0
    def _set_encrypt(self, ui, envelope):
        """Find and set the encryption keys in an envolope.

        :param ui: the main user interface object
        :type ui: alot.ui.UI
        :param envolope: the envolope buffer object
        :type envolope: alot.buffers.EnvelopeBuffer

        """
        encrypt_keys = []
        for recipient in envelope.headers['To'][0].split(','):
            if not recipient:
                continue
            match = re.search("<(.*@.*)>", recipient)
            if match:
                recipient = match.group(0)
            encrypt_keys.append(recipient)

        logging.debug("encryption keys: " + str(encrypt_keys))
        keys = yield get_keys(ui, encrypt_keys, block_error=self.encrypt)
        if keys:
            envelope.encrypt_keys.update(keys)
            envelope.encrypt = True
        else:
            envelope.encrypt = False
Ejemplo n.º 3
0
    def _set_encrypt(self, ui, envelope):
        encrypt_keys = []
        for recipient in envelope.headers['To'][0].split(','):
            if not recipient:
                continue
            match = re.search("<(.*@.*)>", recipient)
            if match:
                recipient = match.group(0)
            encrypt_keys.append(recipient)

        logging.debug("encryption keys: " + str(encrypt_keys))
        keys = yield get_keys(ui, encrypt_keys, block_error=self.encrypt)
        if keys:
            envelope.encrypt_keys.update(keys)
            envelope.encrypt = True
        else:
            envelope.encrypt = False
Ejemplo n.º 4
0
    def apply(self, ui):
        envelope = ui.current_buffer.envelope
        if self.action == 'rmencrypt':
            try:
                for keyid in self.encrypt_keys:
                    tmp_key = crypto.get_key(keyid)
                    del envelope.encrypt_keys[crypto.hash_key(tmp_key)]
            except GPGProblem as e:
                ui.notify(e.message, priority='error')
            if not envelope.encrypt_keys:
                envelope.encrypt = False
            ui.current_buffer.rebuild()
            return
        elif self.action == 'encrypt':
            encrypt = True
        elif self.action == 'unencrypt':
            encrypt = False
        elif self.action == 'toggleencrypt':
            encrypt = not envelope.encrypt
        envelope.encrypt = encrypt
        if encrypt:
            if not self.encrypt_keys:
                for recipient in envelope.headers['To'][0].split(','):
                    if not recipient:
                        continue
                    match = re.search("<(.*@.*)>", recipient)
                    if match:
                        recipient = match.group(0)
                    self.encrypt_keys.append(recipient)

            logging.debug("encryption keys: " + str(self.encrypt_keys))
            keys = yield get_keys(ui, self.encrypt_keys)
            if keys:
                envelope.encrypt_keys.update(keys)
            else:
                envelope.encrypt = False
        # reload buffer
        ui.current_buffer.rebuild()
Ejemplo n.º 5
0
    def apply(self, ui):
        envelope = ui.current_buffer.envelope
        if self.action == 'rmencrypt':
            try:
                for keyid in self.encrypt_keys:
                    tmp_key = crypto.get_key(keyid)
                    del envelope.encrypt_keys[crypto.hash_key(tmp_key)]
            except GPGProblem as e:
                ui.notify(e.message, priority='error')
            if not envelope.encrypt_keys:
                envelope.encrypt = False
            ui.current_buffer.rebuild()
            return
        elif self.action == 'encrypt':
            encrypt = True
        elif self.action == 'unencrypt':
            encrypt = False
        elif self.action == 'toggleencrypt':
            encrypt = not envelope.encrypt
        envelope.encrypt = encrypt
        if encrypt:
            if not self.encrypt_keys:
                for recipient in envelope.headers['To'][0].split(','):
                    if not recipient:
                        continue
                    match = re.search("<(.*@.*)>", recipient)
                    if match:
                        recipient = match.group(0)
                    self.encrypt_keys.append(recipient)

            logging.debug("encryption keys: " + str(self.encrypt_keys))
            keys = yield get_keys(ui, self.encrypt_keys)
            if keys:
                envelope.encrypt_keys.update(keys)
            else:
                envelope.encrypt = False
        # reload buffer
        ui.current_buffer.rebuild()