use android_system_desktop_security_gsc::aidl::android::system::desktop::security::gsc::IGsc::IGsc; use binder::Strong; use kmr_common::{km_err, Error}; use kmr_wire::{
GenerateCertificateRequestV2Request, GenerateCertificateRequestV2Response,
GenerateEcdsaP256KeyPairRequest, GenerateEcdsaP256KeyPairResponse,
}; use tpm_commands::strongbox::*; use tpm_commands::{TpmRequestMessage, TpmResponseHeader, TpmResponseMessage}; use zerocopy::{FromBytes, IntoBytes};
use ciborium::Value; use kmr_ta::rkp::serialize_cbor; use kmr_wire::read_to_value; use kmr_wire::rpc::AUTH_REQ_SCHEMA_V1;
log::warn!("signed_data_cbor: len {}", res.ret.len()); for chunk in res.ret.chunks(100) {
log::warn!(" {:02x?}", chunk);
}
let signed_data_cbor: Value = ciborium::from_reader(res.ret.as_slice()).unwrap();
assert!(signed_data_cbor.is_array());
log::warn!("signed_data_cbor is an array");
let dice_cert_chain = read_to_value(&get_dice_chain(client)?)?;
// Construct `UdsCerts` or error out if they're not set let uds_certs = matchcrate::fake_sb::secure_storage_manager::read_uds_cert() {
Ok(uds_certs) => { let encoded_certs = uds_certs
.into_iter()
.map(|cert| Value::Bytes(cert.encoded_certificate))
.collect::<Vec<_>>();
serialize_cbor(&Value::Map(vec![(
Value::Text(desktop_keymint::uds_signer_name().to_string()),
Value::Array(encoded_certs),
)]))
}
Err(err) => {
log::error!("Failed to read UDS certificates: {err:?}");
Err(kmr_common::rpc_err!(Failed, "Failed to read UDS certificates: {err:?}"))
}
}?; let uds_certs = read_to_value(&uds_certs)?;
// Construct `AuthenticatedRequest<CsrPayload>` let authn_req = Value::Array(vec![
Value::Integer(AUTH_REQ_SCHEMA_V1.into()),
uds_certs,
dice_cert_chain,
signed_data_cbor,
]); let authn_req = serialize_cbor(&authn_req)?;
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.