mod digest;
mod iface;
mod utils;
use crate::asm;
use crate::config;
use alloc::vec::Vec;
use config::RMM_SHARED_BUFFER_START;
use spinning_top::Spinlock;
const SHA256_DIGEST_SIZE: usize = 32;
const ATTEST_KEY_CURVE_ECC_SECP384R1: usize = 0;
static RMM_SHARED_BUFFER_LOCK: Spinlock<usize> = Spinlock::new(RMM_SHARED_BUFFER_START);
static REALM_ATTEST_KEY: Spinlock<Vec<u8>> = Spinlock::new(Vec::new());
static PLAT_TOKEN: Spinlock<Vec<u8>> = Spinlock::new(Vec::new());
pub fn setup_el3_ifc() {
trace!("Setup EL3 interface");
asm::dcache_flush(RMM_SHARED_BUFFER_START, config::PAGE_SIZE);
iface::get_realm_attest_key();
iface::get_plat_token();
}
#[allow(dead_code)]
pub fn realm_attest_key() -> Vec<u8> {
utils::get_vector(&REALM_ATTEST_KEY)
}
#[allow(dead_code)]
pub fn plat_token() -> Vec<u8> {
utils::get_vector(&PLAT_TOKEN)
}