Verifica la firma e il cerfificato usato di un file pdf firmato con il metodo Pkcs#7.
Se c'è un errore nella VERIFICA del certificato questo viene riportato in output nel parametro szVerifySignatureCertificateErrorDesc
Se c'è un errore nella firma la funzione ritorna E_GENERIC_PDF_ERROR. In tal caso usa dmtGetLastPdfError per sapere quale è l'errore di verifica Della firma
Ritorna la descrizione dell'errore se viene passato un puntatore valido per il parametro szPdfErrorDesc, deve essere un puntatore a stringa allocata fuori di 200 caratteri.
int WINAPI
dmtVerifySignedPdfFile(
HDMTOBJ hDmt, // Handle oggetto Dimatek
CHAR *szFileNameSigned, // File firmato
DWORD dwPdfSignatureIndex, //
BOOL fVerifySignatureCertificate, // Verifica la validità del certificato
CHAR *szPdfErrorDesc,
DIMATEK_SIGNED_INFO* pDimatekSignedInfo /*= NULL*/ //
);
[DllImport("Dimatec.dll")]
public static extern int dmtVerifySignedPdfFile(
int hDmt,
string szFileNameSigned,
integer dwPdfSignatureIndex,
boolean fVerifySignatureCertificate, // Verifica la validità del certificato
ref string szPdfErrorDesc ,
intPtr pDimatekSignedInfo );
Dichiarazione Visual Basic 6
Public Declare Function dmtVerifySignedPdfFile Lib "Dimatec.dll" _
(ByVal hDmt as long , _
ByVal szFileNameSigned as string, _
ByVal dwPdfSignatureIndex as long, _
ByVal fVerifySignatureCertificate as Boolean, _
Byref szPdfErrorDesc as String , _
Byref pDimatekSignedInfo as Long) as long
hDmt - Handle della sessione generata con DmtCreate. per creare una sessione senza CSp e Certificato si può usare ad esempio per Win7 dmtcreate(0,"","",2,False))
szOriginalFileName - File originale Firmato da verificare
fVerifySignatureCertificate, Verifica la validità del certificato
dwPdfSignatureIndex- Indice della firma da controllare
Parametri di Output
szPdfErrorDesc - Descrizione dell'errore se è stato validato certificato o non è stato trovato nella lista dei certificati attendibili
pDimatekSignedInfo Puntatore alla struttura DIMATEK_SIGNED_INFO contenente le informazioni del certificato e della firma . Usa NULL o (IntPrt.Zero in c#) se non ti occorrono le informazioni del certificato
DMT_OK in caso di successo, altrimenti restituisce l'errore E_GENERIC_PDF_ERROR.usa dmtGetLastPdfError per conoscere i dettagli dell'errore di verifica Della firma