Metode ICEnroll::get_HashAlgorithm (xenroll.h)
[Properti ini tidak lagi tersedia untuk digunakan pada Windows Server 2008 dan Windows Vista.]
Properti HashAlgorithm menetapkan atau hanya mengambil algoritma hash tanda tangan yang digunakan untuk menandatangani permintaan sertifikasi PKCS #10.
Properti ini pertama kali didefinisikan dalam antarmuka ICEnroll .
Properti ini bersifat baca/tulis.
Sintaks
HRESULT get_HashAlgorithm(
BSTR *pbstr
);
Parameter
pbstr
Mengembalikan nilai
Tidak ada
Keterangan
Algoritma hash tanda tangan ini tidak akan dikacaukan dengan algoritma hashing yang digunakan untuk menandatangani sertifikat. Kontrol pendaftaran saat ini mendukung OID untuk algoritma hashing, ditambah nilai nama tampilan berikut: SHA1 (default), MD2, dan MD5. Saat mengambil properti ini, nilai yang diambil dalam format OID (yaitu, SHA1 muncul sebagai 1.3.14.3.2.29). Saat mengatur properti ini, format OID yang sesuai dapat digunakan sebagai alternatif untuk teks yang ditampilkan untuk nilai ramah yang ditentukan.
Kontrol Pendaftaran Sertifikat mempertimbangkan nilai properti HashAlgorithm sebagai petunjuk algoritma hashing yang akan digunakan untuk menandatangani permintaan sertifikasi PKCS #10. Jika penyedia layanan kriptografi (CSP) mendukung algoritma yang ditentukan dalam properti HashAlgorithm , algoritma akan digunakan. Jika tidak, Kontrol Pendaftaran Sertifikat akan mencoba menggunakan SHA1. Jika SHA1 tidak didukung oleh CSP, maka MD5 akan dicoba. Jika SHA1 maupun MD5 tidak didukung, Kontrol Pendaftaran Sertifikat akan mencoba menggunakan algoritma hash pertama yang dikembalikan dari CSP.
Properti HashAlgorithm memengaruhi perilaku metode berikut:
Jika properti HashAlgID dan HashAlgorithm diatur, mana pun yang terakhir diperbarui akan menentukan algoritma hash mana yang akan digunakan untuk menandatangani permintaan sertifikasi PKCS #10.
Contoh
BSTR bstrHashAlg = NULL;
HRESULT hr;
// get the hash algorithm
hr = pEnroll->get_HashAlgorithm( &bstrHashAlg );
if ( FAILED ( hr ) )
printf("Failed get_HashAlgorithm - %x\n", hr );
else
printf( "HashAlgorithm: %ws\n", bstrHashAlg );
// free BSTR
if ( NULL != bstrHashAlg )
SysFreeString( bstrHashAlg);
BSTR bstrMyHashAlg = SysAllocString(TEXT("MD5"));
// alternatively, ... = SysAllocString(TEXT("1.2.840.113549.1.1.4"));
// set the hash algorithm
hr = pEnroll->put_HashAlgorithm( bstrMyHashAlg );
if ( FAILED ( hr ) )
printf("Failed put_HashAlgorithm - %x\n", hr );
else
printf( "HashAlgorithm was set to %ws\n", bstrMyHashAlg );
// free BSTR
if ( NULL != bstrMyHashAlg )
SysFreeString( bstrMyHashAlg);
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 | xenroll.h |
Pustaka | Uuid.lib |
DLL | Xenroll.dll |