Référence API
API : Clés de chiffrement
Créer, lister, faire tourner, exporter et désactiver les clés. Toutes les opérations d’enveloppe partent de l’identifiant rendu à la création.
L’identifiant d’une clé est un UUID rendu par le serveur
Le nom que vous donnez à la création (« production-users-pii ») est une étiquette lisible, stockée dans le champ name. Il ne résout aucune route. Les chemins /v1/keys/{id}/… et le champ key_id des appels de chiffrement attendent l’UUID rendu par POST /v1/keys.
| Méthode | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /v1/keys | keys:read | Lister toutes les clés |
| POST | /v1/keys | keys:write | Créer une clé |
| GET | /v1/keys/:id | keys:read | Obtenir une clé et ses versions |
| POST | /v1/keys/:id/rotate | keys:write | Rotation manuelle |
| PATCH | /v1/keys/:id/rotation | keys:write | Politique de rotation (interval_days) |
| POST | /v1/keys/:id/wrap | keys:wrap | Emballer une clé de données |
| POST | /v1/keys/:id/unwrap | keys:wrap | Déballer une clé de données |
| POST | /v1/keys/:id/export | keys:export | Exporter le matériel de clé |
| DELETE | /v1/keys/:id | keys:write | Désactiver (crypto-shredding) |
Les deux points de terminaison d’enveloppe ont leur page : emballer et déballer une clé.
Exemples
curl -s https://api.mafate.io/v1/keys \
-H "Authorization: Bearer $MAFATE_API_KEY"
# Réponse
{
"keys": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "production-users-pii",
"algorithm": "AES-256-GCM",
"status": "active",
"current_version": 2,
"created_at": "2026-01-15T10:00:00Z",
"rotation_interval_days": 90
}
],
"count": 1
}Objet clé
| Champ | Type | Description |
|---|---|---|
| id | uuid | Rendu par le serveur à la création. C’est lui qui s’écrit dans les chemins. |
| name | string | Étiquette lisible que vous choisissez, unique par locataire |
| algorithm | string | AES-256-GCM |
| status | enum | active | rotating | disabled | destroyed |
| current_version | integer | Version courante, incrémentée à chaque rotation |
| rotation_interval_days | integer | null | Jours entre rotations automatiques. 90 par défaut, null pour désactiver. |
| created_at | datetime | Date de création |
| last_rotated_at | datetime | null | Dernière rotation effectuée |
| next_rotation_at | datetime | null | Prochaine rotation planifiée |
| versions | array | Sur GET /v1/keys/:id uniquement : version, status, created_at |