def _import_key(self, result, keytype): if keytype == "openpgp": g = GnuPG() res = g.import_keys(result[keytype]) if len(res["updated"]): self._managed_keys_add(result["address"], keytype) return res else: # We currently only support OpenPGP keys return False
def _import_key(self, result, keytype): if keytype == "openpgp": g = GnuPG(self.config) res = g.import_keys(result[keytype]) if len(res["updated"]): self._managed_keys_add(result["address"], keytype) return res else: # We currently only support OpenPGP keys return False
def command(self): key_data = "" if len(self.args) != 0: key_file = self.data.get("key_file", self.args[0]) with open(key_file) as file: key_data = file.read() if "key_data" in self.data: key_data = self.data.get("key_data") elif "key_file" in self.data: pass g = GnuPG() return g.import_keys(key_data)
def _import_key(self, result, keytype): if keytype == "openpgp": g = GnuPG() if self.config: g.passphrase = self.config.gnupg_passphrase.get_reader() res = g.import_keys(result[keytype]) if len(res["updated"]): self._managed_keys_add(result["address"], keytype) return res else: # We currently only support OpenPGP keys return False
def _getkey(self, key): if key["fingerprint"] and not key["url"]: g = GnuPG() res = g.recv_key(key["fingerprint"]) elif key["url"]: r = urllib2.urlopen(key["url"]) result = r.readlines() start = 0 end = len(result) # Hack to deal with possible HTML results from keyservers: for i in range(len(result)): if result[i].startswith("-----BEGIN PGP"): start = i elif result[i].startswith("-----END PGP"): end = i result = "".join(result[start:end]) g = GnuPG() res = g.import_keys(result) return res else: raise ValueError("Need a fingerprint or a URL")
def command(self): session, config, idx = self.session, self.session.config, self._idx() args = list(self.args) if args and args[-1][0] == "#": attid = args.pop() else: attid = self.data.get("att", 'application/pgp-keys') args.extend(["=%s" % x for x in self.data.get("mid", [])]) eids = self._choose_messages(args) if len(eids) < 0: return self._error("No messages selected", None) elif len(eids) > 1: return self._error("One message at a time, please", None) email = Email(idx, list(eids)[0]) fn, attr = email.extract_attachment(session, attid, mode='inline') if attr and attr["data"]: g = GnuPG() res = g.import_keys(attr["data"]) return self._success("Imported key", res) return self._error("No results found", None)
def _getkey(self, entry): pkaver = None fingerprint = None url = None for stmt in entry.split(";"): key, value = stmt.split("=", 1) if key == "v": pkaver = value elif key == "fpr": fingerprint = value elif key == "uri": url = value if pkaver != "pka1": raise ValueError("We only know how to deal with pka version 1") if fingerprint and not url: g = GnuPG() res = g.recv_key(fingerprint) elif url: r = urllib2.urlopen(url) result = r.readlines() start = 0 end = len(result) # Hack to deal with possible HTML results from keyservers: for i in range(len(result)): if result[i].startswith("-----BEGIN PGP"): start = i elif result[i].startswith("-----END PGP"): end = i result = "".join(result[start:end]) g = GnuPG() res = g.import_keys(result) return res else: raise ValueError("Need a fingerprint or a URL")