PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC fungsi panggilan balik (wincrypt.h)

Fungsi panggilan balik PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC dipanggil untuk menandatangani dan mengodekan hash komputasi.

Sintaks

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
)
{...}

Parameter

[in] hKey

Handel ke kunci privat Cryptography API: Next Generation (CNG) untuk digunakan untuk menandatangani hash.

[in] dwCertEncodingType

Menentukan jenis pengodean yang digunakan. Selalu dapat diterima untuk menentukan jenis pengodean sertifikat dan pesan dengan menggabungkannya dengan operasi bitwise-OR seperti yang ditunjukkan dalam contoh berikut:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING Jenis pengodean yang ditentukan saat ini adalah:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pSignatureAlgorithm

Penunjuk ke struktur CRYPT_ALGORITHM_IDENTIFIER yang berisi pengidentifikasi objek tanda tangan (OID) dan parameter yang dikodekan opsional.

[in] pvDecodedSignPara

Penunjuk opsional ke struktur data parameter tanda tangan yang didekodekan yang sebelumnya dikembalikan oleh fungsi PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC .

[in] pwszCNGPubKeyAlgid

String Unicode yang berisi pengidentifikasi algoritma kunci publik CNG yang sesuai dengan pSignatureAlgorithm-pszObjId>.

[in] pwszCNGHashAlgid

String Unicode yang berisi pengidentifikasi algoritma hash CNG yang sesuai dengan pSignatureAlgorithm-pszObjId> atau ke pengidentifikasi algoritma hash di pvDecodedSignPara.

[in] pbComputedHash

Penunjuk ke byte hash terkomputasi yang dikembalikan oleh fungsi BCryptFinishHash yang sesuai dengan pwszCNGHashAlgid.

[in] cbComputedHash

Nilai yang mewakili panjang, dalam byte, dari hash komputasi.

[out] pbSignature

Penunjuk ke byte tanda tangan yang dikodekan.

[in, out] pcbSignature

Nilai yang mewakili panjang, dalam byte, dari tanda tangan yang dikodekan.

Nilai kembali

Jika fungsi berhasil, fungsi mengembalikan bukan nol (TRUE).

Jika fungsi gagal, fungsi akan mengembalikan nol (FALSE). Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Jika fungsi panggilan balik ini tidak mendukung algoritma tanda tangan, fungsi tersebut harus mengembalikan FALSE dan memanggil SetLastError dengan ERROR_NOT_SUPPORTED.

Keterangan

Anda dapat menggunakan Fungsi Dukungan OID untuk menyebarkan fungsi panggilan balik ini. Wincrypt.h mendefinisikan konstanta berikut untuk tujuan ini.

Terus-menerus Definisi
CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC "CryptDllSignAndEncodeHash"

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header wincrypt.h