Skip to content

Latest commit

 

History

History
173 lines (91 loc) · 4.38 KB

concrete.fhe.compilation.keys.md

File metadata and controls

173 lines (91 loc) · 4.38 KB

module concrete.fhe.compilation.keys

Declaration of Keys class.


class Keys

Keys class, to manage generate/reuse keys.

Includes encryption keys as well as evaluation keys. Be careful when serializing/saving keys!

method __init__

__init__(
    client_specs: Optional[ClientSpecs],
    cache_directory: Optional[Path, str] = None
)

property are_generated

Get if the keys are already generated.


property evaluation

Get only evaluation keys.


method deserialize

deserialize(serialized_keys: bytes) → Keys

Deserialize keys from bytes.

Args: serialized_keys (bytes): previously serialized keys

Returns: Keys: deserialized keys


method generate

generate(
    force: bool = False,
    seed: Optional[int] = None,
    encryption_seed: Optional[int] = None
)

Generate new keys.

Args: force (bool, default = False): whether to generate new keys even if keys are already generated/loaded

seed (Optional[int], default = None): seed for private keys randomness

encryption_seed (Optional[int], default = None): seed for encryption randomness


method load

load(location: Union[str, Path])

Load keys from a location.

Args: location (Union[str, Path]): location to load from


method load_if_exists_generate_and_save_otherwise

load_if_exists_generate_and_save_otherwise(
    location: Union[str, Path],
    seed: Optional[int] = None
)

Load keys from a location if they exist, else generate new keys and save to that location.

Args: location (Union[str, Path]): location to load from or save to

seed (Optional[int], default = None): seed for randomness in case keys need to be generated


method save

save(location: Union[str, Path])

Save keys to a location.

Saved keys are not encrypted, so be careful how you store/transfer them!

Args: location (Union[str, Path]): location to save to


method serialize

serialize() → bytes

Serialize keys into bytes.

Serialized keys are not encrypted, so be careful how you store/transfer them!

Returns: bytes: serialized keys