diff options
author | Janis Danisevskis <jdanis@google.com> | 2017-05-11 10:56:27 -0700 |
---|---|---|
committer | Janis Danisevskis <jdanis@google.com> | 2017-10-02 12:30:41 -0700 |
commit | 1455d2ea9966089cac31c1f46542e74e9925e995 (patch) | |
tree | f931b32697badecef48394318c9784574e3b47e9 /android_keymaster | |
parent | d8091853875f77a7646881b1ebc219a52dca81b7 (diff) | |
download | android_system_keymaster-1455d2ea9966089cac31c1f46542e74e9925e995.tar.gz android_system_keymaster-1455d2ea9966089cac31c1f46542e74e9925e995.tar.bz2 android_system_keymaster-1455d2ea9966089cac31c1f46542e74e9925e995.zip |
Removed KeymasterEnforcement dependencies on openssl
KeymasterEnforcement is part of the AndroidKeymaster core logic.
It had implementation details that depend on openssl.
The core logic shall have speciall libray dependencies (e.g., openssl).
This patch removes implementation details from Keymasterenforcement and
provides a new module soft_keymaster_enforcement which implements these
details.
Test: VtsHalKeymasterV3_0TargetTest
Bug: 67358942
Change-Id: Iff481de1a04308cba7e0ecc9ade54a68b8ef4411
Diffstat (limited to 'android_keymaster')
-rw-r--r-- | android_keymaster/keymaster_enforcement.cpp | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/android_keymaster/keymaster_enforcement.cpp b/android_keymaster/keymaster_enforcement.cpp index 20be041..28160e5 100644 --- a/android_keymaster/keymaster_enforcement.cpp +++ b/android_keymaster/keymaster_enforcement.cpp @@ -386,34 +386,6 @@ keymaster_error_t KeymasterEnforcement::AuthorizeBegin(const keymaster_purpose_t return KM_ERROR_OK; } -class EvpMdCtx { - public: - EvpMdCtx() { EVP_MD_CTX_init(&ctx_); } - ~EvpMdCtx() { EVP_MD_CTX_cleanup(&ctx_); } - - EVP_MD_CTX* get() { return &ctx_; } - - private: - EVP_MD_CTX ctx_; -}; - -/* static */ -bool KeymasterEnforcement::CreateKeyId(const keymaster_key_blob_t& key_blob, km_id_t* keyid) { - EvpMdCtx ctx; - - uint8_t hash[EVP_MAX_MD_SIZE]; - unsigned int hash_len; - if (EVP_DigestInit_ex(ctx.get(), EVP_sha256(), nullptr /* ENGINE */) && - EVP_DigestUpdate(ctx.get(), key_blob.key_material, key_blob.key_material_size) && - EVP_DigestFinal_ex(ctx.get(), hash, &hash_len)) { - assert(hash_len >= sizeof(*keyid)); - memcpy(keyid, hash, sizeof(*keyid)); - return true; - } - - return false; -} - bool KeymasterEnforcement::MinTimeBetweenOpsPassed(uint32_t min_time_between, const km_id_t keyid) { if (!access_time_map_) return false; |