Расширение CryptoAPI
CryptoAPI разработан для упрощения расширения. Чтобы адаптировать CryptoAPI к требованиям разнообразных ситуаций, новые типы и параметры могут быть определены любым автором поставщика криптографических служб (CSP) .
Расширяемые элементы | Комментарий |
---|---|
Типы поставщиков |
Тип поставщика представляет определенное семейство или тип криптографических служб. Можно определить новые типы поставщиков, каждый обслуживающий определенную нишу. |
Параметры поставщика |
Параметры провайдера передаются и принимаются с помощью CPSetProvParam и CPGetProvParamсоответственно. Новые параметры поставщика могут разрешить настройку CSP способами, которые не предвидят конструкторы CryptoAPI. |
Идентификаторы алгоритма |
Средства перечисления CPGetProvParam позволяют приложениям динамически перечислять идентификаторы алгоритмов. Новые симметричные, открытый ключи алгоритмы хэша можно определить в любое время. |
Типы пар открытого илизакрытого ключа |
В то время как новые типы пар ключей могут быть определены по мере необходимости, в настоящее время используются только пары ключей для подписей и обмена . |
Ключевые типы BLOB-объектов |
Новые типы ключей BLOB позволяют обмениваться ключами сеансов, открытыми ключами и парами открытых и закрытых ключей гибким образом с помощью функций CPExportKey и CPImportKey. |
Ключевые параметры |
Ключевые параметры отправляются и извлекаются с помощью CPSetKeyParam и CPGetKeyParam. Новые ключевые параметры могут включать поддержку различных типов ключей. |
Параметры хэш-объекта |
Параметры хэш-объекта отправляются и извлекаются с помощью CPSetHashParam и CPGetHashParam. Новые параметры хэш-объекта могут обеспечить поддержку множества различных типов хэшей . |
Значения флага |
Большинство функций CryptoAPI/CryptoSPI имеют параметр dwFlags. Новые dwFlags значения могут изменить поведение функций по мере необходимости. |
Расширения в CryptoAPI должны выполняться ответственно. Перед определением новых параметров и типов алгоритмов разработчик CSP должен обратиться к корпорации Майкрософт, чтобы:
- Общие расширения CryptoAPI можно определить и поместить в стандартный файл Wincrypt.h.
- Можно избежать конфликтов пространства имён.
- Его можно определить, требуется ли расширение или можно ли достичь определенной операции с помощью текущего API.
Примечание
Чтобы поставщик служб CSP был совместим с приложениями, разработанными для поставщика шифрования Microsoft Base, он должен поддерживать все предыдущие элементы, как описано в базовых функций шифрования и в функции поставщика служб шифрования.