Fungsi SignerSignEx2

Fungsi SignerSignEx2 menandatangani dan stempel waktu file yang ditentukan, memungkinkan beberapa tanda tangan berlapis.

Catatan

Fungsi ini tidak memiliki file header atau pustaka impor terkait. Untuk memanggil fungsi ini, Anda harus membuat file header yang ditentukan pengguna dan menggunakan fungsi LoadLibrary dan GetProcAddress untuk menautkan secara dinamis ke Mssign32.dll.

 

Sintaks

HRESULT WINAPI SignerSignEx2(
  _In_       DWORD                  dwFlags,
  _In_       SIGNER_SUBJECT_INFO    *pSubjectInfo,
  _In_       SIGNER_CERT            *pSignerCert,
  _In_       SIGNER_SIGNATURE_INFO  *pSignatureInfo,
  _In_opt_   SIGNER_PROVIDER_INFO   *pProviderInfo,
  _In_opt_   DWORD                  dwTimestampFlags,
  _In_opt_   PCSTR                  pszTimestampAlgorithmOid,
  _In_opt_   PCWSTR                 pwszHttpTimeStamp,
  _In_opt_   PCRYPT_ATTRIBUTES      psRequest,
  _In_opt_   PVOID                  pSipData,
  _Out_      SIGNER_CONTEXT         **ppSignerContext,
  _In_opt_   PCERT_STRONG_SIGN_PARA pCryptoPolicy,
  _Reserved_ PVOID                  pReserved
);

Parameter

dwFlags [in]

Memodifikasi perilaku fungsi ini.

Jika file yang akan ditandatangani adalah file portable executable (PE), ini bisa menjadi nol atau kombinasi dari satu atau beberapa nilai berikut.

Nilai Makna
SPC_EXC_PE_PAGE_HASHES_FLAG
0x10
Kecualikan hash halaman saat membuat data tidak langsung SIP untuk file PE. Bendera ini lebih diutamakan daripada bendera SPC_INC_PE_PAGE_HASHES_FLAG .
Jika bendera SPC_EXC_PE_PAGE_HASHES_FLAG atau SPC_INC_PE_PAGE_HASHES_FLAG tidak ditentukan, nilai yang ditetapkan dengan fungsi WintrustSetDefaultIncludePEPageHashes digunakan untuk pengaturan ini. Default untuk pengaturan ini adalah mengecualikan hash halaman saat membuat data tidak langsung SIP untuk file PE.
Nilai ini didefinisikan dalam file header Mssip.h.
Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.
SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG
0x20
Nilai ini tidak didukung.
SPC_INC_PE_DEBUG_INFO_FLAG
0x40
Nilai ini tidak didukung.
SPC_INC_PE_RESOURCES_FLAG
0x80
Nilai ini tidak didukung.
SPC_INC_PE_PAGE_HASHES_FLAG
0x100
Sertakan hash halaman saat membuat data tidak langsung SIP untuk file PE.
Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.
Nilai ini didefinisikan dalam file header Mssip.h.
SIG_APPEND
0x1000
Tanda tangan akan ditumpuk. Jika Anda mengatur bendera ini sebelum tanda tangan ditambahkan, tanda tangan yang dihasilkan akan ditambahkan sebagai tanda tangan luar. Jika Anda tidak mengatur bendera ini, tanda tangan yang dihasilkan menggantikan tanda tangan luar, menghapus semua tanda tangan dalam.

 

pSubjectInfo [in]

Penunjuk ke struktur SIGNER_SUBJECT_INFO yang menentukan subjek yang akan ditandatangani.

pSignerCert [in]

Penunjuk ke struktur SIGNER_CERT yang menentukan sertifikat yang akan digunakan untuk membuat tanda tangan digital.

pSignatureInfo [in]

Penunjuk ke struktur SIGNER_SIGNATURE_INFO yang berisi informasi tentang tanda tangan digital.

pProviderInfo [dalam, opsional]

Penunjuk ke struktur SIGNER_PROVIDER_INFO yang menentukan penyedia layanan kriptografi (CSP) dan informasi kunci privat yang digunakan untuk membuat tanda tangan digital.

Jika nilai parameter ini adalah NULL, parameter pSignerCert harus menentukan sertifikat yang terkait dengan CSP.

dwTimestampFlags [in, opsional]

Bendera yang akan diteruskan ke SignerTimeStampEx3 jika parameter pwszHttpTimeStamp bukan NULL. Ini bisa menjadi salah satu nilai berikut.

Nilai Makna
SIGNER_TIMESTAMP_AUTHENTICODE
Nilai default. Menentukan tanda waktu Authenticode.
SIGNER_TIMESTAMP_RFC3161
Menentukan tanda waktu RFC 3161.

 

Parameter ini diabaikan jika parameter pwszHttpTimeStamp adalah NULL.

pszTimestampAlgorithmOid [in, opsional]

Pengidentifikasi objek algoritma yang akan digunakan untuk membuat tanda waktu RFC 3161. Parameter ini diabaikan untuk stempel waktu Authenticode.

pwszHttpTimeStamp [in, opsional]

URL server stempel waktu.

psRequest [in, opsional]

Penunjuk ke array struktur CRYPT_ATTRIBUTE yang ditambahkan ke permintaan tanda tangan. Parameter ini diabaikan jika parameter pwszHttpTimeStamp tidak berisi nilai yang valid atau NULL.

pSipData [dalam, opsional]

Nilai 32-bit yang diteruskan sebagai data tambahan ke fungsi SIP. Format dan konten ini ditentukan oleh penyedia SIP.

ppSignerContext [out]

Alamat penunjuk ke struktur SIGNER_CONTEXT yang berisi BLOB yang ditandatangani. Setelah Anda selesai menggunakan struktur SIGNER_CONTEXT , bebaskan struktur SIGNER_CONTEXT dengan memanggil fungsi SignerFreeSignerContext .

pCryptoPolicy [dalam, opsional]

Jika ada, pointer ke struktur CERT_STRONG_SIGN_PARA yang berisi parameter yang digunakan untuk memeriksa tanda tangan yang kuat. Jika sertifikat atau rantainya tidak lulus, file tidak diubah dengan cara apa pun. Jika URL diteruskan untuk menentukan Time Stamping Authority (TSA), kebijakan ini juga diterapkan ke stempel waktu.

Diawetkan

Dicadangkan. Nilai ini harus NULL.

Nilai kembali

Jika fungsi berhasil, fungsi akan mengembalikan S_OK.

Jika fungsi gagal, fungsi mengembalikan nilai HRESULT yang menunjukkan kesalahan. Kemungkinan kode kesalahan yang dikembalikan oleh fungsi ini termasuk, tetapi tidak terbatas pada, berikut ini. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.

Menampilkan kode Deskripsi
E_INVALIDARG
Jika Anda mengatur parameter dwTimestampFlags ke SIGNER_TIMESTAMP_AUTHENTICODE, Anda tidak dapat mengatur parameter dwFlags ke SIG_APPEND.

 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows 8 [khusus aplikasi desktop]
Server minimum yang didukung
Windows Server 2012 [hanya aplikasi desktop]
DLL
Mssign32.dll

Lihat juga

SignerSign

SignerSignEx

SignerFreeSignerContext