Skip to content

Commit 003bf06

Browse files
marconeGerrit Code Review
authored andcommitted
Merge "Send DeleteUsers/DeleteAllUsers to Trusty"
2 parents dfab416 + 53dc3c9 commit 003bf06

File tree

3 files changed

+53
-7
lines changed

3 files changed

+53
-7
lines changed

trusty/gatekeeper/gatekeeper_ipc.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@
2020
#define GATEKEEPER_MAX_BUFFER_LENGTH 1024
2121

2222
enum gatekeeper_command {
23-
GK_REQ_SHIFT = 1,
24-
GK_RESP_BIT = 1,
23+
GK_REQ_SHIFT = 1,
24+
GK_RESP_BIT = 1,
2525

26-
GK_ENROLL = (0 << GK_REQ_SHIFT),
27-
GK_VERIFY = (1 << GK_REQ_SHIFT),
26+
GK_ENROLL = (0 << GK_REQ_SHIFT),
27+
GK_VERIFY = (1 << GK_REQ_SHIFT),
28+
GK_DELETE_USER = (2 << GK_REQ_SHIFT),
29+
GK_DELETE_ALL_USERS = (3 << GK_REQ_SHIFT),
2830
};
2931

3032
/**

trusty/gatekeeper/trusty_gatekeeper.cpp

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,13 +133,48 @@ Return<void> TrustyGateKeeperDevice::verify(
133133
return {};
134134
}
135135

136-
Return<void> TrustyGateKeeperDevice::deleteUser(uint32_t /*uid*/, deleteUser_cb _hidl_cb) {
137-
_hidl_cb({GatekeeperStatusCode::ERROR_NOT_IMPLEMENTED, 0, {}});
136+
Return<void> TrustyGateKeeperDevice::deleteUser(uint32_t uid, deleteUser_cb _hidl_cb) {
137+
if (error_ != 0) {
138+
_hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
139+
return {};
140+
}
141+
142+
DeleteUserRequest request(uid);
143+
DeleteUserResponse response;
144+
auto error = Send(request, &response);
145+
146+
if (error != ERROR_NONE) {
147+
_hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
148+
} else if (response.error == ERROR_NOT_IMPLEMENTED) {
149+
_hidl_cb({GatekeeperStatusCode::ERROR_NOT_IMPLEMENTED, 0, {}});
150+
} else if (response.error != ERROR_NONE) {
151+
_hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
152+
} else {
153+
_hidl_cb({GatekeeperStatusCode::STATUS_OK, response.retry_timeout, {}});
154+
}
138155
return {};
139156
}
140157

141158
Return<void> TrustyGateKeeperDevice::deleteAllUsers(deleteAllUsers_cb _hidl_cb) {
142-
_hidl_cb({GatekeeperStatusCode::ERROR_NOT_IMPLEMENTED, 0, {}});
159+
if (error_ != 0) {
160+
_hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
161+
return {};
162+
}
163+
164+
DeleteAllUsersRequest request;
165+
DeleteAllUsersResponse response;
166+
auto error = Send(request, &response);
167+
168+
if (error != ERROR_NONE) {
169+
_hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
170+
} else if (response.error == ERROR_NOT_IMPLEMENTED) {
171+
_hidl_cb({GatekeeperStatusCode::ERROR_NOT_IMPLEMENTED, 0, {}});
172+
} else if (response.error != ERROR_NONE) {
173+
_hidl_cb({GatekeeperStatusCode::ERROR_GENERAL_FAILURE, 0, {}});
174+
} else {
175+
_hidl_cb({GatekeeperStatusCode::STATUS_OK, response.retry_timeout, {}});
176+
}
177+
143178
return {};
144179
}
145180

trusty/gatekeeper/trusty_gatekeeper.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,15 @@ class TrustyGateKeeperDevice : public ::android::hardware::gatekeeper::V1_0::IGa
8181
return Send(GK_VERIFY, request, response);
8282
}
8383

84+
gatekeeper_error_t Send(const DeleteUserRequest& request, DeleteUserResponse* response) {
85+
return Send(GK_DELETE_USER, request, response);
86+
}
87+
88+
gatekeeper_error_t Send(const DeleteAllUsersRequest& request,
89+
DeleteAllUsersResponse* response) {
90+
return Send(GK_DELETE_ALL_USERS, request, response);
91+
}
92+
8493
int error_;
8594
};
8695

0 commit comments

Comments
 (0)