Versione 2.5.8

Nuove Funzionalità

dmtCoSigningFile

E' stata aggiunta la funzionalità di firma di un file firmato.

Il proprio certificato verrà accodato alla lista dei certificati presenti nel file firmato.

dmtImportCertificateInStore

E' stata aggiunta la funzionalità di importazione di un certificato come file *.cer.

Se i parametri della funzione vengono lasciati vuoti verrà lanciato il wizard di importazione di windows.

dmtGetDefaultCertificateLoaded

E' stata aggiunta la funzionalità per il recupero dell'indice del certificato settato come default.

dmtEncryptFileExRSA - dmtDecryptFileExRSA

Queste due nuove funzionalità permettono di eseguire la cifratura e decifratura secondo lo standard RSA. Con queste due nuove funzioni è possibile soddisfare anche la normativa imposta dal Ministero delle Finanze con il DM del 27 Luglio 2005 con il quale ha imposto che il software gestionale delle strutture sanitarie, delle farmacie e di chiunque trasmetta dati relativi alle ricette e alle prestazioni sanitarie al Ministero "dovrà conservare il codice fiscale utilizzando tecniche di crittografia con la chiave pubblica RSA contenuta nel certificato X.509 fornita dal MEF ed applicando il padding PKCS#1 v.1.5. La trasformazione deve essere conforme con quella ottenuta dall'esecuzione del comando pacchetto open source "opensll...." . Tramite un parametro addizionale è possibile ottenere il dato cifrato in formato CodeBase64 pronto per l'invio in un XML al MEF

Funzionalità Modificate

dmtCreate

Dichiarazione nella Versione 2.5.7

HDMTOBJ WINAPI dmtCreate (

char *szContainerName,

char *szStoreLocation = "MY",

char *szDllOptional = "");

Nuova Dichiarazione Versione 2.5.8

HDMTOBJ WINAPI dmtCreate (

char *szContainerName,

char *szStoreLocation = "MY",

char *szDllOptional = "",

bool fUseEnhancedProvider = false);

 

E' stato aggiunto un flag per l'abilitazione di alcune funzionalità avanzate.

dmtGetLastError

Dichiarazione nella Versione 2.5.7

LONG WINAPI dmtGetLastError (void);

Nuova Dichiarazione Versione 2.5.8

LONG WINAPI dmtGetLastError (

bool fDisplayErrorInfo = false);

 

La funzione ritorna il codice dell'ultimo errore; se il flag fDisplayErrorInfo è true viene visualizzata una dialog con informazioni aggiuntive dell'errore occorso.

dmtSetDefaultCertificate

Dichiarazione Versione 2.5.7

LONG WINAPI dmtSetDefaultCertificate (

HDMTOBJ hDmt,

long dwIndex);

Nuova Dichiarazione Versione 2.5.8

LONG WINAPI dmtSetDefaultCertificate (

HDMTOBJ hDmt,

long dwIndex,

bool fUseForRecipient = false);

 

La funzione permette, attraverso l'impostazione del flag fUseForRecipient, di settare:

dmtGetCertificateInStore

Dichiarazione Versione 2.5.7

LONG WINAPI dmtGetCertificateInStore (

HDMTOBJ hDmt,

char* szOutputCertificate,

long dwIndex = 0);

Nuova Dichiarazione Versione 2.5.8

LONG WINAPI dmtGetCertificateInStore (

HDMTOBJ hDmt,

char *szOutputCertificate,

long dwIndex = 0,

bool fDlgView = false);

 

Il quarto parametro aggiunge alla funzione di recupero del certificato nello store la visualizzazione del certificato recuperato nella dialog di default fornita da Windows per la visualizzazione delle caratteristiche di un certificato.

dmtSigningFile

Dichiarazione Versione 2.5.7

LONG WINAPI  dmtSigningFile (

HDMTOBJ hDmt,

char* szFileName,

char* szAlgHash = szOID_OIWSEC_sha1,

char* szAlgEncode = szOID_RSA_RC4,

bool fDetachSign = false,

bool fEncode = false,

bool fRecipients = false,

bool fInclRecipientInMsg = false,

char* zsPin = "");

Nuova Dichiarazione Versione 2.5.8

LONG WINAPI  dmtSigningFile (

HDMTOBJ hDmt,

char *szFileName,

char *szAlgHash = szOID_OIWSEC_sha1,

char *szAlgEncrypt = szOID_RSA_RC4,

bool fDetachSign = false,

bool fEncrypt = false,

bool fInclRecipientInMsg = false,

bool fUseAllRecipients = false,

char *szPin = "");

 

E' stato eliminato il parametro fRecipients che permetteva di cifrare un file con un certificato presente nella lista dei certificati personali; sono state distinte le funzionalità delle due liste di certificati presenti nell'oggetto DiMaTek (certificati personali per la firma - certificati dei destinatari per la cifratura). Per poter firmare e cifrare un file con il proprio certificato bisogna:

  1.  caricare nella lista dei certificati personali il proprio certificato personale

  2.  caricare nella lista dei certificati dei riceventi il proprio certificato con funzionalità di cifratura

  3.  settare il default dei certificati personali (dmtSetDefaultCertificate - fUseForRecipient = false)

  4.  settare il default dei certificati dei riceventi (dmtSetDefaultCertificate - fUseForRecipient = true)

 

E' stato aggiunto il parametro fUseAllRecipients che permette di cifrare il file firmato con ogni certificato pubblico presente nella lista dei certificati dei riceventi.

dmtVerifySignedFile

Dichiarazione Versione 2.5.7

LONG WINAPI dmtVerifySignedFile (

char* szFileNameSigned,

char* outOriginalFile = "",

char* outCertificateFile = "");

Nuova Dichiarazione Versione 2.5.8

