Глава 12. Интерфейс разработки приложений (API) Библиотеки

API Библиотеки — это гибкий, мощный и современный интерфейс. Он разделен на несколько функциональных уровней: основные части API — ctBaseLib, ctMsgLib и ctCertStoreLib.

Составляющие библиотеки:

Каждая часть Библиотеки разработчика представляет уровень процедур защиты информации:

Таблица 12.1.

БиблиотекаОписание
ctBaseLibЗащита информации от несанкционированного доступа низкого уровня, управление секретными ключами.
ctMsgLibРабота с высокоуровневыми сообщениями и пользовательскими сертификатами.
ctCertStoreLibОбеспечивает унифицированный интерфейс для хранения сертификатов в долгосрочных  хранилищах различных типов.

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

CtMsgLib поддерживает управление пользовательскими сертификатами и высокоуровневыми сообщениями. Сертификат — это подписанный объект, содержащий открытый ключ пользователя, его имя и другие параметры. Он используется для передачи открытых ключей. Сообщение — это конверт стандартного формата, содержащий обработанные данные и другую информацию, зависящую от типа сообщения, которая может включать параметры алгоритма и данные, необходимые для того, чтобы открыть сообщение. Функции этой библиотеки можно использовать для обработки файлов неограниченного размера.

Функции ctCertStoreLib используют для хранения сертификатов. Объекты-сертификаты могут храниться в хранилищах, расположенных на различного типа физических хранилищах (локальная или удалённая файловая система, база данных, LDAP или любое пользовательское устройство хранения). Отдельные модули — провайдеры физических хранилищ (Physical Store Providers — PSP) — управляют хранилищами определённых типов. Не следует обращаться к PSP напрямую, нужно только прикрепить (зарегистрировать) PSP к ctCertStoreLib и затем использовать унифицированный интерфейс для работы с различными хранилищами сертификатов. “ЛАН Крипто” распространяет PSP для файловых хранилищ (PSPFile), баз данных через ADO (PSPADO), LDAP-хранилищ сертификатов (PSPLDAP); любой может написать собственный PSP для использования в ctCertStoreLib.

Модель программирования Библиотеки:

Разнообразные объекты защиты информации от несанкционированного доступа (контейнеры секретных ключей, ключи, сертификаты, сообщения, хранилища и т.п.) представляются в Библиотеке с помощью контекстов. Контекст включает в себя данные, относящиеся к объекту, и с его помощью производится управление этими данными. Приложения могут осуществлять доступ к объектам по их описателям контекстов. В целом использование объекта  защиты информации включает следующие шаги: