Как создать 'es_client_t' с помощью API EndpointSecurity?
Мы обязаны обрабатывать события kauth с помощью API EndpointSecurity.
Мы используем Xcode Beta 2 и macOS Catalina beta 3.
SIP отключен. И мы запускаем исполняемый файл с рутом из терминального приложения. Добавлено com.apple.developer.endpoint-security.client.
Запрос:
Мы не можем создать объект es_client_t с помощью es_new_client().
es_new_client() всегда возвращает 'ES_NEW_CLIENT_RESULT_ERR_INVALID_ARGUMENT'
Пожалуйста, сообщите нам, как создать нового клиента? Какими должны быть правильные аргументы?
Ниже приведен ссылочный код.
int main(int argc, const char * argv[])
{
@autoreleasepool
{
NSLog(“Starting endpoint security...");
es_client_t *client = NULL;
es_new_client_result_t res = es_new_client(&client, ^(es_client_t *client, const es_message_t *message) {
log_message(message);
// For now just auth everything
if (message->action_type == ES_ACTION_TYPE_AUTH)
{
es_respond_result_t res = es_respond_auth_result(client, message, ES_AUTH_RESULT_ALLOW, false);
if (res != ES_RESPOND_RESULT_SUCCESS)
{
NSLog(@"es_respond_auth_result failed: %d", res);
}
}
});
if (res != ES_NEW_CLIENT_RESULT_SUCCESS)
{
NSLog(@"es_new_client failed: %d" , res);
os_log_error(OS_LOG_DEFAULT, "es_new_client failed: %d", res);
exit(1);
}
}
return 0;
}
Заранее спасибо!