diff --git a/CODE_AUDIT.md b/CODE_AUDIT.md index 917730e..8261ddd 100644 --- a/CODE_AUDIT.md +++ b/CODE_AUDIT.md @@ -95,11 +95,14 @@ donc AES-GCM plein (IV aléatoire), pas de searchable-encryption. Choke-point `withEncryptedMeta` sur tous les writes ; `decryptEntryMeta` au load ; migration `migrateMetadataAtRest` (live + corbeille) ; rotation re-chiffre les 4. Validation serveur « Site required » retirée + `?q=` neutralisé (LIKE inutile -sur ciphertext). Détails CLAUDE.md « Entry payload ». **`username` validé -runtime le 2026-07-09** (0 en clair après migration). **`site`/`title`/`tags` -NON encore compilés/testés runtime** — même patron, gros changement -multi-handlers, rebuild + test soigneux requis. Résiduel : `folder`, `kind`, -`template`, métadonnées d'attachments, nombre de lignes, timestamps. +sur ciphertext). Détails CLAUDE.md « Entry payload ». **Validé runtime le 2026-07-09** : après +rebuild + unlock du compte `test`, la base montre **0 en clair** sur les 4 +champs (username/site/title/tags) pour ce compte, `_enc` remplies, affichage/ +recherche/favicons OK. La migration est **par utilisateur** (tourne au unlock +sur les entries du compte connecté) — un compte non connecté garde son clair +jusqu'à sa prochaine connexion (comportement normal, pas une régression). +Résiduel : `folder`, `kind`, `template`, métadonnées d'attachments, nombre de +lignes, timestamps. ### 1.4 🟡 Snapshot de sync = tout le vault en clair sous le sync password