dmtTimeStampDTS

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.

 

Dichiarazione - C

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);

 

Dichiarazione - Visual Dataflex

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

 

Dichiarazione - Visual Basic

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

Dichiarazione - C Sharp

[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);

 

Parametri di input:
Valore di ritorno:

DMT_OK in caso di successo, altrimenti un codice di errore

 

Tipi di richieste al server di timestamp DTS

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

 

FILE  CREATI DAL SERVIZIO DI MARCATURA:

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>

 

 


Esempi di utilizzo

 

Visual Dataflex

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

Visual Basic

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)

 

C Sharp

// 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 );