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
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
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()