Криптографические расширения цифровой подписи XML
CryptXML позволяет разработчикам расширять криптографические алгоритмы, поддерживаемые в собственном коде, регистрируя библиотеку DLL-библиотеки расширения шифрования на уровне системы. Библиотеки DLL расширений расширяют алгоритмы, поддерживаемые XML-элементами SignatureMethod и DigestMethod . Библиотеки DLL расширений могут поддерживать алгоритмы, которые кодируют дополнительные параметры в цифровой подписи XML.
Все библиотеки DLL расширений должны поддерживать функцию CryptXmlDllGetInterface , которая возвращает указатель на структуру CRYPT_XML_CRYPTOGRAPHIC_INTERFACE . Эта структура предоставляет указатели на функции для реализованных функций расширения шифрования. Поддерживаемые функции зависят от типа поддерживаемого алгоритма шифрования и от того, должен ли алгоритм кодировать параметры в цифровую подпись XML.
Функции криптографических расширений включают следующие указатели функций:
-
Обязательные функции
-
Функции метода Digest
-
Функции метода signature
-
Для алгоритмов с параметрами по умолчанию
Библиотеки DLL криптографического расширения регистрируются на уровне всей системы. Для регистрации библиотеки DLL криптографического расширения требуются права администратора.
Все криптографические расширения CryptXML регистрируются значением URI, заданным в поле SignatureMethod или атрибутом алгоритма элемента DigestMethod .
Ниже приведены пути реестра для библиотек DLL расширений.
-
32-разрядная версия
-
HKEY_LOCAL_MACHINE\ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ\Microsoft\Криптографии\CryptXML\URI\{uri}
-
64-разрядная версия
-
HKEY_LOCAL_MACHINE\ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ\Microsoft\Криптографии\CryptXML\URI\{uri}
HKEY_LOCAL_MACHINE\ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ\\ WOW6432NODEMicrosoft\Криптографии\CryptXML\URI\{uri}
Каждый ключ содержит следующие параметры.
Имя | Тип | Данные |
---|---|---|
DLL |
Расширяемая строка |
Обязательный. Абсолютный путь к библиотеке DLL поставщика шифрования XML. **Примечание. **Библиотеки DLL криптографического расширения рекомендуется размещать в каталогах, в которые могут записываться только приложения с правами администратора. LoadLibrary используется для загрузки библиотеки DLL криптографического расширения. |
Имя |
String | Необязательный элемент. Отображаемое имя, связанное с этим URI. |
GroupId |
DWORD | Обязательный. Идентификатор группы, связанный с этим алгоритмом шифрования. Возможные значения: CRYPT_XML_GROUP_ID_HASH<strong> = 1 < CRYPT_XML_GROUP_ID_SIGNstrong> = 2 |
CNGAlgid |
String | Обязательный. Имя алгоритма CNG, передаваемого в функции BCrypt или NCrypt. |
CNGExtraAlgid |
String | Необязательный элемент. Дополнительная строка алгоритма, отличающаяся от строки в элементе CNGAlgid, которую можно передать в функции CNG. Для алгоритмов подписи (CRYPT_XML_GROUP_ID_SIGN) этот член является строкой алгоритма открытого ключа, передаваемой функциям CNG. Для других значений GroupId задайте для члена pwszCNGExtraAlgid пустую строку L "". |
Связанные темы