XML 數位簽章密碼編譯延伸模組

CryptXML 可讓開發人員藉由註冊全系統的密碼編譯擴充 DLL 來擴充原生支援的密碼編譯演算法。 擴充 DLL 會擴充 SignatureMethodDigestMethod XML 元素支援的演算法。 擴充 DLL 可支援將其他參數編碼為 XML 數位簽章的演算法。

所有延伸模組 DLL 都必須支援 CryptXmlDllGetInterface 函式,此函式會傳回 CRYPT_XML_CRYPTOGRAPHIC_INTERFACE 結構的指標。 此結構提供實作密碼編譯擴充函式的函式指標。 支援的函式取決於支援的密碼編譯演算法類型,以及演算法是否必須將參數編碼為 XML 數位簽章。

密碼編譯延伸模組函式包含下列函式指標:

必要函式

Digest 方法函式

Signature 方法函式

針對具有預設編碼參數的演算法

密碼編譯擴充 DLL 會以整個系統為基礎註冊。 需要系統管理員許可權才能註冊密碼編譯延伸模組 DLL。

所有 CryptXML 密碼編譯延伸模組都是由 SignatureMethod 中設定的 URI 值或 DigestMethod 元素的演算法屬性欄位所註冊。

延伸模組 DLL 的登錄路徑如下所示:

32 位

\ HKEY_LOCAL_MACHINE軟體\微軟\密碼\CryptXML\Uri\{uri}

64 位

\ HKEY_LOCAL_MACHINE軟體\微軟\密碼\CryptXML\Uri\{uri}

\ HKEY_LOCAL_MACHINE軟體\\ WOW6432NODE微軟\密碼\CryptXML\Uri\{uri}

每個索引鍵都包含下列設定。

名稱 類型 資料
DLL
可展開的字串
必要。
XML 密碼編譯提供者 DLL 的絕對路徑。
**注意:**我們建議密碼編譯擴充 DLL 位於只能由具有系統管理許可權的應用程式寫入的目錄中。
LoadLibrary 可用來載入密碼編譯延伸模組 DLL。
名稱
String 選擇性。
與此 URI 相關聯的顯示名稱。
GroupId
DWORD 必要。
與此密碼編譯演算法相關聯的群組識別碼。 可能的值包括下列:CRYPT_XML_GROUP_ID_HASH< strong > = 1
< CRYPT_XML_GROUP_ID_SIGNstrong > = 2
CNGAlgid
String 必要。
要傳遞至 BCrypt 或 NCrypt 函式的 CNG 演算法名稱。
CNGExtraAlgid
String 選擇性。
CNGAlgid 成員中的字串以外的額外演算法字串,可以傳遞至 CNG 函式。
對於簽章演算法 (CRYPT_XML_GROUP_ID_SIGN) ,此成員是傳遞至 CNG 函式的公開金鑰演算法字串。
對於 GroupId 的其他值,請將 pwszCNGExtraAlgid 成員設定為空字串 L「」。

 

XML 數位簽章密碼編譯演算法