ICEnroll::get_HashAlgorithm-Methode (xenroll.h)
[Diese Eigenschaft steht ab Windows Server 2008 und Windows Vista nicht mehr zur Verfügung.]
Die HashAlgorithm-Eigenschaft legt oder ruft nur den Signaturhashalgorithmus ab, der zum Signieren der PKCS #10-Zertifizierungsanforderung verwendet wird.
Diese Eigenschaft wurde zuerst in der ICEnroll-Schnittstelle definiert.
Dies ist eine Eigenschaft mit Lese- und Schreibzugriff.
Syntax
HRESULT get_HashAlgorithm(
BSTR *pbstr
);
Parameter
pbstr
Rückgabewert
Keine
Bemerkungen
Dieser Signaturhashalgorithmus ist nicht mit dem Hashalgorithmus zu verwechseln, der zum Signieren des Zertifikats verwendet wird. Das Registrierungssteuerelement unterstützt derzeit alle OID für Hashalgorithmen sowie die folgenden Anzeigenamenwerte: SHA1 (Standard), MD2 und MD5. Beim Abrufen dieser Eigenschaft befindet sich der abgerufene Wert im OID-Format (SHA1 wird als 1.3.14.3.2.2.29 angezeigt). Beim Festlegen dieser Eigenschaft kann das entsprechende OID-Format als Alternative zum Text verwendet werden, der für die definierten Anzeigewerte angezeigt wird.
Das Zertifikatregistrierungssteuerelement betrachtet den Wert der HashAlgorithm-Eigenschaft als Hinweis auf den Hashalgorithmus , der zum Signieren der PKCS #10-Zertifizierungsanforderung verwendet werden soll. Wenn der Kryptografiedienstanbieter (Cryptographic Service Provider , CSP) den in der HashAlgorithm-Eigenschaft angegebenen Algorithmus unterstützt, wird der Algorithmus verwendet. Andernfalls versucht das Zertifikatregistrierungssteuerelement, SHA1 zu verwenden. Wenn SHA1 vom CSP nicht unterstützt wird, wird MD5 versucht. Wenn weder SHA1 noch MD5 unterstützt werden, versucht das Zertifikatregistrierungssteuerelement, den ersten vom CSP zurückgegebenen Hashingalgorithmus zu verwenden.
Die HashAlgorithm-Eigenschaft wirkt sich auf das Verhalten der folgenden Methoden aus:
Wenn sowohl die HashAlgID - als auch die HashAlgorithm-Eigenschaft festgelegt sind, gibt der zuletzt aktualisierte Hashalgorithmus an, um die PKCS #10-Zertifizierungsanforderung zu signieren.
Beispiele
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);
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | xenroll.h |
Bibliothek | Uuid.lib |
DLL | Xenroll.dll |