Skip to content

Commit 18c94ec

Browse files
OuyangHang33jyao1
authored andcommitted
Read metadata buffer size from descriptor
Signed-off-by: Ouyang, Hang <[email protected]>
1 parent 2880f76 commit 18c94ec

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

td-shim-tools/src/tee_info_hash.rs

+12-6
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ use std::io::Read;
1414
use std::io::Seek;
1515
use std::io::SeekFrom;
1616
use std::mem::size_of;
17-
use td_layout::build_time::TD_SHIM_METADATA_SIZE;
1817
use td_shim::metadata::*;
1918
use zeroize::Zeroize;
2019

@@ -243,11 +242,9 @@ impl TdInfoStruct {
243242
.seek(SeekFrom::Start(metadata_off as u64))
244243
.unwrap();
245244

246-
let mut metadata_buf = [0; TD_SHIM_METADATA_SIZE as usize];
247-
248-
raw_image_file.read_exact(&mut metadata_buf).unwrap();
249-
250-
let desc = &metadata_buf[size_of::<TdxMetadataGuid>()..];
245+
let mut desc_buf = [0; size_of::<TdxMetadataGuid>() + size_of::<TdxMetadataDescriptor>()];
246+
raw_image_file.read_exact(&mut desc_buf).unwrap();
247+
let desc = &desc_buf[size_of::<TdxMetadataGuid>()..];
251248

252249
// Signature 0 CHAR8[4] 4 'TDVF' signature
253250
// Length 4 UINT32 4 Size of the structure (d)
@@ -261,6 +258,15 @@ impl TdInfoStruct {
261258
panic!("The descriptor is not valid!\n");
262259
}
263260

261+
raw_image_file
262+
.seek(SeekFrom::Start(
263+
metadata_off as u64 + size_of::<TdxMetadataGuid>() as u64,
264+
))
265+
.unwrap();
266+
let mut metadata_buf = vec![0; descriptor.length as usize];
267+
raw_image_file.read_exact(&mut metadata_buf).unwrap();
268+
let desc = &metadata_buf[0..];
269+
264270
desc_offset += size_of::<TdxMetadataDescriptor>();
265271

266272
let mut buffer128: [u8; MRTD_EXTENSION_BUFFER_SIZE] = [0; MRTD_EXTENSION_BUFFER_SIZE]; // used by page add

0 commit comments

Comments
 (0)