How to use the nucypher.characters.lawful.Enrico.from_public_keys function in nucypher

To help you get started, we’ve selected a few nucypher examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github drbh / ncipfs / ncipfs.py View on Github external
def decrypt(self, bob, item_cid, pol, sig, lab):
        policy_pubkey = UmbralPublicKey.from_bytes(bytes.fromhex(pol))
        alices_sig_pubkey = UmbralPublicKey.from_bytes(bytes.fromhex(sig))
        label = lab.encode()
        dat = self.ipfs_gateway_api.cat(item_cid)
        doctor = bob
        doctor.join_policy(label, alices_sig_pubkey)
        data = msgpack.loads(dat, raw=False)
        message_kits = (UmbralMessageKit.from_bytes(k) for k in data['kits'])
        data_source = Enrico.from_public_keys(
            {SigningPower: data['data_source']},
            policy_encrypting_key=policy_pubkey
        )
        message_kit = next(message_kits)
        start = timer()
        retrieved_plaintexts = doctor.retrieve(
            label=label,
            message_kit=message_kit,
            data_source=data_source,
            alice_verifying_key=alices_sig_pubkey
        )
        end = timer()
        plaintext = msgpack.loads(retrieved_plaintexts[0], raw=False)
        heart_rate = plaintext['heart_rate']
        timestamp = maya.MayaDT(plaintext['timestamp'])
        terminal_size = shutil.get_terminal_size().columns