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

2.6 KiB
Raw Blame History

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 :

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 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é

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

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.