Skip to content

Commit 34137a7

Browse files
Add tests for get_application_key
1 parent 8e653ac commit 34137a7

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

tests/backend.rs

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ use trussed::{
125125
client::{ClientImplementation, HmacSha256},
126126
service::Service,
127127
syscall, try_syscall,
128-
types::Bytes,
128+
types::{Bytes, Message},
129129
virt::{self, Ram},
130130
};
131131
use trussed_auth::{AuthClient as _, PinId, MAX_HW_KEY_LEN};
@@ -658,3 +658,30 @@ fn delete_all_pins() {
658658
assert!(result.is_err());
659659
})
660660
}
661+
662+
#[test]
663+
fn application_key() {
664+
run(BACKENDS, |client| {
665+
let info1 = Message::from_slice(b"test1").unwrap();
666+
let info2 = Message::from_slice(b"test2").unwrap();
667+
let app_key1 = syscall!(client.get_application_key(info1.clone())).key;
668+
let app_key2 = syscall!(client.get_application_key(info2)).key;
669+
let mac1 = syscall!(client.sign_hmacsha256(app_key1, b"Some data")).signature;
670+
let mac2 = syscall!(client.sign_hmacsha256(app_key2, b"Some data")).signature;
671+
// Different info leads to different keys
672+
assert_ne!(mac1, mac2);
673+
674+
let app_key1_again = syscall!(client.get_application_key(info1.clone())).key;
675+
let mac1_again = syscall!(client.sign_hmacsha256(app_key1_again, b"Some data")).signature;
676+
// Same info leads to same key
677+
assert_eq!(mac1, mac1_again);
678+
679+
syscall!(client.delete_all_pins());
680+
681+
// After deletion same info leads to different keys
682+
let app_key1_after_delete = syscall!(client.get_application_key(info1)).key;
683+
let mac1_after_delete =
684+
syscall!(client.sign_hmacsha256(app_key1_after_delete, b"Some data")).signature;
685+
assert_ne!(mac1, mac1_after_delete);
686+
})
687+
}

0 commit comments

Comments
 (0)