From bedf9b24206cbb678378b4d2e5863c7bba6d129f Mon Sep 17 00:00:00 2001 From: unholyzero <576175933@qq.com> Date: Mon, 17 Jun 2024 15:45:30 +0800 Subject: [PATCH] BUG FIX :Modify the invoking sequence and granularity. --- attestation/rim_ref/src/gen_rim_ref.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/attestation/rim_ref/src/gen_rim_ref.c b/attestation/rim_ref/src/gen_rim_ref.c index 4930e1a..22527b9 100644 --- a/attestation/rim_ref/src/gen_rim_ref.c +++ b/attestation/rim_ref/src/gen_rim_ref.c @@ -370,7 +370,7 @@ void measure_load_data(cvm_init_measure_t *meas, uint64_t hdrvals[2]; memcpy(&hdrvals, buffer_k_tmp + ARM64_TEXT_OFFSET_OFFSET, sizeof(hdrvals)); kernel_size_k = hdrvals[1]; - kernel_size_k = round_up(kernel_size_k, BLOCK_SIZE); + kernel_size_k = round_up(kernel_size_k, L3_GRANULE); } buffer_k = (unsigned char *)malloc(kernel_size_k); if (buffer_k == NULL) { @@ -382,16 +382,13 @@ void measure_load_data(cvm_init_measure_t *meas, memcpy(buffer_k, buffer_k_tmp, size); free(buffer_k_tmp); - for (uint64_t i = 0; i < kernel_size_k / BLOCK_SIZE; i++) { - for (uint64_t j = 0; j < BLOCK_SIZE / 4096; j++) - { - memset(¶ms, 0, sizeof(params)); - params.data = (uint64_t *)(buffer_k + i * BLOCK_SIZE + j * 4096); - params.size = 4096; - SET_BIT(params.flags, 0); - params.ipa = addr + i * BLOCK_SIZE + j * 4096; - measure_tmi_data_create(meas, ¶ms); - } + for (uint64_t i = 0; i < kernel_size_k / L3_GRANULE; i++) { + memset(¶ms, 0, sizeof(params)); + params.data = (uint64_t *)(buffer_k + i * 4096); + params.size = 4096; + SET_BIT(params.flags, 0); + params.ipa = addr + i * 4096; + measure_tmi_data_create(meas, ¶ms); } /* Useless measurement */ @@ -539,9 +536,9 @@ void generate_rim_reference(const char *kernel_path, const char *dtb_path, measure_create_cvm(&meas, lpa2_enable, sve_enable, pmu_enable, ipa_width, sve_vector_length, num_bps, num_wps, num_pmu, hash_algo); - measure_create_tecs(&meas, loader_start, tec_num); measure_load_data(&meas, loader_start, ram_size, initrd_start, kernel_path, initramfs_path, dtb_path); + measure_create_tecs(&meas, loader_start, tec_num); printf("RIM-"); print_hash(meas.rim, meas.measurement_algo); } -- Gitee