共用方式為


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
金鑰是密碼編譯 API:新一代 (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 結構的指標。

傳回值

如果函式成功,函式會傳回零。

如果函式失敗,它會傳回 HRESULT 值,指出錯誤。

備註

如果找不到憑證 CryptXmlSign,將會建立憑證選取的 UI。 如果此視窗是從 會話 0中執行的進程產生,應用程式可能會意外終止。

規格需求

   
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
目標平台 Windows
標頭 cryptxml.h
程式庫 Cryptxml.lib
Dll Cryptxml.dll