Skip to main content

Module workflow

Module workflow 

Source
Expand description

High-level workflow — PDD §5 (steps 1–12).

Each function borrows &mut dyn Transport and (for channel steps) a backend and an open crate::scp::ScpSession, performs the pre-flight checks of its §5 subsection, drives the §command builders through the §scp session, and returns Result<XReport, ScllError> (§7/§8). No success payload is reachable on the error path.

Channel steps are generic over B: KeyBackend + Scp02Backend + Scp03Backend (Fork F-A): the open session may be either variant, so wrap/unwrap needs both backend traits. Pre-auth steps (probe, discover_card) take no backend. All per-step inputs are borrowed *Args structs (Fork F-C/D); the shared transport/SCP plumbing lives in session (Fork F-B).

Re-exports§

pub use applet::delete_applet;
pub use applet::install_applet;
pub use applet::DeleteAppletArgs;
pub use applet::InstallAppletArgs;
pub use card_status::get_card_inventory;
pub use card_status::get_card_status;
pub use card_status::set_card_status;
pub use card_status::SetCardStatusArgs;
pub use discover::discover_card;
pub use keys::delete_sd_keyset;
pub use keys::put_sd_keys;
pub use keys::NewKeyset;
pub use keys::PutSdKeysArgs;
pub use open_scp::open_scp;
pub use open_scp::OpenScpArgs;
pub use open_scp::SdKeys;
pub use probe::probe;
pub use ssd::create_ssd;
pub use ssd::delete_ssd;
pub use ssd::load_package;
pub use ssd::CreateSsdArgs;
pub use ssd::LoadPackageArgs;
pub use transmit::transmit;

Modules§

applet
Steps 7 / 8 — install_applet, delete_applet (PDD §5.7/§5.8).
card_status
Steps 11, 12 & 12a — set_card_status / get_card_status / get_card_inventory (PDD §5.11/§5.12/§5.12a).
discover
Step 2 — discover_card (PDD §5.2).
keys
Steps 3 & 6 — PUT KEY / DELETE KEY engine (PDD §5.3/§5.6).
open_scp
Step 9 — open_scp (PDD §5.9).
probe
Step 1 — transport probe (PDD §5.1).
session
Shared workflow plumbing — transport exchange + SCP wrap/unwrap (PDD §5.9/§5.10).
ssd
Steps 4 / 4a / 5 — SSD create, package load, SSD delete (PDD §5.4/§5.4a/§5.5).
transmit
Step 10 — applet APDU exchange (PDD §5.10).