ICEnroll::p ut_HashAlgorithm-Methode (xenroll.h)
[Diese Eigenschaft ist ab Windows Server 2008 und Windows Vista nicht mehr verfügbar.]
Die HashAlgorithm-Eigenschaft legt oder ruft nur den Signaturhashingalgorithmus 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 put_HashAlgorithm(
BSTR bstr
);
Parameter
bstr
Rückgabewert
Keine
Bemerkungen
Dieser Signaturhashingalgorithmus ist nicht mit dem Hashalgorithmus zu verwechseln, der zum Signieren des Zertifikats verwendet wird. Das Registrierungssteuerelement unterstützt derzeit jede OID für Hashingalgorithmen sowie die folgenden Anzeigenamenwerte: SHA1 (Standard), MD2 und MD5. Beim Abrufen dieser Eigenschaft hat der abgerufene Wert das OID-Format (SHA1 wird also als 1.3.14.3.2.29 angezeigt). Wenn Sie diese Eigenschaft festlegen, 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 Hashingalgorithmus , 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 die Zertifikatregistrierungssteuerung, SHA1 zu verwenden. Wenn SHA1 vom CSP nicht unterstützt wird, wird MD5 versucht. Wenn weder SHA1 noch MD5 unterstützt wird, versucht die Zertifikatregistrierungssteuerung, den ersten vom CSP zurückgegebenen Hashingalgorithmus zu verwenden.
Die HashAlgorithm-Eigenschaft wirkt sich auf das Verhalten der folgenden Methoden aus:
Wenn sowohl die Eigenschaften HashAlgID als auch HashAlgorithm festgelegt sind, gibt je nachdem, welcher Hashingalgorithmus zum Signieren der PKCS #10-Zertifizierungsanforderung verwendet wird.
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 |