次の方法で共有


XML デジタル署名暗号化拡張機能

CryptXML を使用すると、開発者はシステム全体の暗号化拡張機能 DLL を登録することで、ネイティブでサポートされる暗号化アルゴリズムを拡張できます。 拡張 DLL は、 SignatureMethod および DigestMethod XML 要素でサポートされるアルゴリズムを拡張します。 拡張 DLL では、追加のパラメーターを XML デジタル署名にエンコードするアルゴリズムをサポートできます。

すべての拡張機能 DLL は、CRYPT_XML_CRYPTOGRAPHIC_INTERFACE構造体へのポインターを返す CryptXmlDllGetInterface 関数をサポートする必要があります。 この構造体は、実装されている暗号化拡張機能関数への関数ポインターを提供します。 サポートされる関数は、サポートされている暗号化アルゴリズムの種類と、アルゴリズムでパラメーターを XML デジタル署名にエンコードする必要があるかどうかによって異なります。

暗号化拡張機能関数には、次の関数ポインターが含まれます。

必要な関数

Digest メソッド関数

Signature メソッド関数

既定のエンコードされたパラメーターを持つアルゴリズムの場合

暗号化拡張機能 DLL は、システム全体で登録されます。 暗号化拡張機能 DLL を登録するには、管理者特権が必要です。

すべての CryptXML 暗号化拡張機能は、 SignatureMethod または DigestMethod 要素のアルゴリズム属性フィールドに設定された URI 値によって登録されます。

拡張 DLL のレジストリ パスは次のとおりです。

32 ビット

Hkey_local_machine\ソフトウェア\マイクロソフト\暗号化\CryptXML\Uri\{uri}

64 ビット

Hkey_local_machine\ソフトウェア\マイクロソフト\暗号化\CryptXML\Uri\{uri}

Hkey_local_machine\ソフトウェア\\ WOW6432NODEマイクロソフト\暗号化\CryptXML\Uri\{uri}

各キーには、次の設定が含まれています。

Name Type データ
[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 デジタル署名暗号化アルゴリズム