Funzione CryptSIPGetSignedDataMsg (mssip.h)

La funzione CryptSIPGetSignedDataMsg recupera una firma Authenticode dal file.

Sintassi

BOOL CryptSIPGetSignedDataMsg(
  [in]      SIP_SUBJECTINFO *pSubjectInfo,
  [out]     DWORD           *pdwEncodingType,
  [in]      DWORD           dwIndex,
  [in, out] DWORD           *pcbSignedDataMsg,
  [out]     BYTE            *pbSignedDataMsg
);

Parametri

[in] pSubjectInfo

Puntatore a una struttura SIP_SUBJECTINFO contenente informazioni sull'oggetto del messaggio.

[out] pdwEncodingType

Tipo di codifica della firma Authenticode.

Questo parametro può essere una combinazione di uno o più dei valori seguenti.

Valore Significato
PKCS_7_ASN_ENCODING
65536 (0x10000)
Specifica la codifica dei messaggi PKCS #7 .
X509_ASN_ENCODING
1 (0x1)
Specifica la codifica del certificato X.509 .

[in] dwIndex

Questo parametro è riservato e deve essere impostato su zero.

[in, out] pcbSignedDataMsg

Lunghezza, in byte, del buffer a cui punta il parametro pbSignedDataMsg .

[out] pbSignedDataMsg

Puntatore a un buffer per ricevere la firma Authenticode restituita.

Per determinare le dimensioni del buffer necessario, impostare il parametro pbSignedDataMsg su NULL e chiamare la funzione CryptSIPGetSignedDataMsg . Questa funzione inserisce le dimensioni necessarie del buffer, in byte, nel valore a cui punta pcbSignedDataMsg. Per altre informazioni, vedere Recupero di dati di lunghezza sconosciuta.

Valore restituito

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

Se la funzione ha esito negativo, restituisce FALSE. Per informazioni sugli errori estesi, chiamare GetLastError. Di seguito sono riportati alcuni possibili codici di errore.

Codice restituito Descrizione
CRYPT_E_NO_MATCH
Impossibile trovare la firma specificata dall'indice.
ERROR_BAD_FORMAT
Il formato di dati o file specificato del pacchetto SIP ( Subject Interface Package ) non è valido.
ERROR_INVALID_PARAMETER
La struttura [SIP_SUBJECTINFO](/windows/desktop/api/mssip/ns-mssip-sip_subjectinfo) è un puntatore Null.
ERROR_INSUFFICIENT_BUFFER
Le dimensioni del buffer del messaggio non sono sufficienti per contenere i dati recuperati, il parametro pcbSignedDataMsg è stato impostato per indicare le dimensioni del buffer necessarie.
TRUST_E_SUBJECT_FORM_UNKNOWN
Il tipo di soggetto specificato non è valido.

Commenti

I soggetti includono, ad esempio, immagini eseguibili portabili (.exe), immagini cab (.cab), file flat e file di catalogo. Ogni tipo di soggetto usa un subset diverso dei relativi dati per il calcolo hash e richiede una procedura diversa per l'archiviazione e il recupero. Pertanto, ogni tipo di soggetto ha una specifica SIP univoca.

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 mssip.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CryptSIPPutSignedDataMsg

CryptSIPRemoveSignedDataMsg