Прочитать на английском

Поделиться через


Расширение 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, он должен поддерживать все предыдущие элементы, как описано в базовых функций шифрования и в функции поставщика служб шифрования.