Condividi tramite


Metodo IX509SignatureInformation::GetSignatureAlgorithm (certenroll.h)

Il metodo GetSignatureAlgorithm recupera l'identificatore dell'oggetto dell'algoritmo di firma (OID).

Sintassi

HRESULT GetSignatureAlgorithm(
  [in]  VARIANT_BOOL Pkcs7Signature,
  [in]  VARIANT_BOOL SignatureKey,
  [out] IObjectId    **ppValue
);

Parametri

[in] Pkcs7Signature

Variabile VARIANT_BOOL che specifica se l'algoritmo verrà usato per firmare una richiesta di certificato PKCS #7 o CMC.

[in] SignatureKey

Una variabile VARIANT_BOOL che specifica se un algoritmo utilizzato solo per la firma è preferito quando un OID dell'algoritmo è associato a più di uno scopo. Ad esempio, XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) può essere usato sia per la firma che per lo scambio di chiavi.

[out] ppValue

Indirizzo di una variabile che riceve un puntatore a un'interfaccia IObjectId che rappresenta l'OID dell'algoritmo.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce S_OK.

Se la funzione ha esito negativo, restituisce un valore HRESULT che indica l'errore. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente. Per un elenco di codici di errore comuni, vedere Valori HRESULT comuni.

Codice/valore restituito Descrizione
CERTSRV_E_PROPERTY_EMPTY
L'OID dell'algoritmo hashing o la proprietà NullSigned non è stata specificata, ma non è possibile trovare l'OID dell'algoritmo di firma.
CRYPT_E_UNKNOWN_ALGO
Impossibile trovare l'algoritmo di firma combinato.

Commenti

Questo metodo cerca un algoritmo di firma memorizzato nella cache coerente con i parametri di input. Se non viene trovato alcun elemento, il metodo usa i parametri di input e i valori assegnati a varie proprietà IX509SignatureInformation , come indicato dall'elenco seguente.

  • Pkcs7Signature = true, NullSigned = true

    Questo caso rappresenta una richiesta di certificato PKCS #7 firmata null. Il metodo restituisce l'OID XCN_OID_PKIX_NO_SIGNATURE (1.3.6.1.5.5.7.6.2).

  • Pkcs7Signature = true, NullSigned = false

    In questo caso viene recuperato un OID dell'algoritmo di firma discreto per una richiesta PKCS #7 non firmata da Null. La firma discreta richiede che vengano impostate le proprietà HashAlgorithm e PublicKeyAlgorithm . Nel caso speciale in cui l'algoritmo di chiave pubblica è XCN_OID_X957_DSA e l'algoritmo di hashing non è XCN_OID_OIWSEC_sha1, l'OID dell'algoritmo di firma recuperato è XCN_OID_X957_SHA1DSA (1.2.840.10040.4.3).

  • Pkcs7Signature = false, NullSigned = false, AlternateSignatureAlgorithm = true

    In questo caso viene recuperato un OID dell'algoritmo di firma discreto per una richiesta PKCS #10 e codifica l'OID dell'algoritmo hash nella proprietà Parameters . Le proprietà HashAlgorithm e PublicKeyAlgorithm devono essere impostate.

  • Pkcs7Signature = false, NullSigned = false, AlternateSignatureAlgorithm = false

    In questo caso viene recuperato un OID dell'algoritmo di firma discreto per una richiesta PKCS #7. Le proprietà HashAlgorithm e PublicKeyAlgorithm devono essere impostate.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione certenroll.h
DLL CertEnroll.dll

Vedi anche

IX509SignatureInformation