Merge "Send DeleteUsers/DeleteAllUsers to Trusty"
This commit is contained in:
commit
003bf066b2
3 changed files with 53 additions and 7 deletions
|
|
@ -20,11 +20,13 @@
|
||||||
#define GATEKEEPER_MAX_BUFFER_LENGTH 1024
|
#define GATEKEEPER_MAX_BUFFER_LENGTH 1024
|
||||||
|
|
||||||
enum gatekeeper_command {
|
enum gatekeeper_command {
|
||||||
GK_REQ_SHIFT = 1,
|
GK_REQ_SHIFT = 1,
|
||||||
GK_RESP_BIT = 1,
|
GK_RESP_BIT = 1,
|
||||||
|
|
||||||
GK_ENROLL = (0 << GK_REQ_SHIFT),
|
GK_ENROLL = (0 << GK_REQ_SHIFT),
|
||||||
GK_VERIFY = (1 << GK_REQ_SHIFT),
|
GK_VERIFY = (1 << GK_REQ_SHIFT),
|
||||||
|
GK_DELETE_USER = (2 << GK_REQ_SHIFT),
|
||||||
|
GK_DELETE_ALL_USERS = (3 << GK_REQ_SHIFT),
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -133,13 +133,48 @@ Return<void> TrustyGateKeeperDevice::verify(
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
Return<void> TrustyGateKeeperDevice::deleteUser(uint32_t /*uid*/, deleteUser_cb _hidl_cb) {
|
Return<void> TrustyGateKeeperDevice::deleteUser(uint32_t uid, deleteUser_cb _hidl_cb) {
|
||||||
_hidl_cb({GatekeeperStatusCode::ERROR_NOT_IMPLEMENTED, 0, {}});
|
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 {};
|
||||||
}
|
}
|
||||||
|
|
||||||
Return<void> TrustyGateKeeperDevice::deleteAllUsers(deleteAllUsers_cb _hidl_cb) {
|
Return<void> TrustyGateKeeperDevice::deleteAllUsers(deleteAllUsers_cb _hidl_cb) {
|
||||||
_hidl_cb({GatekeeperStatusCode::ERROR_NOT_IMPLEMENTED, 0, {}});
|
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 {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,15 @@ class TrustyGateKeeperDevice : public ::android::hardware::gatekeeper::V1_0::IGa
|
||||||
return Send(GK_VERIFY, request, response);
|
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_;
|
int error_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue