Files
khadhroony-bot3/ks-wallet/CHANGELOG.md
2026-08-10 16:23:18 +02:00

8.7 KiB
Raw Blame History

CHANGELOG — ks-wallet

0.5.2-pre.003

  • fixe et documente dans docs/NATIVE_FORMAT.md le layout binaire strict .kswallet version 1 ;
  • sélectionne Argon2id v19 et XChaCha20-Poly1305 comme KDF/AEAD du format v1 sans encore traiter de mot de passe ;
  • retient comme profil KDF d'écriture par défaut 64 MiB, 3 passes, 4 lanes, sel 16 octets et sortie 32 octets, avec bornes anti-DoS ;
  • fixe le payload secret v1 à la keypair Solana brute de 64 octets et le ciphertext/tag à exactement 80 octets, pour une taille totale .kswallet de 193 à 256 octets ;
  • ajoute le décodage/validation internes stricts pour magic/version, flags, IDs crypto, paramètres KDF, pubkey, alias, sel, nonce et ciphertext ;
  • réserve header + alias + sel + nonce comme données authentifiées de l'AEAD pour pre.004 ;
  • enrichit WalletFileHandle de la pubkey déclarée et de la version du format sans exposer le chemin ;
  • ajoute une lecture bornée avant allocation et rejette truncation, trailing bytes et croissance concurrente du fichier ;
  • ajoute les tests du décodage strict, des bornes KDF/ciphertext, de l'alias et de la réouverture bornée ;
  • laisse volontairement l'encodage de création, la publication atomique, le password, la dérivation Argon2id, l'appel AEAD et la capacité de signature ouverts à pre.004.

pre.003-delta-fix-001

  • déplace la spécification normative de ks-wallet/NATIVE_FORMAT.md vers docs/NATIVE_FORMAT.md et aligne son tableau de layout pour une lecture Markdown plus claire ;
  • corrige les tests native.rs pour respecter la règle super::Item sur les éléments privés du module parent ;
  • retire de pre.003 le code d'encodage/publication et les defaults KDF préparés prématurément pour pre.004, afin de ne conserver aucun dead code ni import inutilisé ;
  • borne pre.003 au décodage/validation stricts et à la lecture nécessaire au scan, sans changer le layout v1 documenté.

pre.003-delta-fix-002

  • corrige les fixtures de tests WalletManager::scan() afin que les répertoires temporaires utilisés sous Unix soient explicitement privés en mode 0700 ;
  • conserve inchangée la validation runtime qui refuse un répertoire wallet accessible au groupe ou aux autres utilisateurs ;
  • corrige les deux échecs scan_is_non_recursive_and_filters_by_native_extension et explicit_file_inspection_accepts_path_outside_configured_directory sans assouplir le contrat de sécurité.

pre.003-delta-fix-003

  • corrige la fixture du test externe crate_root_exposes_multi_wallet_discovery_without_path_disclosure afin que son répertoire temporaire respecte lui aussi le mode Unix 0700 exigé par WalletManager::scan() ;
  • ne modifie aucune validation runtime, aucun codec .kswallet et aucune surface publique ;
  • complète le correctif de permissions de fix-002 sur le dernier test externe qui dépendait encore de l'umask de la machine.

0.5.2-pre.002

  • ajoute WalletManager pour la découverte non récursive des .kswallet dans le répertoire configuré et le lookup par alias ;
  • ajoute WalletManager::inspect_file() pour inspecter explicitement un .kswallet situé hors du store sans modifier la configuration ni l'enregistrer automatiquement ;
  • ajoute WalletFileHandle, handle opaque dont le chemin local reste privé et absent de Debug ;
  • introduit le préambule d'identification natif minimal KSWALLET + version u16 little-endian 1, sans définir encore le payload, KDF ou AEAD ;
  • ajoute WalletIdentity et WalletPersistence, et transforme WalletSummary en alias de compatibilité vers l'identité non sensible ;
  • retire le chemin de stockage de WalletSummary et du Debug de TemporaryWallet ;
  • conserve les wallets temporaires et la frontière solana_signer::Signer existante ;
  • externalise la caractérisation du legacy dans tests/legacy_characterization.rs avec fixture synthétique, erreurs, permissions, symlink et refus d'écrasement ;
  • ajoute tests/public_api.rs pour figer la façade crate-root multi-wallet et l'absence de chemin dans le Debug du handle ;
  • ne crée encore aucun .kswallet réel et n'introduit aucun mot de passe ou chiffrement persistant.

0.5.2-pre.001

  • caractérise précisément le format legacy <alias>.json, ses permissions Unix, ses erreurs, sa publication directe dans le chemin final et ses limites datomicité/TOCTOU ;
  • inventorie les consommateurs ks-wallet, les usages directs de solana_keypair / solana_signer, les variables/configurations wallet et les workflows CLI qui dépendent encore du keypair Solana brut ;
  • définit le contrat fonctionnel 0.5.2 autour de la gestion multi-wallet par alias, des wallets temporaires/jetables, du mot de passe modifiable, de la signature sans exposition du secret et de limport/export explicite ;
  • retient comme cible un conteneur natif binaire versionné <alias>.kswallet, sans fixer prématurément KDF/AEAD ou layout binaire ;
  • impose un mot de passe valide pour tout export contenant ou permettant de reconstruire le secret ;
  • définit la migration legacy comme import vers un nouveau .kswallet avec conservation de la pubkey, écriture atomique et rollback, sans réécriture destructive du .json ;
  • corrige README/USAGE/TODO afin daligner les objectifs sur ce contrat simplifié ;
  • ne modifie aucune API runtime, aucun fichier wallet et nintroduit encore aucun nouveau format persistant.

pre.001-delta-fix-001

  • corrige la version Cargo de 0.5.2-pre.001 vers le SemVer valide 0.5.2-pre.1 ;
  • simplifie profondément le plan initial, retire lexclusion erronée de lexport privé contrôlé et supprime lhypothèse dun alias principal universel par profil ;
  • formalise lextension native .kswallet, le wallet temporaire et lobligation de password pour tout export secret.

pre.001-delta-fix-002

  • précise que ks-wallet découvrira les wallets persistants par scan borné des <alias>.kswallet dans son répertoire résolu, sans faire confiance au seul nom de fichier ;
  • distingue explicitement changement de password et rotation de keypair : le password rechiffre la même keypair, tandis quun nouveau secret Ed25519 implique une nouvelle pubkey ;
  • rend obligatoires limport et lexport du format keypair JSON standard utilisé par les binaires Solana ;
  • ajoute une matrice de compatibilité à établir pour Phantom, Solflare, Backpack, Trust Wallet, Coinbase/Base et les autres wallets Solana techniquement documentés ;
  • borne 0.5.2 à un adaptateur wallet tiers dexemple en plus du format Solana CLI obligatoire, avec report des autres adaptateurs faisables au TODO pour une version ultérieure non déterminée ;
  • interdit de synthétiser une recovery phrase supposée restaurer une keypair arbitraire lorsque la mnemonic/seed dorigine nest pas disponible.

0.5.1-pre.002

  • renomme kb-wallet en ks-wallet et kb_wallet en ks_wallet ;
  • aligne le target racine de tracing et les consommateurs sans modifier le format persistant des wallets, réservé à 0.5.2.

0.5.0-pre.002

  • caractérise le format persistant 0.4.8 comme format legacy à importer plutôt quà modifier in-place ;
  • prépare pour 0.5.2 un conteneur versionné, une migration atomique/rollback et la séparation identité/secret/verrouillage/signature ;
  • renforce le TODO sur labsence de propagation de secrets vers configuration, logs, erreurs, diagnostics ou Tauri.

0.4.8-pre.013

  • pre.013-delta-fix-021 ajoute TemporaryWallet::as_sync_signer() afin de préserver le marqueur Sync du solana_keypair::Keypair lorsque le signataire traverse un futur async qui doit être Send ;
  • conserve as_signer() inchangé pour les consommateurs historiques et nexpose toujours aucun octet secret.

0.4.6

  • alignement de la crate sur la version fonctionnelle bot3 0.4.6 ;
  • clôture des tâches de migration applicables et report explicite des évolutions ultérieures dans le TODO.

0.1.0-pre.072

  • reclassement du TODO selon les blocants avant 0.4.6, les travaux 0.4.7, les versions ultérieures et les dépendances conditionnelles.

0.1.0-pre.071

  • réécriture du README avec indication explicite du statut débauche ;
  • ajout du TODO détaillant les fonctionnalités prévues pour 0.5.x ;
  • ajout du guide dutilisation et de plusieurs exemples publics ;
  • clarification de la frontière entre signer, politique et exécution.

0.1.0-pre.062

  • migration et renommage du wallet temporaire vers ks-wallet ;
  • conservation des alias validés, keypairs temporaires et stockage local ;
  • ajout des contrôles de permissions, type de fichier et effacement des buffers secrets ;
  • adaptation aux normes Rust 2024 et Khadhroony bot3.