diff options
author | Joonas Kylmälä <joonas.kylmala@iki.fi> | 2020-11-16 15:24:46 -0500 |
---|---|---|
committer | Joonas Kylmälä <joonas.kylmala@iki.fi> | 2020-11-16 15:36:38 -0500 |
commit | 3172c26653c9486118b329189c69bcad7ed35cef (patch) | |
tree | c1c569a260a2c6692ee7b0b3334d309702feab7f /gatekeeper/module.cpp | |
parent | 2ff3eb48b7d073d856525904aa0fe50e65a956ce (diff) | |
download | device_samsung_midas_common-3172c26653c9486118b329189c69bcad7ed35cef.tar.gz device_samsung_midas_common-3172c26653c9486118b329189c69bcad7ed35cef.tar.bz2 device_samsung_midas_common-3172c26653c9486118b329189c69bcad7ed35cef.zip |
Port to Replicant 11
Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi>
Diffstat (limited to 'gatekeeper/module.cpp')
-rw-r--r-- | gatekeeper/module.cpp | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/gatekeeper/module.cpp b/gatekeeper/module.cpp deleted file mode 100644 index a3d678c..0000000 --- a/gatekeeper/module.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <hardware/hardware.h> -#include <hardware/gatekeeper.h> -#define LOG_TAG "I9305Gatekeeper" -#include <cutils/log.h> - -#include <string.h> -#include <errno.h> -#include <stdlib.h> - -#include "SoftGateKeeper.h" -#include "SoftGateKeeperDevice.h" - -using i9305::SoftGateKeeperDevice; - -struct i9305_gatekeeper_device { - gatekeeper_device device; - SoftGateKeeperDevice *s_gatekeeper; -}; - -static i9305_gatekeeper_device s_device; - -static int enroll(const struct gatekeeper_device *dev __unused, uint32_t uid, - const uint8_t *current_password_handle, uint32_t current_password_handle_length, - const uint8_t *current_password, uint32_t current_password_length, - const uint8_t *desired_password, uint32_t desired_password_length, - uint8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length) { - - SoftGateKeeperDevice *s_gatekeeper = ((i9305_gatekeeper_device*)(dev))->s_gatekeeper; - ALOGE("called %s with gate keeper %p device %p\n", __func__, s_gatekeeper, dev); - if (s_gatekeeper == nullptr) { - abort(); - return -EINVAL; - } - - return s_gatekeeper->enroll(uid, - current_password_handle, current_password_handle_length, - current_password, current_password_length, - desired_password, desired_password_length, - enrolled_password_handle, enrolled_password_handle_length); -} - -static int verify(const struct gatekeeper_device *dev __unused, uint32_t uid, uint64_t challenge, - const uint8_t *enrolled_password_handle, uint32_t enrolled_password_handle_length, - const uint8_t *provided_password, uint32_t provided_password_length, - uint8_t **auth_token, uint32_t *auth_token_length, bool *request_reenroll) { - SoftGateKeeperDevice *s_gatekeeper = ((i9305_gatekeeper_device*)(dev))->s_gatekeeper; - ALOGE("called %s with gate keeper %p device %p\n", __func__, s_gatekeeper, dev); - if (s_gatekeeper == nullptr) return -EINVAL; - return s_gatekeeper->verify(uid, challenge, - enrolled_password_handle, enrolled_password_handle_length, - provided_password, provided_password_length, - auth_token, auth_token_length, request_reenroll); -} - -static int close_device(hw_device_t* dev __unused) { - SoftGateKeeperDevice *s_gatekeeper = ((i9305_gatekeeper_device*)(dev))->s_gatekeeper; - if (s_gatekeeper == nullptr) return 0; - delete s_gatekeeper; - s_gatekeeper = nullptr; - ALOGE("called %s with gate keeper %p device %p\n", __func__, s_gatekeeper, dev); - return 0; -} - -static int i9305_gatekeeper_open(const hw_module_t *module, const char *name, - hw_device_t **device) { - - if (strcmp(name, HARDWARE_GATEKEEPER) != 0) { - abort(); - return -EINVAL; - } - - memset(&s_device, 0, sizeof(s_device)); - - SoftGateKeeperDevice *s_gatekeeper = new SoftGateKeeperDevice(); - if (s_gatekeeper == nullptr) return -ENOMEM; - - s_device.s_gatekeeper = s_gatekeeper; - - s_device.device.common.tag = HARDWARE_DEVICE_TAG; - s_device.device.common.version = 1; - s_device.device.common.module = const_cast<hw_module_t *>(module); - s_device.device.common.close = close_device; - - s_device.device.enroll = enroll; - s_device.device.verify = verify; - s_device.device.delete_user = nullptr; - s_device.device.delete_all_users = nullptr; - - *device = &s_device.device.common; - ALOGE("called %s with gate keeper %p device %p\n", __func__, s_gatekeeper, *device); - - return 0; -} - -static struct hw_module_methods_t gatekeeper_module_methods = { - .open = i9305_gatekeeper_open, -}; - -struct gatekeeper_module HAL_MODULE_INFO_SYM __attribute__((visibility("default"))) = { - .common = { - .tag = HARDWARE_MODULE_TAG, - .module_api_version = GATEKEEPER_MODULE_API_VERSION_0_1, - .hal_api_version = HARDWARE_HAL_API_VERSION, - .id = GATEKEEPER_HARDWARE_MODULE_ID, - .name = "I9305 GateKeeper HAL", - .author = "The Android Open Source Project", - .methods = &gatekeeper_module_methods, - .dso = 0, - .reserved = {} - }, -}; |