Библиотека сертификатов и сообщений (ctMsgLib) предоставляет высокоуровневый интерфейс к процедурам управления сертификатами и обработки сообщений.
Общий обзор:
Библиотека поддерживает все общеиспользуемые сертификационные объекты:
cертификат — подписанные данные, содержащие имя пользователя, открытый ключ, параметры алгоритма и другую информацию. Обычно сертификаты подписывает доверенная организация, называемая Certification Authority (CA) или Центром Сертификации (ЦС). Это обеспечивает секретный способ обмена открытыми ключами между пользователями системы безопасности.
запрос на сертификат — подписанные данные, содержащую информацию, требуемую для создания сертификата. Запрос подписывается пользователем и отправляется в ЦС на обработку. ЦС создаёт сертификат по информации запроса.
CMC запрос/ответ — этот объект используется для взаимодействия с ЦС. Запрос может содержать несколько запросов на сертификацию и набор дополнительных атрибутов. Ответ посылается Центром Сертификации на каждый запрос CMC.
список аннулированных сертификатов (Certificate revokation list, CRL) — подписанные данные, содержащие список сертификатов, которые были аннулированы (отменены) в ЦС и не могут использоваться с момента аннулирования. CRL подписывается ЦС и периодически рассылается пользователям.
список доверенных сертификатов (Certificate trust list, CTL) — капсула с данными, содержащими список сертификатов, которые являются доверенными на использование без проверки подписи. Он должен содержать, как минимум, самоподписанный сертификат ЦС. Каждый пользователь хранит CTL на своём компьютере.
цепь сертификатов — капсула с данными, содержащая несколько сертификатов, представляющими путь сертификации.
цепь объектов — капсула с данными, содержащая внутри набор любых объектов.
Сертификаты, используемые в настоящей библиотеке, полностью удовлетворяет международному стандарту X.509 (стандарт, используемый для хранения дополнительной информации в сертификационных объектах), включая его расширения версии 3.
конверт сообщений — сообщения, содержащие криптографически обработанные данные и связанную с ними информацию, необходимую для его открывания.
CtMsgLib поддерживает определённое количество общеиспользуемых типов (стандарта PKCS #7) содержимого сообщений для хэшированных, подписанных или закодированных данных.
Формат PKCS #7 описывает общий синтаксис сообщения. Этот синтаксис допускает рекурсию, при которой, например, один конверт может находиться внутри другого, или пользователь может подписать данные, хотя они были уже помещены в конверт другим пользователем. Также доступны произвольные расширения — атрибуты, такие как подписанное время, эти атрибуты подписываются вместе с содержимым конверта.
Функции библиотеки ctMsgLib предусматривают управление сертификатами и обработкой сообщений. Они предоставляют возможность:
-открыть новый контекст для объекта указанного типа -добавить ссылку в контекст
-закрыть контекст и освободить захваченную память -получить свойства контекста объекта
-установить свойства контекста объекта
-передавать данные между контекстами, добавляя один объект ко другому -фиксировать и подписывать данные объекта -проверить подлинность полей и подписи объекта -получить информацию о последней ошибке
Следующие структуры ctMsgLib содержат всю необходимую для работы информацию:
информация об алгоритме сертификата
информация об OID (уникальный идентификатор алгоритма. Используется для описания алгоритмов с открытым ключом и подписи в сертификационных объектах формата X.509)
информация о свойстве объекта-сертификата
информация о результате последнего вызова функции
информация о сертификате пользователе
К константам ctMsgLib относятся:
параметры провайдера (напр., информация о версии библиотеки, или о значении OID, возвращаемая по идентификатору OID)
параметры контекста объекта-сертификата (включает статус контекста, информацию о пользователе, информацию об открытом ключе)
типы и поля объектов: сертификат, запрос на сертификат, CMC запрос/ответ, список аннулированных сертификатов, список доверенных сертификатов, цепь сертификатов, цепь объектов, конверт сообщений
типы содержимого сообщений: данные, хэшированный тип, подписанный тип, закодированный тип, закодированный с паролем, заархивированный
типы полей объектов: булево, большое целое переменной длины, битовая строка, номер, идентификатор объекта (OID), дата и время, текстовая строка, двоичные данные, составное поле
информация о пользователе
расширения Х.509 (здесь хранится дополнительная информация о сертификационных объектах)
идентификаторы алгоритмов, значения OID
коды возврата
С помощью ctMsgLib Вы можете свободно работать с сертификационными объектами и сообщениями. В документации (.chm) к .Библиотеке приведены примеры:
создания сертификата по запросу
создания законченного сообщения
и другие примеры.
создания запроса на сертификат