Exemplo n.º 1
0
    def test_extract_keyid_from_identity(self):
        identity = "ANON 12345678ABCDef00"
        keyid, fingerprint = extract_keyid_from_identity(identity)
        self.assertEqual(keyid, "12345678ABCDef00")
        self.assertEqual(type(keyid), str)
        self.assertIsNone(fingerprint)

        self.assertEqual(
            extract_keyid_from_identity("1234567890abcdef")[0],
            "1234567890abcdef")

        fingerprint = "1234567890123456789012345678901234567890"
        self.assertEqual(extract_keyid_from_identity("ANON " + fingerprint),
                         (fingerprint[-16:], Fingerprint(fingerprint)))

        self.assertRaises(CustomException,
                          lambda: extract_keyid_from_identity("John Doe"))
        self.assertRaises(
            CustomException,
            lambda: extract_keyid_from_identity("ANON 123456789"))
        self.assertRaises(CustomException,
                          lambda: extract_keyid_from_identity("ANON 123456ab"))
        self.assertRaises(
            CustomException, lambda: extract_keyid_from_identity(
                "ANON 123456ab <*****@*****.**>"))
Exemplo n.º 2
0
 def test_select_fingerprint(self, keyring):
     for fp, name in [
         ("F429 4BC8 094A 7E05 85C8 5E86 3747 3B37 58C4 4F36",
          "RSA von TestKey"),
         (six.u("F429 4BC8 094A 7E05 85C8 5E86 3747 3B37 58C4 4F36"),
          six.u("RSA von TestKey")),
         (Fingerprint("F429 4BC8 094A 7E05 85C8 5E86 3747 3B37 58C4 4F36"),
          "RSA von TestKey"),
         ("EBC8 8A94 ACB1 10F1 BE3F E3C1 2B47 4BB0 2084 C712",
          "DSA von TestKey"),
         (six.u("EBC8 8A94 ACB1 10F1 BE3F E3C1 2B47 4BB0 2084 C712"),
          six.u("DSA von TestKey")),
         (Fingerprint("EBC8 8A94 ACB1 10F1 BE3F E3C1 2B47 4BB0 2084 C712"),
          "DSA von TestKey"),
     ]:
         with keyring.key(fp) as key:
             assert key.fingerprint == fp
             assert key.userids[0].name == name
Exemplo n.º 3
0
    def sign_and_encrypt_string_to_peer_fingerprint(self, message: str,
                                                    remote_fingerprint: str):
        remote_keyid = Fingerprint.__new__(Fingerprint,
                                           remote_fingerprint).keyid

        peer_key = self.interface.key_manager.\
            get_peer_primary_key_from_subkey_fingerprint(remote_keyid)

        peer_subkey = None
        for _, key in peer_key._children.items():
            if key.fingerprint == remote_fingerprint:
                peer_subkey = key
                break

        message = pgpy.PGPMessage.new(message)
        message |= self.local_key.sign(message)
        self.logger.info(f'Encrypting message for {peer_subkey.fingerprint}')
        return peer_subkey.encrypt(message)
Exemplo n.º 4
0
    def test_bad_input(self):
        with pytest.raises(ValueError):
            Fingerprint("ABCDEFG")

        with pytest.raises(ValueError):
            Fingerprint("ABCD EFGH IJKL MNOP QRST  UVWX YZ01 2345 6789 AABB")