共用方式為


PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC回呼函式 (wincrypt.h)

呼叫PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC回呼函式來簽署和編碼計算的哈希。

語法

PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC PfnCryptSignAndEncodeHashFunc;

BOOL PfnCryptSignAndEncodeHashFunc(
  [in]      NCRYPT_KEY_HANDLE hKey,
  [in]      DWORD dwCertEncodingType,
  [in]      PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [in]      void *pvDecodedSignPara,
  [in]      LPCWSTR pwszCNGPubKeyAlgid,
  [in]      LPCWSTR pwszCNGHashAlgid,
  [in]      BYTE *pbComputedHash,
  [in]      DWORD cbComputedHash,
  [out]     BYTE *pbSignature,
  [in, out] DWORD *pcbSignature
)
{...}

參數

[in] hKey

密碼編譯 API 的句柄:新一代 (CNG) 用來簽署哈希的 私鑰

[in] dwCertEncodingType

指定使用的編碼類型。 將憑證和 訊息編碼類型 與位 OR 作業結合在一起,一律可以接受,如下列範例所示:

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING目前定義的編碼類型如下:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pSignatureAlgorithm

包含簽章對象標識碼 (OID) 及其選擇性編碼參數之CRYPT_ALGORITHM_IDENTIFIER結構的指標。

[in] pvDecodedSignPara

PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC函式先前傳回之已譯碼簽章參數數據結構的選擇性指標。

[in] pwszCNGPubKeyAlgid

Unicode 字串,其中包含對應至 pSignatureAlgorithm-pszObjId> 的 CNG 公鑰演算法識別碼。

[in] pwszCNGHashAlgid

Unicode 字串,其中包含對應至 pSignatureAlgorithm-pszObjId> 或 pvDecodedSignPara 中哈希演算法識別碼的 CNG 哈希演算法識別碼。

[in] pbComputedHash

對應至 pwszCNGHashAlgidBCryptFinishHash 函式所傳回之計算哈希位元組的指標。

[in] cbComputedHash

值,表示計算哈希的長度,以位元組為單位。

[out] pbSignature

編碼簽章位元組的指標。

[in, out] pcbSignature

值,表示編碼簽章的長度,以位元組為單位。

傳回值

如果函式成功,函式會傳回非零 (TRUE) 。

如果函式失敗,它會傳回零 (FALSE) 。 如需擴充錯誤資訊,請呼叫 GetLastError

如果此回呼函式不支援簽章演算法,則必須傳回 FALSE,並使用 ERROR_NOT_SUPPORTED呼叫 SetLastError

備註

您可以使用 OID 支援函式 來部署此回呼函式。 Wincrypt.h 會為此目的定義下列常數。

常數 定義
CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC “CryptDllSignAndEncodeHash”

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 wincrypt.h