# Artisan Keystore
This project provides a simple gRPC based keystore service and a Rust library for interacting with it. Keys are stored on disk in encrypted form and can be accessed or rotated via the API.
## Features
- AES-256-GCM encryption for stored keys
- gRPC service implementing add, retrieve, migrate and generate operations
- Periodic key status updates and automatic archiving
## Building
```bash
cargo build --release
```
## Running the Server
The server binary is `ais_keystore`. Simply run:
```bash
cargo run --bin ais_keystore
```
It will listen on `0.0.0.0:9802` by default and maintain its persistent store at `/opt/keystore`.
## Library Usage
The accompanying library `ais_keystore_lib` exposes convenience async functions for interacting with the server from other Rust projects.