Show information about who has lots of keys
If `list_key_entries` requires truncation to fit in Binder message size,
include the domain/namespace involved.
Test: keystore2_client_tests
Bug: 319563050
Change-Id: I5aa63baddeb62ecf2816d95601d3629f8e1aa87c
diff --git a/keystore2/src/utils.rs b/keystore2/src/utils.rs
index 196cac5..521d8c4 100644
--- a/keystore2/src/utils.rs
+++ b/keystore2/src/utils.rs
@@ -514,6 +514,8 @@
}
fn estimate_safe_amount_to_return(
+ domain: Domain,
+ namespace: i64,
key_descriptors: &[KeyDescriptor],
response_size_limit: usize,
) -> usize {
@@ -538,11 +540,9 @@
// 350KB and return a partial list.
if returned_bytes > response_size_limit {
log::warn!(
- "Key descriptors list ({} items) may exceed binder \
- size, returning {} items est {} bytes.",
+ "{domain:?}:{namespace}: Key descriptors list ({} items) may exceed binder \
+ size, returning {items_to_return} items est {returned_bytes} bytes.",
key_descriptors.len(),
- items_to_return,
- returned_bytes
);
break;
}
@@ -576,7 +576,7 @@
const RESPONSE_SIZE_LIMIT: usize = 358400;
let safe_amount_to_return =
- estimate_safe_amount_to_return(&merged_key_entries, RESPONSE_SIZE_LIMIT);
+ estimate_safe_amount_to_return(domain, namespace, &merged_key_entries, RESPONSE_SIZE_LIMIT);
Ok(merged_key_entries[..safe_amount_to_return].to_vec())
}
@@ -669,9 +669,9 @@
let key_aliases = vec!["key1", "key2", "key3"];
let key_descriptors = create_key_descriptors_from_aliases(&key_aliases);
- assert_eq!(estimate_safe_amount_to_return(&key_descriptors, 20), 1);
- assert_eq!(estimate_safe_amount_to_return(&key_descriptors, 50), 2);
- assert_eq!(estimate_safe_amount_to_return(&key_descriptors, 100), 3);
+ assert_eq!(estimate_safe_amount_to_return(Domain::APP, 1017, &key_descriptors, 20), 1);
+ assert_eq!(estimate_safe_amount_to_return(Domain::APP, 1017, &key_descriptors, 50), 2);
+ assert_eq!(estimate_safe_amount_to_return(Domain::APP, 1017, &key_descriptors, 100), 3);
Ok(())
}