Add support for metadata encryption

Support encrypting metadata in /userdata using the dm-default-key
driver with a key in the /metadata partition.

Bug: 29189559
Test: Angler & Marlin build and boot
Change-Id: I716b117508d4bb4f6a4039293acb848cbc60f67b
diff --git a/KeyUtil.h b/KeyUtil.h
index 56cb189..f8fb634 100644
--- a/KeyUtil.h
+++ b/KeyUtil.h
@@ -36,11 +36,14 @@
     uint32_t size;
 };
 
+std::string keyname(const std::string& raw_ref);
 bool randomKey(std::string* key);
 bool installKey(const std::string& key, std::string* raw_ref);
 bool evictKey(const std::string& raw_ref);
 bool retrieveAndInstallKey(bool create_if_absent, const std::string& key_path,
                            const std::string& tmp_path, std::string* key_ref);
+bool retrieveKey(bool create_if_absent, const std::string& key_path,
+                 const std::string& tmp_path, std::string* key);
 
 }  // namespace vold
 }  // namespace android