vold: add support for clear key
Add support for clearing key in trustzone and ICE
when a user is deleted.
CRs-Fixed: 2334473
Change-Id: I5fd75aaa3b35145b744bed384dc3c842185ff267
diff --git a/Ext4Crypt.cpp b/Ext4Crypt.cpp
index 4b3aeb3..6b5c74d 100644
--- a/Ext4Crypt.cpp
+++ b/Ext4Crypt.cpp
@@ -483,7 +483,6 @@
}
static bool evict_ce_key(userid_t user_id) {
- s_ce_keys.erase(user_id);
bool success = true;
std::string raw_ref;
// If we haven't loaded the CE key, no need to evict it.
@@ -491,6 +490,23 @@
success &= android::vold::evictKey(raw_ref);
drop_caches();
}
+
+ if(is_wrapped_key_supported()) {
+ KeyBuffer key;
+ key = s_ce_keys[user_id];
+
+ std::string keystr(key.data(), key.size());
+ Keymaster keymaster;
+
+ if (!keymaster) {
+ s_ce_keys.erase(user_id);
+ s_ce_key_raw_refs.erase(user_id);
+ return false;
+ }
+ keymaster.deleteKey(keystr);
+ }
+
+ s_ce_keys.erase(user_id);
s_ce_key_raw_refs.erase(user_id);
return success;
}