use android_desktop_security_boot_params::aidl::android::desktop::security::boot_params::IBootParams::IBootParams; use service_manager::wait_for_interface; use vmm_obj::get_vmm_obj;
// Until version keys are implement, reserve a special case for use when we bave the base framwork // but cannot generate older versions. const VERSION_UNVERSIONED: i32 = 1;
const KEY_BYTES: usize = 32;
extern"C" { // Implementations of run_hwkey should not retain any referencs but may clear the contents of // encrypt and sign. fn run_hwkey(
encrypt: *mut u8,
encrypt_size: usize,
versioned_encrypt: *mut u8,
versioned_encrypt_size: usize,
sign: *mut u8,
sign_size: usize,
auth_token_key_seed: *mut u8,
auth_token_key_seed_size: usize,
rollback_version: i32,
running_version: i32,
) -> i32;
}
fn main() {
trusty_log::init();
log::info!("HwKey starting."); let bp: binder::Strong<dyn IBootParams> =
wait_for_interface(BP_SERVICE_PORT).expect("Could not connect");
letmut seal = bp.getCdiSeal().expect("Could not get seal"); letmut versioned_seal =
get_vmm_obj(c"google,versioned-seed").expect("Could not get versioned seed"); let version = i32::from_le_bytes(versioned_seal[KEY_BYTES..KEY_BYTES + 4].try_into().unwrap()); letmut sign = bp.getCdiAttest().expect("Could not get sign"); letmut auth_token_key_seed =
bp.getAuthTokenKeySeed().expect("Could not get auth token key seed");
log::info!("Launching hwkey service."); // SAFETY: run_hwbcc copies the data from code and auth and does not retain references to them. unsafe {
run_hwkey(
seal.as_mut_ptr(),
seal.len(),
versioned_seal.as_mut_ptr(),
versioned_seal.len() - core::mem::size_of::<i32>(),
sign.as_mut_ptr(),
sign.len(),
auth_token_key_seed.as_mut_ptr(),
auth_token_key_seed.len(),
VERSION_UNVERSIONED,
version,
);
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.