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