Gestión de claves criptográficas para cumplimiento RGPD · Rust + azure_security_keyvault_keys
| Método | Tipo de clave | Operación Azure KV | Caso de uso |
|---|---|---|---|
| create_tenant_kek(tenant_id) | KEK | create_key → RSA-HSM-2048 | Alta de nueva clínica en la plataforma |
| rotate_tenant_kek(tenant_id) | KEK | create_key (nueva versión) | Rotación anual obligatoria RGPD |
| delete_tenant_kek(tenant_id) | KEK | delete_key (soft-delete 90d) | Baja de clínica, purga manual posterior |
| list_tenant_keks() | list_key_properties → Pager | Auditoría de tenants activos | |
| wrap_patient_dek(tenant, ver, dek) | Cifrado | wrap_key → RSA-OAEP-256 | Ingreso de paciente, cifrar DEK |
| unwrap_patient_dek(tenant, ver, ct) | Cifrado | unwrap_key → RSA-OAEP-256 | Lectura autorizada por médico |
| create_signing_key() | Firma | create_key → EC P-256 | Setup inicial de la plataforma |
| sign_report(ver, hash_32b) | Firma | sign → ES256 (64 bytes) | Firma de informes nutricionales |
| update_key_tags(name, tags) | update_key_properties | Actualizar metadatos de auditoría |
ManagedIdentityCredential en producción, DeveloperToolsCredential en local. El SDK Rust no soporta DefaultAzureCredential.KeyClient es thread-safe; se crea una sola instancia y se comparte con Arc<NutricoreKeyManager> entre tareas Tokio.dek_cifrado, permitiendo rotación sin romper acceso a datos históricos.