Contatta il server DTS di Infocamere per richiedere un servizio di marcatura temporale o la verifica di una marca esistente.
Le richieste e le operazioni qui svolte si basano sulla documentazione fornita da "InfoCamere - Servizio di Marcatura Temporale Funzione emittente 705 - Area Sistemi di Sicurezza Informatica" e non sono garantite per funzionare su server con protocolli differenti da quello supportato dal Server di INFOCAMERE. Nel caso provare con l'altra funzione di uso più generico dmtTimeStamp.
Le richieste sono specificate da parametri e riguardano emissione di marca temporale, verifica marca,analisi e affini.
Si rimanda al suddetto documento per ulteriori dettagli.
LONG WINAPI dmtTimeStampDTS (
HDMTOBJ hDmt,
CHAR *szHttpServerUrl,
DWORD RequestType,
CHAR *TimeStampSourceFileName,
CHAR *SourceFileName,
CHAR *DestinationFileName,
CHAR *Username,
CHAR *Password,
CHAR *SerialNumber,
BOOL fSaveTimeStampQuery,
BOOL fSaveServerReply,
BOOL fXmlFileSave,
DWORD dmtcalghash);
External_Function dmtTimeStampDTS "dmtTimeStampDTS" Dimatec.dll ;
Handle hDmt ;
String lpszHttpServerUrl ;
Integer RequestType ;
String szTimeStampSourceFileName ;
String lpszSourceFileName ;
String lpszDestinationFileName ;
String szUserName ;
String szPassword ;
String szSerialNumber ;
Boolean fSaveTimeStampQuery ;
Boolean fSaveServerReply ;
Boolean fSaveXml ;
Integer dmtcalghash;
Returns Integer
Public Declare Function dmtTimeStampDTS Lib "Dimatec.dll" _
(ByVal hDmt As Long, _
ByVal szHttpServerUrl As String, _
ByVal RequestType As Long, _
ByVal TimeStampSourceFileName As String, _
ByVal SourceFileName As String, _
ByVal DestinationFileName As String, _
ByVal Username As String, _
ByVal Password As String, _
ByVal serialNumber As String, _
ByVal fSaveTimeStampQuery As Boolean, _
ByVal fSaveServerReply As Boolean, _
ByVal XmlFileSave As Boolean, _
optional byval dmtcalghash as long = DMT_CALG_HASH1) _
As Long
[DllImport("Dimatec.dll")]
public static extern int dmtTimeStampDTS (
int hDmt,
string szHttpServerUrl,
int RequestType,
string szTimeStampSourceFileName,
string szSourceFileName,
string szDestinationFileName,
string szUsername,
string szPassword,
string szSerialNumber,
bool fSaveTimeStampQuery,
bool fSaveServerReply,
bool fXmlFileSave,
int dmtcalghash);
hDmt - Handle dell'oggetto DiMaTek
szHttpServerUrl - Indirizzo URL del server di timestamp
RequestType - Tipo di richiesta da inviare al server di timestamp [Vedi Tipi di richieste al server di timestamp DTS]
TimeStampSourceFileName - File contenente la marca temporale secondo il tipo di richiesta
SourceFileName - File sorgente utilizzato per alcune richieste
DestinationFileName - File di destinazione in cui verranno salvati i risultati della richiesta
Username - Nome utente sul server di timestamp
Password - Password dell'utente sul server di timestamp
SerialNumber - Numero di serie da inviare al server di timestamp se richiesto
fSaveTimeStampQuery - Se TRUE verrà generato un file contenente la query inviata al server di timestamp
fSaveServerReply - Se TRUE verrà salvato un file contenente la risposta del server
fXmlFileSave - Se TRUE verranno salvati in un file Xml alcune informazioni utili della risposta ricevuta dal server
dmtcalghash - algoritmo da usare per la generazoine della marca. Per la marca a 256 usa DMT_CALG_HASH_256
DMT_OK in caso di successo, altrimenti un codice di errore
|
Definition |
Value |
Description |
|
rtEmissioneMarca |
1 |
In input il documento da marcare,in output la marca. Input : Username, password, il file input contenente il documento da marcare in SourceFileName. Output : File .dts che conterrà la marca generata. |
|
rtEmissioneMime |
2 |
In input il documento da marcare, in output un file che contiene marca e documento in formato MIME. (documento + marca inclusa) Input : Username, password, il file input contenente il documento da marcare in SourceFileName. Output : File .m7m che contiene marca e documento in formato MIME. |
|
rtVerificaEsito |
3 |
In input la marca ed il documento a cui si riferisce, in output l'esito. Input : Username, il documento come SourceFileName, la marca come TimeStampSourceFileName. Output : File .dts che conterrà il messaggio (di testo) ricevuto dal server con i dati richiesti. |
|
rtVerificaMimeEsito |
4 |
In input il file MIME contenente marca e documento, in output l'esito. Input : Username, il file MIME come SourceFileName,con marca e documento. Il file mime deve essere di tipo m7m e generato da una precedente richiesta. Output : File .dts che conterrà il messaggio (di testo) ricevuto dal server con i dati richiesti. |
|
rtAnalisiEsito |
5 |
In input la marca , in output l'esito. Input : Username, la marca come TimeStampSourceFileName. Output : File .dts che conterrà il messaggio (di testo) ricevuto dal server con i dati richiesti. |
|
rtAnalisiMimeEsito |
6 |
In input il file MIME con la marca ed il documento, in output l'esito. Fare attenzione perchè questa richiesta NON E' uguale a rtVerificaMimeEsito, anche se i parametri passati sono identici. Input : Username, password , il file MIME come SourceFileName, con marca e documento. Il file mime deve essere di tipo m7m e generato da una precedente richiesta. Output : File .dts che conterrà il messaggio (di testo) ricevuto dal server con i dati richiesti. |
|
rtHashMarca |
7 |
In input l'hash (algoritmo sha-1) del documento, in output la marca. Per generare l'hash di un documento è possibile usare la funzione della libreria. Input : Username, Password, il file contenente l'hash come SourceFileName ; l'hash dovrà essere in formato binario all'interno del file. Output : File .dts che conterrà la marca generata ; la marca sarà già decodificata e salvata in formato binario. |
|
rtVerificaHashEsito |
8 |
In input la marca e l'hash (algoritmo sha-1) del documento a cui si riferisce la marca,in output l'esito. Per generare l'hash di un documento è possibile usare la funzione della libreria. Input : Username, password, file contenente la marca in formato binario in TimeStampSourceFilename, file contenente l'hash in formato binario in SourceFileName. Output : File .dts che conterrà il messaggio (di testo) ricevuto dal server con i dati richiesti. |
|
rtContaMarca |
9 |
Richiesta di controllo disponibilità : deve essere inviato l'username e password e sarà restituito in output il numero di marche disponibili e se l'username è registrato nel server. Input : Username, Password. Output : File .dts che conterrà il messaggio (di testo) ricevuto dal server con i dati richiesti. |
|
rtEmissioneMimeHash |
10 |
Questo è il valore da usare nella maggior parte dei casi quando si desidera marcare un file co pleto per creare una busta M7M contenente il file originale con la marca |
|
rtEmissioneTSDHash |
11 |
Questo è il valore da usare nella maggior parte dei casi quando si desidera marcare un file completo per creare una busta TSD contenente il file originale con la marca |
XML
.Xml contiene le informazioni di riposta in formato standard XML
<DIMATEC>
<HTTPREPLY>
<DATE></DATE> Data della richiesta
<SERVER></SERVER> nome completo del server
<STATUSCODE></STATUSCODE> Codice della risposta
<STATUSCODETXT></STATUSCODETXT> Descrizione della risposta
<HTTPREPLY>
<TIMESTAMP></TIMESTAMP> contiene la marca temporale
<INFORMATIONS></INFORMATIONS> Informazioni varie come ad esempio quante marche consumate e quante disponibili
</DIMATEC>
Integer ret
String sUrlTimeStamp
String sFileDaMarcare
String sUserName
String sPassword
// Check
If (Length(Trim(psFileDaMarcare(oMarcaTemporaleServerInfocamere))) = 0) Begin
Send Stop_Box "Any file selected for timestamp" "EseguiTimeStamp"
Procedure_Return
End
Get Value of oForm_UrlTimeStamp to sUrlTimeStamp
Get psFileDaMarcare of oMarcaTemporaleServerInfocamere to sFileDaMarcare
Get Value of oForm_UserName to sUserName
Get Value of oForm_Password to sPassword
Move (dmtTimeStampDTS( ;
ghDmt , ;
lpsUrlTimeStamp , ;
rtEmissioneMimeHash , ;
"" , ;
lpsFileDaMarcare , ;
lpsFileDaMarcare , ;
sUserName , ;
sPassword , ;
"" , ;
(Checked_State(oCheckBox_SaveQuery)) , ;
(Checked_State(oCheckBox_Detach)) , ;
(Checked_State(oCheckBox_Xml, DMT_CALG_HASH_256)))) to ret
Dim res As Long
' Check
If (Len(Trim(txt_FileToTimeStamp.Text)) = 0) Then
MsgBox "Any file selected for timestamp", vbCritical, "ExecSign"
Exit Sub
End If
res = dmtTimeStampDTS(g_hDmt, _
txt_ServerInfocamere, _
rtEmissioneMimeHash, _
"", _
txt_FileToTimeStamp.Text, _
txt_FileToTimeStamp.Text, _
txt_UserName.Text, _
txt_Password.Text, _
"", _
chk_SaveQuery.Value, _
chk_Detach.Value, _
chk_Xml.Value, DMT_CALG_HASH_256)
// Check
if (LabelFileForTimestamp.Text.Length == 0)
{
MessageBox.Show(this, "Any file selected to timestamp", "ExecTimestamp",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
int TimestampResult = CDIMATECLIBRARY.DMT_OK;
TimestampResult = CDIMATECLIBRARY.dmtTimeStampDTS(
CDIMATECLIBRARY.ghDimatecObj,
TextBoxUseInfocamereServer.Text,
CDIMATECLIBRARY.rtEmissioneMimeHash,
"",
LabelFileForTimestamp.Text,
LabelFileForTimestamp.Text,
TextBoxInfocamereUsername.Text,
TextBoxInfocamerePassword.Text,
"",
CheckBoxSaveQuery.Checked,
CheckBoxSaveTsr.Checked,
CheckBoxSaveXmlResponse.Checked, DMT_CALG_HASH_256 );