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).