Beispiel #1
0
    def import_private_key(self,
                           new_password,
                           existing_password=None,
                           alias=None,
                           key_data=None,
                           filepath=None):
        if not key_data:
            if not filepath:
                raise KeyImportError("Neither key_data nor filepath provided")
            with open(filepath, "rb") as fp:
                key_data = fp.read()
        try:
            ic = ICrypto()
            ic.load_pem_private_key("k", key_data, existing_password)\
                .public_from_private("pub", "k") \
                .get_public_key_fingerprint("pkfp", "pub") \
                .encrypt_private_key("kenc", "k", bytes(new_password, "utf8"))

            logging.debug("Private key loaded successfully. Saving...")
            self.save_user_key(pkfp=ic["pkfp"],
                               public=ic["pub"],
                               private=ic["kenc"],
                               alias=alias)

        except Exception as e:
            logging.error(str(e))
            raise KeyImportError(e)
Beispiel #2
0
 def test_pkfp(self):
     with open("key.pem", "rb") as f:
         data = f.read()
         ic = ICrypto()
         ic.load_pem_private_key("priv", data, "blablabla") \
             .public_from_private("pub", "priv") \
             .get_public_key_fingerprint("pkfp", "pub")
         print(str(ic["priv"], "utf8"))
         print(str(ic["pub"], "utf8"))
         with open("pub.pem", "wb") as pubf:
             pubf.write(ic["pub"])
         print("PKFP: " + str(ic["pkfp"], "utf8"))
Beispiel #3
0
 def sign_source(self, key_data, key_password, path_to_image):
     ic = ICrypto()
     log.debug("Processing private key...")
     log.debug("key data %s" % str(key_data))
     log.debug("key password %s " % str(key_password))
     ic.load_pem_private_key("priv", key_data, key_password) \
         .public_from_private("pub", "priv") \
         .get_public_key_fingerprint("pkfp", "pub") \
         .hash_file("hash", path_to_image) \
         .private_key_sign("sign", "hash", "priv")
     log.debug("Crypto complete")
     return ic
Beispiel #4
0
 def read_key(self):
     with open("key.pem", "rb") as f:
         data = f.read()
         ic = ICrypto()
         ic.load_pem_private_key("priv", data, "blablabla")
         print(ic["priv"])