Metodo ICEnroll::get_HashAlgorithm (xenroll.h)

[Questa proprietà non è più disponibile per l'uso a partire da Windows Server 2008 e Windows Vista.]

La proprietà HashAlgorithm imposta o recupera solo l'algoritmo di hash delle firme usato per firmare la richiesta di certificazione PKCS #10.

Questa proprietà è stata prima definita nell'interfaccia ICEnroll .

Si tratta di una proprietà di lettura/scrittura.

Sintassi

HRESULT get_HashAlgorithm(
  BSTR *pbstr
);

Parametri

pbstr

Valore restituito

nessuno

Osservazioni

Questo algoritmo di hashing della firma non deve essere confuso con l'algoritmo di hashing usato per firmare il certificato. Il controllo di registrazione supporta attualmente qualsiasi OID per gli algoritmi di hashing, oltre ai valori del nome visualizzato seguenti: SHA1 (impostazione predefinita), MD2 e MD5. Quando si recupera questa proprietà, il valore recuperato è in formato OID, ovvero SHA1 viene visualizzato come 1.3.14.3.3.2.29. Quando si imposta questa proprietà, il formato OID corrispondente può essere usato come alternativa al testo visualizzato per i valori descrittivi definiti.

Il controllo Registrazione certificati considera il valore della proprietà HashAlgorithm come suggerimento all'algoritmo hash da usare per firmare la richiesta di certificazione PKCS #10. Se il provider di servizi di crittografia supporta l'algoritmo specificato nella proprietà HashAlgorithm , verrà usato l'algoritmo. In caso contrario, il controllo registrazione certificati tenterà di usare SHA1. Se SHA1 non è supportato dal CSP, verrà provato MD5. Se non è supportato SHA1 né MD5, il controllo registrazione certificati tenterà di usare il primo algoritmo hash restituito dal CSP.

La proprietà HashAlgorithm influisce sul comportamento dei metodi seguenti:

Se vengono impostate entrambe le proprietà HashAlgID e HashAlgorithm , l'ultimo aggiornamento specifica quale algoritmo di hashing verrà usato per firmare la richiesta di certificazione PKCS #10.

Esempio

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);

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione xenroll.h
Libreria Uuid.lib
DLL Xenroll.dll