v0.5.2-pre.006-fix-010

This commit is contained in:
2026-08-11 12:03:35 +02:00
parent 1ee1d0297d
commit 56572cec40
67 changed files with 2484 additions and 539 deletions

View File

@@ -0,0 +1,88 @@
<!-- file: ks-wallet-demo-scenarios/USAGE.md -->
<!-- version: 1 -->
# Utilisation de ks-wallet-demo-scenarios
## Exécuter la validation intégrée
La validation autonome de la crate utilise un wallet synthétique et naltère aucun wallet réel du workspace :
```bash
cargo test -p ks-wallet-demo-scenarios
```
Le test suit un ordre déterministe dans une seule fonction : A → B, rejet de A, ouverture/signature avec B, B → A, puis ouverture/signature finale avec A.
## Réutiliser une rotation
```rust
let summary = match ks_wallet_demo_scenarios::rotate_wallet_password(
&manager,
&alias,
current_password,
replacement_password,
)
.await
{
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => {
return std::result::Result::Err(error);
},
};
println!("public key={}", summary.identity.public_key);
```
La fonction inspecte lidentité avant rotation, appelle `WalletManager::change_password()` puis refuse le résultat si lalias ou la pubkey a changé.
## Vérifier quun ancien mot de passe est rejeté
```rust
let rejection = match ks_wallet_demo_scenarios::expect_wallet_password_rejected(
&manager,
&alias,
old_password,
)
.await
{
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => {
return std::result::Result::Err(error);
},
};
assert_eq!(
rejection.rejection_code,
"wallet_native_authentication_failed",
);
```
Un échec provenant dune autre cause nest pas converti en succès du scénario. Une ouverture réussie avec le mot de passe supposé rejeté fait échouer explicitement la validation.
## Vérifier ouverture et signature
```rust
let signing = match ks_wallet_demo_scenarios::unlock_and_sign_wallet(
&manager,
&alias,
active_password,
b"wallet scenario challenge",
)
.await
{
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => {
return std::result::Result::Err(error);
},
};
assert!(!signing.signature.is_empty());
```
Le challenge doit être non vide. La fonction compare lidentité inspectée à lidentité authentifiée avant de signer, puis verrouille la capacité ouverte avant le retour.
## Limites actuelles
La crate ne fournit pas encore de CLI ni de gestion de secrets par variables denvironnement. Les consommateurs construisent les `WalletPassword` explicitement et les transmettent aux étapes de scénario.
Les scénarios import/export, migration legacy et formats tiers seront ajoutés lorsquils apporteront une validation supplémentaire au-delà des tests unitaires de `ks-wallet`.