Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширяемость достигается путем использования новых идентификаторов объектов (OID), новых типов кодировки и новых библиотек DLL.
OIDs CryptoAPI может принимать любые из следующих форм:
- Числовая строка, например "1.2.3.500.88"
- Буквенно-цифровые строки, такие как MyFunction
- Константы со значением, которое меньше или равно 0xFFFF. Эти константы часто связаны с именем с помощью инструкции #define в файле заголовка.
Расширяемые функции принимают аргументы типа OID и кодировки. Эти функции выполняют поиск системного реестра, чтобы найти библиотеку DLL, связанную с аргументами типа OID и кодировки, переданными функции. Если библиотека DLL для комбинации OID и типа кодирования найдена, она загружается и вызывается ее функция. На следующем рисунке показан этот поток для функции CryptEncodeObject:
Это позволяет расширить функциональные возможности CryptoAPI по мере возникновения необходимости. Использование этой методологии накладывает бремя на разработчика новых функциональных возможностей для написания всего необходимого кода для этой функции. Чтобы закодировать новую структуру данных, например, функция в библиотеке DLL должна выполнять весь процесс кодирования.