Использование разделяемой библиотеки

Разделяемая библиотека представляет собой стандартную Си-библиотеку. Взаимодействие ведётся через #include <acrauth.h>

Библиотека предлагает следующие функции:

Установка параметров и контекста

По умолчанию библиотека работает с базой данных SQLite, поддержка сохранения данных в которых есть во всех окружениях и ОС. Перед началом работы необходимо установить путь к этой базе данных следующим образом:

void act_set_db_path(const char* path);

Далее необходимо установить сикрет (симметричный ключ, которым зашифрованы данные в базе):

void acr_set_aes_secret(const char* secret);

После установки этих параметров можно смело переходить к проведениям операций с библиотекой

Получение списка локальных ключей

За получение UUID сохранённых на устройстве ключей по имени сервера отвечает следующая функция:

char** acr_get_local_keys(const char* server_name);

Возвращает массив указателей на Си-строки, оканчивающийся нулём (null-pointer). В случае отсутствия в базе сохранённых ключей с обозначенным server_name вернётся один нулевой указатель

Процесс получения списка всех ключей пользователя

char** acr_get_user_keys(const char* key_id);

Возвращает все ключи пользователя, которому принадлежит ключ key_id.

Процесс отзыва ключа

char* acr_inval_key(const char* key_id);

Инвалидирует ключ, в случае успеха возвращает 0, иначе - текст ошибки.

Процесс регистрации

char* acr_register(const char* idm, const char* register, const char* auth, const char* server_name, const char* secret);

Функции требуется передать все параметры из MiME-ссылки, с помощью которой аутентификатору будет передано управление с сайта

Возвращает 0 в случае успешной аутентификации, иначе - текст ошибки

Процесс аутентификации

char* acr_auth(const char* server_name, const char* key_id);

Функции требуется передать server_name из MiME-ссылки и ID ключа, с помощью которого требуется провести аутентификацию (так как поддерживается сохранение нескольких ключей на один веб-сервис)

Возвращает 0 в случае успеха, иначе - текст ошибки