Как создать '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;
}

Заранее спасибо!

0 ответов

Другие вопросы по тегам