2.6 KiB
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 n’altère aucun wallet réel du workspace :
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
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 l’identité avant rotation, appelle WalletManager::change_password() puis refuse le résultat si l’alias ou la pubkey a changé.
Vérifier qu’un ancien mot de passe est rejeté
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 d’une autre cause n’est 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
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 l’identité inspectée à l’identité 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 d’environnement. 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 lorsqu’ils apporteront une validation supplémentaire au-delà des tests unitaires de ks-wallet.