v0.5.2-pre.001

This commit is contained in:
2026-08-10 14:09:39 +02:00
parent 9849aa7084
commit 0bd5bbf1c4
6 changed files with 737 additions and 87 deletions

View File

@@ -1,46 +1,58 @@
<!-- file: ks-wallet/README.md -->
<!-- version: 3 -->
<!-- version: 6 -->
# ks-wallet
`ks-wallet` fournit actuellement une frontière locale minimale de portefeuille pour les démonstrations et tests dintégration.
`ks-wallet` fournit la frontière wallet Solana générale du workspace Khadhroony.
## État actuel
La crate est une ébauche fonctionnelle, pas un gestionnaire de wallets complet.
En `0.5.2-pre.001`, la crate reste une ébauche fonctionnelle basée sur le format legacy Solana JSON. La restructuration `0.5.2` est encore au stade plan/caractérisation et ne modifie pas le runtime.
Elle fournit :
La crate fournit actuellement :
- alias validés ;
- wallet temporaire en mémoire ;
- stockage local JSON dun keypair Solana ;
- chargement ou création atomique ;
- résumé non secret ;
- stockage local JSON d'un keypair Solana ;
- création exclusive avec refus d'écrasement et reprise des courses `load_or_create` ;
- résumé sans matériau cryptographique secret, mais contenant encore un chemin local interne ;
- accès au trait `Signer` sans exposition des octets ;
- signature de messages ;
- permissions Unix privées et contrôles de fichiers ;
- effacement des buffers secrets utilisés lors de la lecture ou écriture.
- effacement des buffers secrets temporaires utilisés lors de la lecture ou écriture.
## Hors capacités actuelles
La persistance legacy écrit encore directement le contenu dans le chemin final : elle n'est pas une publication atomique crash-safe par fichier temporaire + renommage.
Les fonctions suivantes ne sont pas encore implémentées :
## Cible `0.5.2`
- chiffrement par mot de passe ;
- plusieurs wallets gérés comme collection ;
- sélection persistante du wallet actif ;
- import/export contrôlé ;
- changement de mot de passe ;
- verrouillage et déverrouillage ;
- sauvegarde et restauration ;
- politiques de sécurité complètes.
`ks-wallet` doit devenir capable de :
- découvrir dans le store les fichiers `<alias>.kswallet` valides et gérer plusieurs wallets persistants accessibles par alias ;
- conserver des wallets temporaires/jetables pour tests et scénarios ;
- stocker les wallets persistants dans un format natif binaire `<alias>.kswallet` ;
- protéger chaque wallet persistant par un mot de passe modifiable ;
- fournir une capacité de signature sans exposer les bytes privés ;
- importer le format legacy et d'autres formats explicitement supportés ;
- exporter volontairement vers des formats externes supportés ;
- exiger un mot de passe valide pour tout export contenant le secret ;
- préserver exactement la même keypair lors d'un changement de mot de passe ;
- importer et exporter obligatoirement le format keypair JSON des binaires Solana ;
- documenter les formats compatibles des principaux wallets Solana, implémenter un adaptateur tiers d'exemple et reporter les autres au TODO.
Le format `.kswallet` sera propre à `ks-wallet`, mais sa protection cryptographique utilisera des primitives standards. Changer le mot de passe ne change jamais la keypair : une modification réelle du secret Ed25519 produirait une autre pubkey et donc un autre wallet. Le détail du KDF, de l'AEAD et du layout binaire sera fixé dans les tranches techniques après validation du plan et des dépendances réellement résolues.
## Relations
`ks-wallet` fournit un signer. Les limites de dépense, la simulation, lautorisation opérateur et lenvoi sont gérés par `ks-lib`, `ks-pipeline-demo-scenarios` et les applications.
`ks-wallet` possède et gère le wallet. Les exécuteurs et `ks-lib` doivent dépendre d'une capacité de signature, pas du format de stockage ni des octets privés.
`ks-config` peut sélectionner un alias ou une identité non sensible, mais ne stocke aucun mot de passe ni matériau secret.
Une application desktop doit projeter les informations autorisées dans ses propres DTO Tauri ; `ks-wallet` ne réintroduit pas TS-RS.
## Documentation
- [USAGE.md](USAGE.md)
- [TODO.md](TODO.md)
- [CHANGELOG.md](CHANGELOG.md)
- [plan temporaire `0.5.2`](../docs/plans/V0_5_2_KS_WALLET_RESTRUCTURING_PLAN.md)
- [ROADMAP général](../ROADMAP.md)