IOpcDigitalSignatureManager::Metode tanda tangan (msopc.h)
Menandatangani paket dengan membuat tanda tangan dengan menggunakan sertifikat yang ditentukan dan penunjuk antarmuka IOpcSigningOptions . Tanda tangan yang dihasilkan diwakili oleh penunjuk antarmuka IOpcDigitalSignature .
Sintaks
HRESULT Sign(
[in] const CERT_CONTEXT *certificate,
[in] IOpcSigningOptions *signingOptions,
[out, retval] IOpcDigitalSignature **digitalSignature
);
Parameter
[in] certificate
Penunjuk ke struktur CERT_CONTEXT yang berisi sertifikat.
[in] signingOptions
Penunjuk antarmuka IOpcSigningOptions yang digunakan untuk menghasilkan tanda tangan.
[out, retval] digitalSignature
Penunjuk antarmuka IOpcDigitalSignature baru yang mewakili tanda tangan.
Nilai kembali
Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.
Mengembalikan kode/nilai | Deskripsi |
---|---|
|
Metode berhasil. |
|
Setidaknya salah satu parameter sertifikat, signingOptions, dan digitalSignature adalah NULL. |
|
Metode hash default belum ditetapkan; untuk mengaturnya, panggil IOpcSigningOptions::SetDefaultDigestMethod. |
|
Tidak bisa mendapatkan nilai hash komponen paket atau elemen dalam markup tanda tangan yang dirujuk untuk penandatanganan. |
|
Format waktu tanda tangan bukan nilai enumerasi OPC_SIGNATURE_TIME_FORMAT yang valid. |
|
Opsi penandatanganan hubungan yang ditunjukkan bukan nilai enumerasi OPC_RELATIONSHIPS_SIGNING_OPTION yang valid. |
|
Tanda tangan dalam paket tidak terbentuk dengan benar. Tidak bisa mendapatkan nilai tanda tangan. |
|
Metode tanda tangan belum disetel. Panggil IOpcSigningOptions::SetSignatureMethod untuk mengatur metode tanda tangan. |
|
Bagian yang ditentukan tidak ada. |
|
Kode kesalahan HRESULT dari API Kriptografi . |
|
Kode kesalahan HRESULT dari API Windows Web Services . |
Keterangan
Metode ini menggunakan objek Pengemasan untuk membuat perubahan pada paket. Perubahan yang dihasilkan tidak disimpan sampai paket itu sendiri disimpan.
Sebelum metode ini dipanggil untuk menghasilkan tanda tangan, panggil metode IOpcSigningOptions::SetDefaultDigestMethod dan IOpcSigningOptions::SetSignatureMethod .
Untuk membuat penunjuk antarmuka IOpcSigningOptions , yang diperlukan oleh metode ini, panggil metode CreateSigningOptions .
- Bagian Asal Tanda Tangan Digital
- Hubungan paket dari jenis hubungan asal tanda tangan digital
- Satu bagian tanda tangan yang berisi markup tanda tangan
- Satu atau beberapa bagian yang berisi sertifikat
- Satu hubungan yang menargetkan bagian tanda tangan dan yang memiliki bagian Asal Tanda Tangan Digital sebagai sumbernya
- Satu atau beberapa hubungan yang menargetkan bagian tanda tangan yang berisi sertifikat dan yang memiliki bagian tanda tangan lain sebagai sumbernya
Jika Tanda gagal, salah satu bagian dan hubungan di atas dapat diwakili, dalam paket, oleh objek Kemasan. Jika metode mengembalikan kode kesalahan OPC_E_DS_SIGNATURE_METHOD_NOT_SET atau OPC_E_DS_DEFAULT_DIGEST_METHOD_NOT_SET , paket belum diubah.
Jika Tanda berhasil, nilai hash dihitung untuk entitas yang ditandatangani, dan tanda tangan yang dihasilkan diserialisasikan sebagai markup tanda tangan. Kemungkinan entitas yang ditandatangani termasuk elemen Tanda Tangan , referensi, bagian, hubungan, dan elemen Objek khusus paket dan khusus aplikasi.
Kesalahan yang dimasukkan ke dalam tanda tangan paket saat pemanggil menggunakan antarmuka IOpcSigningOptions untuk mengatur informasi tanda tangan mungkin tidak diekspos hingga Tanda tangan dipanggil.
Keamanan Thread
Objek pengemasan tidak aman untuk rangkaian.
Untuk informasi selengkapnya, lihat Memulai API Kemasan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | msopc.h |
Lihat juga
Gambaran Umum Tanda Tangan Digital
Gambaran Umum
Panduan Pemrograman API Pengemasan
Kemasan Antarmuka Tanda Tangan Digital
Referensi