Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
 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)
Пример #4
0
 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
Пример #5
0
 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)
Пример #6
0
 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
Пример #7
0
 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")
Пример #8
0
 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")
Пример #9
0
    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)
Пример #10
0
    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)
Пример #11
0
	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")
Пример #12
0
    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")