LONG WINAPI dmtVerifySignedFile (

char *szFileNameSigned,

long dwIndex = 0,

char *outOriginalFile = "",

char *outCertificateFile = "");

 

La funzionalità di estrazione del certificato con cui è stato firmato il file è stata rivista e corretta.

Per i file contenenti più firme, il parametro dwIndex permette di scegliere quale certificato estrarre.

dmtEncryptFile - dmtDecryptFile

Dichiarazioni Versione 2.5.7

LONG WINAPI dmtEncryptFile (

HDMTOBJ hDmt,

char* szSource,

char* szDestination,

char* szPin);

 

LONG WINAPI dmtDecryptFile (

HDMTOBJ hDmt,

char* szSource,

char* szDestination,

char* szPin);

Nuova Dichiarazioni Versione 2.5.8

LONG WINAPI dmtEncryptFile (

HDMTOBJ hDmt,

char *szFileName,

char *szAlgEncrypt = szOID_RSA_RC4);

 

LONG WINAPI dmtDecryptFile (

HDMTOBJ hDmt,

char *szFileName,

char *szPin = "");

 

La funzionalità di cifratura e decifratura di un file è stata completamente rivista e corretta.

dmtVerifyCryptedSignedFile

Dichiarazione Versione 2.5.7

LONG WINAPI dmtVerifyCryptedSignedFile (

HDMTOBJ hDmt,

char* szFileNameSigned,

char* outOriginalFile = "",

char* outCertificateFile = "");

Nuova Dichiarazione Versione 2.5.8

LONG WINAPI dmtVerifyCryptedSignedFile (

HDMTOBJ hDmt,

char *szFileNameSigned,

long dwIndex = 0,

char *outOriginalFile = "",

char *outCertificateFile = "",

char *szPin = "");

 

La funzionalità di estrazione del certificato con cui è stato firmato il file è stata rivista e corretta.

Per i file contenenti più firme, il parametro dwIndex permette di scegliere quale certificato estrarre.

Il parametro szPin permette la verifica del file firmato e cifrato inserendo in modo automatico il della smartcard.

dmthash

Dichiarazione Versione 2.5.7

LONG WINAPI dmtHash (

HDMTOBJ hDmt,

char* szFileName,

char* szFileHash,

char *ByteHash,

long dwAlgHash = DMT_CALG_SHA1,

bool bMinuscole = false);

Nuova Dichiarazione Versione 2.5.8

LONG WINAPI dmtHash (

HDMTOBJ hDmt,

char *szFileName,

char *szOutputFileHash = NULL,

char *szOutputHexHash = NULL,

char *szOutputHash = NULL,

long dwAlgHash = DMT_CALG_SHA1,

bool bMinuscole = false);

 

E' stata ampliata la scelta di output possibili in base ai parametri inseriti:

dmtTimeStamp

Dichiarazione Versione 2.5.7

LONG WINAPI dmtTimeStamp (

char* szHttpServerUrl,

char* szFileToTimeStamped,

char* szAlgHash = szOID_OIWSEC_sha1,

bool fSaveTimeStampQuery = false,

bool fDetachTS = false,

bool fSaveXMLReply = false);

Nuova Dichiarazione Versione 2.5.8

LONG WINAPI dmtTimeStamp (

HDMTOBJ hDmt,

char *szHttpServerUrl,

char *SourceFileName,

bool fSaveTimeStampQuery = false,

bool fDetachTS = false,

bool fSaveXMLReply = false);

 

E' stata modificata la funzionalità di Timestamp su server free. Il file di ingresso non è più un file contenente un hash ma direttamente il file su cui effettuare il timestamp. In uscita verrà generato un file *.m7m di tipo MIME contenente il file originale e la risposta del server compatibile con quello generato dalla funzione dmtTimeStampDTS.

dmtVerifyFileTimeStamped

Dichiarazione Versione 2.5.7

LONG WINAPI dmtVerifyFileTimeStamped (

char* szFileName,

char* szOriginalFile = "");

Nuova Dichiarazione Versione 2.5.8

LONG WINAPI dmtVerifyFileTimeStamped (

HDMTOBJ hDmt,

char *SourceFileName);

 

La funzione di verifica accetta in ingresso un file *.m7m come quelli generati dalla funzione dmtTimeStampDTS o dalla funzione dmtTimeStamp (versione 2.5.8).

dmtExtractFromTimeStamp

Dichiarazione Versione 2.5.7

LONG WINAPI dmtExtractFromTimeStampDTS (

char* SourceFileName,

char* OriginalFileName = "",

char* TimeStampFileName = "",

char* XMLTimeStampFileName = "");

Nuova Dichiarazione Versione 2.5.8

LONG WINAPI dmtExtractFromTimeStamp (

char *SourceFileName,

char *OriginalFileName = "",

char *TimeStampFileName = "",

char *XMLTimeStampFileName = "");

 

E' stato modificato il nome della funzione in quanto la funzione di estrazione delle informazioni da un file con timestamp accetta in ingresso un file *.m7m come quelli generati dalla funzione dmtTimeStampDTS o dalla funzione dmtTimeStamp (versione 2.5.8).

Funzionalità Eliminate

dmtSigningMultiFiles E' stata eliminata la possibilità di firmare contemporaneamente più files; per poter firmare più files l'utente dovrà implementare nell'applicazione esterna a DiMaTek il loop sui files da firmare chiamando più volte la funzione dmtSigningFile

 

dmtEncodingFile Le funzioni dmtEncodingFile e dmtEncryptFile sono state corrette e riscritte nella funzione dmtEncryptFile

dmtDecodingFile Le funzioni dmtDecodingFile e dmtDecryptFile sono state corrette e riscritte nella funzione dmtDecryptFile