ks-wallet
ks-wallet fournit la frontière wallet Solana générale du workspace Khadhroony.
État actuel
En 0.5.2-pre.002, la crate possède désormais la première API multi-wallet sans encore créer ni déchiffrer de conteneur natif persistant. Le legacy Solana JSON reste utilisé par les consommateurs historiques pendant la transition.
La crate fournit actuellement :
- alias validés ;
- identité publique minimale
WalletIdentitysans chemin local ; WalletManagerpour scanner/lookup les.kswalletdu répertoire configuré ;- inspection explicite d'un
.kswalletsélectionné hors du store via un handle opaque ; - wallet temporaire en mémoire ;
- stockage legacy local JSON d'un keypair Solana ;
- création exclusive avec refus d'écrasement et reprise des courses
load_or_create; - résumé/identité sans matériau cryptographique secret ni chemin local ;
- accès au trait
Signersans exposition des octets ; - signature de messages ;
- permissions Unix privées et contrôles de fichiers ;
- effacement des buffers secrets temporaires utilisés lors de la lecture ou écriture.
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.
Cible 0.5.2
ks-wallet doit devenir capable de :
- découvrir dans le store les fichiers
<alias>.kswalletvalides 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. pre.002 ne fixe que son préambule d'identification minimal (KSWALLET + version 1) afin de rendre scan et lookup exécutables ; le payload protégé n'existe pas encore. 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 reste du layout binaire sera fixé dans les tranches techniques après validation des dépendances réellement résolues.
Le scan automatique reste strictement borné au répertoire fourni à WalletManager. Un programme peut néanmoins demander l'inspection d'un autre fichier .kswallet choisi explicitement, par exemple via un file browser desktop ; cette opération ne modifie pas le store et ne rend pas le chemin public.
Relations
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.