Fungsi CryptSignMessageWithKey (wincrypt.h)

Fungsi CryptSignMessageWithKey menandatangani pesan dengan menggunakan kunci privat CSP yang ditentukan dalam parameter. SignerId tempat penampung dibuat dan disimpan dalam pesan.

Sintaks

BOOL CryptSignMessageWithKey(
  [in]      PCRYPT_KEY_SIGN_MESSAGE_PARA pSignPara,
  [in]      const BYTE                   *pbToBeSigned,
  [in]      DWORD                        cbToBeSigned,
  [out]     BYTE                         *pbSignedBlob,
  [in, out] DWORD                        *pcbSignedBlob
);

Parameter

[in] pSignPara

Penunjuk ke struktur CRYPT_KEY_SIGN_MESSAGE_PARA yang berisi parameter tanda tangan.

[in] pbToBeSigned

Penunjuk ke array buffer yang berisi pesan yang akan ditandatangani.

[in] cbToBeSigned

Jumlah elemen array dalam array buffer pbToBeSigned .

[out] pbSignedBlob

Penunjuk ke buffer untuk menerima pesan yang ditandatangani yang dikodekan.

Parameter ini bisa NULL untuk mengatur ukuran informasi ini untuk tujuan alokasi memori. Untuk informasi selengkapnya, lihat Mengambil Data Dengan Panjang Tidak Diketahui.

[in, out] pcbSignedBlob

Penunjuk ke nilai DWORD yang menunjukkan ukuran, dalam byte, dari buffer pbSignedBlob . Ketika fungsi kembali, variabel ini berisi ukuran, dalam byte, dari pesan yang ditandatangani dan dikodekan.

Catatan Saat memproses data yang dikembalikan, aplikasi harus menggunakan ukuran aktual data yang dikembalikan. Ukuran aktual bisa sedikit lebih kecil dari ukuran buffer yang ditentukan pada input. (Pada input, ukuran buffer biasanya ditentukan cukup besar untuk memastikan bahwa data output terbesar yang mungkin akan pas di buffer.) Pada output, variabel yang diacu oleh parameter ini diperbarui untuk mencerminkan ukuran aktual data yang disalin ke buffer.
 

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol (TRUE).

Jika fungsi gagal, nilai yang dikembalikan adalah nol (FALSE).

Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Berikut ini mencantumkan kode kesalahan yang paling umum dikembalikan oleh fungsi GetLastError .

Menampilkan kode Deskripsi
ERROR_MORE_DATA
Jika buffer yang ditentukan oleh parameter pbSignedBlob tidak cukup besar untuk menyimpan data yang dikembalikan, fungsi mengatur kode ERROR_MORE_DATA dan menyimpan ukuran buffer yang diperlukan, dalam byte, ke dalam variabel yang ditunjukkan oleh pcbSignedBlob.
E_INVALIDARG
Tipe pengodean pesan tidak valid. Saat ini hanya PKCS_7_ASN_ENCODING yang didukung. cbSize dalam *pSignPara tidak valid.
CRYPT_E_NO_KEY_PROPERTY
pSigningCert di *pSignPara tidak memiliki properti CERT_KEY_PROV_INFO_PROP_ID atau CERT_KEY_CONTEXT_PROP_ID.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header wincrypt.h
Pustaka Crypt32.lib
DLL Crypt32.dll