v0.5.2-pre.004
This commit is contained in:
@@ -1,8 +1,29 @@
|
||||
<!-- file: ks-wallet/CHANGELOG.md -->
|
||||
<!-- version: 14 -->
|
||||
<!-- version: 16 -->
|
||||
|
||||
# CHANGELOG — ks-wallet
|
||||
|
||||
### `pre.004-delta-fix-001`
|
||||
|
||||
- aligne les features workspace de `argon2`, `chacha20poly1305` et `getrandom` sur les features réellement exposées par les versions résolues et validées par Cargo ;
|
||||
- conserve `argon2` avec `std` et `zeroize`, `chacha20poly1305` avec `getrandom`, `rand_core` et `zeroize`, et `getrandom` avec `std` et `sys_rng` ;
|
||||
- corrige le dernier warning Clippy de `WalletPassword::new()` en utilisant directement `String::len()`, qui conserve la même sémantique de longueur en octets UTF-8 ;
|
||||
- ne modifie aucun contrat `.kswallet`, paramètre KDF/AEAD, cycle de vie password ou API publique.
|
||||
|
||||
## `0.5.2-pre.004`
|
||||
|
||||
- ajoute `WalletPassword`, type possédé, non clonable, non sérialisable et redacted qui zéroïse sa chaîne à la destruction, y compris lorsqu'une valeur invalide est rejetée ;
|
||||
- ajoute `UnlockedWallet`, capacité authentifiée non clonable qui expose uniquement l'identité publique et les interfaces `Signer`/`Signer + Sync`, sans getter des bytes privés ;
|
||||
- ajoute `WalletManager::create()`, `unlock()`, `unlock_file()` et `change_password()` pour le cycle de vie natif protégé ;
|
||||
- exécute Argon2id v19 hors du runtime async via `spawn_blocking`, avec le profil v1 64 MiB / 3 passes / 4 lanes et les bornes du codec ;
|
||||
- chiffre et authentifie les 64 octets du keypair avec XChaCha20-Poly1305 en utilisant header + alias + sel + nonce comme AAD ;
|
||||
- génère un sel et un nonce neufs via la source aléatoire système à chaque création ou changement de mot de passe ;
|
||||
- vérifie après déchiffrement que la pubkey du keypair correspond exactement à la pubkey authentifiée du header avant de produire `UnlockedWallet` ;
|
||||
- implémente l'encodage v1 et la publication privée atomique/no-clobber d'un nouveau `.kswallet`, ainsi que le remplacement atomique après authentification de l'ancien mot de passe ;
|
||||
- permet d'ouvrir avec mot de passe un `.kswallet` sélectionné hors du store via son `WalletFileHandle`, sans mutation de la configuration ni auto-enregistrement ;
|
||||
- ajoute `argon2`, `chacha20poly1305` et `getrandom` comme dépendances directes réellement utilisées par `ks-wallet`, et active `zeroize` sur `chacha20poly1305` au niveau workspace ;
|
||||
- ajoute des tests externes de création, permissions privées, refus d'écrasement, signature, réouverture, ouverture externe, changement de mot de passe, rejet de l'ancien mot de passe, altération de l'AAD et canaris de non-divulgation.
|
||||
|
||||
## `0.5.2-pre.003`
|
||||
|
||||
- fixe et documente dans `docs/NATIVE_FORMAT.md` le layout binaire strict `.kswallet` version `1` ;
|
||||
|
||||
Reference in New Issue
Block a user