Bagikan melalui


Fungsi CryptXmlSign (cryptxml.h)

Fungsi CryptXmlSign membuat tanda tangan kriptografi dari elemen SignedInfo .

Sintaks

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
);

Parameter

[in] hSignature

Handel ke struktur CRYPT_XML_SIGNATURE .

[in, optional] hKey

Handel kunci privat yang digunakan untuk menandatangani elemen SignedInfo . Parameter ini harus NULL untuk algoritma tanda tangan berbasis HMAC.

dwKeySpec

Nilai DWORD yang menentukan jenis kunci. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
AT_KEYEXCHANGE
1
Pasangan kunci adalah pasangan pertukaran kunci.
AT_SIGNATURE
2
Pasangan kunci adalah pasangan tanda tangan.
CERT_NCRYPT_KEY_SPEC
0xFFFFFFFF
Kuncinya adalah API Kriptografi: Kunci Generasi Berikutnya (CNG).

dwFlags

Nilai DWORD yang mengontrol bagaimana data ditandatangani. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
CRYPT_XML_SIGN_ADD_KEYVALUE
0x00000001
Isi elemen KeyValue dari handel yang ditentukan dalam parameter hKey .
Penting Bendera CRYPT_XML_SIGN_ADD_KEYVALUE tidak dapat digunakan ketika parameter dwKeyInfoSpec diatur ke CRYPT_XML_KEYINFO_SPEC_ENCODED.
 
CRYPT_XML_FLAG_DISABLE_EXTENSIONS
0x10000000
Hanya implementasi default untuk tanda tangan dan hash yang digunakan. Ketika bendera ini diatur, tidak ada ekstensi terdaftar lain yang dimuat.

dwKeyInfoSpec

Jenis struktur data yang diarahkan oleh parameter pvKeyInfoSpec . Berikut adalah beberapa kemungkinan kombinasi.

dwKeyInfec pvKeyInfoSpec
CRYPT_XML_KEYINFO_SPEC_NONE Diatur ke NULL
CRYPT_XML_KEYINFO_SPEC_ENCODED Menunjuk ke struktur CRYPT_XML_BLOB
CRYPT_XML_KEYINFO_SPEC_PARAM Menunjuk ke struktur CRYPT_XML_KEYINFO_PARAM

[in, optional] pvKeyInfoSpec

Penunjuk ke struktur, yang jenisnya ditentukan oleh nilai parameter dwKeyInfoSpec .

[in] pSignatureMethod

Penunjuk ke struktur CRYPT_XML_ALGORITHM yang menentukan metode tanda tangan.

[in] pCanonicalization

Penunjuk ke struktur CRYPT_XML_ALGORITHM yang menentukan metode kanonisisasi.

Nilai kembali

Jika fungsi berhasil, fungsi mengembalikan nol.

Jika fungsi gagal, fungsi mengembalikan nilai HRESULT yang menunjukkan kesalahan.

Keterangan

Jika sertifikat tidak dapat ditemukan, CryptXmlSign akan membuat UI untuk pemilihan sertifikat. Jika jendela ini dihasilkan dari proses yang berjalan di sesi 0, aplikasi mungkin tiba-tiba berakhir.

Persyaratan

   
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Target Platform Windows
Header cryptxml.h
Pustaka Cryptxml.lib
DLL Cryptxml.dll