Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 003bf066 authored by Marco Nelissen's avatar Marco Nelissen Committed by Gerrit Code Review
Browse files

Merge "Send DeleteUsers/DeleteAllUsers to Trusty"

parents dfab4161 53dc3c99
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ enum gatekeeper_command {

    GK_ENROLL = (0 << GK_REQ_SHIFT),
    GK_VERIFY = (1 << GK_REQ_SHIFT),
    GK_DELETE_USER = (2 << GK_REQ_SHIFT),
    GK_DELETE_ALL_USERS = (3 << GK_REQ_SHIFT),
};

/**
+38 −3
Original line number Diff line number Diff line
@@ -133,13 +133,48 @@ Return<void> TrustyGateKeeperDevice::verify(
    return {};
}

Return<void> TrustyGateKeeperDevice::deleteUser(uint32_t /*uid*/, deleteUser_cb _hidl_cb) {
Return<void> TrustyGateKeeperDevice::deleteUser(uint32_t uid, deleteUser_cb _hidl_cb) {
    if (error_ != 0) {
        _hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
        return {};
    }

    DeleteUserRequest request(uid);
    DeleteUserResponse response;
    auto error = Send(request, &response);

    if (error != ERROR_NONE) {
        _hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
    } else if (response.error == ERROR_NOT_IMPLEMENTED) {
        _hidl_cb({GatekeeperStatusCode::ERROR_NOT_IMPLEMENTED, 0, {}});
    } else if (response.error != ERROR_NONE) {
        _hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
    } else {
        _hidl_cb({GatekeeperStatusCode::STATUS_OK, response.retry_timeout, {}});
    }
    return {};
}

Return<void> TrustyGateKeeperDevice::deleteAllUsers(deleteAllUsers_cb _hidl_cb) {
    if (error_ != 0) {
        _hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
        return {};
    }

    DeleteAllUsersRequest request;
    DeleteAllUsersResponse response;
    auto error = Send(request, &response);

    if (error != ERROR_NONE) {
        _hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
    } else if (response.error == ERROR_NOT_IMPLEMENTED) {
        _hidl_cb({GatekeeperStatusCode::ERROR_NOT_IMPLEMENTED, 0, {}});
    } else if (response.error != ERROR_NONE) {
        _hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
    } else {
        _hidl_cb({GatekeeperStatusCode::STATUS_OK, response.retry_timeout, {}});
    }

    return {};
}

+9 −0
Original line number Diff line number Diff line
@@ -81,6 +81,15 @@ class TrustyGateKeeperDevice : public ::android::hardware::gatekeeper::V1_0::IGa
        return Send(GK_VERIFY, request, response);
    }

    gatekeeper_error_t Send(const DeleteUserRequest& request, DeleteUserResponse* response) {
        return Send(GK_DELETE_USER, request, response);
    }

    gatekeeper_error_t Send(const DeleteAllUsersRequest& request,
                            DeleteAllUsersResponse* response) {
        return Send(GK_DELETE_ALL_USERS, request, response);
    }

    int error_;
};