Files
khadhroony-bot3/ks-wallet-demo-scenarios/USAGE.md
2026-08-11 15:15:03 +02:00

89 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: ks-wallet-demo-scenarios/USAGE.md -->
<!-- version: 2 -->
# 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`.