Skip to content

Commit a8183ca

Browse files
committed
Lock PCR
1 parent 536b6b0 commit a8183ca

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

fortanix-vme/nsm/src/lib.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,17 @@ impl Nsm {
140140
};
141141
nsm_driver::nsm_process_request(self.0, req).try_into()
142142
}
143+
144+
pub fn lock_pcr(&mut self, idx_pcr: u16) -> Result<(), Error> {
145+
let req = Request::LockPCR {
146+
index: idx_pcr,
147+
};
148+
match nsm_driver::nsm_process_request(self.0, req) {
149+
Response::LockPCR => Ok(()),
150+
Response::Error(code) => Err(code.into()),
151+
_ => Err(Error::InvalidResponse),
152+
}
153+
}
143154
}
144155

145156
impl Drop for Nsm {

fortanix-vme/tests/nsm-test/src/main.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,8 @@ fn main() {
3434
println!("pcr16 = {:?}", pcr16);
3535
println!("pcr16 = {:?}", nsm.describe_pcr(16));
3636
assert_eq!(nsm.describe_pcr(16).unwrap().locked, false);
37+
38+
nsm.lock_pcr(16).unwrap();
39+
println!("pcr16 = {:?}", nsm.describe_pcr(10));
40+
assert_eq!(nsm.describe_pcr(16).unwrap().locked, true);
3741
}

0 commit comments

Comments
 (0)