Alice now generates KFrags with umbral. Woo!

pull/157/head
jMyles 2018-02-10 18:16:12 -08:00
parent 893ae8d24c
commit 44d9820f7b
1 changed files with 6 additions and 4 deletions

View File

@ -15,6 +15,7 @@ from sqlalchemy.exc import IntegrityError
from umbral.fragments import KFrag from umbral.fragments import KFrag
from umbral.keys import UmbralPublicKey from umbral.keys import UmbralPublicKey
import umbral
from nkms.crypto import api as API from nkms.crypto import api as API
from nkms.crypto.api import secure_random, keccak_digest from nkms.crypto.api import secure_random, keccak_digest
@ -238,7 +239,7 @@ class Alice(Character):
_server_class = NuCypherSeedOnlyDHTServer _server_class = NuCypherSeedOnlyDHTServer
_default_crypto_powerups = [SigningPower, EncryptingPower] _default_crypto_powerups = [SigningPower, EncryptingPower]
def generate_rekey_frags(self, alice_privkey, bob, m, n): def generate_kfrags(self, bob, m, n):
""" """
Generates re-encryption key frags and returns the frags and encrypted Generates re-encryption key frags and returns the frags and encrypted
ephemeral key data. ephemeral key data.
@ -250,9 +251,10 @@ class Alice(Character):
:return: Tuple(kfrags, eph_key_data) :return: Tuple(kfrags, eph_key_data)
""" """
kfrags, eph_key_data = API.ecies_ephemeral_split_rekey( # TODO: Is this how we want to access Alice's private key?
alice_privkey, bytes(bob.seal.without_metabytes()), m, n) alice_priv_enc = self._crypto_power._power_ups[EncryptingPower].keypair.privkey
return (kfrags, eph_key_data) k_frags, _v_keys = umbral.umbral.split_rekey(alice_priv_enc, bob.public_key(EncryptingPower), m, n)
return k_frags
def create_policy(self, def create_policy(self,
bob: "Bob", bob: "Bob",