CryptXmlSign 関数 (cryptxml.h)

CryptXmlSign 関数は、SignedInfo 要素の暗号化署名を作成します。

構文

HRESULT CryptXmlSign(
  [in]           HCRYPTXML                       hSignature,
  [in, optional] HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hKey,
                 DWORD                           dwKeySpec,
                 DWORD                           dwFlags,
                 CRYPT_XML_KEYINFO_SPEC          dwKeyInfoSpec,
  [in, optional] const void                      *pvKeyInfoSpec,
  [in]           const CRYPT_XML_ALGORITHM       *pSignatureMethod,
  [in]           const CRYPT_XML_ALGORITHM       *pCanonicalization
);

パラメーター

[in] hSignature

CRYPT_XML_SIGNATURE構造体へのハンドル。

[in, optional] hKey

SignedInfo 要素の署名に使用される秘密キーのハンドル。 HMAC ベースの署名アルゴリズムの場合、このパラメーターは NULL である必要があります。

dwKeySpec

キーの種類を指定する DWORD 値。 このパラメーターには、次の値のいずれかを指定できます。

意味
AT_KEYEXCHANGE
1
キー ペアはキー交換ペアです。
AT_SIGNATURE
2
キーペアは署名ペアです。
CERT_NCRYPT_KEY_SPEC
0xFFFFFFFF
キーは Cryptography API: Next Generation (CNG) キーです。

dwFlags

データの署名方法を制御する DWORD 値。 このパラメーターには、次の値のいずれかを指定できます。

意味
CRYPT_XML_SIGN_ADD_KEYVALUE
0x00000001
hKey パラメーターで指定されたハンドルから KeyValue 要素を設定します。
大事なdwKeyInfoSpec パラメーターが CRYPT_XML_KEYINFO_SPEC_ENCODED に設定されている場合は、CRYPT_XML_SIGN_ADD_KEYVALUE フラグを使用できません。
 
CRYPT_XML_FLAG_DISABLE_EXTENSIONS
0x10000000
シグネチャとダイジェストの既定の実装のみが使用されます。 このフラグを設定すると、他の登録済み拡張機能は読み込まれません。

dwKeyInfoSpec

pvKeyInfoSpec パラメーターによって指されるデータ構造の型。 可能な組み合わせをいくつか次に示します。

dwKeyInfec pvKeyInfoSpec
CRYPT_XML_KEYINFO_SPEC_NONE NULL に設定されています
CRYPT_XML_KEYINFO_SPEC_ENCODED CRYPT_XML_BLOB構造体を指す
CRYPT_XML_KEYINFO_SPEC_PARAM CRYPT_XML_KEYINFO_PARAM構造体を指す

[in, optional] pvKeyInfoSpec

構造体へのポインター。型は dwKeyInfoSpec パラメーターの値によって決まります。

[in] pSignatureMethod

シグネチャ メソッドを指定 するCRYPT_XML_ALGORITHM 構造体へのポインター。

[in] pCanonicalization

正規化メソッドを指定する CRYPT_XML_ALGORITHM 構造体へのポインター。

戻り値

関数が成功した場合、関数は 0 を返します。

関数が失敗した場合は、エラーを示す HRESULT 値を返します。

解説

証明書が見つからない場合、CryptXmlSign は証明書を選択するための UI を作成します。 このウィンドウが セッション 0 で実行されているプロセスから生成された場合、アプリケーションが予期せず終了する可能性があります。

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー cryptxml.h
Library Cryptxml.lib
[DLL] Cryptxml.dll