# 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__`
```python
__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`
```python
deserialize(serialized_keys: bytes) → Keys
```
Deserialize keys from bytes.
**Args:**
serialized_keys (bytes): previously serialized keys
**Returns:**
Keys: deserialized keys
---
### method `generate`
```python
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`
```python
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`
```python
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`
```python
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`
```python
serialize() → bytes
```
Serialize keys into bytes.
Serialized keys are not encrypted, so be careful how you store/transfer them!
**Returns:**
bytes: serialized keys