Metodo ICEnroll::p ut_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 put_HashAlgorithm(
BSTR bstr
);
Parametri
bstr
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 |