IWSDSignatureProperty
COM公式ドキュメント
署名されたメッセージのプロパティを提供します。
解説(Remarks)
アプリケーションは、IWSDiscoveredService の QueryInterface メソッドを呼び出すことで、このインターフェイスを取得できます。
IWSDSignatureProperty は、独自に署名の検証を行いたいアプリケーションで役立ちます。WSDCreateDiscoveryProvider2 の pConfigParam に NULL を渡すと内部の署名検証が無効になり、プロバイダーはこれらのプロパティを調べることで独自の検証を実行できます。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
メッセージが署名されているかどうかを示します。
| pbSigned | BOOL* | out | メッセージの署名が署名済みかどうかを示すブール値へのポインター。 |
戻り値
戻り値には、以下のものが含まれます (ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
メッセージの署名が信頼されているかどうかを示します。
| pbSignatureTrusted | BOOL* | out | メッセージの署名が信頼されているかどうかを示すブール値へのポインター。 |
戻り値
戻り値には、以下のものが含まれます (ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
署名に使用された証明書が、呼び出し元のアプリケーションが WSDCreateDiscoveryProvider2 の呼び出しで渡した証明書のいずれか、または証明書ストアに含まれている場合、そのメッセージは信頼されます。
| pbKeyInfo | BYTE* | outoptional | 署名の鍵情報バイト列を受け取るバッファである。 |
| pdwKeyInfoSize | DWORD* | inout | 入力でバッファサイズ、出力で実際の鍵情報サイズを示す。 |
メッセージの署名を取得します。
| pbSignature | BYTE* | outoptional | メッセージの署名が格納されるバッファーへのポインター。 |
| pdwSignatureSize | DWORD* | inout | 入力時は pbSignature のサイズ (バイト単位)。出力時、pdwSignatureSize には実際に書き込まれたバッファーのサイズが格納されます。 |
戻り値
戻り値には、以下のものが含まれます (ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
|
メッセージは署名されていません。 |
|
pbSignature は情報を格納するのに十分な大きさではありません。pdwSignatureSize に必要なバッファーサイズが格納されます。 |
解説(Remarks)
pbSignature に NULL を渡すと、GetSignature は割り当てるべきバッファーのサイズを pdwSignatureSize パラメーターに返します。
メッセージ署名のハッシュを取得します。
| pbSignedInfoHash | BYTE* | outoptional | メッセージ署名のハッシュが格納されるバッファーへのポインター。 |
| pdwHashSize | DWORD* | inout | 入力時は pbSignedInfoHash のサイズ (バイト単位)。出力時、pdwHashSize には実際に書き込まれたバッファーのサイズが格納されます。 |
戻り値
戻り値には、以下のものが含まれます (ただしこれらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
|
メッセージは署名されていません。 |
|
pbSignedInfoHash は情報を格納するのに十分な大きさではありません。pdwHashSize に必要なバッファーサイズが格納されます。 |
解説(Remarks)
これは <SignedInfo> ノードのハッシュです。<SignedInfo> XML ノードには、署名に含める対象となる署名の各部分の SHA1 ハッシュが含まれます。最終的な XML メッセージ署名は、<SignedInfo> ノードのハッシュを署名証明書の秘密キーで署名することによって計算されます。
pbSignedInfoHash に NULL を渡すと、GetSignedInfoHash は割り当てるべきバッファーのサイズを pdwHashSize パラメーターに返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWSDSignatureProperty "{03CE20AA-71C4-45E2-B32E-3766C61C790F}" #usecom global IWSDSignatureProperty IID_IWSDSignatureProperty "{}" #comfunc global IWSDSignatureProperty_IsMessageSigned 3 var #comfunc global IWSDSignatureProperty_IsMessageSignatureTrusted 4 var #comfunc global IWSDSignatureProperty_GetKeyInfo 5 var,var #comfunc global IWSDSignatureProperty_GetSignature 6 var,var #comfunc global IWSDSignatureProperty_GetSignedInfoHash 7 var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IWSDSignatureProperty "{03CE20AA-71C4-45E2-B32E-3766C61C790F}" #usecom global IWSDSignatureProperty IID_IWSDSignatureProperty "{}" #comfunc global IWSDSignatureProperty_IsMessageSigned 3 sptr #comfunc global IWSDSignatureProperty_IsMessageSignatureTrusted 4 sptr #comfunc global IWSDSignatureProperty_GetKeyInfo 5 sptr,sptr #comfunc global IWSDSignatureProperty_GetSignature 6 sptr,sptr #comfunc global IWSDSignatureProperty_GetSignedInfoHash 7 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。