Condividi tramite


PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC funzione di callback (wincrypt.h)

Se una firma contiene parametri codificati, la funzione di callback PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC viene chiamata per decodificare e restituire l'identificatore dell'algoritmo hash e facoltativamente i parametri della firma.

Sintassi

PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC PfnCryptExtractEncodedSignatureParametersFunc;

BOOL PfnCryptExtractEncodedSignatureParametersFunc(
  [in]            DWORD dwCertEncodingType,
  [in]            PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [out, optional] void **ppvDecodedSignPara,
  [out]           LPWSTR *ppwszCNGHashAlgid
)
{...}

Parametri

[in] dwCertEncodingType

Specifica il tipo di codifica utilizzata. È sempre accettabile specificare sia il certificato che i tipi di codifica dei messaggi combinandoli con un'operazione OR bit per bit, come illustrato nell'esempio seguente:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING I tipi di codifica attualmente definiti sono:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pSignatureAlgorithm

Puntatore a una struttura CRYPT_ALGORITHM_IDENTIFIER che contiene l'identificatore dell'oggetto firma (OID) e i relativi parametri con codifica facoltativa.

[out, optional] ppvDecodedSignPara

Puntatore a un indirizzo per la struttura dei dati dei parametri di firma decodificata e allocata. La restituzione del buffer decodificato è facoltativa.

[out] ppwszCNGHashAlgid

Puntatore a un indirizzo per la stringa Unicode allocata che rappresenta l'identificatore dell'algoritmo hash CNG estratto dai parametri della firma codificata. Se questa funzione restituisce TRUE, è necessario restituire un puntatore non NULL .

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce un valore diverso da zero (TRUE).

Se la funzione non riesce, restituisce zero (FALSE). Per informazioni sugli errori estesi, chiamare GetLastError.

Se questa funzione di callback non supporta l'algoritmo di firma, deve restituire FALSE e chiamare SetLastError con ERROR_NOT_SUPPORTED.

Commenti

La memoria per i parametri ppvDecodedSignPara e ppwszCNGHashAlgid deve essere allocata tramite la funzione LocalAlloc .

È possibile usare le funzioni di supporto OID per distribuire questa funzione di callback. Wincrypt.h definisce la costante seguente a questo scopo.

Costante Definizione
CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC "CryptDllExtractEncodedSignatureParameters"

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 wincrypt.h