summaryrefslogtreecommitdiff
path: root/hmac_key.cpp
diff options
context:
space:
mode:
authorShawn Willden <swillden@google.com>2015-05-26 08:31:37 -0600
committerShawn Willden <swillden@google.com>2015-05-26 10:21:38 -0600
commit0cb6942d3efb6c056f96321c82a4b3d86af601d6 (patch)
treecd34b5b3afdce65e41c47436944048cec90db97d /hmac_key.cpp
parent13fbe3e93247943c26e7ca2ed27b6d650282b8bf (diff)
downloadkeymaster-0cb6942d3efb6c056f96321c82a4b3d86af601d6.tar.gz
Revert "Revert "Large refactor to move context out of AndroidKeymaster.""
This reverts commit 13fbe3e93247943c26e7ca2ed27b6d650282b8bf. Bug: 20912868, 19799085 Change-Id: Iadd6ce5cbe94956c2a2fe277f1bf5b108e4bcf57
Diffstat (limited to 'hmac_key.cpp')
-rw-r--r--hmac_key.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/hmac_key.cpp b/hmac_key.cpp
index 294832d..1f2e4a4 100644
--- a/hmac_key.cpp
+++ b/hmac_key.cpp
@@ -23,12 +23,18 @@
namespace keymaster {
-Key* HmacKeyFactory::LoadKey(const UnencryptedKeyBlob& blob, keymaster_error_t* error) {
- return new HmacKey(blob, error);
-}
+keymaster_error_t HmacKeyFactory::LoadKey(const KeymasterKeyBlob& key_material,
+ const AuthorizationSet& hw_enforced,
+ const AuthorizationSet& sw_enforced,
+ UniquePtr<Key>* key) {
+ if (!key)
+ return KM_ERROR_OUTPUT_PARAMETER_NULL;
-SymmetricKey* HmacKeyFactory::CreateKey(const AuthorizationSet& auths) {
- return new HmacKey(auths);
+ keymaster_error_t error;
+ key->reset(new HmacKey(key_material, hw_enforced, sw_enforced, &error));
+ if (!key->get())
+ error = KM_ERROR_MEMORY_ALLOCATION_FAILED;
+ return error;
}
} // namespace keymaster